如果字体颜色匹配,微类型设置不会覆盖前一个设置

如果字体颜色匹配,微类型设置不会覆盖前一个设置

我尝试在文档的不同部分独立设置字距、字间距、字体颜色(我们称之为 (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}

运行-1 输出:Box-1 设置干扰 Box-2 Run-1 的编译结果 运行-2输出:无干扰 Run-2 的编译结果 Run-3输出:无干扰 Run-3 的编译结果

相关内容