定义扩展为 \char"XXXX 的宏和使用 \DeclareTextSymbol 之间的实际区别

定义扩展为 \char"XXXX 的宏和使用 \DeclareTextSymbol 之间的实际区别

这个问题仅限于使用fontspec+luatex和默认TU编码。文件始终采用 UTF-8。例如,

\DeclareTextSymbol{\textparagraph}       \UnicodeEncodingName{"00B6}

(以上来自tuenc.def)并且简单地

\def\textparagraph{\char"00B6}

(或者可能是强大的版本)。

答案1

第一种形式实际上定义\textparagraph为扩展为

\TU-cmd \textparagraph \TU\textparagraph

(三个标记);第一个是检查当前编码的宏,如果不是TU,则进行必要的更改,以便使用\textparagraph当前编码(或默认)的版本。第二个标记用于警告或错误消息,第三个是最重要的,因为它扩展为

\char"B6

较短的版本不会相同,因为如果您碰巧\textparagraph在使用不同字体编码的环境中(无论出于何种原因),您可能会得到意想不到的结果。

相关内容