2013-07-17 77 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')