我读过 LaTeX 资料来定义重音命令的真实行为,但失败了。它是这样说的:
\def\DeclareTextAccent#1#2#3{% \DeclareTextCommand#1{#2}{\add@accent{#3}}}
\accent
即它由TeX-primitive构造。
然后我去了TeX 按主题分类书并阅读有关\accent
原始的内容。但不幸的是,我找不到任何有用的信息来解释口音的行为。我需要知道如何计算重音符号的 x 位置和 y 位置。
我发现了这样的信息:
带重音符号的字符的宽度与不带重音符号的字符的宽度相同。TeX 假定重音符号在字体文件中的位置与字体 x 高度相同;对于其他高度的字符,它会相应地降低或升高重音符号。
...
重音的水平定位由 控制
\fontdimen1
,每点倾斜。字距用于水平移动。
但即使我知道,我还是找不到问题的答案。也许你可以?
答案1
我认为TeXbook是需要查看的地方。它说
附录 B 显示了纯 TeX 使用 TeX 的
\accent
原语来处理大多数重音符号。例如,\'#1
相当于{\accent19 #1}
,其中#1
是被重音的参数。一般规则是\accent<number>
将重音符号放在下一个字符上;告诉<number>
该重音符号在当前字体中出现的位置。重音符号被假定为正确放置在高度等于当前字体 x 高度的字符上;较高或较短的字符会导致重音符号升高或降低,同时充分考虑到重音符和受重音符字体的倾斜度。最终构造的宽度是被重音符号的字符的宽度,与重音符号的宽度无关。
因此,位置不是由\accent
图元计算的:而是由字体设计者在设计字体时确定的。