我正在尝试在 tex2docx reports 包中重现 R 函数的示例并收到以下错误。

DOC <- system.file("extdata/doc_library/apa6.qual_tex/doc.tex",
   package = "reports")
BIB <- system.file("extdata/docs/example.bib", package = "reports")
tex2docx(DOC, file.path(getwd(), "test.docx"), path = NULL, bib.loc = BIB)

错误信息
pandoc.exe: Error reading bibliography `C:/Users/Muhammad'
citeproc: the format of the bibliographic database could not be recognized
using the file extension.
docx file generated!
Warning message:
running command 'C:\Users\MUHAMM~1\AppData\Local\Pandoc\pandoc.exe -s C:/Users/Muhammad Yaseen/R/win-library/3.0/reports/extdata/doc_library/apa6.qual_tex/doc.tex -o C:/Users/Muhammad Yaseen/Documents/test.docx --bibliography=C:/Users/Muhammad Yaseen/R/win-library/3.0/reports/extdata/docs/example.bib' had status 23

我想知道如何让 tex2docx reports 包中的 R 函数正常工作。

最佳答案

如上述注释中所述,错误是由传递包含一些未转义或引用的空格的文件名/路径引起的。解决方法可能是在使用 shQuote 传递到命令行之前将所有文件路径和名称包装在 system 中。

代码:https://github.com/trinker/reports/pull/31

演示:

  • 加载包
    library(reports)
    
  • 创建一个名称中带有空格的虚拟目录,用于保存 bib 文件
    dir.create('foo bar')
    file.copy(system.file("extdata/docs/example.bib", package = "reports"), 'foo bar/example.bib')
    
  • 指定源和复制的 bib 文件:
    DOC <- system.file("extdata/doc_library/apa6.qual_tex/doc.tex", package = "reports")
    BIB <- 'foo bar/example.bib'
    
  • 运行测试:
    tex2docx(DOC, file.path(getwd(), "test2.docx"), path = NULL, bib.loc = BIB)
    


  • 免责声明: 我试图测试这个拉取请求,但我无法在 5 分钟内设置一个环境,其中包含所有需要的工具来运行带有小插曲和其他所有内容的 R CMD check(抱歉,现在正在度假,只是享受午睡午餐后),所以请将此拉取请求视为“未经测试”——尽管它应该可以工作。

    关于r - 报告 R 包中的 tex2docx 函数出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17897359/

    10-10 07:24