修复 XeTeX / LuaLaTeX 中字体连字符的编码(特别是针对 Minion Pro)

修复 XeTeX / LuaLaTeX 中字体连字符的编码(特别是针对 Minion Pro)

编辑于2018年7月6日:下面描述的问题显然是 Apple 的 PDFKit 中的一个错误,并且似乎从 macOS High Sierra 10.13.5 开始他们终于修复了它!


在 Mac 上使用 TeXShop 编译 LuaLaTeX 或 XeLaTeX 时,以下 MWE 中的连字符无法正确编码。将“差异”从 pdf 复制到文本编辑器会呈现“e di erence”。

我知道这个问题之前已经有人问过了(见这里以及其中的链接),但这些帖子都没有提供适用于 XeLaTeX/LuaLaTeX 和 Minion Pro 字体(我对此很感兴趣)的解决方案。

\documentclass{article}
\usepackage{fontspec}
    \setmainfont[Ligatures=TeX]{Minion Pro}
\begin{document}
The difference.
\end{document}

有人能想到类似的解决方案吗但是使用 XeTeX/LuaTeX 吗?

从评论中的讨论这个问题看起来这要么是 XeTeX 的问题,要么是字体的问题(那篇文章中的 Linux Libertine)。由于 Minion Pro 字体是 Adob​​e 字体,我猜编码应该没问题 (?)... 而且由于 LuaLaTeX 和 XeTeX 给出的结果相同,我猜问题一定出在其他地方 (?)。

编辑

我很震惊,似乎没有人能够重现这一点。

我不知道问题的确切来源,但似乎存在多个问题。这似乎主要不是 LaTeX 的问题,但无论我使用 XeLaTeX 还是 LuaLaTeX 进行编译,都会对某些字体和 PDF 阅读器产生影响。我不知道在哪里寻找问题。可能是字体本身、PDF 阅读器或我系统的字体处理问题——也可能是以上所有问题。

显然有一个漏洞在 Mac 上最新版本的 PDFKit 引擎中。某些字体的某些连字符似乎无法通过基于 PDFKit 的查看器识别,例如 Preview、TeXShop、Skim 等。使用 Adob​​e Acrobat 查看似乎可以正常工作。

现在这不可能是唯一的问题,因为(a)这里似乎没有人能够重现它,并且(b)某些字体本身似乎存在其他问题。

我使用以下多种字体和全套连字符进行了测试:
fluffier soufflé fisticuffs fb fh ffh fj ffj fk ffk ft fft tt Qu Th ch ck ct

我测试了以下字体:
Adobe 的:Adobe Jenson、Minion、Garamond 和 Brioso。
我系统上的其他字体:Iowan Old Style、Baskerville、Brill、Quivira、Junicode、Gentium。LaTeX
(仅限 Lua):Linux Libertine O 和 EB Garamond

我先用 XeLaTeX 编译了一个 PDF,然后用 Lua 编译了一个。然后我在 Preview 和 Acrobat 中打开每个 PDF,并将文本复制到文本编辑器中。

以下是我得到的结果:

使用 XeLaTeX 编译: Iowan Old Style、Brill、Quivira、Baskerville 字体的所有连字符都可以在 PDFKit 和 Acrobat 中正确呈现。在预览版(PDFKit)中打开时,Junicode 缺少 fj ft fft,Adobe 字体均未显示任何连字符,Gentium 也是如此。在
Acrobat 中打开时,除 Minion、Garamond Premier 和 Junicode 外,所有字体的所有连字符均正常:对于 Minion 和 Garamond Premier,以下四个连字符 ffi、ffh、ffj 和 ffk 显示为问号框

相关内容