最近发现 Drafts 和 Ulysses 都存在一个相同的问题:
在中文输入法下输入字母但没有确认联想结果前会出现整行文字向下略微偏移的情况,选择联想结果后文字才回归原位,但是总不能不打字吧,所以就只能看着文本在反复跳动。
大概搜索一下之后发现早在 16 年就有中文用户发过 YouTube 视频表达过 Ulysses 存在这个 bug,我这几天和官方联系后他们也表示这是个 known issue,但既然它存在了这么年却还是没有得到解决,我就只能试着自己研究解决办法了。
大概研究了一下发现更改字体后可以解决这个问题,但不是所有字体都不会复现,猜测大概是因为在一些字体下对中文字符和英文字符的高度设定存在一些不同,英文字符可能更高一些,输入英文字符就会把整行的中文给「顶」下去。还有一个解决办法就是在每行的开头放置一个英文字符,但是过于繁琐而且不符合实际,就不讨论了。
接下来就是费劲的选择字体环节了。
然后我又反复研究之后发现,大部分字体在中文字体上并没有差别,修改的只是英文字符,在中文应该用的都是「苹方」,所以我前面其实就是在对着一大堆完全一样的中文字符在观察字体的差别。
搞懂这点之后我就放心地去挑选英文字体惹~暂时选用的是 Arial,看起来和系统字体比较接近,只是略微矮了一点,也正是矮了这么一点才不会在输入中文时去 「顶」整行字了。
但还是存在一个比较烦人的问题:如果要在几段文字中间重新起一行文字的话,在这行打出第一个中文字符时这行以下的文字还是会抖一抖,也就是说现在的中文字符高度反倒要比英文字符高上一些。然后又反复试验了一英文字体,都存在这个问题。无奈之下去试了下中文的「PingFang SC」,竟然就解决了,在我尝试过的所有情况里都工作良好。
不过按道理系统默认字体在中文下也该是苹方才对,但是从默认字体切换到苹方之后整篇文章会出现明显的缩放,Drafts 是选择苹方后所有文字明显大了一圈,Ulysses 则是所有文字明显小了一圈,有一种很诡异的感觉。
切换到「PingFang SC」后虽说输入上是没有什么问题了,可是苹方的英文字体相较系统默认的好像略显粗糙,就比如 flexible 这个单词,在默认字体下 f 和 l 是分开得比较清晰的,但是在苹方下它们的顶部会连接在一起,看起来很难受。
然后又发现在 Drafts 下苹方的英文字符虽说和默认也有差别,但是没有出现上面那种情况。又是一种很诡异的感觉。
一顿折腾下来问题好像是解决了,可是又引入了其他的问题,比如在输入英文时输入法联想的字体与编辑器中的字体不一致, y 这个字符就很明显的差异,默认字体大小底部有向左拐了一小点,在苹方下则是直接直直到底。
后续又发现苹方引入的一个问题:苹方的英文字符似乎没有斜体的形式,不能在编辑器当中被 Markdown 的标志给实时渲染出来。
然后又反复观察了几个比较接近系统默认的字体,发现 Helvetica 是 macOS 的默认字体(不知道现在还是不是),就选择了它的升级版 Helvetica Neue 作为几个平台的字体。目前感觉良好,前面提到的问题基本都不存在了。
其实这么一顿研究下来好像啥也没学到,时间全花在对比几个字体之间的差别了,属实是一次糟糕的实践。不过倒是对 字体 产生了一点小小的兴趣,如果后续能多少了解到一些东西的话也算是因祸得福了。
