Fontspec 在 LetterSpacing 时会移动一些变音符号

Fontspec 在 LetterSpacing 时会移动一些变音符号

在此处输入图片描述对于以 ASCII 格式输入的字母(例如 \^E ),字体规范的功能 LetterSpacing 给出的结果与以 UTF-8 格式输入的字母(例如 Ê )给出的结果不同。合并的 ECM 的日志文件显示,Fontspec 似乎使用了规范形式(E+Combining Circumflex Accent AND A+Combining Grave Accent )而不是 Ê 和 À ,并且没有将相应的重音符设置在正确的位置。这会导致输出中的重音符移位。此外,在文本中的 À 之前和之后添加了额外的 \glue(\spaceskip)。

%!TEX encoding = UTF-8 Unicode
\documentclass[10pt]{article}
\usepackage{fontspec}
%\setmainfont{Latin Modern Roman}
\setmainfont{Erewhon}
%\setmainfont{TeXGyrePagella}

\newcommand{\Ascii}{ARR\^ET B\^ETE \`A LU\c CON CET \'ET\'E.\\
 \`A \'A \^A \"A \`E \'E \^E \"E \`I \'I \^I \"I \`O \'O \^O \"O \`U \'U \^U \"U
}

\newcommand{\Unicode}{ARRÊT BE\char"0302TE À LUÇON CET ÉTÉ.\\
                      À Á Â Ä È É Ê Ë Ì Í Î Ï Ò Ó Ô Ö Ù Ú Û Ü E\char"302}

\parindent 0pt
\begin{document}
\thispagestyle{empty}
\showoutput

\Ascii

\Unicode

----------------- LetterSpace=20/100 (0.2pt)
\addfontfeature{LetterSpace=20}

\Ascii

\Unicode

\end{document}

%%% Local Variables:
%%% coding: utf-8-unix
%%% TeX-master: t
%%% TeX-engine: luatex
%%% End:

相关内容