![改变临时或局部错误行为,抑制未定义的错误](https://linux22.com/image/334845/%E6%94%B9%E5%8F%98%E4%B8%B4%E6%97%B6%E6%88%96%E5%B1%80%E9%83%A8%E9%94%99%E8%AF%AF%E8%A1%8C%E4%B8%BA%EF%BC%8C%E6%8A%91%E5%88%B6%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E9%94%99%E8%AF%AF.png)
我在 Google 上搜索了这个问题,但还没有结果。你可能不鼓励这样做,但有办法抑制错误吗?
这是一个其如何工作的范例。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\begin{document}
\ifx\foo\undefined
\else
\foo
\fi
\def\foo{anything}
\ifx\foo\undefined
\else
\foo
\fi
should equal
%\suppressUndefError
\foo
\def\foo{anything}
\foo
%\Unsuppress
\end{document}
这样做的目的是,减轻我的包的布局开发人员的工作量。如果由于某些原因这不可行或不是一个好主意,解决方案是
A)告诉他们自己插入
B)定义一个宏\def\secure@Maestro#1{\ifx#1\undefined\else #1\fi}
B 不起作用,因为我无法将未定义的宏传递给它。
编辑:
对于遇到同样问题的人来说,这[捕获 LaTeX 错误/警告] 可能有帮助。
答案1
您可以使用\scrollmode
或\batchmode
这样 TeX 就不会因错误而停止,但这样做是一个非常糟糕的主意。
如果您有,该类应该简单地预定义像 \author 这样的结构
\def\author{your name goes here}
在课堂上,你得到那个文本,除非用户设置作者,或者你可以有
\def\author{\ClassWarning{MG}{author name not set}}
或您需要的任何其他东西。