被遗忘的宝藏——LaTeX发行版自带的字体 & 自己的一些字体心得

发布于 2022-11-21 20:51:49 浏览次数 193
这是 KMC 在 CTeX 论坛的发帖,最后的更新是 2009 年。里面的部分信息我进行了标注和刷新。希望对大家有所帮助。LaTeX 是花园,走进去总会让人流连忘返。
image.png

可能有不少人像我一样在用 LaTeX 不久就开始跟字体较劲。我走的是这样一个过程:

  • 最初用惯了 Word,从而无法理解为什么 LaTeX 调用字体那么难;
  • 为了在 LaTeX 中调用字体,想用现有的工具一蹴而就(像 TTFshape,MTFI,xGBKfonts),往往不能轻易成功,沮丧;
  • 之后重新静下心来逐渐了解了什么是字体,LaTeX 中字体成功调用的方式,才注意到 Mapping,TFM,vf 等文件的相互关系,理顺了这一切后,把前面几个软件装不成功的字体装好(我印象中装上过 Verdana,GE Quartz 等几个);
  • 后来发现也有些宏包有现成的字体可用,那个时候主要就是关心 TrueType 字体,所以见到了 winfonts 宏包(这个宏包不在 MiKTeX 的宏包列表中),开始用上一些系统中有的字体;
  • 又发现 OpenType 字体更棒,再去看的时候才知道解包 OpenType 不但麻烦,还会失去 glyphs;
  • 在一个相当漫长的时间内没有动过 LaTeX,再碰它时,又是从一篇 Philipp Lehman 的《The font installation guide》开始,这篇文章 100 多页从头到尾看完,已经比较清楚如何用 fontinst 来安装手头拥有的 Type1 字体。也正是从这篇文章开始喜欢上了 Minion 字体并且成功安装。由于安装过程相当繁琐,我还写了一些安装 Type1 字体的批处理,有时间的话会整理出来(因为通用性太差);
  • 再次碰字体就是在 CTAN 上看到 MinionPro 宏包,这时我已经开始搜集字体,所以 MinionPro 宏包要求的所有 Optical Size 我都有。MinionPro 包特别大,装上它后刷新文件名数据库都慢几十秒,这也说明了 OpenType 字体的复杂性。我想要不是 Adobe 把这个经典字体免费提供,应该不会有谁有心去为它生成那么多的 TFM 文件(1511 个之多)。Minion Pro 字体对我而言真的是压倒性的,我估计学校允许的话我的论文都会申请用这个字体排版。
  • 后来 XeTeX 被 port 到 Windows,我这才终于把 MiKTeX 升级到 2.7beta,并且花了大量时间研究 XeTeX。XeTeX 似乎就是为字体而生的,但同样需要有字体的相关知识,这些知识并不同于前面 Type1 字体,而更多是字体的 OpenType features,这些 features,Type1 字体要么是根本没有(calt, salt),有也不容易打开(smcp, onum)。

但 XeTeX 同样有这样那样的问题,而且如果直接访问 OpenType 字体,编译速度就更不如 PDFLaTeX 访问 Type1 字体那么快,在长文章中表现得非常明显。所以才有了今天这个帖子,因为在这几天求助区的讨论过程中,自己又回去看了看。加上之前也注意到,其实打开 texmf/fonts 目录就能发现 LaTeX 发行版中早就自带了不少字体,这些字体虽然是免费,功能上确不输专业字体。更重要的是,这些字体很多都是精心设计过的字体包,用来同时载入正文和数学环境的字体,保持文档统一的风格(在严谨的学术文章中,也确实不该想在哪改字体就在哪改)。

笔记 如果你用 Mac 或 Linux 系统,XeTeX 速度基本是无感的,与 PDFLaTeX 速度基本一致。可以看这里:https://zhuanlan.zhihu.com/p/374491983

原来自己有个文本文件,就是记录机器上可以为我所用的现成字体包(主要来自于texmfdoclatexpsnfsspsnfss2e.pdf 文档的介绍),但最近去到 tug 看过,早就有人写了完整的 LaTeX 字体巡礼:

https://tug.org/FontCatalogue/

这个网站罗列了 156 个 LaTeX 中可以免费使用的字体,并且给出了例子和调用的源代码,需要注意的是这些字体并非默认安装在机器上,但至少都能从 CTAN 得到——不光是宏包,还有字体文件(因为像 winfonts,MinionPro 这些宏包需要用户自己拥有相应的字体,CTAN 上并没有)。不过拾人牙慧的工作还是要作,那就是推荐一下几个字体/字体包:

笔记 现在网站显示的是 523 字体,不局限在 Type1 字体了还包括 OTF 和 TTF 字体。

1. Palatino

Will Robertson 的文档总是用 Palatino,这字体的名气也不小。胖胖的很活泼,笔锋也优雅,有羽毛笔的进化痕迹。LaTeX 中最省事的是用\usepackage{mathpazo}来统一修改正文和数学字体,这个宏包还有[sc, osf]参数,分别对应小大写字母和不齐线数字。

此外还有一个 palatinox 宏包可以直接调用 Windows 系统中的 Palatino Linotype(这是微软认证发布赫尔曼·察普夫的原作),相关网址是:http://www.ctan.org/tex-archive/fonts/truetypemetrics/palatinox/,需要手动安装。在这个URL的上一层还能看到另一个经典字体frutiger,只是我手头没有Linotype Frutiger。

2. Garamond

1530 年诞生的经典字体,LaTeX 中通过 mathdesign 可以使用:\usepackage[urw-garamond]{mathdesign}来使用。Garamond 字体十分大气,打印在纸张上也特别好看,法国很多口袋图书用的是 Garamond。

image.png

image.png

3. Times

除了\usepackage{times}外,\usepackage{mathptmx}可以把数学字体也改成类似 Times 的字体。这个字体真的不需要再多说什么了,总之我觉得看久了眼睛会累,但是打印的效果非常稳妥。

笔记 这两年发展比较快的是 NewPX 字体,https://ctan.org/pkg/newpx 大家可以观瞻观瞻:
image.png

4. Utopia

Utopia 有点像 Times,但更宽敞一些。\usepackage{fourier}统一修改正文和数学字体为 Utopia,\usepackage[adobe-utopia]{mathdesign}则是 mathdesign 的调用方法,差别不太明显。

5. Avant Garde/Courier/Bookman/New Century Schoolbook

不是我懒,这几个字体在 PSNFSS 中是可以搭配着用的:

  • \usepackage{avant}只载入 Avant Garde
  • \usepackage{bookman}则同时载入 Bookman(衬线),Avant Garde(无衬线)和 Courier(等宽)字体
  • \usepackage{newcent}
    同时载入 New Century Schoolbook(衬线),Avant Garde(无衬线)和 Courier(等宽)字体

6. Charter

十分饱满的衬线字体,适合屏幕阅读。\usepackage{charter}

7. Helvetica/Optima

这两个字体放一块是因为我觉得它们是无衬线字体,比较适合用来作幻灯片。Helvetica 可以 \usepackage{helvet},Optima 没有写成宏包的形式,就可以用 \renewcommand{\sfdefault}{uop} 然后\renewcommand\*\familydefault{\sfdefault}来调用。在幻灯片这样的尺寸上,Optima 变化的线宽才显现出优美来。
(不过 beamer 的作者认为 Optima 不适合做幻灯片)

8. 其他数学宏包

建议看看 https://ctan.org/pkg/free-math-font-survey 这篇文章,介绍得相当详细,而且有效果图展示。

9. Minion Pro

http://tug.ctan.org/tex-archive/fonts/minionpro/ 有详细的安装说明,只要不出错是肯定能安上的,装了 Acrobat Reader 7.0 以上的用户都能在 Acrobat 安装目录下找到

MinionPro-Bold.otf, 
MinionPro-BoldIT.otf, 
MinionPro-It.otf, 
MinionPro-Regular.otf 

这四个文件,按照安装说明拆解它们四个已经能满足日常文档的需要。此外,MnSymbol 宏包(MiKTeX 可以自动安装)是配合 Minion Pro 的数学宏包,最好装上,不过 \usepackage{MinionPro} 就够了,会自动载入 MnSymbol 宏包。

其实用来用去才发现,LaTeX 自带的这些字体才是真正经过时间和实践检验的经典字体,是 TUG 智慧的结晶。而且,这 150 多种字体也涵盖了绝大部分(LaTeX 能触及到的)字体使用领域。这是不应该被遗忘的宝藏。

笔记 大家可以延伸阅读:通过 unicode-math 设置的 OpenType 数学字体。大家有兴趣可以看这里。https://ctan.org/pkg/unicode-math 如这个字体:https://ctan.org/pkg/garamond-math
1 条评论

发布
问题