由于我还没有放弃昨天的问题,我一直在摆弄\edef
、、和\def
其他一些东西。我还阅读了有关脆弱命令和强健命令的文章。据我所知,强健命令在文档的任何地方都会产生相同的结果,而脆弱命令则相反,后者依赖于上下文(因此一定是脆弱的)。\unexpanded
\expandafter
\chapter
现在我读到,这\edef
并不执行\def
s。但我如何才能扩展并强制执行\def
。
例子:
\def\any{content}
\def\changeAny#1{\def\any{#1}}
\def\textA{text}
\edef{\changeAny{otherContent} \textA}
这将会中断,因为 edef 将扩展到
\edef\foo{\def\any{otherContent} text}
将扩大到
\edef\foo{\def content{otherContent} text}
这会导致\inaccessible
-error 之后\def
附加信息:
我也尝试了更换标志:
%existing fragile
\def\fragileCommand{original Content\\ of fragile}
\def\flag{\unexpanded{\flag}}
\let\fragileCommand\flag
\edef\texty{blabla \fragileCommand blabla}
\def\fragileCommand{original Content\\ of fragile}
\texty
这可以防止发生故障,但却不能(总是)产生预期的结果。