我正在尝试编写\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{...}
。