■ フォントについて



Zaurus SL-A300 で中国語や韓国語を表示することはデフォルトではできません。入力ソフトの Effy-CJK をインストールすれば、これらのフォントも自動的にインストールされ中国語や韓国語も表示できるようになりますが、フリーのものでは Qt/Embedded をインストールすれば利用できるフォントがいくつか入っており、その中の unifont を Zaurus に転送・コピーすれば表示可能になります。ただし、アプリケーションによってフォントの設定ができるものとできないものがあります。JustReader や OpieReader、ZBEDic 等は設定できますが、残念ながら Zten や TTextReader では設定できません。

  ◆フォントについて参考になるページ

    ・Zaurus別館
       Windows用の TTF フォントを変換してSL-C700 で利用した報告。
    ・ザウルス/中国語対応
       上記とほぼ同様な内容ですが、TTF → BDF → QPF と変換しています。
    ・Qt/Embedded でのフォント: 
       Qt/Embedded の SDK ツールキット等を配布しているTrolltec社のサイト。
       参考になると思い、下に翻訳しておきました。

  ◆SL-A300 の特徴(限界)

    上記「Zaurus別館」さんのページには、フォントをコピーするだけではなく同
    じ場所にある fontdir ファイルにフォント情報を追加しなければならない、
    とある。しかし、SL-A300 では、本来のフォントファイルと fontdir は 
     /usr/QtPalmtop.rom/lib/fonts というROM上にあり、/opt/Qtopia/lib/fonts/ 
    にフォントを追加コピーしても、前者へのリンクファイルである fontdir を書
    き換えることが出来ない

。したがって、下記の翻訳にあるように、本来のQPFフ
    ォントはコピーするだけで利用できるが、TTFやBDFから変換したフォントは使
    用できない...? ZBEDicのページも unifont はあるのですが TTF か BDF から
    の変換ファイルのため、同様に使用できません。

  ◆今回の手順

    1. 上記 Trolltc社のページから、Qt/Embedded をLinux(Vine Linux 2.5)上
      にダウンロードし解凍する。
        /usr/src/redhat/SOURCES/qt-embedded-2.3.7.tar.gz
       # tar xzvf qt-embedded-2.3.7.tar.gz 

    2. ./qt-2.3.7/ へ移動し、環境設定とコンパイルをする。
         # cd ./qt-2.3.7
         # ./configure
         # ./make

    3. ./qt-2.3.7/tools/makeqpf/ にある unifont_160_50.qpf を SL-A300 の
      /opt/Qtopia/lib/fonts/ にコピー。これで、unifont が使える。

    フォントを取り出すだけなら、2.は必省略できます。あるいはWinZip等で単
     純にWomdows上で解凍するだけでもできます。


  ■ Qt/Embedded のフォント(英語原文及び日本語訳)



【英語原文】 (省略。オリジナルの掲載場所はこちら

-----------------

【日本語訳】

Qt/Embedded におけるフォント

サポートしているフォーマット
Qt/Embedded がサポートする四つのフォントフォーマット:

TrueType (TTF) - 現在 MS-Windows, Apple Macintosh で標準の, そして
         X11 で一般化してきているスケーラブル・フォント
        (拡大しても形が歪まない).
Postscript Type1 (PFA/PFB) - しばしばプリンターで用いられているスケ
        ーラブル・フォント, また X11 でも一般的. これらは機
        能性においては TTF と似ている、したがってこのドキュ
        メントでは深くは議論しない。
Bitmap Distribution Format fonts (BDF) - スケーラブルではないフォン
        トの標準的なフォーマット。標準的 X11 の部品として多
        くの BDF フォントが供給されている。そして、これらの
        多くは Qt/Embedded で使用できる。
Qt Prerendered Font (QPF) - Qt/Embedded に特化した、軽くて非スケー
        ラブルなフォント・フォーマット。

常に使用可能な QPF を除き、これらのフォント・フォーマットのサポートは Qt/Embedded の特性定義(※下記)を用いることに依存して使用可能になったり不可能になったりする。Qt/Embedded には、どのフォントからも QPF フォントファイルを作る(書く)ためのサポートがある。このようにして、初めに TTF や BDF のフォーマットを使用可能にして、必要とするフォント及びサイズの QPF ファイルとして保存し、その後で TTF や BDF のサポートを取り除くことができる。

メモリー条件

TTF フォントでは、与えられたポイントサイズのフォントの各々の文字は、描画あるいは表現(metrics)操作で最初に使用される時にのみ翻訳される(rendered)。BDF フォントでは、全ての文字は、フォントが使用される時に翻訳される(rendered)。QPF フォントでは、文字は、Qt が描画する時に使用するのと同じフォーマットで保存される。

例えば、ASCII 文字を含む10ポイントの Times フォントは、QPF フォーマットで保存される時には約1300バイトを使用する。

QPF フォーマットが構造化される方法を利用する時には、Qt/Embedded は それを読んだり解釈したりするよりは、そのデータをメモリーにマッピングする。このことは、RAM の消費をさらに削減する。

スケーラブルフォントは、フォントごとにより多くのメモリーを使用するが、各フォントの多くの異なるサイズが必要な場合には、これらのフォントはメモリーの節約を可能とする。

スムース・フォント

TTF、PFA、QPF フォントは、特に低解像度の装置において、より読みやすくするためにスムースな対-別名フォント(anti-aliased fonts)として翻案されることができる。スムース・フォントと非スムース・フォントの違いは下に説明されている(その違いを見るためには、ディスプレイを低解像度に変更する必要があるかもしれない)。

Qt/Embedded 2.2.1 では、スムース・フォントは非スムース・フォントの8倍のメモリーを使用する。この倍率は構造化可能な2または4に縮小される(例.通常の過剰な256段階の濃淡ではなく4段階と16段階の濃淡)。

Unicode

Qt/Embedded で使用される全てのフォントは、ユニコードの文字エンコーデングを使用する。今日利用できる多くのフォントは実際に全てのユニコード文字を含んではいないが、それらはユニコード文字整列(ordring)を使用する。一つの完全な16ポイントユニコード・フォントは1Mb以上のメモリーを使用する。

フォント定義ファイル

Qt/Embedded アップリケーションは起動する時に、$QTDIR/etc/fonts/fontdir あるいは /usr/local/qt-embedded/etc/fonts/fontdir ファイルを探す。このファイルは、そのアップリケーションで利用できるフォントを定義している。それは次の書式を持つ。

name file renderer italic weight size flags

ここで:

name  Helvetica, Times, etc. 
file  helvR0810.bdf, verdana.ttf, etc. 
renderer  BDF or TTF 
italic  y or n 
weight  50 is Normal, 75 is Bold, etc. 
size  0 for scalable or 10 times pointsize (eg. 120 for 12pt) 
flags  Flag characters:
s = smooth (anti-aliased)
u = unicode range when saving (default is Latin 1)
a = ascii range when saving (default is Latin 1)

フォント定義ファイルは QPF フォントを指定しない。−これらは fontdir ファイルを含むディレクトリから直接に読み込まれ、name_size_weightitalicflag.qpf と名付けられなければならない。ここで:

name  helvetica, times, etc. (lowercase) 
size  10 times pointsize (eg. 120 for 12pt) 
italicflag  i for italic or nothing. 
weight  50 is Normal, 75 is Bold, etc. 

アプリケーションが、-savefonts コマンドラインオプションを付けて起動する場合には、常に QPF フォント以外のフォントが使用され、対応する QPF ファイルは節約される。このことは、そのアップリケーションのフォント使用を容易に見つけることを可能にし、Qt/Embedded オプションに TTF と BDF サポートをさせないことにより、あるいは 、Qt/Embedded のライブラリ・ソース・コードの kernel/qapplication_qws.cpp で 初期化を qws_savefonts で修正することにより、アプリケーションのメモリー使用を最終的に減少させることができるよう QPF ファイルを生成させる。メモリー節約の最大の場合には、もしあなたがそのフォントで必要としているのが部分的描画フォント文字のみ(partially-rendered fonts)(例. "Product NameTM"における文字のみ)であることが確かなら、それを節約することを可能にする。この機能については、QMemoryManager::savePrerenderedFont() を見よ。

フォントファイルの命名規則であるフォント定義ファイルと、QPF ファイルのフォーマットは Qt/Embedded のバージョンにより変化する可能性がある。

可能になれば、Qt/Embedded は TrueType と Type1 のサポートを実装するために、強力な FreeType2 ライブラリを使用する。

====================

<<特性定義ファイル>>

ファイル src/tools/qfeatures.h は、ファイル src/tools/qconfig.h をインクルードしている。qconfig.h を修正することにより、インストールに際し使用可能にしたい全Qt機能のサブセットを定義できる。

そのような修正は Qt/Embedded のプラットホーム上でのみサポートされていることに注意。そこでは、Qtのサイズを小さくすることが重要であり、アプリケーションの組み合わせもしばしば固定されている。

config.h 定義ファイルは、使用不可能にする特性のマクロを単純に定義する。幾つかの特性は他の特性に依存しており、これらの依存関係は qfeatures.h に述べられている。

可能なオプション:

マクロ    使用不可    自動的にセット
............(フォント以外の項目省略).........
      フォント
 
QT_NO_TRUETYPE    TrueType (TTF and TTC) font file format, only
          used by Qt/Embedded. 
QT_NO_BDF    Bitmap Distribution Format (BDF) font file format,
             only used by Qt/Embedded. 
QT_NO_FONTDATABASE    Font database.
 
.....................