SolidZORO / zpix-pixel-font

Zpix (最像素) is a pixel font (中文像素字体), supporting English, Chinese (Simplified + Traditional) and Japanese.
https://zpix.vercel.app/
2.47k stars 70 forks source link

v3.1.6 .ttf的若干字形问题 #50

Closed MY1L closed 1 year ago

MY1L commented 2 years ago

未检查.bdf是否有相同问题,因为手头没有支持.bdf的软件。

以下字符的字形是空白的

小型形式变体等有问题

西里尔文、希腊文绘制的问题

uni0459љ(字形有问题) 西里尔文有一部分是按半角设计的,非常窄,而另一部分是不等宽的,不统一。 希腊文似乎是按全角风格绘制的不等宽字形,看上去模仿的东亚字体做法?可是既不符合西文做法,也不是全角的宽度,两边都不靠了。

其它疑难问题

看上去字形设计是左靠0、右留2点“像素”空白,但%&:\/等几个不遵循此规则?

§₱₰₮₭₫₤₣™℮Ω等许多字符设计得非常逼仄,⅛⅜⅝⅞甚至看不清,虽然这些宽为5个“像素”,而字符占据宽度为13像素,有8像素空白,这些可以撑开为非等宽或改为半角。

因为可以理解的原因,本字体以汉字为主,一些西文不得不受限于汉字高度,导致例如À这样带变音标记的西文被上下压缩。而那些带多个变音标记的字符如Ǻ就没法看了,而且也无法支持uni0300这些变音组合字符。这部分涉及西文排版和变音特性的可能得放弃.bdf格式(仅ttf支持),且容许字面向上下扩展—— 但字面向上下扩展又会影响现有字体中文排版的行距,我提议索性将这些带变音标记的、GBK不包含的拉丁文、希腊文、西里尔文字符分拆为一个西文字体


题外话,我也在制作字体(虽然只会做矢量不会.bdf这种点阵字体) 是否可以在 最像素 的基础上分出叉来制作不等宽的像素英文和假名,并支持字距(kerning)、Ligatures连字等点阵字体中没有的OpenType特性? 或做成补丁形式的单独字体,写成CSS像这样:font-family: zpix-my1l, zpix, sans-serif; 以上是一个想法。

SolidZORO commented 2 years ago

非常感谢你的意见以及对事物认真的态度。

这个字体最开始是只有 bdf,然后嵌入到 ttf 里面,给 Windows XP 使用的(在 XP 上关闭 ClearType 就可以只显示像素字了)。所以几乎没有考虑 ttf 里面的那些宽度基线之类的问题,后来一些用户发现 bdf 无法渲染在 Qt 等一系列软件上,我也是想了很多方法用程序把 bdf 转换成 ttf 做到了「能用」的程度,因为对我来说直接做 ttf 是很难的,因为我不大会用字体设计软件。

你提到的分几个字体的问题,其实我也想过,因为我发现同一个 unicode,日文,繁体,简体,甚至是港台的写法都是不同的,按理说,就应该像 PingFang 那样分成好几个版本,但是这样我不大清楚要如何批量处理和维护,就没有去拆。

总体来说,现在这套字体在维护上我只能做到修改错别字,其他的修改比如你上文提到的那些对我来说比较难。太久没有碰字体这块,基本上每次我改一个错别字都是以半天为单位计算的,成本太高。我每次想要修改和维护,都很莫名其妙的发现字体软件 FontForge 跑不起来,然后我必须花时间让他跑起来,再修改和打包……

这个 issues 就先开着吧,我看什么时候有时间有心情了就过来花心思好好调整一番。

MY1L commented 2 years ago

因为太忙,我上个月“在最像素的基础上分出叉来制作不等宽字体”的想法,现在才作出可以演示的成品来。 只有ascii区段是做完的(我的软件不是专门做像素字的,点像素很慢),其它区段还在做所以缺字。 给像素字体加上高级排版特性:Ctrl Zpix介绍 - 哔哩哔哩 今天发布第1版:https://github.com/MY1L/Ctrl/releases/tag/Zpix