还有其他人注意到 Linux Libertine 小型大写字母中的这个字距调整错误吗……?
(1) 永久解决方案 & (2) 快速本地修复是什么?
非常重要的初始组合。
代码如下:
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt]{article}
% PACKAGES
\usepackage{geometry}
\geometry{letterpaper}
\usepackage{fontspec}
\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont[Mapping=tex-text]{Linux Libertine O}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Linux Biolinum O}
\setmonofont[Scale=MatchLowercase]{Linux Libertine Mono O}
% BEGIN
\begin{document} % ==============================================================
Vacillate Vaccine Vapour Vanish Va...
\textit{Vacillate Vaccine Vapour Vanish Va...}
\textsf{Vacillate Vaccine Vapour Vanish Va...}
\texttt{Vacillate Vaccine Vapour Vanish Va...}
\textbf{Vacillate Vaccine Vapour Vanish Va...}
\vspace{3ex}
\textsc{Vacillate Waccine Vapour Vanish Va...}
\textsc{\textsf{Vacillate Vaccine Vapour Vanish Va...}}
\end{document}
答案1
在 HarfBuzz 上讨论这个问题后邮件列表,这似乎是最新版本的 Linux Libertine 中的一个错误。此处的正确操作是通知字体开发人员并引导他们进行讨论,短期“修复”是将字体降级到 5.1.3 版本。
基于此,我相信在这里应用字距调整是一个 LuaTeX 字体加载器错误,因为它不符合 OpenType 规范(或其事实上的参考实现;Uniscribe)。