我想创建一个命令,其参数在命令中使用\label{}
。我还想要一个布尔开关,用于打开/关闭此标签的显示以供编辑。以下是我想要执行的操作的伪代码:
\newcommand{\foo}[1]{%
\refstepcounter{foocount}\label{#1}%
... do other things ... %
\ifthenelse{\boolean{showlabel}}%
{DISPLAY #1}%
{}%
}
问题出在DISPLAY #1
部分。无论标签包含什么内容,我都想显示标签。例如,我的许多标签都采用“ ex:function_continuous_everywhere
”的形式,但下划线会导致数学模式错误。使用变体\verbatim
有其自身的一系列问题。
有没有巧妙的方法来实现这一点?我知道我可以更改所有标签,但我宁愿不这样做。
答案1
您可以使用\texttt{\detokenize{#1}}
该DISPLAY #1
部分。这会将参数转换为文本(例如,它们_
将变成普通字符,不再是数学移位序列)并将其排版为电传打字机字体。
请注意,这\detokenize
是一个 e-TeX 原语,因此非常旧或过时的 LaTeX 发行版不会拥有它。