新 # 符号的简单宏

新 # 符号的简单宏

我对文档中 # 符号的外观不满意,于是看了看这个问题。我尝试创建一个简单的宏来替换

#

\texttt{\#}

我以为一个简单的

\renewcommand{\#}{\texttt{\#}}

可以解决问题。但是,我得到了一个致命的错误。

[25] [26] [27] [28] [29] (c:/texlive/2017/texmf-dist/tex/latex/base/t1cmtt.fd)
! TeX capacity exceeded, sorry [grouping levels=255].
\hmode@bgroup ->\leavevmode \bgroup 


!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on Thesis.log.

出了什么问题?为什么?我怎样才能成功创建我需要的宏?

答案1

您不能像那样根据命令本身来定义命令,因为找到后,\#TeX 会将其替换为\texttt{\#},然后再替换为,\texttt{\texttt{\#}}依此类推。

特定案例的解决方案

\renewcommand{\#}{\texttt{\symbol{`\#}}}

因为 的标准定义\#是 的简化形式\symbol{`\#}

对于\command仅生成文本的其他情况,

\let\standardcommand=\command
\renewcommand{\command}{\texttt{\standardcommand}}

会工作。

相关内容