\DeclareRobustCommand[*]...
由于 LaTeX 现在需要 eTeX,因此用by替换所有强命令的定义会容易得多\protected[\long]\def...
,不是吗?
的复杂定义带来了哪些优势?还应该提到的是,使用或\DeclareRobustCommand
无法找出以这种方式定义的命令的定义。示例:当您写入时,您会得到这似乎是无稽之谈,因为命令总是扩展为它自己,这会让 TeX 崩溃。请帮助我理解这一点。\show
\meaning
\meaning\TeX
macro:->\protect \TeX
梅威瑟:
\documentclass{article}
\begin{document}
% latex.ltx contains
% \DeclareRobustCommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}
\meaning\TeX% macro:->\protect \TeX % This is useless.
\TeX
% define \TeX by \protected\def
\protected\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}
\meaning\TeX% The real definition is shown.
\TeX
\end{document}