对于以 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: