如何犯“致命错误”?

如何犯“致命错误”?

如何让 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}

相关内容