编写带有错误消息的宏的指南

编写带有错误消息的宏的指南

我正在尝试编写\newcommand宏来检查用户对参数的输入,并在发现错误(例如,值超出范围)时返回错误消息。有好的参考吗?谢谢

答案1

source2e(部分14 错误处理) 描述了向最终用户写入错误和警告(以及信息)的技术。以下是一些参考资料:

这些命令旨在供包和类编写者使用,以便向作者提供信息。语法为:

\PackageError{<package>}{<error>}{<help>}
\PackageWarning{<package>}{<warning>}
\PackageWarningNoLine{<package>}{<warning>}
\PackageInfo{<package>}{<info>}

对于类也类似(使用\Class...而不是\Package...)。这些Error命令打印<error>消息并显示交互式提示;如果作者输入h,则<help>显示信息。这些Warning命令会产生警告,但不显示交互式提示。这些WarningNoLine命令执行相同的操作,但不打印输入行号。这些Info命令将消息写入文件.log

在消息中,命令\MessageBreak可用于换行, \protect可用于保护命令名称,并且\space是空格,例如:

\newcommand{\foo}{FOO}
\PackageWarning{ethel}{%
  Your hovercraft is full of eels,\MessageBreak
  and \protect\foo\space is \foo}

生成:

Package ethel warning: Your hovercraft is full of eels,
(ethel)                and \foo is FOO on input line 54.

上述宏是更通用构造的专门版本:

  • \GenericInfo{<continuation>}{<info>}

  • \GenericWarning{<continuation>}{<warning>}

  • \GenericError{<continuation>}{<error>}{<further help>}{<help info>}

此外,向控制台发送信息的一个基本方法是使用\typeout{...}

相关内容