用“pdflatex --shell-escape myfile.tex”编织?

用“pdflatex --shell-escape myfile.tex”编织?

我想在我的 .Rnw 文件中插入字数统计。

为此,我在 中添加了以下行myfile.Rnw

\makeatletter\@@input|"echo `texcount -1 myfile.tex`| cut -c1-4"\makeatother

但这需要我pdflatex使用该--shell-escape标志运行。使用 Sweave,我有一个包含以下行的 makefile:

...
R CMD Sweave myfile.Rnw
pdflatex --shell-escape myfile.tex 
...
...

--shell-escape当我使用 knit 而不是 makefile 来编译文档时,有没有办法将其添加到 pdflatex 中?


可重现的示例:

myfile.Rnw 的内容:

\documentclass{article}
\begin{document}

Words: \makeatletter\@@input|"echo `texcount -1 myfile.tex`| cut -c1-4"\makeatother
Lorem ipsum dolor
\end{document}

有效方法:

R CMD Sweave myfile.Rnw
pdflatex --shell-escape myfile.tex

什么不起作用:

knit("myfile.Rnw")
"myfile.pdf" %in% dir() ## False

答案1

pdflatex在 knitr 源代码中grep 之后,我找到了knit2pdf带有参数的函数compiler。这似乎有效:

knit2pdf("myfile.Rnw", compiler = "pdflatex --shell-escape")
"myfile.pdf" %in% dir() ## TRUE

在 Rstudio 中执行以下操作:

工具 -> 选项 -> Sweave -> 启用 shell 转义命令

相关内容