允许 \label 包含 \&

允许 \label 包含 \&

涉及到作为标签的有效名称有哪些?

\newcommand{\keyword}[1]{\textbf{#1}\label{KW:#1}\pageref{KW:#1}}

几乎适用于任何文本...直到有人想要\keyword{S\&P~500}。问题是标签不允许 a\成为标签的一部分,但它是&在文本中排版字符的唯一方法。是否有\xlabel更宽容的命令,即首先从 #1 中删除或破坏任何无效字符,当然是在将其展开一次之后?(我尝试更改宏中的&或的catcode \\,但无法弄清楚。我无法将其分配给变量并包含它,原因与它再次包含 a 的原因相同\。)

答案1

如果你真的想这样做,那么&就不\&要这样做

\newcommand{\keyword}[1]{\textbf{\detokenize{#1}}\label{KW:#1}\pageref{KW:#1}}

\keyword{S&P 500}

相关内容