关于如何在Wine里面配置字体,特别是中文字体。
目录
调试信息
要看调试信息,跑
env WINEDEBUG=+font wine <program>
具体WINEDEBUG可以参见[1]。
相关注册表位置
基本上在[2]里面说了。
HKEY_CURRENT_USER\Software\Wine\Fonts
这里底下有几个:
- Cache
底下有各个字体的信息的缓存,删掉这个分支也会自动重建,最多能暂时解决问题,没啥用。
里面可以查到各个字体名字。如果有English Name属性那也能作为名字用。
- External Fonts
字体列表,应该也是自动产生的
- Replacements
第一个可以用于替换字体的位置,在里面弄个字符串值,<要替换的>=<替换为>,就可以了。
据说如果能找到要替换的字体这个就不起作用,所以这也就是个 fallback 而已。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion
这里有另外几个相关的键值[2]。
- FontLink/SystemLink
这里可以把字体和字体文件对应起来。
目前尝试貌似只能找到不带路径的字体,在Windows\Fonts目录里。也是字符串值,格式是<字体名>=<字体文件>。
例如,如果要让MS Sans Serif用微米黑,写
name: “MS Sans Serif” value: “wqy-microhei.ttc”
并把wqy-microhei.ttc放到windows的fonts目录就可以了。
- Fonts
系统级的字体列表,和上面的External Fonts貌似类似,可能也是自动生成的。
- FontSubstitutes
另一个可以替换字体的地方,格式和上面的Replacements一样。不过这里貌似不管实际字体存不存在都会替换。
另外,如果这里作为被替换的字体出现的话,上面SystemLink就会失效(废话……)。
Wine的默认字体
wine(版本1.6.2)在系统界面,会根据不同LOCALE设置不同的默认字体。 具体表现为修改HKLM下面FontSubstitute主键下面的相关键值。
- en_US: Tahoma
- ja_JP: MS Gothic
- zh_CN: 宋体
配置方法
看了上面的可以知道,基本上只要搞SystemLink和FontSubstitutes就可以了。
SystemLink关联到字体文件,FontSubstitutes把别的字体替换成这个。
其实只要把要搞的字体都在SystemLink里关联了就完了。FontSubstitutes里有一堆系统默认搞了的。
貌似要搞的字体有:
- Arial
- Arial Black
- Microsoft Sans Serif // 可能不需要
- MS Sans Serif // 需要
- SimSun
- System // 谁知道呢……
- Tahoma
- Tahoma Bold