复杂文字编排(Complex text layout,缩写:CTL)或者复杂文字描绘(Complex text rendering)是指字位的形状或位置取决于与其他字位的关系的书写系统的排版。这个词汇用于一个字符为一个字位的软件国际化领域。
要求复杂文字编排以适当显示的书写系统称为复杂文本,例子有阿拉伯字母和婆罗米系文字的天城文或泰文。许多文本不要求复杂文字编排,例如拉丁文字和汉字可通过在一直行或直列中简单地依次显示每个字符来排版。然而这些文本有替代形式或者可选特性(如手写体)时也要求复杂文字编排以在电脑上呈现。
需要复杂文字编排的特征
复杂文字编排的语言复杂度的主要特征有:
- 双向文稿,字符有可能由右向左或由左向右书写。
- 外形因上下文而变的文字。如,一个阿拉伯文字的字符根据上下文可以有四种样式。
- 显示字符的顺序和其逻辑顺向不一样。如由左向右书写的天城文中,用来表示“短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字体文件。
注记
参见
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.