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