当前位置:   article > 正文

「2013-9-5」Configure WingIDE for better display of East Asian Glyphs

wing ide 行距

很久没写软件配置相关的博客了。这次对于 WingIDE 在 Windows 下的字体配置,折腾了好一阵子,略曲折,也反映了「不清楚原理和背景的情况下,盲人摸象的效率低下是必然」这条放之四海而皆准的赤果果的真理。记录下。

WingIDE 版本是 4.1.13-1,界面部分采用的是 gtk2 以便于跨平台。遇到的问题是:在 source code 字体设置上,如果设置成「Courier New」(我最习惯的等宽字体),那么中文显示不正常;如果设置成微软雅黑「microsoft yahei」或者宋体「simsun」,那程序部分的字体就不好看。

起初搜索了一下解决办法,很快就找到了一个混合字体的解决方案,基本思路是,将雅黑字体和 Consolas 字体混合起来,下方的截图来自此方案的链接

image

这种方法非常直截了当,可惜我并不习惯 Consolas 字体。于是按照上述博客里提供的制作混合字体的方法,试着做了一把「雅黑-Courier New」混合字体(点此下载)。最初只是简单的用 Courier New 里的 ascii 字符集覆盖雅黑里对应的 glyph,并没有针对「Format – Smoothing ...」和「Format – Settings ...」做修改,结果并不理想,等宽英文字体的锯齿现象很严重;考虑到可能是字体配置导致的差异,于是尝试将 Courier New 字体的 Smoothing 和 Settings 里的选项,拷贝到雅黑对应的字体配置里,但结果依然不太理想……

image

在「混合字体」这种方案下浪费了很多时间但无显著成果后,开始寻找其他办法。这次算是找对了方向,抛开了 WingIDE 这个关键字,直接从 gtk2 提供的原生功能入手,很快就找到了一篇 wordpress 上的博客。换句话说,pango 本身就有「顺位查询」的设计,类似 office 里设定「英文字体 - 中文字体」的混合显示;拿如下截图里对于 sans 的设定来讲,如果某个 glyph(如某个中文字符)在 arial 里没查询到,就会顺序查询 browallia 字体,以此类推,直到成功查询到指定的 glyph 或者失败……

image

剩下的解决办法,就相对自然了,在 %Wing IDE 4.1%\bin\gtk-bin\etc\pango\pango.aliases 文件里,设定 monospace 和 courier 的别名,基本就ok了(后面再解释为何只是「基本ok」)。别名里的「yahei courier new」是上文提到的「雅黑-Courier New」混合字体的 font family name。

courier = "Courier New,yahei courier new"
sans = "arial,microsoft yahei"
serif = "times new roman,microsoft yahei"
monospace = "Courier New,yahei courier new"

上面之所是说「基本ok」,是因为 pango aliases 只是设定了别名,并没有设定字体大小。WingIDE 里 user interface 选项卡里,可以设定「source code font/size」,但似乎存在「无法选中 monospace」的诡异 bug…… 所以,可直接在配置的文本文件中,即 %your_user_name%\AppData\Roaming\Wing IDE 4\preferences 文件里,做如下修改。

edit.default-encoding = 'utf_8'
edit.default-font = 'monospace 10.5'
edit.gtk-input-method = 'Default'

到这一步,就算是搞定了,enjoy 漂亮顺眼滴字体吧有着高尚趣味(连字体也不肯放过)的代码仔们!…… 囧

P.S.

最后解释下,上面的「别名」设定里,为何不使用微软自带的雅黑字体,而采用自己制作的「混合字体」。这可并不是(纯粹)因为后者是自己做的所以显得略亲切一些…… 如下两张图,分别是微软自带雅黑和「雅黑-Courier New」,后者的行高和 Courier New 保持一致,而前者则显得偏高,好比是 office word 里「单倍行距」和「1.5 倍行距」的区别。

image  image

如果和我一样,喜欢紧凑型的代码布局,就用混合字体;如果喜欢行高较松散的布局,直接使用「microsoft yahei」就好。

转载于:https://www.cnblogs.com/jtuki/p/Configure-WingIDE-for-better-display-of-East-Asian-Glyphs.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/546183
推荐阅读
相关标签
  

闽ICP备14008679号