Pharo字体设置,以及解决在高分屏下字体太小的问题
标签: pharo ;
Pharo是一个独立的图形环境,它的字体渲染不像其它应用那样委托给操作系统,而是有一套自己的逻辑。但是它那套逻辑又过于简单,无法提供像 freetype2 & fontconfig 那样的灵活度。当选择的字体无法渲染当前字符集时,Pharo会简单地放弃渲染,直接显示成方块,而不会自动从备选的字体中选择合适的字体,至少把字符渲染出来。因为默认的字体配置是英文字体,于是中文都显示成了方块。我一度以为Pharo压根就不支持中文,结果后来才发现是因为没有配置中文字体。所以,每次创建一个新的 image,第一件事就是先把字体配置好。这种单调且复杂的事只适合用脚本来做。
| font codeFont |
"代码字体一定要选择等宽的"
font := LogicalFont familyName: 'Noto Sans CJK SC' pointSize: 10.
codeFont := LogicalFont familyName: 'Noto Sans Mono CJK SC' pointSize: 10.
StandardFonts listFont: font.
StandardFonts menuFont: font.
StandardFonts codeFont: codeFont.
StandardFonts buttonFont: font.
StandardFonts defaultFont: font.
StandardFonts windowTitleFont: font.
FreeTypeFontProvider current updateFromSystem.
"配置完字体后,系统菜单栏不会自动刷新,那就手动刷新一下:"
MenubarMorph showMenubar: false.
MenubarMorph showMenubar: true.
只要把上面的代码复制到 Playground 中,Ctrl-A 全选,Ctrl-D 执行,一瞬间就配置好了。
Pharo在高分屏上字体很小,新版的 Pharo 在系统配置中提供了非整数倍缩放的功能,但是并不好用。放大2倍的话字体太大了,选择非整数倍缩放的话字体会发虚,虚得很厉害。
解决办法其实很简单,只要把字体调大就行了。将上面的配置脚本中的字体从10号改为11或12号就行了。