R Markdown - 由于内联代码中使用了 officer::ftext,编织到 bookdown::word_document2 失败
R Markdown - knitting to bookdown::word_document2 fails because of officer::ftext used in inline code
我的 R 笔记本 (.Rmd) 文件的最小可重现示例,该文件在编织到 word 文档时导致错误:
---
title: "R Notebook"
output: bookdown::word_document2
---
Using inline R code chunks with `officer::ftext` causes an error as such
`r officer::ftext('Example text', officer::fp_text(color = 'red'))`
编织时报错如下:
Error in vapply(x, format_sci_one, character(1L), ..., USE.NAMES = FALSE) : values must be length 1, but FUN(X[[2]]) results in length 8 Calls: <Anonymous> ... paste -> hook -> .inline.hook -> formact_sci -> vapply
此错误最近才开始出现。以前使用此代码,我能够输出一个 word 文档,其中内联代码块将生成文本 'Example text' 和红色字体颜色。
我的 .SessionInfo() 输出是:
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=German_Switzerland.1252 LC_CTYPE=German_Switzerland.1252 LC_MONETARY=German_Switzerland.1252 LC_NUMERIC=C
[5] LC_TIME=German_Switzerland.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ROracle_1.3-1.1 DBI_1.1.2
loaded via a namespace (and not attached):
[1] compiler_3.5.1 bookdown_0.24 fastmap_1.1.0 htmltools_0.5.2 tools_3.5.1 yaml_2.2.1 rmarkdown_2.11 knitr_1.37 xfun_0.29 digest_0.6.29
[11] rlang_0.4.12 evaluate_0.14
我正在使用 Pandoc 2.1。
请注意,我在工作中使用此 R 设置,因此我无法更新到更新版本的 R 或 RStudio IDE。
在我安装并加载包 officedown
版本 0.1.0 后,.Rmd 文件开始正确编织到 word。我最初尝试使用 0.2.0 版,但后来如果我在 officer::ftext
函数中使用非字母数字字符作为文本输入(例如,'%'、'['),在单词输出中它显示为 xml 结构而不是格式化文本。
感谢 David Gohel,他是 officer
软件包的开发人员,他将我指向 officedown
软件包,请参阅他的 github 页面上的讨论:
https://github.com/davidgohel/officer/issues/402
我的 R 笔记本 (.Rmd) 文件的最小可重现示例,该文件在编织到 word 文档时导致错误:
---
title: "R Notebook"
output: bookdown::word_document2
---
Using inline R code chunks with `officer::ftext` causes an error as such
`r officer::ftext('Example text', officer::fp_text(color = 'red'))`
编织时报错如下:
Error in vapply(x, format_sci_one, character(1L), ..., USE.NAMES = FALSE) : values must be length 1, but FUN(X[[2]]) results in length 8 Calls: <Anonymous> ... paste -> hook -> .inline.hook -> formact_sci -> vapply
此错误最近才开始出现。以前使用此代码,我能够输出一个 word 文档,其中内联代码块将生成文本 'Example text' 和红色字体颜色。
我的 .SessionInfo() 输出是:
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=German_Switzerland.1252 LC_CTYPE=German_Switzerland.1252 LC_MONETARY=German_Switzerland.1252 LC_NUMERIC=C
[5] LC_TIME=German_Switzerland.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ROracle_1.3-1.1 DBI_1.1.2
loaded via a namespace (and not attached):
[1] compiler_3.5.1 bookdown_0.24 fastmap_1.1.0 htmltools_0.5.2 tools_3.5.1 yaml_2.2.1 rmarkdown_2.11 knitr_1.37 xfun_0.29 digest_0.6.29
[11] rlang_0.4.12 evaluate_0.14
我正在使用 Pandoc 2.1。 请注意,我在工作中使用此 R 设置,因此我无法更新到更新版本的 R 或 RStudio IDE。
在我安装并加载包 officedown
版本 0.1.0 后,.Rmd 文件开始正确编织到 word。我最初尝试使用 0.2.0 版,但后来如果我在 officer::ftext
函数中使用非字母数字字符作为文本输入(例如,'%'、'['),在单词输出中它显示为 xml 结构而不是格式化文本。
感谢 David Gohel,他是 officer
软件包的开发人员,他将我指向 officedown
软件包,请参阅他的 github 页面上的讨论:
https://github.com/davidgohel/officer/issues/402