TeX(LuaTeX、XeTeX、fontspec)支持 OpenType 变量字体

TeX(LuaTeX、XeTeX、fontspec)支持 OpenType 变量字体

是否有人在致力于实现对新OpenType 可变字体在任何 TeX/LaTeX 实现中,例如 XeTeX 或 LuaTeX?fontspec 是否支持访问新表?

答案1

目前已支持luatex(版本 1.13.0):

\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\defaultfontfeatures{RawFeature={+axis={wght=100}}}
\setmainfont[
    ItalicFont=SourceSansVariable-Italic.otf,
    BoldFont=SourceSansVariable-Roman.otf,
    BoldItalicFont=SourceSansVariable-Italic.otf,
    BoldFeatures={RawFeature={+axis={wght=900}}},
    BoldItalicFeatures={RawFeature={+axis={wght=900}}}
]{SourceSansVariable-Roman.otf}
\begin{document}
\par the quick brown fox jumps over the lazy dog.
\par\textit{the quick brown fox jumps over the lazy dog.}
\par\textbf{the quick brown fox jumps over the lazy dog.}
\par\textbf{\textit{the quick brown fox jumps over the lazy dog.}}
\end{document} 

在此处输入图片描述

在大多数情况下它都能很好地工作,但是当字体宽度改变时(包括一些会根据粗细改变宽度的字体),某些字符之间的间距,如双引号和韧带(fi,fl),会变得太宽(当改变后的字体的实际宽度小于常规字体时)或太窄(当改变后的字体的实际宽度大于常规字体时)。

luaotfload3.19 版和1.15.0 版(TeXLive 2022 默认版本)之后LuaTeX,模式中也支持可变字体harf

答案2

@lambda05 的回答有一点补充,非常好。请注意

\defaultfontfeatures{RawFeature={+axis={wght=100}}}

似乎是绝对必要的(至少在 2021 年 4 月推出 lualatex、fontspec、luaotfload 组合的情况下)。否则 LuaLaTeX 会出错并显示错误:

(cff): Type2 Charstring Parser: subroutine called but no subroutine found

这是因为,虽然luaotfload现在支持可变字体,但这种支持的激活还不是自动的,只有在存在axisinstance参数后才会发生。根据luaotfload 跟踪器上的错误 120应尽快尝试实现自动激活。

相关内容