我意识到我在这里使用了专有字体,但这就是我发现这个问题的地方(它也适用于其他连字符以及旧式数字)。
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
Path = M:/MyStuff/Fonts/timesnewroman6.80/,
UprightFont = times.ttf,
Ligatures = Discretionary]{tnr}
\begin{document}
Th
\end{document}
另一方面,当我从 pdf 复制并粘贴此内容时,我得到了
答案1
Times New Roman 字体(至少是 Windows 附带的版本)有版本 3post
表不包含任何字形名称(post
是包含 TrueType 字体中字形名称的表)。因此,PDF 驱动程序(xdvipdfmx
)将为字形提供合成名称;对于像这样的未编码字形,它将只是字形 ID 的位置glyphXXXX
。XXXX
您在 FontForge UI 中看到的名称只是 FontForge 本身生成的合成名称,它似乎应用了一些启发式方法,根据字体的字形替换规则猜测未编码字形的字形名称。
xdvipdfmx
目前不执行这样的启发式方法,因为它需要解析GSUB
字体表(这不是驱动程序通常所做的事情;OpenType 布局由 XeTeX 本身完成),并且并不总是万无一失的(如果相同的字形被重新用于两个不同的连字符会怎样?)。