我正在尝试在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)
Disclaimer:
R CMD check
(对不起,但是正在休假中现在,然后在午饭后享受午睡),因此,请将此拉取请求视为“未体验”-尽管它[[应可以工作。