中英文1:2等宽字体

只谈情不闲聊 提交于 2020-11-21 12:04:45

折腾了半天字体。

起因是在linux下用ReText写rst格式文档,写标题的时候报错文字下的标记长度不够,明明是对对齐的。原因是中英文字体不是严格1:2等宽,1个中文字宽度不等于2个英文字宽度,造成错觉。换了几个等宽字体也不行。

搜索折腾了一番。总结如下:

  1. 最简单实用的办法是安装一个为中文优化过的等宽英文字体,设置字体时就选这个等宽英文字体。这种字体不多,例如:ubuntu mono。据说还有mplus fonts,应该是含有中日文的,没试过。

  2. gnome terminal和vim,gvim有特殊处理,不用安装特殊字体,自动中英文1:2等宽。

  3. Windos 7下,我记得有款达人自制的雅黑Consolas混合字体,挺棒的。中英文看起来都比较舒服。至于是不是中英文1:2等宽,有段时间没用Windows 7,不太记得了。

  4. Windows 10下,看程序心情。

    • 正常程序notepad, notepad++, 选择普通的等宽英文字体,自动中英文1:2等宽。

    • 自制雅黑Consolas混合字体,不再中英文1:2等宽。

    • 较高版本的Visual Studio 2012, 2017、SQL Server Management Studio 2017, 字体不会自动等宽。进入抽风模式

      • 原本包含1:2等宽中英文的字体,如“新宋体”,能保持中英文1:2等宽
      • ubuntu mono,设置12号字体,能中英文1:2等宽
      • 其他字体,抽风
    • Visual Studio 2008, 抽风模式

  5. 其他:

    • Linux下可能会找到一些修改fontconfig的办法。别折腾,弄来弄去不如安装字体实用。人家字体设计就没有为中英文比例设计。再说强行等宽也不见的好看。

    • Windows下可能会有些FontLink方案,修改系统注册表的SystemLink。也别折腾,弄来弄去,重启注销N次也调不出个好结果。

      另:FontLink时,有个缩放因子,比较难以调整把握,很难找到这个缩放因子的说明,附注一段找到的说明1, Mark一下。

如前所述,我找不到任何关于这两个缩放因子的详细资料,唯一能找到的相关信息就是开源软件gdipp的一个源程序文件。在这个文件里,Fontlink里定义的两个缩放因子被用来以如下方式计算另外一个缩放参数:

new_info.scaling = (factor1 / 128.0) * (96.0 / factor2);

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!