複雜文字編排

複雜文字編排Complex text layout,縮寫:CTL)或者複雜文字描繪Complex text rendering)是指字位的形狀或位置取決於與其他字位的關係的書寫系統排版。這個词彙用於一個字符為一個字位的軟體國際化領域。

天城文ddhrya-合字。使用JanaSanskritSans页面存档备份,存于互联网档案馆)來產生七個統一碼的序列द + ् + ध + ् + र + ् + य = द्ध्र्य。
不同的描繪步驟中展示阿拉伯語中的阿拉伯語名稱العربيةal-arabiyyah。第一行展示未經過處理的字母,這是未支援複雜文字編排的應用軟體可能會產生的。第二行中則有雙向顯示機制的結果。第三行則會依據上下文而產生字母的字形

要求複雜文字編排以適當顯示的書寫系統稱為複雜文本,例子有阿拉伯字母婆羅米系文字天城文泰文。許多文本不要求複雜文字編排,例如拉丁文字漢字可通過在一直行或直列中簡單地依次顯示每個字元來排版。然而這些文本有替代形式或者可選特性(如手寫體)時也要求複雜文字編排以在電腦上呈現。

需要複雜文字編排的特徵

複雜文字編排的語言複雜度的主要特徵有:

  • 雙向文稿,字符有可能由右向左或由左向右書寫。
  • 外形因上下文而變的文字。如,一個阿拉伯文字的字符根據上下文可以有四種樣式。
  • 顯示字符的順序和其邏輯順向不一樣。如由左向右書寫的天城文中,用來表示“短i”的音素是放在前面子音的左邊。在कि ki中,ि-i的圓弧會延長到 k-的上方。

不是所有這些特徵的出現要求複雜文字編排,例如希臘文中因上下文不同而改變的ς,它只是位在一個單字結尾的σ。統一碼對兩者分別編碼,其分別為U+03C2 ς GREEK SMALL LETTER FINAL SIGMAU+03C3 σ GREEK SMALL LETTER SIGMA,而且沒有視作標準或相容等價。但對於校對和比較用途,軟體應將字串“δῖος Ἀχιλλεύς.”視為等同於“δῖοσ Ἀχιλλεύσ.”,[1]但出於排版用途,這些是有別的,而且不要求複雜文字編排修正。

實作

多數相容複雜文字編排的文字渲染軟體會包含有關特定文字的資訊,而且因此能正確顯示它們而不需要字型檔提供怎樣輸出字元的指令。這樣的軟體通常提供於函式庫當中,包括:

然而,這類軟體不能專門描繪任何缺少指令的文本,那些會包含許多小語種文字。替代性的獲取方式是封裝描繪指令於字型檔中。渲染軟體仍需具備讀取和遵循這些指令的能力,但這相對簡單。

後者的實例即是Apple Advanced Typography英语Apple Advanced Typography(AAT)和Graphite。二者名稱皆包含指令格式及支援的軟體;AAT内置於蘋果作業系統,Graphite適用於Microsoft WindowsLinux系列系統。

OpenType格式首先用於運用第一級訪問的系統(渲染當中的輸出知識,不是字型),但是有少量特性對複雜文字編排予以輔助,如上下文合字。AAT及Graphite指令可嵌入OpenType字型檔。

註記

  1. ^ 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. 

參見

外部連結