改变临时或局部错误行为,抑制未定义的错误

改变临时或局部错误行为,抑制未定义的错误

我在 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}}

或您需要的任何其他东西。

相关内容