4

我正在尝试重现包中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正常工作。

4

1 回答 1

4

如上述评论中所述,错误是由传递的文件名/路径引起的,其中包括一些既没有转义也没有引用的空格。shQuote一种解决方法是在传递到命令行之前将所有文件路径和名称包装在system.

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


演示:

  1. 加载包

    library(reports)
    
  2. 创建一个名称中带有空格的虚拟目录来保存bib文件

    dir.create('foo bar')
    file.copy(system.file("extdata/docs/example.bib", package = "reports"), 'foo bar/example.bib')
    
  3. 指定源和复制的bib文件:

    DOC <- system.file("extdata/doc_library/apa6.qual_tex/doc.tex", package = "reports")
    BIB <- 'foo bar/example.bib'
    
  4. 运行测试:

    tex2docx(DOC, file.path(getwd(), "test2.docx"), path = NULL, bib.loc = BIB)
    

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

于 2013-07-28T12:21:24.563 回答