如何在消息中放置 # 字符?

如何在消息中放置 # 字符?

如何将#符号放置在\PackageWarning宏定义内部?我试过:

\PackageWarning{package}{# or \# or \string# or \hash}

但要么##unknown(对于\hash)或Illegal parameter number in definition of \reserved@a导致。

答案1

实际上\string#这是可行的方法,但是您似乎将其用作\PackageWarning宏定义的一部分,因此您必须将其加倍:\string##。的宏定义\reserved@a可能在您正在使用的宏内部发生。例如,来自 LaTeX 核心的一些 if 宏将两个子句都存储在这样的临时宏中。

您还可以为该字符定义一个宏,然后可以在所有\PackageWarnings 和其他消息中使用,无论它们是否在宏定义中。

\edef\hashchar{\string#}

然后在消息中使用\hashchar。如果您希望后面有一个空格,则需要\space明确使用。

相关内容