考虑这个简短的乳胶文档:
\documentclass[12pt, a4paper]{article}
\usepackage{libertine}
\usepackage[margin=20pt]{geometry}
\begin{document}
\makeatletter
\noindent
\normalsize The quick brown fox jumped over the lazy dog \f@size pt\\
\Large The quick brown fox jumped over the lazy dog \f@size pt\\
\Huge The quick brown fox jumped over the lazy dog \f@size pt
\end{document}
这会产生类似这样的结果(我手动调整了行距,因为无法使其适合比较):
但是,如果我尝试使用从以下位置下载的 Linux Libertine 字体的本地副本在 Typst 或 LibreOffice 中重现此文档https://sourceforge.net/projects/linuxlibertine/,它看起来不一样了!它看起来像这样:
差别很小,但如果你问我,Latex 版本看起来更好。不知何故,Latex 版本的字体粗细似乎略高?在“d”字符的最下面一行的粗细上尤其明显。
作为参考,Typst 文档来源是:
#set page(margin: 20pt)
#set text(font: "Linux Libertine")
#text(size: 12pt, "The quick brown fox jumped over the lazy dog 12pt")\
#text(size: 17.28pt, "The quick brown fox jumped over the lazy dog 17.28pt")\
#text(size: 24.88pt, "The quick brown fox jumped over the lazy dog 24.88pt")
但要明确的是,LibreOffice 中也出现了同样的结果,所以我认为这更多的是因为 Typst 和 LibreOffice 使用我本地的字体副本,而 Latex... 却做了其他事情?为什么看起来不一样?
如果这很重要的话,我使用 Windows 10。
另外,通过从 Latex 使用 FontForge 生成的 PDF 文档中提取字体,我可以看到它被称为“Linux Libertine T”,版本为 5.3.0,与我本地的字体副本版本相同。
有没有什么方法可以让我使用字体的本地副本实现与 Latex 相同的外观(在我看来,更出色)?
答案1
您没有说明您使用的是 latex/pdflatex 还是 xelatex/lualatex,以及“本地”副本是 TTF 还是 OTF 版本。这些选择可能是您观察到的差异的原因。如果您认为 LaTeX 包有更好的字体,您可以在相关的 texmf 树中访问这些字体并将它们安装为“本地”字体。
答案2
一些一般性的考虑,太长了,无法发表评论:
当您
\usepackage{font-name}
实际加载 LaTeX *.sty 文件时,其中包含有关实际将使用哪些字体文件的进一步说明。如果您使用 进行编译
lualatex
(可能xetex
不确定),则应加载fontspec
包,它提供了简单的方法,可以直接选择要使用的字体文件(如果您有偏好)。您不一定需要\usepackage{font-name}
,尽管许多字体包都有针对数学字符的特殊说明,等等。如果字体的提示不够出色,那么它在计算机屏幕上看起来可能会很差(即使是 PDF 格式),但在纸上打印效果很好。许多字体都是自动提示的。据我所知,带有 PostScript 轮廓的字体(文件扩展名通常为 *.otf)的自动提示往往比带有 TrueType 轮廓的字体(扩展名 *.ttf)的自动提示效果更好。
不管有没有提示,PostScript 轮廓和 TrueType 轮廓需要不同级别的设计专业知识。我个人的经验是,从设计师的角度来看,PostScript 更容易。即使由同一个设计师设计,字体的 PostScript 版本看起来可能比 TrueType 版本更好,因为使用 PostScript 轮廓需要的工作量较少。两种形式之间的自动转换可能会引入近似值,这在最薄的区域会更明显。