我非常喜欢 Computer Modern 字体的设计,只是笔画(主要是细线)太细太“细”,因此不太适合电脑屏幕等低分辨率设备。我想我并不孤单——我经常看到有人抱怨这一点。只需使用一些“更粗”的参数值重新运行 Metafont 就可以解决这个问题,不是吗?有人这样做过吗?
我自己发现了一些事情:
Alan Hoenig 创建了一个名为 MathKit 的软件包。其目的是定义一组参数,使 Computer Modern 字体看起来像标准字体(Times、Palatino 等)。Cambria 字体又好又粗。我想可以使用 MathKit 创建类似于 Cambria 的 CM 粗体。当然,我也可以只使用 Cambria,但 CM 对我来说看起来“更漂亮”(不知何故)。
Metafont 具有“blacker”等参数,旨在根据输出设备的属性调整栅格化。在古代,人们经常摆弄这些参数,以便在当时的打印机上获得良好的输出(通常分辨率为 200 到 300 dpi)。当然,如果您使用的是轮廓字体而不是位图字体,这些都无济于事。使用轮廓字体时,操作系统或查看应用程序会处理栅格化,这超出了您的控制范围。
也许可以通过调整 CM 轮廓字体的提示来解决问题,但提示似乎是一种几乎无人知晓的黑魔法。标准 Y&Y/Blue Sky CM 字体是由真正的专家提示的,因此进一步的提示练习不太可能产生更好的结果,大概如此。
可以使用较小的设计尺寸,如 NauC 在下面答案中所建议的那样。这将产生更粗的笔画。它还将产生更宽的字符,但我认为我可以使用 的
fontspec
“FakeStretch”再次缩小它们。最终结果(如果我幸运的话)将是具有更粗细线条的字符。
为了尝试#4中的想法,我使用了以下代码:
\documentclass[a4paper,10pt]{memoir}
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase}
\begin{document}
\raggedright
\chapter{Motivation}
\section{Background Material}
bedbugs in flowery bloomers.
\fontspec[OpticalSize=0, FakeStretch = 0.876]{Latin Modern Roman 7 Regular}
bedbugs in flowery bloomers.
\fontspec[OpticalSize=0, FakeStretch = 1.09]{Latin Modern Roman 17 Regular}
bedbugs in flowery bloomers.
\end{document}
我得到了以下结果:
当然,在如此巨大的尺寸下,任何光栅化看起来都很好。我提供这些图像只是为了让人们看到轮廓差异。对我来说,重要的是第二行在 PDF 查看器中小尺寸下看起来比第一行更好,所以我对进展感到满意。我是 TeX/LateX 的初学者,所以也许更有经验的人可以改进我的解决方案。现在我需要弄清楚如何用数学做同样的事情。
答案1
这个帖子德国排版板上的 为这个问题提供了一个可能的解决方案。OP 还提供了 Knuth 的“数字排版”的片段,以表明 CM 在打印时从来就不应该显得那么薄(就像现代激光打印机那样;参见第三个片段)。
另一种解决方法(虽然不太好用)是使用不同的标准文本光学尺寸。如果您将文本设置为 11pt,则默认光学尺寸为 10pt。选择 9pt 会导致笔画略粗,但字母形状也会略宽。
答案2
这MLModern包的设计目的正是解决这个问题;它是所有主要 TeX 引擎的替代品,cm-super
并且。lmodern
\usepackage{mlmodern}