Linuxはフォントをどのように管理しますか?


11

私がWindowsを使用していたとき(非常に昔のことです!)、Mac OS Xでは、OSとすべてのプログラム(Windowsのフォントフォルダ、Macのフォントブック)によって共有およびアクセスされるフォントの中心的な「リポジトリ」が常にありました。 OS X)。

Linuxではフォントはどのように管理されますか?すべてのプログラム(Xなしのシェル、X付きのシェル、ウィンドウマネージャー、その他のGUIソフトウェア)が使用できるフォントの中央ストアもありますか?または、フォントは個別に管理されていますか?Linuxでフォントを効率的かつ簡単に管理するにはどうすればよいですか?

回答:


13

Xランドのフォントには、サーバー側とクライアント側の2つのメカニズムがあります。

フォントをレンダリングする従来の方法は、クライアントがサーバーに「fooフォントFの位置(x、y)でレンダリングする」と指示することです(フォント仕様には、面、サイズ、エンコーディング、およびその他の属性が含まれます)。Xサーバー自体、またはフォントサーバーと呼ばれる特殊なプログラムがフォントファイルを開いて、各グリフの説明を作成します。フォントはビットマップまたはベクターフォントにすることができますが、ベクターフォントはレンダリング前にビットマップに変換されます。

最近のほとんどのプログラムは、多くの場合xftfontconfigを通じて、クライアント側のフォントレンダリングを使用します。サーバー側のフォントレンダリングがアンチエイリアスをサポートしていないため、新しいメカニズムが必要でした。

Xの外側(VGAコンソールなど)には、特定のサイズのビットマップフォントであるVGAフォントがあります。しかし、X11と比較すると、VGAコンソールを使用するユーザーはいないため、それらに費やされる労力はそれほど多くありません。

実際には、次の2つの方法でフォントを構成する必要があります。

  • 古いスタイルのプログラムの場合:フォントディレクトリはのFontPathディレクティブを介してリストされ、X xorg.confxset fp実行しているユーザーがコマンドを使用して操作できます。新しいフォントをインストールする場合は、を実行する必要がありますmkfontdir
  • すべてのGtk(Gnomeの、など)とQt(KDEなど)プログラムを含む新しいスタイルのプログラムの場合:フォントは、ディレクトリがで示されている<dir>のディレクティブ/etc/fonts/fonts.conf~/.fonts.confおよびいくつかの他の場所。詳細については、fontconfigのドキュメントを参照しください。新しいフォントをインストールする場合は、を実行する必要がある場合がありますfc-cache

3

Linuxでは、コンソールフォントとXフォントは2つの別個のものです。コマンドsetfontを使用してフォントを変更し、フォントがshowconsolefontどのように見えるかを確認します。各ディストリビューションには、デフォルトのコンソールフォントを設定する独自の方法があります。setfontコンソールフォントの場所については、manページを参照してください。私のFedora 14システムでは、/ lib / kbd / consolefonts /です。コンソールフォントは、EGA / VGAコンソールフォントを定義するファイル形式です。

Xフォントは、コンソールフォントとは異なるフォーマットです。これらは通常、X構成の定義(FilesセクションのFontPathを使用)、またはFontPathのFilesセクションで設定されているFontサーバー(xfs)を介して処理されます。を実行してFontPathsを追加することもできxset +fp pathます。私のシステムでは、/ usr / share / X11 / fontsにすべてのXフォントがあります。


それでは、X上で実行されるすべてのGUIプログラムがXフォントを使用するということですか。
11

1
@penyuan:必ずしもそうとは限りませんが、ほとんどの場合、そうです。多くのGUIプログラムは、フォントを管理する高レベルのライブラリ(GTKやQtなど)を使用します。
jsbillings

ドキュメント(例えば(La)TeX)はさらに別のフォントのセットを使用していることに注意してください。
フォンブランド2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.