KDE Project topmenu

KDE Anti-Alias フォント HOWTO

ディストリビューション標準でアンチエイリアスに対応していることが多くなったので設定を中心に解説するように書き換えました。


Anti-Aliasとは

Anti-Alias(アンチエイリアス)とは簡単に説明すると、中間濃度を使用することにより文字のギザギザ(ジャギ)を視覚的に削減することです。また、同様に視覚的な解像度も上がります。欠点としては小さくした時にぼやけてみえるということがありますが、この欠点を補って余りある効果が期待できるのがAnti-Aliasです。

(図1 左)KDE-2.1.1日本語環境でAnti-Alias。ポイント数は10。Byte Code Interpreterを未使用。フォントのスタイルを重視したアルゴリズムです。
(図2 右)KDE-2.2alpha2日本語環境でAnti-Alias。ポイント数は9。Byte Code Interpreterを使用。ディスプレイのピクセルに合わせるアルゴリズムです。
Without Byte Code Interpreter With Byte Code Interpreter

一部のアプリケーションでは独自にAnti-Aliasを実装してきましたが(一般的なのではxdviやgvなど)、いままでFreeUNIX上でAnti-Aliasの標準といえるフレームワークというのは存在していませんでした。しかしXFree-4.0.2から導入されたXFreeの独自拡張により、Anti-Aliasを扱うことが容易になりました。その機能をQtから利用できるようにしたパッチが正式にQt-2.3.0から導入され、KDE-2.1からはそのQtのAnti-Alias機能を利用できるようになっています。つまり現在利用できる最新の環境を整えればKDEでAnti-Aliasされたフォントを表示させることが可能です。

ここではKDEでどうやってAnti-Alias機能を利用するか、またその設定方法について解説していきます。この機能を解説したドキュメントは少なく、このドキュメントは少ない情報を元にして書かれているため間違いを含むかもしれません。なにか間違いを見つけたらバグリポートをお願いします。

おおまかな設定

  1. XftConfigにTrueTypeフォントがあるディレクトリを記述します。
    設定例 ファイル:/usr/X11R6/lib/X11/XftConfig
    --------------
    dir "/usr/X11R6/lib/X11/fonts/truetype"
    --------------
    Xftが独自にディレクトリを読み込むため、fonts.dir, TTCap
    の設定は必要ありません。このディレクトリにTrueTypeフォントをたくさん入れておいて下さい。
  2. X起動時にfreetypeモジュールか、xttモジュールを読み込みます
    設定例 ファイル:/etc/X11/XF86Config-4
    --------------
    Section "Module"
    Load "freetype"
    # Load "xtt"
    EndSection
    --------------
    (注) freetypeモジュールとxttモジュールは同時に読み込めないのでどちらか片方を使用します。
  3. KDEコントロールセンターの「ルック&フィール→スタイル」のところの「フォントとアイコンにアンチエイリアスを使う」
    という項目をチェックして下さい。
  4. 使用したいフォントをKDEコントロールセンターで選択します。
  5. KDEセッションの前後でもAnti-Aliasをかけたい場合は
    % export QT_XFT=true
    としておくとX起動中常にAnti-Aliasがかかります。逆にAnti-Aliasを使いたくない場合、例えば
    % QT_XFT=false kedit &
    とやるとAnti-Aliasのかかっていないkeditが立ち上がります。

細かいチューニング

注:以下の不具合の大部分はXに対するパッチを当てることで解決可能です。

フォント名にはエイリアスが付けられます。これはXftのフォント名(XFLDではありません!)とエイリアスの仕方をXftConfigに書いていくわけですがここで問題があります。DynalabとかのいわゆるKDEコントロールセンターで文字化けしているフォントはエイリアスが付けられないのです。ここでなぜフォント名が文字化けするかと言うとTrueTypeフォントファイル(ttf,ttc)が日本語のShift-JISでフォント名を保持しているからです(これはJKUGの掲示板で指摘がありました)。これを修正するためにはいくつか方法が考えられます。Shift-JIS→UTF8の変換をして各プログラムに対応させるのが一番きれいなやり方かもしれませんが対応していないプログラムのことを考えるとこれはあまり使えません。またフォント名の変換テーブルを持つというやり方もありますが、そこまでやるんだったら該当部分を書き換えたことが早いと言うことで私はフォントの中身を書き換えてしまいました^^;;。(これはもしかしたらライセンスに抵触するかも知れません。フォントメーカーの方はこれからの国際化のことを考えて何とかしてください。)Dynalab,RYOBIフォントでのフォント名の文字化け、Canon,WadalabフォントでKDEが起動しないというのも同じ原因だと思われます。というこで本当はフォントに対するxdeltaパッチでも配布したいのですがここではフォント修正法について簡単に書いておきます。

  1. Shift-JIS対応のバイナリエディタでttc,ttfファイルを開く。(日本語は出ませんがKHexeditでも該当箇所は一応分かります)
  2. 日本語フォント名文字列のところをASCII文字列に変える。ここで日本語フォント名文字列とASCII文字列のバイト数が同じになるようにしてください。
  3. TTCの場合はフェイスの数の分だけ変更します。

文字化けしないフォント名がつけられたら次にいよいよエイリアスをXftConfigで付けます。KDEではfixedはfixedしか使えないので私は以下のようなエイリアスを付けています。

# alias 'fixed' for 'DFGothicP-W5'
match any family == "fixed" edit family =+ "DFGothicP-W5";

また一部アプリケーションにフォント決め打ちの部分があるので以下のエイリアスをつけて文字化けを回避しています。
# alias for Japanese
match any family == "Helvetica" edit family =+ "DynalabDFGkakoGothicW5";
match any family == "Lucida" edit family =+ "DynalabDFGkakoGothicW5";
match any family == "LucidaTypewriter" edit family =+ "DynalabDFGkakoGothicW5";
match any family == "Bitstream charter" edit family =+ "DynalabDFGkakoGothicW5";
match any family == "Lucidux Sans" edit family += "DynalabDFGkakoGothicW5";

その他にもXftConfigではフォントサイズによってアンチエイリアスをオフにするなんてことが可能です。 詳しくはリンクのところにあるページを御覧ください。

動作実績・不具合

いくつかの環境での動作報告です。環境特有のものも含まれるかも知れないので注意して下さい。

動作実績

不具合

フォント情報

以下はJKUGの掲示版での情報です。投稿していただいた方々、有難うございました。

http://www.on.cs.keio.ac.jp/~yasu/jp_fonts.html
に東風明朝フォント(旧 watanabe-light)と東風ゴシック (or 東風-和田研ゴシック)
があります。これはUnicodeマッピングなので問題なく使えると思います。
#これってKondara-2.0に収録されてますよね?
(注)東風フォントはまだ試験公開中です。製作協力者を募っています。
あと
http://www.paburi.com/paburi/tools.asp
に、無料でダウンロードできるDFパブリフォントがあります。
#ただしパブリの電子本の表示に使うことしか許可されていません。
#また印刷も禁止されているようです。

リンク

XftConfigの設定方法

補足:用意するもの(必要最低バージョン)

なおここで試した環境は Linux Mandrake 8.0beta2です。XFreeはディストリビューションのものを使っています。またRedHat Linux 7.1以降ではデフォルトでAnti-Aliasが利用できることを確認しています。

補足:手動インストールの手順

現在最新のディストリビューションでは以下のように自前でコンパイルする必要はありません。

  1. XFree-4.0.2
    ディストリビューションのバイナリを使用するか、ソースからコンパイルして下さい。ちなみに数ヵ月前のDebian Woody/Sidではxfree-dev パッケージにlibXft, libXrender が含まれますが、スタティックライブラリのみの提供ですのでこれらのライブラリを作り直すためXの再コンパイルが必要です。もしくは以下のファイルXft-debian.tar.bz2を/usr/X11R6/lib以下で展開して下さい。これはLinux Mandrake 8.0beta2のファイルを持ってきたものです。また、カードによってはRENDER拡張がサポートされていない場合があります。サポートされているかどうかはxdpyinfoを実行した時に"RENDER"拡張が表示されるかどうかで調べられます。
  2. FreeType2
    ディストリビューションのものを使うか、http://www.freetype.org/からダウンロードします。
  3. Qt-2.3.0
    configureで-xftオプションを付けてMakeします。
  4. KDE-2.1
    XFTが有効になっているQtでコンパイルするとコントロールセンターの「ルックアンドフィール→スタイル」のところに「フォントとアイコンにアンチエイリアスを使う」という項目があるはずです。なければKDEを再コンパイルしましょう;)。
  5. TrueTypeフォント
    商用パッケージを買ったことがある方なら手元にあるでしょう。フリーのものもありますが商用フォントの方が種類も多く奇麗です。

日本 KDE ユーザ会トップページ


このサイトは日本KDEユーザ会が著作権を有します。本著作権を表示する限りにおいて転載を許可します。
Copyright (C) 1999-2002 Japan KDE Users' Group. All Rights Reserved.
このサイトに関するご意見・お問い合わせはこちらまで。
最終更新日:2002年08月19日 by Taiki Komoda Valid XHTML 1.1! メーリングリスト ダウンロード ニュース KDEとは