(La)TeX 有错误捕获功能吗?

(La)TeX 有错误捕获功能吗?

一些编程语言具有异常处理结构,即try-catch块。我知道的一个例子是 Matlab。考虑以下伪代码杰作:

try
    command_that_will_throw_error
catch the_error
    disp('The command_that_will_throw_error has finished unexpectedly! D=')
end

disp('But the show can never stop!')

程序尝试执行command_that_will_throw_error,失败,将有关错误的信息存储在中the_error,然后将执行传递给catch块的部分,因此上述代码的结果将是:

command_that_will_throw(error) 意外完成!D=

但演出永远不会停止!

我好奇地问道:(La)TeX 能做这样的事情吗?

我猜测答案是否定的,但是上次我说这个的时候,@egreg 证明我错了,所以......


在有人问之前,我想做的是以编程方式将一些 pdf 文件包含到我的文档中,其中一些可能不存在。如果所述 pdf 文件不存在,我想让 TeX 跳过它们或打印一些内容。

我接受针对 pdf 文件的实际问题的答案,但我想知道一般情况下的错误处理问题。

答案1

对于您的实际问题:您可以使用一个简单的命令来包含 pdf 文件,它会为您进行存在性检查:

\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand { \includemypdf } { m }
    {
        \file_if_exist:nTF { #1 }
            {
                % do some cool stuff here
            }
            {
                % maybe issue a warning in the log
            }
    }
\ExplSyntaxOff

\begin{document}
\includemypdf{example-image.pdf}% exists
\includemypdf{quack.pdf}%does not exist
\end{document}

相关内容