Fandom

Scratchpad

フォント - Linux / オープンソースとアラビア語

224,605pages on
this wiki
Add New Page
Discuss this page0 Share

X11 におけるフォントの機構とフォント名

ソフト事情で述べる mlterm を始め、X11 でフォント名を指定する方法を復習します。

X においては、旧来の core font system と、 Xft の二つの描字システムがあり、両者でフォントの指定法が異なります。インストールされたフォントのリストを調べる方法も、後で述べます。

Xft

Xft は始めから TrueType 等の、スケーラブルフォントの良いサポートを目指して開発されたシステムです。最近のソフトは大体こちらを使います。Xft でのフォントの名前は core font system に比べればずっと簡単で、Bitstream Vera Sans とか、Lateef 等となります。

Xft では、フォントの選択のされ方に柔軟性があります。それを制御するため fontconig が提供されています。ユーザが fontconfig を設定するヒントは後述します。

インストールされたフォントのリストが欲しいときは、 fc-list コマンドを使います:

$ fc-list | less

このコマンドは fontconfig-2.3.x 以降についてきます。無ければ、mozilla / firefox 等最近のソフトの、フォント選択メニューに現われる名前を参考にしても良いでしょう。

core X11 font system (伝統的)

旧来の core font system についても述べておきます。このフォントの指定法は、 XLFD, X Logical Font Description と呼ばれています。まずビットマップの例を見ましょう:

-arabeyes-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1

最初の arabeyes はメーカー等の名、二番目の fixed がほぼ、フォントの名前です。medium は太さ、 r はローマン (他の例は斜体、イタリックです)です。 normal は無視して下さい。ほとんど全てのフォントが normal です。

数字のならびでは、最初の 20 が普通、肝心で、文字のサイズです。単位はピクセル、画素です。後は無視して下さい。最後の iso10646-1 はフォントのエンコーディングで、この例ではユニコードです。

ところで、OpenType 等のスケーラブル ( = 任意の大きさに拡大可能な ) フォントでは、少し話が異なります。次を見て下さい:

-misc-lateef-medium-r-normal--0-0-0-0-p-0-iso10646-1

サイズ関係の数字が、全て 0 になっています。スケーラブルなフォントでは、名前さえ指定すれば十分なので、 0 にする約束になっています。

ワイルドカードとして * (アスタリスク) も使える事も、指摘しておきます。

インストールされたフォントのリスト

使う事のできるフォントのリストを手に入れる方法です。 Core system では、xlsfonts コマンドを使います。ワイルドカードが使えるので、アラビア文字を含むフォントはユニコード = iso10646 のものを使いたいので、

$ xlsfonts -fn "-*-iso10646-1" | less

などとすれば良いでしょう。

フォントの手動インストール

特権ユーザになる場合とならないでも済む方法と、両方を紹介します。まず、フォントのファイルを適当なディレクトリに展開します。もちろん、一つのディレクトリにフォントを複数置くことができます。

Xft / fontconfig では、それで終わりです。ただし、フォントをディレクトリに新たに置いた事は、実行中のプロセスには反映されません。必要ならばそのソフトは再起動しましょう。

core system では、更に以下が必要です。

ビットマップの場合

*.bdf というファイルがあるときは、

$ bdftopcf fontfile.bdf; gzip fontfile.pcf

として、pcf ファイルを作ります。圧縮はするのが普通ですが、必要ではありません。 (多分これで大丈夫ですが、詳しい事は知りません。)

True Type、Open Type の場合

主に *.ttf ファイルがある時です。他には *.ttc, *.otf, *.otc 等。そのファイルのあるディレクトリで

$ ttmkfdir

とし、fonts.scale ファイルを生成します。もしかしたら ttmkfdir/usr/sbin 以下にあるかも知れません。なお、mkfontscale というコマンドもほぼ同じ働きをします。

以上が済んだら、

$ mkfontdir

として、fonts.dir ファイルを作れば、そのディレクトリを使うことができます。

特権ユーザになる場合は、xorg.conf なり、xfs の設定ファイルなりを書き足しますが、これは良いでしょう。一般ユーザであっても、

$ xset +fp directory-of-your-fonts

とすれば、X を終了するまで、そのディレクトリのフォントが使えます。ネットワーク上で X が動いている場合とかは、知りません。

fontconfig

fontconfig の、ユーザ側の設定の、利用者:おいばねの場合を述べます。~/.fonts.conf に、以下のように書いています。

<alias>
  <family>mry_KacstQurn</family>
  <family>DejaVu Sans</family>
  <family>Sazanami Gothic</family>
  <default><family>sans-serif</family></default>
</alias>
<alias>
  <family>sans-serif</family>
  <prefer>
    <family>mry_KacstQurn</family>
    <family>DejaVu Sans</family>
    <family>Sazanami Gothic</family>
  </prefer>
</alias>

こうしておいて、firefox などで日本語、欧文、アラビア語のフォントとして mry_KacstQurn を選択します。すると、それらの中で、

  1. アラビア文字があれば、mry_KacstQurn が使われます。
  2. mry_KacstQurn はアラビア文字以外は含まないので、アルファベットなどがあれば DejaVu Sans が使われます。
  3. 幸いにも DejaVu Sans には漢字などは含まれないので、日本語の表示には、Sazanami Gothic が使われます。

補足です。たとえば é という文字が必要としましょう。fontconfig は選択したフォントが é を含まない時、他のフォントをあさり、もし é を含むフォントがインストールされているなら、必ずそのようなもの (のどれか) を返します。その時、<prefer>...</prefer> で指定したフォントは先に検索されるので、上でうまく行く、という訳です。

なおマニュアルを読むと、lang 属性を調べてフォントを指定できるような印象を受けますが、それは無理のようです。

firefox で使えるフォントは?

ソフト事情を見て下さい。

ラテン文字のフォント

ラテン文字 (ローマ字とも、いわゆるアルファベット) の良いフォントも無いと不便なので、紹介しておきます。

ラテン文字のフォントは沢山ありますが、 1. 教科書で見るような、アラビア文字のローマ字転写をサポートして、 2. サンセリフを含み 3. かなり自由なライセンスのものとして、 DejaVu Fonts を挙げておきます。思うに、これは Linux で標準の位置を占めるべきです。

これは、今日では X Window System にも含まれる Bitstream Vera をベースにして、拡張をほどこしたものです。Bitstream Vera は、アラビア文字のローマ字転写で出てくるような、ユニコードでは定義されているものの、ちょっと標準ではない文字はサポートされていません。しかも 2003 年に公表されて以来、全く変更がなされていません。

DejaVu Fonts では、長母音の上付き棒も、下点も大丈夫です。また、2006 年秋の時点でも、やむ事なく手入れがなされているようです。

また、私 (利用者:Oibane) はコンピュータの画面上ではサンセリフ体を使いますが、 DejaVu Fonts はこれを含みます。色々な付加記号をサポートするフォント自体は他にも沢山ありますが、大体がセリフ付きです。サンセリフは、意外と少ないです。

文献、リンク

X Window Systemのフォントに関連した文献、リンクです。

  • README.fonts (英語のみ ?) 基本的な事はこれでおさえられます。X11R6.8.2 に附属するファイルです。日付は 2004 年 3 月になっています。Gentoo Linux では、/usr/share/doc/xorg-x11-xxxxx/ 以下にあります。どこかに日本語訳は無いでしょうか。
(2006 年秋)以上は 2005 年に書いたのですが、Gentoo Linux の場合、Xorg 7.0 になってからはインストールされないようです。インターネットで検索して下さい。
  • xlfd.ps (英語) X11 にかなり前から付いてくるファイルです。フォントの指定法 X Logical Font Description の説明が書いてあります。読みやすくは無いので、入門用ではありません。
(2005 年) Gentoo Linux では、 doc フラグを有効にして xorg-x11 をビルドしないと、インストールされません。無い人は、検索エンジンで探すのが良いでしょう。 Postscript が読めない人は、ghostscript をインストールして、 $ ps2pdf xlfd.ps xlfd.pdf を実行すれば、 pdf に変換されます。
(2006 年) Gentoo Linux では、xorg 7.0 以降ではインストールされなくなりました。
  • 書体関係 Wiki 主にフリーな、日本語のフォントについての総合情報です。 Unix User 誌 2004 年 3 月号の記事「フォント関連の基礎知識 (の原稿)」は、おすすめです。

ページ一覧



Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.