我想要我的两美元:
\documentclass{minimal}
\begin{document}
\edef\twodollars{\$2}
\end{document}
然而我得到的只是:
! TeX capacity exceeded, sorry [input stack size=5000].
\font@name ->
\OT1/cmr/m/n/10
l.3 \edef\twodollars{\$
2}
是否可以使用\edef
包含美元符号的值?
答案1
使用
\documentclass{minimal}
\begin{document}
\edef\twodollars{\string$2} \twodollars
\end{document}
\string
将类别代码更改为$
(12
其他)。
答案2
正确的做法是
\makeatletter
\protected@edef\twodollars{\$2}
\makeatother
\$
定义如下。\DeclareRobustCommand
另一种方法是
\usepackage{etoolbox}
\robustify\$
\edef\twodollars{\$2}