2

プログラムを Windows から Linux に移植しています。
複雑なテキストの場合、Windows では uniscribe ライブラリを呼び出します。Linuxでicuを使用する予定です。
1. uniscribe: scriptItem 関数は、スクリプトを異なるフォントまたは方向として多くのスクリプト項目に分割します。icuの同じ機能はどれ?
2. icu の複雑なテキストに関するスニペットを知っている人はいますか?

ありがとうケン

4

1 に答える 1

3

icu が適切な選択であるかどうかはわかりません。メインの Linux ユーザーは常に LibreOffice であり、LibreOffice はテキスト エンジンを ICU から移植し終えたばかりです (実際には、レガシー コードの懸念から、icu の形式を保持しているように見えますが、 harfbuzz-ng テキスト シェーパーへのブリッジ; このブリッジ モードが汎用 ICU バージョンで使用できるかどうか、または使用する価値があるかどうかはわかりません)。

Linux での現在の正規のフォント スタックは、fontconfig + freetype + freebidi + harfbuzz-ng です (一部忘れている可能性があります)。テキストを扱う大規模な Linux プログラムはすべて、テキストを何らかの形で使用します。これは統合するコンポーネントが多く、フォント形式がより複雑になるにつれて新しいライブラリが追加されるため、通常はより高いレベルのライブラリを介してアクセスされます。通常パンゴである他のすべての人にとって QT である QT アプリの場合 (レガシーの理由で icu のような独自の構成を使用する Libreoffice のような一部のアプリを除く)。また、多くの場合、アプリはテキスト以上のものを描画する必要があるため、pango 自体は直接使用されず、cairo を介して使用されます。

したがって、icu に落ち着く前に、少なくとも pango-cairo を見てみることをお勧めします。これは、ネット上でより多くのドキュメントや例を見つける可能性が高い、より一般的な選択です。
https://developer.gnome.org/pango/unstable/pango-Cairo-Rendering.html
http://cairographics.org/FAQ/#using_pango
http://x11.gp2x.de/personal/google/

*nix でのテキスト ライブラリの主な開発者の 1 人が、テキスト ライブラリの統合が始まった数年前に次の要約を書きました: http://behdad.org/text/

PS。pango の scriptItem に相当するのは itemize のようです:
https://developer.gnome.org/pango/unstable/pango-Text-Processing.html#pango-itemize

于 2013-08-30T07:19:22.460 に答える