VSCode字体中英等宽对齐的选择

关于VSCode字体的选择,配置为中文英文宽度比例符合2:1的 Sarasa Mono SC 更纱黑体。

我对字体的需求,首先就要是IiLl10O区分都很明显;

再有就是我更偏好等宽字体(Monospaced Font),不能对齐什么的对强迫症太不友好了。

另外我目前还有要写中文注释的项目,所以需要中文英文宽度比例符合2:1的字体,即字体支持中英文对齐。

至于连字符,这一点我觉得有没有都能够接受。

VSCode设置

VSCode 默认字体为 Consolas, 'Courier New', monospace

如果字体名称包含空格,则需用引号'将字体名称括起。

VSCode 允许同时设置多个字体,不同字体间用 , 分隔,VSCode 则会按照给出的字体顺序选择。当第一个字体能够在系统上找到,则使用第一个字体;否则判断第二个字体,依次类推。

{
  // ... 其他配置

  /* 字体相关配置 */
  "editor.fontSize": 14, // 字体大小
  "editor.fontWeight": 400, // 字重 (400为Regular/normal标准字重

  "editor.fontFamily": "'Sarasa Mono SC', Inconsolata",
  "terminal.integrated.fontFamily": "'Sarasa Term SC', 'MesloLGS NF'",

  "editor.fontLigatures": true, // 启用连字符 (还需字体本身支持连字符
  "editor.fontVariations": true, // 启用可变字重
}

能接受的字体

​ 是开源等宽字体。https://github.com/tonsky/FiraCode

  • Ubuntu Sans Mono

    是中英2:1对齐的等宽字体。Ubuntu的最新版字体,支持Variable可变字重。 https://fonts.google.com/specimen/Ubuntu+Sans+Mono

其他

  • SF Mono:来自Apple
  • Cascadia Code:Microsoft出品,等宽字体支持连字符

另外还想吐槽一下,Consolas的1和l区分真的不是很明显啊。

字体包装

  • otf (Open Type)
  • ttf (True Type)
  • ttc (True Type Collection)
  • ttc (Super TTC)
  • variable_ttf (Variable True Type)
  • woff (Web Open Font Format) / woff2 (Web Open Font Format 2)

优先选择 Open Type 字体文件格式。

TTC是几个TTF合成的字库。TTC会合并多种TrueType字体同一笔划信息共享以节省字体文件所占空间。

Super TTC将所有字体打包在一起,形成一个单一文件。这是推荐的桌面使用TTC字体的安装方式。

如果TTC遇到软件兼容性问题,就要选择TTF。

Web Open Font Format 主要为网络传输优化,其特点是字体均经过压缩,其大小会比较小。

Variable True Type 是可以无极变换的 True Type 字体。

字体格式

一个字体文件名:

sarasa-moon-sc-regular.ttf

它由多个部分组成,分别是:

  • 字体家族名称:sarasa。代表这是更纱黑体家族的字体。
  • 字体风格 (Style):fixed。分为 Gothic、UI、Mono、Term、Fixed、Slab。
  • 汉字字形 (Orthography):sc 简体中文。根据不同使用中文地区的标准,字形分为 CL、HC、J、K、SC、TC 六种。
  • 字重:regular。代表字体的粗细。从细到粗为 extralight、light、regular、semibold、bold 等。

  • 连字:Ligature。体现在 ->、<>、!=等等

  • 更纱黑体家族的字体风格
风格 等宽 弯引号 破折号 连字 衬线
Gothic 全宽 全宽
UI 半宽 全宽
Mono 半宽 全宽
Term 半宽 半宽
Fixed 半宽 半宽
MonoSlab 半宽 全宽
  • 字重
缩写 字重
regular 常规字体
italic 斜体(意大利体)
light 细体
bold 粗体
SemiBold 半粗字体
ExtraBold 超粗字体
  • 汉字字形
缩写 汉字字形
SC Simplified Chinese。简体中文,中国内地、大马、新加坡等地字形
TC Traditional Chinese。繁体中文,台湾地区的字形
J Japaness。日本语,日文新字形的字形
K Korean。朝鲜语(韩语),朝鲜半岛和朝鲜族的字形
HC HongKong Chinese。香港繁体和澳门繁体的字形
CL Classical。旧字(古典)体汉字字形,仅用于需要使用旧字形的场景

例如中国大陆、中国香港、日本的 字写法都不一样。