CJK 字符结点判定
在上一篇“断行”的末尾处,我提到了应该仅在中文字符之后插入 glue。查阅 luatex 手册,发现 glyph 结点含有 char 成员——体现为 glyph 的十进制编码。因此只需要将 CJK 的 Unicode 区域范围由 unicode 编码换算为十进制(直接用 16 进制也可以),就可以判断 glyph 结点是表示 CJK 字符。
断行
在那篇“使用 luatex mini 包处理中文” 的文章中,我制造了一个不会断行的中文排版示例。中文断行问题的解决方法,以我的智慧只能想到两种。第一种方法是自己提出一个断行算法并程序实现。第二种 方法就是利用 LuaTeX 提供的断行算法。前者适合勤劳而且又懂 TeX 的人,而且 LuaTeX 也提供了相应的支持。很不幸,我又懒,又不懂 TeX,所以只好尝试第二种方法。
使用 luatex mini 包处理中文
在“LuaTeX 最小包 for Linux 用户”一文中,我是以英文和一幅 MetaPost 图形作为测试示例的。在这篇文章中,我简单介绍一下如何使用这个 luatex mini 包处理中文。
LuaTeX 最小包 for Linux 用户
建立一个随时更新的适合 linux 用户使用的 luatex 最小包。
实现 ConTeXt MkIV 中文标点压缩与边界对齐
这几天,抽了些时间,试图自行解决 ConTeXt MkIV 的标点压缩与边界对齐。由于 Hans 在新的 MkIV 中对 CJK 文字处理框架进行了修整,只需要很简单的一点 hack 工作,问题基本上就得以解决。现在总算有一点心满意足,可以继续耐心地等待 Hans 他们实现 MkIV 对中文排版的完善支持的那一天。
简单 show 一下效果,因为很少有人关注,主要是自我欣赏一下。
我将 hack 过程整理成两份文档,可以从 http://bbs.ctex.org/viewthread.php?tid=48562&extra=page%3D1 下载。
We need a perfect solution of Chinese support in TeX
These days I have tried to understand a few segments of source code about Chinese support in ConTeXt MkIV, because, with my own efforts, I want to solve the problem of Chinese puncuations appeared on the right side of pages which often affect the aesthetic feel of typesetting. I noticed that there two lines of code that look like unnecessary and I hide them with comment sign. After regenerating ConTeXt formats, I recompiled those documents that I have already finished including those in CTXnotes project. I found all is ok! Now Chinese puncuations never appear on the right side and the layout looks very tidy.
被迫清心寡欲地使用中文字体
最近,ConTeXt MkIV 的混合字体机制出现了一个以前出现过的问题,即:在不同的 typescript 环境中(比如 Serif 和 Mono),如果向同一款中文字体的相同编码区域注入两种不同的西文字体,那么只有首次注入的西文字体才是有效的。That is to say, 只能是一款中文字体与一款英文字体进行混合。
压缩标点之间的间距
昨天,耐心地阅读了 MkIV 的 font-otf.lua 最后那一部分处理中文的代码,终于看出了一点门道,并向其中添加了一小段代码用于压缩两个紧挨着的中文标点的间距。另外,font-otf.lua 也未对中文引号进行标点压缩,这个问题我也通过 hack 的方式解决了。