xdef 和 cedille

xdef 和 cedille

我需要 xdef 一些数据。在极少数情况下,它会包含如下变格符:

\xdef\xxx{spam\c{e}eggs}
\bye

不幸的是,这个失败了。有机会让它工作吗?

(我的代码中使用了 LaTeX,使用了 etoolbox,但据我了解,上面的纯文本示例是相同的。而且是最小的。)

答案1

在普通的 TeX 中你可以使用

\xdef\xxx{spam\noexpand\c{e}eggs}
\bye

在 LaTex 中你也可以这样做,但更好的方法是使用

\protected@xdef\xxx{spam\c{e}eggs}

假设@该点处有一封信(在包文件中)。

请注意,在 plain tex 和 latex 中的定义\c完全不同。\c在 plain 中是一个简单的宏,它总是使用 align 结构将 cedilla 放置在其参数下。在 latex 中它是一个字体编码特定的命令,可以使用对齐或字体中预先构建的字形来包含此类字符的编码。

相关内容