LuaLaTeX:GSUB/GPOS 每种类型的多个字形仅部分字距调整

LuaLaTeX:GSUB/GPOS 每种类型的多个字形仅部分字距调整

我在使用 fontspec 包和我正在开发的 ttf/otf 字体时遇到了一个问题:

字距调整在 XeLaTeX(以及浏览器等)中可以正常工作,但字距调整在 LuaLaTeX 中仅部分应用。

根据第一个答复中的选项 3如何报告 LuaTeX 中的错误?我在此报告 LuaLaTeX 问题。

(根据对于同一种字体,为什么字距调整对 LuaLaTex 有效,而对 XeLaTex 无效?LuaLaTeX 中的字距调整与 XeLaTeX 中的字距调整完全不同,因此我推测该问题与 fontspec 包完全无关,也与 XeLaTeX 无关。)

细节:

我正在开发的字体基于 Fredrick Brennan 的等宽超现实主义“TT2020”字体中的一些字形,请参阅https://ctrlcctrlv.github.io/TT2020/docs/moreinfo2.html

“TT2020”中的技巧是,GSUB 表为每种类型定义了 9 个略有不同的字形,以模拟自然变化(例如名为“a”、“a.2”、...、“a.9”的字形)。

TT2020 对我来说与 XeLaTeX 和 LuaLaTeX 中的 TeXLive 2021 配合得很好,字符在 9 个字形中正确旋转。

我正在开发的字体还定义了 GPOS 表(和字距表)中字形之间的字距调整,并且在 Mac 上以及 XeLaTeX 中的 TeXLive 2021 上都可以正常工作。但 LuaLaTeX 中的 TeXLive 2021 字距调整仅在某些情况下有效。

以下是一个测试文档:

\documentclass{article}

% Commented out after comment by Davis Carlisle below
%\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{fontspec}

\begin{document}

% Replaced after comment by Marcel Krüger further below
\setmainfont{Jackwriter.ttf}
%\setmainfont{Jackwriter}[UprightFont=[Jackwriter.ttf]]
\lipsum[1]

xxxxxxxxxxxxxxxxxx

iiiiiiiiiiiiiiiiii

\end{document}

引用的字体在这里:

以上来源呈现:

LuaLaTeX 输出中缺失的字距调整可能在最后一行最明显,因为有很多“iiiiiii”。(由于字体基于打字机字体,因此缺失的字距调整不会在所有字母之间显示。还请注意,到目前为止,我只定义了所有小写字形之间的字距调整,但对于大多数其他字形,我仅部分定义了字距调整。)

根据控制台输出使用的版本:

  • XeTeX,版本 3.141592653-2.6-0.999993(TeX Live 2021)(预加载格式=xelatex)
  • LuaHBTeX,版本 1.13.0 (TeX Live 2021)
  • LaTeX2e <2020-10-01> 补丁级别 4
  • L3编程层 <2021-02-18>

Mac OS Catalina:10.15.7 (19H524)

答案1

它与 lualatex 一起在 harf 模式下工作

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}

\usepackage{fontspec}

\begin{document}

\setmainfont[Renderer=HarfBuzz]{Jackwriter.ttf}
\lipsum[1]

xxxxxxxxxxxxxxxxxx

iiiiiiiiiiiiiiiiii

\end{document}

您可以在 luaotfload 上提出一个问题,看看这是否也可以在默认模式下得到支持。

相关内容