我使用作为后端knitr
来生成漂亮的报告pdflatex
。如果 R 代码运行无误,则一切都正常。但是,如果 R 代码失败,自动生成的文件有时会无效,以至于 LaTeX 甚至不会从中生成 PDF——错误太多,导致以下输出:
(That makes 100 errors; please try again.)
! ==> Fatal error occurred, no output PDF file produced!
例子:texput.tex
\documentclass{scrartcl}
\pagestyle{empty}
\begin{document}
\input{bad}
\end{document}
例子:bad.tex
\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e
\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e
\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e
\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e\e
(代码和Makefile
可以下载或克隆这里。
在这种情况下,R 脚本中的错误很难找到,因为没有可用的输出。
有没有一种万无一失的等效方法\input
可以“在这种情况下正常工作”?即使生成的文档在致命错误的地方突然结束也没关系,只要生成了有效的 PDF 即可。或者也许只需将错误阈值设置为一个非常大的值和/或重置每次遇到的错误数量\input
就会有所帮助?
答案1
您无法确定完全任意的 LaTeX 文档是否能够编译:有很多情况会导致无限循环。在消息的情况下,100 errors
这是 TeX 内置的,而不是 LaTeX 内置的,因此无法通过 LaTeX 简单地“关闭”。在 DVI 模式下,您可能会从这些情况下获得一些可读的输出,因为 DVI 格式不需要有效的“文件结束”部分,但 PDF 需要,因此 pdfTeX 必须完成作业才能为您提供一些可用的东西。