複雑なテキスト配置
複雑なテキスト配置(ふくざつなテキストはいち)では、コンピュータでのテキストデータ処理において複雑なテキスト配置(CTL[注釈 1])あるいは複雑なテキスト描画[注釈 2]と呼ばれる技法について解説する。
これは、入力されたテキストデータを画面や印刷紙面に表示する過程で複雑な変換が必要な用字系 (文字体系) の組版方式のことである。そのような処理を必要とする用字系や書記系を複雑な用字系[注釈 3]あるいはコンプレックステキスト言語(CTL[注釈 4])呼ぶこともある。このような用字系では、保存されたテキストデータは表示される結果に単純に対応していない。以上に挙げたような表現はソフトウェアの国際化の分野で用いられている。
複雑なテキスト配置が必要な書記系の例としては、アラビア文字やブラーフミー系文字の用字系 (デーヴァナーガリーやタイ文字など) が挙げられる。
解説
[編集]複雑なテキスト配置は合字 (リガチャ) の考えかたを一般化したものと言える。ラテン文字などの多くのアルファベットに属する文字体系では、リガチャは通常、審美的な観点から考慮が払われるだけの副次的なものだが、アラビア文字などを適切に組版するために必要となるリガチャと、ラテン文字などの筆記体の組版で必要となるそれとには、本質的な違いはない[注釈 5]。一方、漢字の文字の多くは、複数の構成要素の組み合わせとなっているため合字として表現することもできなくはないが、通常は文字をひとつひとつ符号化している。そのため、組版には技巧的なレイアウト技術を必要としないかわりに多数の活字が必要となる。リガチャを考慮しないやりかたの例としては、ギリシア文字の語末形のシグマ(ς)がある。これは通常の σ に対して、語の終わりの文脈で用いる字形変種である。Unicodeでは両方の変種を別々に U+03C2 および U+03C3 として符号化している。この場合、整列や比較の際にはソフトウェアの側で「δῖος Ἀχιλλεύς」のような文字列を「δῖοσ Ἀχιλλεύσ」と同等とみなして処理しなければならない。Unicode 標準では、ソフトウェアに対して ς と σ を正準等価あるいは互換等価であると扱うように求めてはいない。
コンプレックステキスト言語で解決しなければならない問題としては、つぎのような性質がある。
- 双方向テキスト。文字が右から左へも、左から右へも描画される。
- 文脈依存の字形変更 (リガチャ)。文字が位置や前後のほかの文字に応じて字形を変える。たとえばアラビア文字では、文脈に応じて4種の字形をとることがある。
- 配列。文字を表示する順序が、論理的な順序と同じにならない。たとえばデーヴァナーガリー (左から右へ書く) では、「短い/i/」の書記素を先行する子音の左側 (「前」) に書く。कि ki では、ि -i を क k- の左側に描画し、弧の部分は上を越えて右側に至るように描画しなければならない。
- 行や語の分割。
実装
[編集]この節の加筆が望まれています。 |
脚注
[編集]注釈
[編集]関連項目
[編集]外部リンク
[編集]- Examples of Complex Rendering 複雑なテキスト描画の例 - 国際SILによる、世界のさまざまなコンプレックステキスト表記体系の例。
- Complex Text Layout - The Open Group のデスクトップ技術。
- Mozillaでのインド系文字対応 - その他のCTL用字系。
- Project SILA - Graphite と Mozilla を統合するプロジェクト。
- SolarisのCTLアーキテクチャ - Solarisの国際化に関するホワイトペーパー。
- Complex Scripts - Microsoft Global Development and Computing Portal
- Theppitak's Homepage - タイ語情報処理に関する情報。
- D-Type Portable Unicode Text Module - An independent, proprietary and portable software component for complex text layout