Fandom

Scratchpad

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

215,877pages on
this wiki
Add New Page
Discuss this page0 Share

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.


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 月号の記事「フォント関連の基礎知識 (の原稿)」は、おすすめです。

ページ一覧



Also on Fandom

Random wikia