複雜文字編排
複雜文字編排(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字型檔。
註記
[編輯]- ^ 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演示雙向文字段落的複雜文字塑形及編排的應用程式