干掉阴魂不散的宋体

前面很多篇文章都在试图把 Windows 系统中出现宋体(特别是它的点阵字)的概率降到最低,并且保留较为原汁原味的宋体以备文档打印之需。实践中可行的方法主要是修改字体链和去掉宋体中的点阵,但这种办法对付不了在软件里写死要用宋体的情况,除了劝软件作者改字体外基本没啥好办法,这种软件就只能睁一只眼闭一只眼了。

然而依然有不少软件固执的显示着去掉了点阵的宋体(比如最近正在琢磨的 FreeCAD 和配置 Mikrotik 设备的 winbox),这些软件并非来自国内工程师,难道外国工程师也很中意宋体?显然不是的,肯定是中文的系统有个默认值,把没有指定字体的软件显示为此默认字体。私认为这应该是最后一点日常碰得到宋体的情况了,为了把这一点阴魂不散的宋体去掉,需要找到这个默认值。

用 simsun 为关键字搜索注册表,发现了这么一个键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize\GUIFont.Facename,其原始值为 SimSun。看微软的说明不太清楚这个键值的用途,看起来应该是和 GUI 字体有关,试着改成了前面做的字体链字体,然后就成功了。这下子应该不太容易看到宋体了吧(瞎说的)。

效果如下(点击看原图) ,一同附上的两张图来自《干掉丑陋的点阵字》。

继续阅读“干掉阴魂不散的宋体”

用 robocopy 复制时间戳

存个档。原本只想用 /timfix,但发现默认的 /copy 和 /dcopy 都会复制数据,所以把这两个选项也写上了,只复制时间戳。

robocopy '源' '目标' /timfix /copy:T /dcopy:T /xo /r:0 /e

有个坑,源和目标如果用 tab 键补齐,会在目录名最后加上“\”,但这样会导致 robocopy 对目录识别错误,如下图,可能把“\”当转义字符了…

至于为啥要复制一个目录内所东西的时间戳到另一个目录,原因是这俩目录是用 FreeFileSync 7.9 双向镜像的,但 FreeFileSync 不知道为啥并不复制目录下第一层目录的时间戳,而是用目标目录内各目录的创建时间做时间戳,导致无法按时间排序。

改造 Microsoft YaHei Mono

上一篇文提到了可以用 Microsoft YaHei Mono 做等宽字体,装上乍一看效果很不错,cjk 字符以外用的是 consolas,也和我个人习惯一致。但仔细看有问题,主要有俩:

  1. 相同字号下,字符比 consalas 字体要小,比如 consolas 用 16 号字,这个等宽雅黑要用 18 号字才能差不多大;
  2. 中英文混排时,字符对不齐。

这第二点很要命,本来用等宽字体就为了码代码能字符对齐。用 FontCreator 打开看,发现 consolas 部分的字体被缩小了,但依然在宽度上不是雅黑 cjk 字符的 1/2,不知道做这个等宽雅黑字体的人是如何考虑的。

那就自己改吧。 继续阅读“改造 Microsoft YaHei Mono”

干掉丑陋的点阵字

从很早很早以前开始,我就琢磨着干掉 Windows 中文版必备的中易宋体(simsun.ttc)里头的点阵字(见链接 012345,其中 1~4 是用 MacType 渲染的,5 是 Win10 自己渲染的)。由于各种原因,这个中易宋体成了事实上的中文默认字体,只要文字没有被明确的指定其他中文字体,基本不出意外都是显示中易宋体,显示的时候大多字号都不大,基本都是古老的点阵字。以前的 Windows 字体渲染方式不够强大,基本都要上MacType,Win10 采用了新的渲染方式,现代程序如果不使用宋体,字体显示效果蛮不错的,于是这次试着直接干掉 Win10 系统里的中易宋体点阵字,把使用宋体的现代程序,以及一些传统程序上宋体的显示效果优化一下。

主要思路

  1. 使用修改过的 Google Noto Serif CJK 字体来代替中易宋体,需要用工具替换掉 simsun.ttc;
  2. 修改注册表里的字体链,在对应的字体链注1中“SIMSUN.TTC,SimSun”之前加上一行想要使用的修改过的字体注2,可新安装字体,无需替换已有的字体。

这两项修改没有依存关系。前者主要对付直接使用宋体的情况,后者主要对付窗体使用的字体通过字体链调用宋体的情况,不过修改前者会一并影响所有在字体链中写了宋体的字体。如果设置了字体链的非中文字体是 Sans 类型,而其字体链中用来显示中文的宋体又是个 Serif 类型的话,感觉总是差了那么一点,个人建议改字体最好要类型统一。

效果如下。

继续阅读“干掉丑陋的点阵字”

WPS 2016 套件在新窗口打开文档

由于 WPS 的多标签编辑方式很难用上 Win10 的窗口管理和任务栏预览和提示,即使可以用窗口重排来对比修改文档,但依然难用,个人还是喜欢用单窗口模式来写文档。

在 WPS 2012 以前,据说可以通过设置修改是否要用单文档模式,但后来不知为啥把这个功能去掉了。一种变通的做法是从开始菜单或者 jump list 重新开一个窗口,在这个窗口中打开新文档,但真是很麻烦。

经过搜索和尝试,WPS 2016 和 2019 套件的 wps,wpp 和 et 都支持命令行参数打开新窗口,其中 /n 是打开新窗口但不建立新文档(可参考链接),/w 是打开新窗口并建立新文档。后面这个我不知道是咋想到去试的,可能是受 WOW 影响。/n 可用在注册表里负责“编辑”和“打开”的命令行参数里,默认参数是 “wps path” “%1″,在原命令行参数最后加上 /n 即可(可参考“打印”的命令行参数,复制过来把 /p 去掉)。/w 可用在注册表里负责“新建”的命令行参数里,默认参数是 “wps path” /t “%1″,加 /n 无效,用 /w 把 /t “%1” 整个换掉即可。

这个方法没法去掉标签页,打开的文档还是以标签页的型式出现的,连同前面的快捷按钮以及后面的搜索独占了一行空间,哪里有官方的命令行参数指南,有人知道不,没准能弄点新高级玩法,比如把标签页那一行去掉?

不排除在其他版本中不能用的可能性。

ps. 附一个把讨厌的“我的 WPS”去掉的办法(链接)。