2013-07-17 45 views
2

我正在使用R package knitr生成降价文件test.md。这个文件然后被pandoc处理以产生各种输出格式,例如html和pdf。因为我想在通过latex生成pdf时使用bibtex,所以我相信我必须告诉pandoc停止在中间胶乳输出处,然后自己运行bibtexpdflatex(两次)。这里是我在工作流程中发现的一个轻微的烦恼:我发现pandoc保留中间tex文件的唯一方法是不通过-o选项指定一个硬编码的文件名,.tex延期。这对我来说是有问题的,因为我使用a config file通过knitr的选项,这一点我想不硬编码的输出文件名,以保持通用的运行pandoc('test.md', "latex", "config.pandoc")Pandoc将降价转换为默认文件名的乳胶

format: latex 
o: test.tex 
s: 
S: 
biblio: refs.bib 
biblatex: 
template: 'template.tex' 
default-image-extension: pdf 

这反过来又成为下命令pandoc,

pandoc -s -S --biblio=refs.bib --default-image-extension=pdf --biblatex --template='template.tex' -f markdown -t latex -o test.tex 'test.md' 

如果我跳过o: test.tex选项,pandoc产生的PDF和不守中间乳胶文件。如何保留tex文件,而不指定这个硬编码的文件名?

+0

我会想一想,如果pandoc真的无法保留中间tex文件。 –

+0

一个选项是在'knitr :: pandoc()'调用中指定'-o',默认值与输入文件的基名相同。但我认为从pandoc方面寻找解决方案会更好;我很可能错过了保留tex文件的选项。 – baptiste

回答

2

为了解决这个问题,我在pandoc()函数中增加了一个新的参数ext。它可用on Github now(knitr开发版本1.3.6)。您可以覆盖默认的文件扩展名,例如

library(knitr) 
pandoc(..., ext = 'tex')