我尝试在文档的不同部分独立设置字距、字间距、字体颜色(我们称之为 (T、W、C))。据我观察,如果字体颜色相同,某些微类型设置不会覆盖旧设置。
下面的代码是一个带有 3 个框的测试用例,用于展示问题。目的是让框中的 (T,W,C) 彼此独立。框 2 和框 3 具有相同的 (T,W) 但不同的 C。我们将在 3 次运行中改变框 1 的 (T,C)。[1]在运行 1 期间,Box-1 的 (T,C) 与 Box-2 的 (T,C) 匹配,但 W 不匹配。对于此运行,Box-2 中的换行与 Box-3 不同,即使它们的 (T,W) 值匹配(这是意外结果)。在运行 2 中,我们使 Box-1 的 C 与 Box-2 不同,现在 Box-2 中的换行突然与 Box-3 的换行匹配(这是预料之中的,因为它们的 (T,W) 和内容匹配)。在运行 3 中,我们使 Box-1 的 T 与 Box-2 不同,就像在运行 2 中 Box-2 的换行与 Box-3 的换行匹配一样(这是期望的、预期的,一切都很好)。
[1] 注意:下面的代码不需要对 Run-1 进行任何更改,并且 Run-1 足以重现问题。如果您想观察变化,Run-2 和 Run-3 是可选的。
代码:执行 3 次运行,并按照框 1 中内联提到的注释/取消注释说明进行操作。
\documentclass{article}
\usepackage{xcolor}
\usepackage{fontspec}
\usepackage[expansion=false]{microtype}
\usepackage{blindtext}
\usepackage[absolute]{textpos}
\setmainfont{Linux Libertine O}
\begin{document}
\frenchspacing
% Box-1
\begin{textblock*}{0.6\linewidth}[0,0](1in,1in)
\begin{minipage}{1\linewidth}%
% Run1: include, Run2: include, Run3: comment
\SetTracking[spacing={0*,1,1}]{encoding=*}{-20}
% Run1: comment, Run2: comment, Run3: include
%\SetTracking[spacing={0*,1,1}]{encoding=*}{-19}
% Run1: include, Run2: comment, Run3: include
\addfontfeatures{Color=FF000088}
\lsstyle
\blindtext[1]
\end{minipage}
\end{textblock*}
%Box-2
\begin{textblock*}{0.6\linewidth}[0,0](1in,3.8in)
\begin{minipage}{1\linewidth}%
\SetTracking[spacing={0*,1*,1*}]{encoding=*}{-20}
\addfontfeatures{Color=FF000088}
\lsstyle
\blindtext[1]
\end{minipage}
\end{textblock*}
%Box-3
\begin{textblock*}{0.6\linewidth}[0,0](4.1in,3.8in)
\begin{minipage}{1\linewidth}%
\SetTracking[spacing={0*,1*,1*}]{encoding=*}{-20}
\addfontfeatures{Color=0000FF88}
\lsstyle
\blindtext[1]
\end{minipage}
\end{textblock*}
\end{document}