确保嵌入的字体在屏幕上显示 PDF 时有提示

确保嵌入的字体在屏幕上显示 PDF 时有提示

我正在尝试从现有的 pdf 中重新创建令人愉悦的页面布局,以便更熟悉 Latex 中的书籍设计。

几何部分相当简单,但我遇到了与字体外观相关的奇怪现象:屏幕上的原始版本看起来很棒,而我的版本似乎颜色要深得多,而且看起来并不那么好看,尽管我已经紧密匹配了尺寸、行距、换行符和(自然)正文字体。如果我放大,视觉差异就会消失。xelatex 和 fontspec 用于生成 PDF,字体为 OpenType 格式。

经过调查,我发现关闭“文本提示”选项(我在 Linux 上使用 okular)会使两个版本看起来相同,而重新打开它会大大改善原始版本的外观,但对我的版本的影响却可以忽略不计。

显然,我的版本中的提示信息与原始版本中使用的信息不同或缺失。

我该怎么做才能纠正这个问题?我该如何检查文件以查明发生了什么?我应该寻找什么?

答案1

看来我使用的 OTF 文件缺少提示信息。通过搜索,我发现了(众包!)ttf自动提示项目使用包含在自由类型库。编译该工具后,我必须使用 fontforge 将字体转换为可接受的格式,以便与 ttfautohint 一起使用。运行该工具重新生成字体文件并确保 xelatex 拾取后,重新编译文件会产生如下所示的输出很多更好,并且非常接近我试图重新创建的原始版本。

我从来没有意识到暗示对屏幕观看有如此大的影响。

显然,在 Linux 上,也可以使用 fontconfig 来打开和控制每个字体的提示,但我还没有研究过。无论如何,将数据嵌入 PDF 是正确的方法。

编辑:

正如 hosni 在评论中指出的那样,fontforge 具有内置的自动提示功能,而 Adob​​e 已公开提供阿夫德科其中包括自动提示工具。我对结果非常满意ttf自动提示

编辑2: 我采取的步骤(使用 fontforge 将 otf 转换为 ttf em=2048,然后运行 ​​ttfautohint)给了我一个 ttf 格式的字体,产生了可接受的结果。在 fontforge 中打开字体并将其转换回 otf (cff),然后重新编译似乎没有提供任何提示效果,就像 afdko 的提示结果一样。这让我相信还有其他因素在起作用,导致 otf (cff) 提示无法正确呈现。这可能是操作系统/库/查看器的问题,而不是字体本身的问题,我不知道,而且在 TeX.se 上探索似乎不合适。

说我通过转到 ttf 并使用 ttfautohint(使用 fedora 作为操作系统,okular 作为查看器)获得了满意的结果。YMMV。

相关内容