Chartwell 字体和使用连字符改变颜色

Chartwell 字体和使用连字符改变颜色

有点小众的问题。有一套漂亮的 TrueType 字体叫做查特韦尔专为从文本生成图表而设计。我正尝试让它们在 Latex 中工作。我已切换到 Xe(La)tex,现在可以显示字体了。但是我想更改文本颜色,而无需将数字序列分成两部分。最好用一些代码和图片来解释。

\documentclass[13pt]{article}
\usepackage{fontspec}
\usepackage{xcolor}

% Now define your quick commands for switching fonts
\setmainfont{ChartwellRose}
\newfontfamily\cwrose[Ligatures=Rare, Color=blue]{ChartwellRose}

\begin{document}
\raggedright

Here is the text without ligatures

\fontsize{48}{60}
\selectfont
40+20+50
\rmfamily
\normalsize


Here is the text with ligatures

\cwrose
\fontsize{48}{60}
\selectfont
40+70
\rmfamily
\normalsize

Here is the text with a colour change inserted

\cwrose
\fontsize{48}{60}
\selectfont
40+\addfontfeature{Color=red}+70
\rmfamily
\normalsize

And as you can see the colour change has broken the effect of enabling the ligatures and the 'rose' is now presented as two separate objects (rather than a single object with 2 different colours.

\end{document}

那么,是否有可能在不破坏连字符形成的情况下改变部分文本的颜色?

这里有一个截屏编译后的示例,下面是截屏最后一个例子的完整形式

答案1

我可以确认 FF Chartwell 可以按预期使用该luacolor软件包工作。

编辑: 根据 Stephan 的要求,这里有一个 MWE。这仅适用于 luatex(因此这是一种解决方法,而不是对 drstevok 问题的完整回答)。

\documentclass{article}

%Fontspec
\usepackage{fontspec}

%CHARTWELL (Be sure to load style set 1, otherwise the ligatures won't be activated.)
\newfontface\cwp[StylisticSet={1}]{ChartwellPies}
\newfontface\cwr[StylisticSet={1}]{ChartwellRose}
\newfontface\cwb[StylisticSet={1}]{ChartwellBars}
\newfontface\cwbv[StylisticSet={1}]{ChartwellBarsVertical}
%etc.


%COLORS (Works exactly the same as the regular latex color package.}
\usepackage{luacolor}
\definecolor{aut1}{RGB}{255,51,0}
\definecolor{aut2}{RGB}{255,102,0}
\definecolor{aut3}{RGB}{255,153,0}
\definecolor{aut4}{RGB}{255,204,0}
\definecolor{white}{RGB}{255,255,255}


\begin{document}

\begin{figure}
\centering
\fontsize{100}{120}
\cwp \textcolor{aut1}{24}+\textcolor{aut2}{31}+\textcolor{aut3}{40}+\textcolor{aut4}{5}+\textcolor{white}{A}\\
\end{figure}

\begin{figure}
\centering
\fontsize{100}{120}
\cwr\textcolor{aut1}{14}+\textcolor{aut2}{30}+\textcolor{aut3}{12}+\textcolor{aut4}{44}+\textcolor{white}{A}\\
\end{figure}

\begin{figure}
\centering
\fontsize{100}{120}
\cwb \textcolor{red}{50}+\textcolor{blue}{31}+\textcolor{green}{19}\textcolor{aut4}{=}\\
\end{figure}

\begin{figure}
\centering
\fontsize{100}{120}
\cwbv \textcolor{red}{50}+\textcolor{blue}{31}+\textcolor{green}{19}\\
\end{figure}

\end{document}

例如 ff chartwell latex

答案2

在 XeTeX 中无法做到这一点,颜色总是会破坏文本流,因此连字也会被破坏,\addfontfeature只能从当前字体加上请求的功能定义新字体,字体间连字当然不起作用。不过,使用 LuaTeX 包时可能会实现这一点luacolor

答案3

这里是新用户,所以我无法在 David Carlisle 的回答下发表评论。

他有:

%CHARTWELL (Be sure to load style set 1, otherwise the ligatures won't be activated.)
\newfontface\cwp[StylisticSet={1}]{ChartwellPies}

Chartwell 的创建者 Travis Kochel 直接给我发了一封电子邮件,告诉我说这ss01适用[StylisticSet={1}]于 Chartwell 的旧版本。

而是使用自由连字符:

\defaultfontfeatures{Ligatures={Discretionary}}
\newfontface\cwp{ChartwellPies}

对于我来说,它在 LuaLaTeX 下可以正常工作,就像在 David Carlisle MWE 中一样。

相关内容