我正在使用system()从我的(C++)程序中调用pdflatex,不用说在这种情况下,所有垃圾pdflatex放在屏幕上都有点恼火.
那么......我如何鼓励pdflatex放弃冗长的产出呢?如果只能看到错误会更好......
Wil*_*son 62
不幸的是(La)TeX并没有真正遵守80年代早期的规则,stdout
并且sterr
由于(我假设)它的起源.但是您可以调用一些开关来改变显示的信息量.
执行latex
与任一-interaction=nonstopmode
或-interaction=batchmode
切换用于非停止行为即使在语法错误的情况下.nonstopmode
将打印所有常用的线条,它不会停止.batchmode
除了少数几个声明性行之外,它们将会被压制("这是pdfTeX v3.14 ......").
这些也可以在文档中使用\batchmode
和调用\nonstopmode
,但这对于您描述的情况不太有用.
laa*_*lto 23
要简单地忽略所有输出,请将pdflatex stdout重定向到/ dev/null:
system("pdflatex yourdocument >/dev/null");
Run Code Online (Sandbox Code Playgroud)
您可能希望\nonstopmode
在文档的开头添加,以指示tex在遇到错误时继续运行.
要获取错误消息,请将pdflatex输出传递给您的程序,并查找以!
(例如)开头的行周围的错误
FILE *outputf = popen("pdflatex yourdocument", "r");
// ... read and analyze output from outputf ...
pclose(outputf);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35920 次 |
最近记录: |