pdfLaTeX 的退出代码

pdfLaTeX 的退出代码

在我提出的剧本中这个问题我遇到了以下问题。如果出现编译错误,我必须取消 3 次执行pdflatex。这可能非常烦人。我想添加类似

if pdflatex file.tex returned failure break script

但是,我无法找到退出时返回的值pdflatex。所以问题是:

的退出/返回值/代码是什么pdflatex

答案1

对我来说,关键的是0成功编译后返回的。你没有说明你使用的是什么操作系统,所以我将提供一个 Unix Makefile 和一个 Windows 批处理文件测试。在 Unix 上,我使用

pdflatex $$NAME
if [ $$? = 0 ] ; then \
  pdflatex $$NAME ; \
  pdflatex $$NAME ; \
else \
 \echo "Compilation failed" ; \
fi

在 Windows 上使用批处理文件时错误级别测试略有不同

pdflatex %1
if ERRORLEVEL 1 (
  echo ! Compilation failed
) else (
  pdflatex %1
  pdflatex %1
)

由于测试适用于“硫代数或更高”,因此此测试用于测试失败而不是成功if ERRORLEVEL。您可以在此基础上构建更多复杂性:这取决于您的要求。(例如,我的批处理文件假设要编译的文件的名称作为命令行参数给出:您可能希望使用变量或硬编码名称。)

答案2

将 Joseph 的代码转换成 shell 语法,它看起来像这样:

NAME=$1
pdflatex $NAME
if [ $? = 0 ] ; then
  pdflatex $NAME ;
  pdflatex $NAME ;
else 
  echo "Compilation failed" ;
fi

由于格式问题,我将其作为答案输入。

相关内容