剑客
关注科技互联网

ApTeX衍生项目mlayout

国庆假期真适合写代码。所以决定把ApTeX中的layout engine剥离出来称为单独一个库。

前一段时间做了不短时间的cairo/libgd绘制的工作,找来找去没有合适的library级别的layout控制的东西,所以才产生出想要做一个库级别的东西。虽然已经有了harfbuzz这种东西,但是功能毕竟太为单一,所以还是自己写吧。有了C接口的话,python或者ruby就比较好做了,最直接的结果是将来在cairo/libgd中就可以输出高质量排版的text结果了。

除了最基本的OpenType的layout engine支持外,还有一些比较有意思的东西要做:

  • 使用MATH表支持Unicode Math,支持UTN-28中的线性文本解析
  • 可选地使用JSTF表来做对齐处理,不过这部分肯定要实现TeX的断行对齐算法
  • 支持Color Emoji处理,这个以及没有多少问题了
  • 多语言处理,比如阿拉伯语和南亚诸语,实现一个简单的可控制的fallback系统

昨天做了一些最基本的测试,比如:

palt支持

ApTeX衍生项目mlayout
ApTeX衍生项目mlayout

subs支持

ApTeX衍生项目mlayout
ApTeX衍生项目mlayout

swsh支持

ApTeX衍生项目mlayout ApTeX衍生项目mlayout onum支持 ApTeX衍生项目mlayout ApTeX衍生项目mlayout dlig支持

ApTeX衍生项目mlayout ApTeX衍生项目mlayout 这个东西需要输出为实际的图像才能进行比较或者查验对错,昨天还很乐观地觉得做一两百组测试就够了,但是晚上熬夜做的时候才发现可能要做三四千组测试,工作了还真是大啊(我又开始挖坑了)。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址