运行 pdflatex 时抑制不需要的命令行输出

运行 pdflatex 时抑制不需要的命令行输出

使用\batchmode文件顶部的命令有助于删除一些行,但我仍然留下几行,例如:

(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.def)) (/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.sty (/usr/local/texlive/2011/texmf-dist/tex/generic/babel/english.ldf

等等。我无法找到一种方法来清理我的命令行,以便任何警告或打印的行告诉我一些更有用的信息不会在 LaTeX 输出的海洋中迷失。

有任何想法吗?

答案1

您可以通过在命令行上指定来提前启动批处理模式

pdflatex -interaction=batchmode   myfile.tex

或者你甚至不想

This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
 restricted \write18 enabled.
entering extended mode

你可以使用

pdflatex  myfile > /dev/null

或任何适用于您的操作系统的空输出流。

答案2

当重定向到/dev/null对你来说是一个很好的解决方案时,你可以考虑使用 grep 来抑制“几乎所有内容”。我使用这个(使用 GNU grep 3.1)来查明是否需要再运行一次 latex(请随意扩展):

egrep "Rerun to get cross-references right|\
There were undefined references|\
Citation .* on page .* undefined on input"

我知道这种匹配很危险(未来版本、本地化等),但它有效;-)

相关内容