如何让 LaTeX 停止/中止编译并输出“致命错误”?
我知道有几种方法可以产生错误/警告:
\ClassError{class-name}{error-text}{help-text}
\ClassWarning{class-name}{warning-text}
\ClassWarningNoLine{class-name}{warning-text}
对于包也是如此。但是,如何才能产生导致没有输出 PDF 的错误呢?产生这种错误的命令是什么?我似乎找不到它。
答案1
愿意使用 expl3 吗?l3msg 模块有\msg_fatal
。当前手册的第 11.4 节。
\documentclass{article}
\begin{document}
\ExplSyntaxOn
\msg_new:nnn {my~module}{errorName}{Reason~for~error}
\msg_fatal:nn {my~module}{errorName}
\ExplSyntaxOff
No hello world.
\end{document}
答案2
这个技巧( 也使用过expl3
)是将 TeX 的交互模式更改为不接受来自终端的输入,然后请求来自终端的输入。例如,你可以\PackageError
在 之后使用\batchmode \read-1to\foo
:
\documentclass{article}
% Throw error normally
\PackageError{Vebjorn}{You're not nice, so I quit}{}
% change interaction mode (if not yet in batchmode)
\batchmode
% ask for terminal input (which would be stored in the macro `\foo`)
\read-1 to \foo
\begin{document}
You'll never see this!
\end{document}