使用 Linux Libertine 字体(大概其他字体也一样)的一个众所周知的问题是,它的许多连字无法在生成的 pdf 文件中识别,因此无法搜索或复制诸如“Th”之类的连字。
解决这个问题的一种方法是在问题中解决使 Linux Libertine 中的连字符可复制(和可搜索)
但那里提到的修复不适用于 XeTeX。编译 Ulrike 的 MWE 只会导致错误消息
> Undefined control sequence.
l.7 \pdfglyphtounicode
那么 XeTeX 的最佳修复方法是什么?
答案1
XeTeX 根本不支持\pdfglyphtounicode
原始字符,因此这条路径不可用。要理解原因,请记住 pdfTeX 是 8 位的,而 XeTeX 是原生 UTF-8。因此,XeTeX 完全有理由期望字体“正确”构造,在适当命名的插槽中具有字形,因此可以在 PDF 输出中正常工作,没有任何“花招”。
从“该怎么做”的角度来看,问题很可能出在字体上。例如,有些字体的字形正确,但位置“错误”(例如在私人使用区)。这实际上不是一个“TeX 问题”:所能做的就是与字体设计师交谈并尝试让他们修复它。
答案2
我知道这个帖子已经很旧了,但是为了未来的读者,我想指出,我能够使用 Linux Libertine 5.3 和 XeTeX 3.14159265-2.6-0.99991(TeX Live 2014/W32TeX)(预加载格式=xelatex 2014.7.31)创建连字,这些连字在 Adobe Reader 11.0.08 中查看时可复制和搜索。
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=Historical]{Linux Libertine O}
\begin{document}
fluffier soufflé fisticuffs fb fh ffh fj ffj fk ffk ft fft tt Qu Th ch ck ct
\end{document}
您可以检查我的输出 PDF验证连字确实可以复制和搜索。
有人知道自从最初的问题和答案出现以来,可能发生了哪些变化才使这成为可能吗?Linux Libertine 5.3(我使用的版本)在最初发布时可用。