一些编程语言具有异常处理结构,即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}