一个困扰很久的问题,求解。
在 Windows 下,两个等款英文字符的宽度和一个中文字符的宽度是一致的。
但是在 OS X 下,许多富文本编辑器,例如 IntelliJ IDEA,Atom,甚至 Google Chrome 里,一个中文字符往往小于两个等宽英文字符的宽度,对不齐很看着很不舒服,特别是要完美排版一下 Markdown 表格的时候。目前发现明确能做到对齐的,只有在 Terminal 和 MacVim 里,当然这两者机制是非常规的,不具备通用性。
测试了一下,Consolas 12 号字体,混合中英文排版的纯文本(文本见下方链接):
粗看起来,可能是 OS X 下是因为英文字体和中文字体并不是同一种,字体宽度没调教成统一的。然后如果用上自带 Unicode 字符的等宽字体,比如 M+ 系列字体,就能对齐了。
测试页面与内容: https://gist.githubusercontent.com/gaomd/f3716b8630d1a74a8c59/raw/
这个页面在 Chorme 里渲染是等宽字体的,但是在 OS X 下的 Chrome 里打开,中英文却没有对齐。
1
richardtsai 2015-05-02 16:54:21 +08:00
感觉是OSX内置的等宽字体宽度的问题……
所以我把Firefox的默认等宽字体换成Ubunto Mono了……然后中文还是默认,这样就正常了 |
2
SoloCompany 2015-05-02 17:20:28 +08:00 via Android
用 input mono,字号12或14
主要的问题是fallback没做好导致中英文的宽度不一致 |
3
icylogic 2015-05-02 17:57:32 +08:00 via Android
|
4
gDD OP @SoloCompany 这个字体很好看,但和中文混排的时候,两个英文字符的宽度还是大于一个中文字符的宽度。
|
6
SoloCompany 2015-05-02 19:57:34 +08:00
@gDD 你是怎么选的?我用 input mono 12pt / 14pt 没有不等宽的问题
|
7
gDD OP @SoloCompany 我在 PhpStorm 里面,选了 Input Mono Compressed,12 或 14 确实是完美对齐了,但是在其他地方(比如 Google Chrome,Text Edit),Compressed 也对不齐了。而 Input Mono 到哪里都对不齐。
|
8
SoloCompany 2015-05-02 20:25:32 +08:00
@gDD 对,忘记说得要 Input Mono Compressed 了,其它的不能对齐,原因我前面说了,就是 fallback 的中文字体宽度不一致,但在所有地方只要选择 Input Mono Compressed 12pt 和 14pt 都能完美对齐,除了 Input Mono Compressed,其它还能实现完美对齐的,有还
- ubuntu mono - M+ 1m - 文泉驿正黑 但只有 Input 字体提供了完整的字重(我偏爱超细的字体),所以我也偏爱 Input Mono |