Open CastleStar14654 opened 2 years ago
当初重构 ctex 2.x 的时候,我考虑过这个问题。我记得那时的 babel 代码写的比较死,给的接口很少,需要大改,并且那时中文社区也没有使用 babel 的习惯,就没做了。
粗看了一下,现在的 babel 好像比那时候灵活多了,可以重新考虑一下。
babel 对章节和部分的重命名是靠把 \@makechapterhead
中的 \@chapapp\space\thechapter
自动替换成 \bbl@chfmt
并把 \@part
中的 \partname\nobreakspace\thepart
自动替换成 \bbl@partformat
实现的,其实和 ctex 手动换成 \CTEX@chaptername
以及 \CTEX@partname
类似。
目前 ctex 系列文档类和 babel 冲突的应该只有章名和部分名;我测试了一下 ctexbook
,也确实如此。其他的结构名都可以随着 babel 的 \selectlanguage 命令改变(包括“附录”)。
babel 有的几个其他问题是
*.ini
文件只给出了 UTF8 的定义,也许对基于 pdfLaTeX 的中文情况支持不佳。中西文字体混排的工作 xeCJK 完成得优秀得多,仅使用babel 的示例中的字符间距、西文两侧额外空格加入等都不尽人意(babel 开发者也不觉得 babel 有必要取代 ctex 等专门处理东亚文字的工具)。但把本地化部分迁移到 babel 似乎还是可以考虑的。最大的潜在便利就是,如果有用英文撰写基于 ctexbook 文档类的论文需求的话,使用 babel-english 比撤销 ctex 做的汉化还是方便规整很多的。
babel
可能还能用于实现 CJK 分语言/变体使用不同字体配置 #628
当前
ctex
系列为自行对各结构名进行重定义。babel
目前已经提供了非常初步的中文结构名本地化(通过*.ini
文件实现),可以生成“第 x 章”“第 x 部分”“图 x”以及\today
的本地化等效果。使用方法可以为或
是否有可能方便地将当前
ctex
系列的本地化迁移至babel
的框架之上、继续添加章节名的数字中文化等细节?这样 #350 等依赖于babel
的问题也可得到一定解决。或者可以将
babel
的引入方法在文档中做简要介绍,有需要的使用者可以自行调用babel
。