我想在我的 .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 转义命令