复杂文字编排
复杂文字编排(Complex text layout,缩写:CTL)或者复杂文字描绘(Complex text rendering)是指字位的形状或位置取决于与其他字位的关系的书写系统的排版。这个词汇用于一个字符为一个字位的软件国际化领域。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/JanaSanskritSans_ddhrya.svg/220px-JanaSanskritSans_ddhrya.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Arabicrender.png/250px-Arabicrender.png)
要求复杂文字编排以适当显示的书写系统称为复杂文本,例子有阿拉伯字母和婆罗米系文字的天城文或泰文。许多文本不要求复杂文字编排,例如拉丁文字和汉字可通过在一直行或直列中简单地依次显示每个字符来排版。然而这些文本有替代形式或者可选特性(如手写体)时也要求复杂文字编排以在电脑上呈现。
需要复杂文字编排的特征
编辑复杂文字编排的语言复杂度的主要特征有:
- 双向文稿,字符有可能由右向左或由左向右书写。
- 外形因上下文而变的文字。如,一个阿拉伯文字的字符根据上下文可以有四种样式。
- 显示字符的顺序和其逻辑顺向不一样。如由左向右书写的天城文中,用来表示“短i”的音素是放在前面子音的左边。在कि ki中,ि-i的圆弧会延长到क k-的上方。
不是所有这些特征的出现要求复杂文字编排,例如希腊文中因上下文不同而改变的ς,它只是位在一个单字结尾的σ。统一码对两者分别编码,其分别为U+03C2 ς GREEK SMALL LETTER FINAL SIGMA和U+03C3 σ GREEK SMALL LETTER SIGMA,而且没有视作标准或兼容等价。但对于校对和比较用途,软件应将字符串“δῖος Ἀχιλλεύς.”视为等同于“δῖοσ Ἀχιλλεύσ.”,[1]但出于排版用途,这些是有别的,而且不要求复杂文字编排修正。
实现
编辑多数兼容复杂文字编排的文字渲染软件会包含有关特定文字的资讯,而且因此能正确显示它们而不需要字体文件提供怎样输出字符的指令。这样的软件通常提供于函数库当中,包括:
- OS X上的Core Text
- Microsoft Windows上的Uniscribe和DirectWrite
- HarfBuzz,跨平台函数库
- Pango,含HarfBuzz的跨平台函数库
然而,这类软件不能专门描绘任何缺少指令的文本,那些会包含许多小语种文字。替代性的获取方式是封装描绘指令于字体文件中。渲染软件仍需具备读取和遵循这些指令的能力,但这相对简单。
后者的实例即是Apple Advanced Typography(AAT)和Graphite。二者名称皆包含指令格式及支持的软件;AAT内建于苹果操作系统,Graphite适用于Microsoft Windows和Linux系列系统。
OpenType格式首先用于运用第一级访问的系统(渲染当中的输出知识,不是字体),但是有少量特性对复杂文字编排予以辅助,如上下文合字。AAT及Graphite指令可嵌入OpenType字体文件。
注记
编辑- ^ FAQ - Greek Language & Script. Unicode Consortium. 2012-12-03 [2013-09-13]. (原始内容存档于2010-06-23).
It is easier to simply equate the two sigma codes for operations which are concerned with word content, for example.
参见
编辑外部链接
编辑- Examples of complex rendering (页面存档备份,存于互联网档案馆)—美国国际语言暑期学院的世界各地书写系统的示例
- 复杂文字编排 (页面存档备份,存于互联网档案馆)— The Open Group's Desktop Technologies
- 在Mozilla中支持印度语系文字—亦支持其它复杂文字编排
- Project SILA—Graphite与Mozilla集成项目
- Solaris中复杂文字编排的架构 (页面存档备份,存于互联网档案馆)— Solaris Globalization Whitepapers
- 复杂文本—微软全球开发及电脑处理专题
- Theppitak's Homepage (页面存档备份,存于互联网档案馆)—关于泰语处理的资讯
- Freedesktop.org的HarfBuzz(页面存档备份,存于互联网档案馆)
- D-Type Unicode Text Module (页面存档备份,存于互联网档案馆)——用于复杂文本的便携软件库
- BidiRenderer (页面存档备份,存于互联网档案馆)——使用FriBidi、FreeType和HarfBuzz演示双向文本段落的复杂文字塑形及编排的应用程式