乳胶错误的编译器样式输出

乳胶错误的编译器样式输出

我是一名习惯使用命令行工具编译源代码的程序员。这些编译器的必备功能之一是能够告诉程序员他们的错误在哪里,以便他们可以找到并修复它们。从技术上讲,Latex 可以做到这一点,但输出和日志文件可能长达数百行,这使得找到一行告诉您错误在哪里变得乏味且耗时。有没有办法让latexmk控制台只输出编译器样式的错误消息?

我用来构建 tex 项目的命令:

latexmk -pdf -pdflatex="pdflatex -interaction=nonstopmode" -use-make file.tex

答案1

我认为没有内置解决方案。但如果我理解你的问题正确的话,你可以使用类似这样的方法:

latexmk -pdf -pdflatex="pdflatex -file-line-error -interaction=nonstopmode" file.tex | grep "^.*:[0-9]*: .*$"

或者更简单的版本,仅打印消息行:

latexmk -pdf -pdflatex="pdflatex -file-line-error -interaction=nonstopmode" file.tex 2>&1 | grep "^.*:[0-9]*: .*$"

答案2

这实际上不是 latexmk 的问题;而是 pdflatex 的行为问题。据我所知,没有任何选项组合既可以关闭通常的大量输出,又可以仅打开文件行错误。(我依稀记得,许多年前 pdflatex 的行为有所不同。)

你能做的最好的事情就是使用其他程序来分析日志文件。我发现一个有用的程序是pplatex/ppdflatex。此程序以静默方式运行 pdflatex(或 latex,根据需要),然后报告日志文件的分析。您可以配置 latexmk 以使用它而不是 pdflatex。但是,您需要自己编译 pplatex/ppdflatex。

相关内容