报告R包中的tex2docx函数出错

问题描述 投票:4回答:1

我正在尝试在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功能正常工作。

r report docx tex
1个回答
4
投票

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

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


演示:

  1. 正在加载包裹

    library(reports)
    
  2. 创建一个虚拟目录,该目录的名称中将包含bib文件的空格

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

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

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

    Disclaimer:

我尝试测试此拉取请求,但是我无法在5分钟内用所有必要的工具设置环境来运行带有小插图和其他所有内容的R CMD check(对不起,但是正在休假中现在,然后在午饭后享受午睡),因此,请将此拉取请求视为“未体验”-尽管它[[应可以工作。
© www.soinside.com 2019 - 2024. All rights reserved.