![修复 Unicode 字符内部的字距调整](https://linux22.com/image/460716/%E4%BF%AE%E5%A4%8D%20Unicode%20%E5%AD%97%E7%AC%A6%E5%86%85%E9%83%A8%E7%9A%84%E5%AD%97%E8%B7%9D%E8%B0%83%E6%95%B4.png)
答案1
有问题的字符是Ἄ
U+1F0C 带有 PSILI 和 OXIA 的希腊大写字母 ALPHA,我们发现lgrenc.dfu
,
\DeclareUnicodeCharacter{1F0C}{\ensuregreek{\accpsilioxia\textAlpha}} % Ἄ
我们lgrenc.def
看到
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textAlpha}{>'A}
因此,字符在组合中直接翻译>'A
。在希腊字体中,>'
是连字,有些字体可能会在此字符和字母 A(用于音译希腊字母)之间提供字距调整。例如,如果我删除对 的调用ebgaramond
,TeX 的跟踪会显示
....\LGR/cmr/m/n/10 ^ (ligature >')
....\kern-0.83313
....\LGR/cmr/m/n/10 A
但当ebgaramond
使用相同的组合时会产生
....\LGR/EBGaramond-OsF/regular/n/10 ^ (ligature >')
....\LGR/EBGaramond-OsF/regular/n/10 A
没有字距调整。在这种情况下,我们可以添加它吗?是的,我们可以。
\documentclass{article}
\usepackage{ebgaramond}
\usepackage[greek]{babel}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textAlpha}{>'\kern-0.15em A}
\begin{document}
\textgreek{Ἄνθρωπε, οὐκ οἶδα ὃ λέγεις.}
\end{document}
我相信您需要修复其他复合命令,但想法是一样的。