折腾了半天字体。
起因是在 linux 下用 ReText 写 rst 格式文档,写标题的时候报错文字下的标记长度不够,明明是对对齐的。原因是中英文字体不是严格 1:2 等宽,1 个中文字宽度不等于 2 个英文字宽度,造成错觉。换了几个等宽字体也不行。
搜索折腾了一番。总结如下:
最简单实用的办法是安装一个为中文优化过的等宽英文字体,设置字体时就选这个等宽英文字体。这种字体不多,例如:ubuntu mono 。据说还有 mplus fonts,应该是含有中日文的,没试过。
gnome terminal 和 vim,gvim 有特殊处理,不用安装特殊字体,自动中英文 1:2 等宽。
Windos 7 下,我记得有款达人自制的雅黑 Consolas 混合字体,挺棒的。中英文看起来都比较舒服。至于是不是中英文 1:2 等宽,有段时间没用 Windows 7,不太记得了。
Windows 10 下,看程序心情。
正常程序 notepad, notepad++, 选择普通的等宽英文字体,自动中英文 1:2 等宽。
自制雅黑 Consolas 混合字体,不再中英文 1:2 等宽。
较高版本的 Visual Studio 2012, 2017 、SQL Server Management Studio 2017, 字体不会自动等宽。进入抽风模式
Visual Studio 2008, 抽风模式
其他:
Linux 下可能会找到一些修改 fontconfig 的办法。别折腾,弄来弄去不如安装字体实用。人家字体设计就没有为中英文比例设计。再说强行等宽也不见的好看。
Windows 下可能会有些 FontLink 方案,修改系统注册表的 SystemLink 。也别折腾,弄来弄去,重启注销 N 次也调不出个好结果。
另:FontLink 时,有个缩放因子,比较难以调整把握,很难找到这个缩放因子的说明,附注一段找到的说明1, Mark 一下。
如前所述,我找不到任何关于这两个缩放因子的详细资料,唯一能找到的相关信息就是开源软件 gdipp 的一个源程序文件。在这个文件里,Fontlink 里定义的两个缩放因子被用来以如下方式计算另外一个缩放参数:
new_info.scaling = (factor1 / 128.0) * (96.0 / factor2);
忽然惊喜的发现,自己原来写在 oschina 上的文章,找到入口了。自从它要求绑定手机后,因不想提供手机号,我再也没找到原来的文章。既然失而复得,转几个还有点价值的文章到这里,以免再次丢失。
原文写于 2018/06/20 11:32
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.