如何强制 edef 执行 def

如何强制 edef 执行 def

由于我还没有放弃昨天的问题,我一直在摆弄\edef、、和\def其他一些东西。我还阅读了有关脆弱命令和强健命令的文章。据我所知,强健命令在文档的任何地方都会产生相同的结果,而脆弱命令则相反,后者依赖于上下文(因此一定是脆弱的)。\unexpanded\expandafter\chapter

现在我读到,这\edef并不执行\defs。但我如何才能扩展并强制执行\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

这可以防止发生故障,但却不能(总是)产生预期的结果。

相关内容