14.3 フォントのインストールと設定

SUSE Linuxで追加のフォントをインストールするのは簡単です。フォントを、X 11フォントパスにある任意のディレクトリにコピーするだけです(14.3.1項 「X11コアフォント」を参照)。フォントを使用できるようにするには、インストール先ディレクトリが、/etc/fonts/fonts.confに設定されているディレクトリのサブディレクトリでなければなりません(14.3.2項 「Xft」を参照)。

フォントファイルは、/usr/X11R6/lib/X11/fonts/truetypeなどの適切なディレクトリに(rootユーザで)手動でコピーできます。また、この作業は、KDEコントロールセンターでKDEフォントインストーラを使用して行うこともできます。結果は同じです。

フォントを実際にコピーする代わりに、シンボリックリンクを作成することもできます。たとえば、マウントされているWindowsパーティション上にライセンスを取得しているフォントがあり、それらのフォントを使用したい場合は、シンボリックリンクを作成します。次に、SuSEconfig--module fontsコマンドを実行します。

SuSEconfig--module fontsコマンドは、フォントを設定するスクリプト、/usr/sbin/fonts-configを実行します。このスクリプトが実行する事柄については、スプリプトのマニュアルページ(man fonts-config)を参照してください。

手順は、ビットマップフォント、TrueTypeフォントとOpenTypeフォント、およびType1 (PostScript)フォントの場合と同様です。これらのタイプのフォントはすべて、任意のディレクトリにインストールできます。CID-keyedフォントでは、若干異なる手順が必要です。詳細については、14.3.3項 「CID-Keyedフォント」を参照してください。

X.Orgには、完全に異なる2つのフォントシステムがあります。それは、古いX11コアフォントシステムと新しく設計されたXftおよびfontconfigシステムです。以降のセクションでは、これらの2つのシステムについて簡単に説明します。

14.3.1 X11コアフォント

今日、X11コアフォントシステムは、ビットマップフォントだけでなく、Type1フォント、TrueTypeとOpenTypeフォント、CID-keyedフォントなどのスケーラブルフォントもサポートしています。スケーラブルフォントは、アンチエイリアスとサブピクセルレンダリングなしでサポートされており、多数の言語用のグリフを持つ大きいスケーラブルフォントのロードには時間がかかります。Unicodeフォントもサポートされていますが、使用すると時間がかかり、より多くのメモリが必要になります。

X11コアフォントシステムには、その他にも固有の弱点がいくつかあります。時代遅れになっており、これ以上拡張することはできません。下位互換性のために保持されていますが、可能なときはいつでも、新しいXftおよびfontconfigシステムを使用してください。

Xサーバは、操作のためにどのようなフォントが使用可能で、そのフォントがシステム内のどこにあるかを認識する必要があります。この情報は、有効なすべてのシステムフォントディレクトリへのパスを含むFontPath変数で処理されます。これらの各ディレクトリでは、ファイルfonts.dirにそのディレクトリ内で使用可能なフォントのリストがあります。FontPathは、起動時にXサーバにより生成されます。設定ファイル/etc/X11/xorg.confの各FontPath エントリ内で、有効なファイルfonts.dirが検索されます。これらのエントリは、Filesセクションにあります。実際のFontPathを表示するには、xset qを使用します。このパスは、xset を使用して実行時に変更することもできます。パスを追加するには、xset +fp <path>を使用します。不要なパスを削除するには、xset -fp <path>を使用します。

Xサーバがすでにアクティブである場合、マウントされたディレクトリに新たにインストールされたフォントは、コマンドxset fp rehashで使用可能にできます。このコマンドは、SuSEconfig --module fontsによって実行されます。コマンド xset が実行中の X サーバにアクセスする必要がある場合、これは、SuSEconfig--module fonts が実行中の X サーバにアクセスできるシェルから起動されている場合にのみ可能です。これを行う最も簡単な方法は、suコマンドとrootパスワードを入力して、権限をrootにすることです。suは、Xサーバを起動したユーザのアクセス権をrootシェルに移します。フォントが正しくインストールされ、X11コアフォントシステムを介して使用可能かどうか検査するには、コマンドxlsfontsを使用して、すべての使用可能なフォントのリストを表示します。

デフォルトでは、SUSE LinuxはUTF-8ロケールを使用します。そのため、Unicodeフォントを使用するようにします(xlsfontsの出力中でiso10646-1で終了するフォント名)。使用可能なすべてのUnicodeフォントは、xlsfonts | grep iso10646-1コマンドでリストを表示できます。SUSE Linuxで使用可能なほとんどすべてのUnicodeフォントには、少なくともヨーロッパ言語に必要なグリフが含まれています(以前はiso-8859-*としてエンコードされていました)。

14.3.2 Xft

最初から、Xftのプログラマは、アンチエイリアスを含むスケーラブルフォントが適切にサポートされるようにしています。Xftが使用された場合、フォントは、X11コアフォントシステムにおけるXサーバではなく、そのフォントを使用するアプリケーションによってレンダリングされます。このようにすると、それぞれのアプリケーションは実際のフォントファイルにアクセスでき、グリフのレンダリング方法を完全に制御できます。これが、多数の言語においてテキストを正しく表示するための基本となっています。フォントファイルに直接アクセスできることは、印刷のためにフォントを組み込んで、画面出力と同じ印刷出力を得るのに役立ちます。

SUSE Linuxでは、2種類のデスクトップ環境KDEとGNOME、Mozilla、および他の多くのアプリケーションが、すでに Xftをデフォルトで使用しています。そのため、Xftはすでに、古いX11コアフォントシステムよりも多くのアプリケーションで使用されています。

Xftは、fontconfigライブラリを使ってフォントを検索し、フォントのレンダリング方法を制御します。fontconfigのプロパティは、グローバルな設定ファイル/etc/fonts/fonts.confとユーザ固有の設定ファイル~/.fonts.confによって制御されます。これらのfontconfig設定ファイルはどちらも、以下の行で始まっていなればなりません。


<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

さらに、以下の行で終っていなければなりません。

</fontconfig>

フォントを検索するためのディレクトリを追加するには、以下のような行を付加します。

<dir>/usr/local/share/fonts/</dir>

ただし、これは通常、必要ありません。デフォルトで、ユーザ固有のディレクトリ~/.fontsは、すでに/etc/fonts/fonts.confに入っています。その結果、追加のフォントをインストールするには、それらのフォントを ~/.fontsにコピーするだけです。

また、フォントの見栄えを制御する規則を導入することもできます。例えば、次のように入力して、すべてのフォントについてアンチエイリアスを無効にします。


<match target="font">
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

あるいは次のように入力します。


<match target="font">
 <test name="family">
  <string>Luxi Mono</string>
  <string>Luxi Sans</string>
 </test>
 <edit name="antialias" mode="assign">
 <bool>false</bool>
 </edit>
</match>

この場合、特定のフォントのアンチエイリアスが無効になります。

デフォルトで、ほとんどのアプリケーションは、フォント名のsans-serif (または等価のsans)、serif、あるいはmonospaceを使用します。これらは、実際のフォントではなく、言語設定に応じて適切なフォントに解決されるエイリアスにすぎません。

ユーザは、規則を~/.fonts.confファイルに追加して、それらのエイリアスを簡単に好みのフォントに変換できます。


<alias>
 <family>sans-serif</family>
 <prefer>
  <family>FreeSans</family>
 </prefer>
</alias>
<alias>
 <family>serif</family>
 <prefer>
  <family>FreeSerif</family>
 </prefer>
</alias>
<alias>
 <family>monospace</family>
 <prefer>
  <family>FreeMono</family>
 </prefer>
</alias>

ほとんどすべてのアプリケーションで、これらのエイリアスがデフォルトで使用されるので、システム全体が影響を受けます。そのため、個々のアプリケーションでフォント設定を変更しなくても、ほとんどどこででも好みのフォントを簡単に使用できます。

fc-listを使用して、どのフォントがインストールされており、使用可能になっているか調べます。たとえば、fc-listコマンドを実行すると、すべてのフォントのリストが表示されます。使用可能なスケーラブルフォント(:scalable=true)の内、どのフォントがHebrew (:lang=he)に必要なすべてのグリフ、それらのフォント名(family)、それらのスタイル(style)、それらの幅(weight)、およびフォントを含むファイルの名前を含んでいるか調べるには、次のコマンドを入力します。

fc-list ":lang=he:scalable=true" family style weight

上記のコマンドの出力は、以下のようになります。

    

FreeSansBold.ttf: FreeSans:style=Bold:weight=200
FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
FreeSerif.ttf: FreeSerif:style=Medium:weight=80
FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
FreeMono.ttf: FreeMono:style=Medium:weight=80
FreeSans.ttf: FreeSans:style=Medium:weight=80
FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

fc-listで調べることができる重要なパラメータ:

表 14.2 fc-listのパラメータ

パラメータ

意味と有効な値

family

フォントファミリの名前。たとえば、FreeSans

foundry

フォントメーカ。たとえば、urw

style

フォントスタイル。たとえば、MediumRegularBoldItalicHeavy

lang

フォントがサポートする言語。例えば、ドイツ語にはde、日本語にはja、繁体字中国語にはzh-TW、簡体字中国語にはzh-CN

weight

フォント幅。たとえば、通常では80、ボールドでは200

slant

スラント。通常、なしでは0、イタリックでは100

file

フォントを含むファイルの名前。

outline

アウトラインフォントではtrue、他のフォントではfalse

scalable

スケーラブルフォントではtrue、他のフォントではfalse

bitmap

ビットマップフォントではtrue、他のフォントではfalse

pixelsize

ピクセル単位でのフォントサイズ。fc-listとの関連で、このオプションはビットマップフォントでのみ有効。

14.3.3 CID-Keyedフォント

他のフォントタイプとは異なり、CID-keyedフォントは任意のディレクトリに簡単にインストールすることはできません。CID-keyedフォントは、/usr/share/ghostscript/Resource/CIDFontディレクトリにインストールしなければなりません。これは、Xftおよびfontconfigとは関係ありませんが、GhostscriptとX11コアフォントシステムには必要です。

[Tip]ティップ

X11で使用可能なフォントの詳細については、http://www.xfree86.org/current/fonts.htmlを参照してください。