英文字体配置

在LaTeX的article等基本文档类中,默认的英文字体为Computer Modern Roman。

一个常见的英文字体为Times New Roman,在很长时间内它是 Windows 平台上 Word 的默认西文字体,与LaTeX的英文字体不同,并且该字体不能免费商用。

英文字体的配置命令包括如下三条:

1
2
3
4
5
6
% 英文默认字体
\setmainfont{<font name>}[<font features>]
% 英文无衬线字体
\setsansfont{<font name>}[<font features>]
% 英文等宽字体
\setmonofont{<font name>}[<font features>]

例如

1
2
3
\setmainfont{Noto Serif Light}
\setsansfont{Noto Sans}
\setmonofont[Scale=MatchLowercase]{Noto Mono}

再例如

1
2
3
\setmainfont{TeX Gyre Termes}
\usepackage{unicode-math} % 需要 unicode-math 宏包
\setmathfont{TeX Gyre Termes Math}

这个还顺便改变了数学字体。

有的人喜欢花里胡哨的英文字体,例如calligra,需要导入同名的package,例如{\Huge\calligra fenglielie}的效果为

关于英文字体的配置只是记录一下,我并不打算改变默认的英文和数学字体,看着挺顺眼的。

英文字体调整

除了全局性的修改字体,在局部改变字体的样式也是很常见的需求,例如加粗以强调重要的内容。 常见命令及效果如下表

表中包括了两类几乎等效的命令,例如\bfseries\textbf,但是用法略有区别,前者的修改是持续性的,因此最好使用{}框起来,保证{}外部的内容不受影响,后者则需要加上必选参数{}以明确生效范围,例如

1
2
{\bfseries fenglielie}
\textbf{fenglielie}

调整字体的大小也是很常见的需求,常见命令及效果如下表,这里的修改都是持续性生效的,因此也需要使用{}框起来。

英文编程字体

另外补充记录一下在编程中经常使用的英文字体,对编程字体的常见要求包括:字体等宽,辨识度高(数字0和大小写字母Oo,大写I,数字1,大小写字母Ll容易区分)。

常见的英文编程字体包括:

  • Courier New:(Windows自带)Windows的缺省等宽字体,简称CN,这个字体在Windows早期就存在,因此是很多软件的默认字体,但是它的字形太细了,不适合现在的显示屏和审美
  • Consolas:(Windows自带)相当于是Courier New的升级字体,与CN相比字形更窄,能够在较少的空间显示更多的内容。Consolas是VS系列的默认字体,也是VSCode的默认字体
  • Cascadia:(Windows自带前两个)相当于为新的windows terminal配套提供的一套字体,包括几个版本
    • Cascadia Code 标准版,支持连字,例如箭头->和大于等于号>=
    • Cascadia Mono 不支持连字的版本,Windows在终端默认使用的等宽字体
    • Cascadia (Code|Mono) PL 是支持 PowerLine 符号的版本,Windows不会默认安装
  • Monaco:苹果出品的号称最好的编程字体
  • Source Code Pro:Adobe开发的字体,与Source Hans CJK风格相似
  • Noto Mono:Google开发的一整套集齐各种语言的等宽字体,完整版很大
  • Fira Code:Mozilla 委托设计的开源字体族Fira的扩展,支持连字,经常被网上推荐使用
  • Nerd Fonts:这是一组字体,特点是将常见的图标例如Font Awesome结合到字体中,因此可以在命令行支持各种炫酷主题的显示效果,而一般的字体可能出现缺失图标无法正常显示的问题。其中经常被推荐的字体是Meslo Nerd Font,在终端可以选择MesloLGM Nerd Font作为主要的英文字体

注意,是否显示连字,除了字体本身是否支持,还和编辑器的选项有关,例如VSCode有相关选项可以禁止连字。