涉及到作为标签的有效名称有哪些?。
\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}