我正在使用system()从我的(C++)程序中调用pdflatex,不用说,屏幕上的所有垃圾pdflatex在这种情况下都有点烦人。
So...how我是否鼓励pdflatex放弃冗长的输出?如果能看到错误就更好了..。
发布于 2009-06-24 12:09:00
要简单地忽略所有输出,将pdflatex stdout重定向到/dev/null:
system("pdflatex yourdocument >/dev/null");您可能需要在文档开头添加\nonstopmode,以指示tex即使遇到错误也要继续运行。
为了获得错误消息,管道pdflatex输出到您的程序,并查找从!开始的行周围的错误。
FILE *outputf = popen("pdflatex yourdocument", "r");
// ... read and analyze output from outputf ...
pclose(outputf);发布于 2009-06-26 07:04:43
不幸的是(La)TeX并没有真正遵守stdout和sterr的规则,因为它起源于80年代初。但是,您可以调用一些开关来更改所显示的信息量。
即使在语法错误的情况下,也可以使用latex或-interaction=nonstopmode或-interaction=batchmode开关执行不停机行为。nonstopmode会打印所有常用的行,但不会停止。batchmode将禁止所有声明性行(“这是pdfTeX v3.14.”)。
也可以使用\batchmode和\nonstopmode从文档中调用这些信息,但是这对于您所描述的情况并不那么有用。
https://stackoverflow.com/questions/1037927
复制相似问题