フォント

提供: ArchWiki
移動先: 案内検索

Wikipedia より:

コンピュータフォント(または単純に「フォント」)とはグリフや文字、ウィングディングなどの記号を含む電子データである。

フォントのライセンスによっては法的な制限がかかることがあります。

フォントフォーマット

今日使われるほとんどのコンピュータフォントはビットマップアウトラインデータフォーマットになっています。

ビットマップフォント
ドットやピクセルのマトリックスで構成され、それぞれの文字のイメージを表示します。
アウトラインまたはベクターフォント
ベジェ曲線を使ってそれぞれの文字を表示します。文字はさまざまなサイズにスケールすることができます。

よく使われる拡張子

  • bdfbdf.gz – ビットマップフォント、bitmap distribution format と gzip 圧縮された bdf
  • pcfpcf.gz – ビットマップ、portable compiled font と gzip 圧縮された pcf
  • psf, psfu, psf.gzpsfu.gz – ビットマップ、PC screen font, PC screen font Unicode と gzip 圧縮されたもの (X.Org と非互換)
  • pfapfb – アウトラインフォント、PostScript font ASCII と PostScript font binary。PostScript フォントはプリンタで用いられます。
  • ttf – アウトライン、TrueType font。もともとは PostScript フォントの代替として作られました。
  • otf – アウトライン、OpenType font。PostScript のヒントを含む TrueType。

多くの場合、TrueType と OpenType の技術的な差異は無視することができます。実際 ttf 拡張子を持つフォントでも OpenType フォントであることがあります。

他のフォーマット

組版アプリケーションの TeX と、それに組み合わせるフォントソフトウェアの Metafont は独自の方法で文字をレンダリングします。この2つのプログラムでフォントとして使われるファイル拡張子に *pk, *gf, mfvf があります。

FontForge はオープンソースのフォント作成プログラムであり、作られたフォントには sfd (spline font database) というテキストベースのフォーマットが使われます。

SVG フォーマットにも独自にフォントを表示するための機能があります。

インストール

フォントをインストールする方法は複数あります。

Pacman

フォントとそのコレクションは pacman を使って(有効にした)リポジトリからインストールすることができます。利用できるフォントを探すには次を実行:

$ pacman -Ss font

また ttf フォントのみを探す場合は:

$ pacman -Ss ttf

パッケージを作成

pacman であなたのフォントを管理したいと思ったならば、あなた自身で Arch パッケージを作ることができます。作ったパッケージは AUR コミュニティで共有することもできます。以下はベーシックなパッケージを作成する方法の一例です。パッケージの作成について詳しく学びたいならば、PKGBUILD を読んで下さい。

pkgname=ttf-fontname
pkgver=1.0
pkgrel=1
pkgdesc="custom fonts"
arch=('any')
depends=('fontconfig' 'xorg-font-utils')
source=(http://someurl.org/$pkgname.tar.bz2)
install=$pkgname.install

package() {
  install -d "$pkgdir/usr/share/fonts/TTF"
  install -m644 "$srcdir/$pkgname/"*.ttf "$pkgdir/usr/share/fonts/TTF/"
}

この PKGBUILD はフォントを TrueType だと認識します。また、インストールファイル (ttf-fontname.install) にはフォントキャッシュをアップデートする処理を書く必要があります:

post_install() {
  echo -n "Updating font cache... "
  fc-cache >/dev/null -f
  mkfontscale /usr/share/fonts/TTF
  mkfontdir   /usr/share/fonts/TTF
  echo "done"
}

post_upgrade() {
  post_install
}

post_remove() {
  post_install
}

ttf フォントからパッケージを簡単に作る方法として AUR にある makefontpkgAUR を使うこともできます。

手動インストール

リポジトリにないフォントを追加するときに推奨されるのはパッケージを作成することです。pacman によってフォントを削除・アップデートできるようになります。しかしながらフォントを手動でインストールすることも可能です。

システム全体で(全てのユーザーが)使えるようにフォントをインストールするには、フォントフォルダを /usr/share/fonts/ ディレクトリに移動してください。ファイルがどのユーザーからも読み込めるように、chmod を使って適切なパーミッションを設定します (ファイルには 0444、ディレクトリには 0555)。一人のユーザーだけがフォントを使う場合は、代わりに ~/.local/share/fonts を使います (~/.fonts/ は非推奨になりました)。

X サーバーに (フォントサーバーを使うのではなく) 直接フォントをロードさせるには新しく追加したフォントのディレクトリを FontPath エントリに加えてください。このエントリは Xorg の設定ファイル (/etc/X11/xorg.conf もしくは /etc/xorg.conf) 内の Files セクションにあります。詳しくは #X.Org とフォント を見て下さい。

それから fontconfig フォントキャッシュをアップデートします:

$ fc-cache -vf

古いアプリケーション

古いアプリケーション (例: GTK+ 1.x アプリケーション、xfontsel) を使う場合、fontconfig をサポートしていないので、インデックスをフォントディレクトリに作る必要があります:

$ mkfontscale
$ mkfontdir

もしくは次のコマンドで複数のフォルダを含めます:

$ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash

/usr/share/fonts 下のバラバラのサブディレクトリにフォントをインストールした場合:

$ for dir in * ; do if [  -d  "$dir"  ]; then cd "$dir";xset +fp "$PWD" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash

X サーバーがフォントディレクトリの読み込みに失敗したときは全ての fonts.dir ファイルを再スキャンしてください:

# xset +fp /usr/share/fonts/misc # Inform the X server of new directories
# xset fp rehash                # Forces a new rescan

フォントが読み込まれたのかチェックするには:

$ xlsfonts | grep fontname

Pango の Warning

Pango を使っていると、pango が fontconfig を読み込んでフォントを選ぼうとすることがあります。

(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'

上記のようなエラーや、アプリケーションで文字の代わりに豆腐が表示された場合、フォントを追加してフォントキャッシュをアップデートする必要があります。この例では ttf-liberation フォントがあげられていて root 権限でシステム全体で有効にします。

# pacman -S ttf-liberation
  -- インストールが成功したと仮定して出力は省略します -- 

# fc-cache -vfs
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs
/var/cache/fontconfig: cleaning cache directory   
fc-cache: succeeded

フォントが設定されたかテストするには:

# fc-match
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"

X.Org とフォント

ノート: ほとんどのパッケージはインストール時に Xorg がフォントを使えるように自動的に設定を行います。その場合、この手順は不要です。

Xorg で新しくインストールしたフォントを使うには、フォントパスを /etc/X11/xorg.conf (他の X.Org 設定ファイルでも動きます) に加える必要があります。

以下は /etc/X11/xorg.conf に追加するセクションの例です。あなたの必要なフォントにあわせてパスを追加・削除してください。

# Let X.Org know about the custom font directories
Section "Files"
    FontPath    "/usr/share/fonts/100dpi"
    FontPath    "/usr/share/fonts/75dpi"
    FontPath    "/usr/share/fonts/cantarell"
    FontPath    "/usr/share/fonts/cyrillic"
    FontPath    "/usr/share/fonts/encodings"
    FontPath    "/usr/share/fonts/local"
    FontPath    "/usr/share/fonts/misc"
    FontPath    "/usr/share/fonts/truetype"
    FontPath    "/usr/share/fonts/TTF"
    FontPath    "/usr/share/fonts/util"
EndSection

コンソールフォント

ノート: このセクションでは Linux コンソールについて説明しています。(ユニコードフォントや最新のグラフィックアダプタのサポートなど) より多くの機能が備わっているコンソールについては fbtermKMSCON などのページを見て下さい。

仮想コンソールはカーネルに含まれているフォントと ASCII 文字セットがデフォルトで使用しますが、どちらも簡単に変えることができます。

コンソールフォントは 256 か 512 文字に制限されています。利用できるフォントは /usr/share/kbd/consolefonts/ にあります。

押したキーとコンピュータで使われる文字をつなぐ、キーマップは /usr/share/kbd/keymaps/ のサブディレクトリにあります。

プレビューとテスト

ヒント: コンソールフォントのプレビューのためのイメージライブラリ: Linux console fonts screenshots

フォントで利用できる記号・文字は showconsolefont コマンドでテーブル表示できます:

$ showconsolefont

setfont ユーティリティを使うことで一時的にフォントを変えることができます。フォントの名前 (/usr/share/kbd/consolefonts/ にあります) を指定してください:

$ setfont Lat2-Terminus16

任意で、使用する文字セットを -m オプションで指定できます:

$ setfont Lat2-Terminus16 -m 8859-2

もし新しく変えたフォントに不満ならば、何も引数を付けないで実行することでデフォルトフォントに戻ります (コンソール画面が全く読めなくなってしまったときでも、このコマンドは動作します。なんとかしてコマンドを入力してください):

$ setfont
ノート: setfont は現在使われているコンソールだけで機能することを覚えておいて下さい。(アクティブだろうとそうでなかろうと)他のコンソールには影響しません。

デフォルトフォントを変更

デフォルトフォントを変えるには、/etc/vconsole.conf (このファイルは新しく作る必要があるかもしれません) の FONTFONT_MAP で設定します。

Č, ž, đ, š or Ł, ę, ą, ś などの文字を表示するために lat2-16.psfu.gz フォントを使うとします:

FONT=lat2-16

これで ISO/IEC 8859 の第2部がサイズ16で使われます。他の値にすればフォントサイズを変えられます (例: lat2-08)。8859 によって定められている地域については、Wikipedia の表を見て下さい。X サーバーを使わずコンソールで作業することが多いならば Terminus フォントが推奨です。例えば ter-216b はラテン2、サイズ16、太字です。ter-216n は通常の太さになります。Terminus フォントは32までのサイズが揃っています。

フォントを変えたら、適切なフォントマップを設定します。lat2-16 の場合は:

FONT_MAP=8859-2

初期のユーザースペース、つまりブートプロセスでも特定のフォントを使いたい場合は、/etc/mkinitcpio.confkeymap フックを使って下さい。詳しくは Mkinitcpio#HOOKS を参照してください。

ブート時にフォントが変わっていない、もしくは一時的にしか変わらなかった場合、グラフィックドライバが初期化されコンソールがフレームバッファに切り替わるときにリセットされている可能性があります。これを避けるには、グラフィックドライバを早くロードするようにしてください。Kernel Mode Setting#Early KMS start のサンプルを見るか他の方法で /etc/vconsole.conf が適用される前にフレームバッファをセットアップするようにしてください。

ブートエラー

ブート時に "Loading Console Font" が失敗する場合、Arch Linux をインストールしたときに正しいフォントを選ばなかったことが原因かもしれません。

このメッセージを消すには、/etc/rc.confCONSOLEFONT を空にしてください。起動時のデフォルトフォントに戻るはずです。

フォントパッケージ

以下は、公式リポジトリや AUR から入手できる多くのフォントパッケージを精選したリストです。ユニコードをサポートしているフォントには"ユニコード対応"と添えられています、詳しくはプロジェクトや Wikipedia のページを見て下さい。

Github ユーザーの Ternstor が公式リポジトリや AUR に入っている全てのフォントの PNG イメージを生成する python スクリプトを作成しています: [1]

(ブライユ)点字

  • ttf-ubraille - 点字のユニコード記号が入っているフォント

国際文字

アプリケーションやブラウザは fontconfig の設定に基づいて、Unicode のテキストを表示するためのグリフが入っているフォントを選択します。インストールしたフォントの中で特定の言語のフォントをリストアップするには、fc-list :lang="two letter language code" コマンドを実行してください。例えば、日本語フォントまたは日本語をサポートしているフォントを確認するには:

$ fc-list :lang=ja | cut -d: -f1
/usr/share/fonts/TTF/ipam-mona.ttf
/usr/share/fonts/TTF/ipamp-mona.ttf
/usr/share/fonts/TTF/ipagui-mona.ttf
/usr/share/fonts/OTF/ipamp.ttf
/usr/share/fonts/wenquanyi/wqy-microhei/wqy-microhei.ttc
/usr/share/fonts/TTF/ipag-mona.ttf
/usr/share/fonts/OTF/ipam.ttf
/usr/share/fonts/TTF/ipagp-mona.ttf
/usr/share/fonts/OTF/ipagp.ttf
/usr/share/fonts/wenquanyi/wqy-microhei/wqy-microhei.ttc
/usr/share/fonts/OTF/ipag.ttf

Wikipedia や Arch Linux の wiki などの多言語ウェブサイトのフォントを正しく表示するには、次のパッケージをインストールしてください: ttf-freefont, ttf-arphic-uming, ttf-baekmuk

アラビア・ウルドゥー文字

  • ttf-qurancomplex-fontsAUR - メディナの King Fahd Glorious Quran Printing Complex によるフォント
  • ttf-amiriAUR - Amiria Press によって作られたクラシカルなナスフ体のアラビア文字フォント
  • ttf-sil-lateefAUR - SIL によるユニコード対応アラビア文字フォント
  • ttf-sil-scheherazadeAUR - SIL によるユニコード対応アラビア文字フォント
  • ttf-arabeyes-fontsAUR - フリーのアラビア文字フォントのコレクション
  • ttf-urdufontsAUR - ウルドゥー語のためのウルドゥー文字フォント (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) と Jameel Noori Nastaleeq をデフォルトフォントに設定するフォント設定

ペルシア文字

  • ttf-persian-irfontsAUR - イラン通信情報技術最高評議会 (SCICT) による公式のペルシア語フォントシリーズ
  • ttf-persian-bornaAUR - Borna Rayaneh Persian B フォントシリーズ
  • ttf-persian-x2AUR - 自由に利用できる X Series 2 フォント。ペルシア語、アラビア語、ウルドゥー語、パシュトー語、ウズベク語、クルド語、ウイグル語、古代トルコ語 (オスマン語)、現代トルコ語 (ローマ字) までサポート
  • ttf-iran-nastaliqAUR - イランの情報科学最高会議によって発行された Unicode 筆記体フォント

ビルマ文字

中国語、日本語、ハングル、ベトナム語

汎 CJK
  • adobe-source-han-sans-otc-fonts - 巨大なフォントコレクション。簡体字、繁体字、日本語、韓国語を包括的にサポート。矛盾がないデザインと外観。
(主要な)中国語
  • adobe-source-han-sans-cn-fonts - 簡体字の OpenType/CFF フォント。
  • adobe-source-han-sans-tw-fonts - 繁体字の OpenType/CFF フォント。
  • wqy-microhei - 高品質な Sans-Serif スタイルの CJKV アウトラインフォント。
  • wqy-zenhei - 黒体系 (sans-serif) 漢字アウトラインフォント、ビットマップの宋体も含まれる (日本語(の一部)とハングルもサポート)。
  • ttf-arphic-ukai - Kaiti (筆文字) ユニコード対応フォント (アンチエイリアス推奨)。
  • ttf-arphic-uming - Mingti (活字) ユニコード対応フォント。
  • opendesktop-fonts - New Sung フォント、旧 ttf-fireflysung パッケージ。
  • wqy-bitmapfont - ビットマップ宋体 (serif) 漢字フォント。
  • ttf-hannom - 漢字とベトナム語 TrueType フォント。
  • ttf-twAUR - 台湾教育部発行の楷書と宋体の繁体字フォント。
日本語
  • adobe-source-han-sans-jp-fonts - 日本語 OpenType/CFF フォント。
  • otf-ipafont - 日常的に使える日本語ゴシック (sans-serif) と明朝 (serif) のフォントセット; 一番高品質なオープンソースフォントの一つ。openSUSE-ja のデフォルト。
  • ttf-sazanami - フリーの日本語 TrueType フォント。既にメンテナンスされていませんが、環境によってはフォールバックフォントとして使われています。
  • ttf-hanazono - フリーの日本語漢字フォント、明朝体 (serif)。
  • ttf-vlgothicAUR - 日本語ゴシックフォント。Debian/Fedora/Vine Linux のデフォルト。
  • ttf-mplusAUR - 近代的なゴシック体日本語アウトラインフォント。日本語の平仮名・片仮名、Basic Latin・Latin-1 Supplement・Latin Extended-A 文字セット、ほぼ全ての日本語の漢字(第一水準漢字まで完全に対応)と IPA 拡張、ギリシア文字、キリル文字、ベトナム語を収録。7 ウェイト(プロポーショナル)と 5 ウェイト(等幅)を用意。
  • ttf-ipa-monaAUR, ttf-monapoAUR - 2ちゃんねるのアスキーアートを正確に表示できる日本語フォント。
ハングル

キリル文字

#モノスペース, #Sans-serif#Serif も見て下さい

  • ttf-paratypeAUR - ParaType のフォントファミリー: sans, serif, mono, 拡張キリル・ラテン文字, OFL ライセンス
  • font-arhangaiAUR - モンゴル語に用いるキリル文字
  • ttf-pingwi-typographyAUR - PingWi Typography (PWT) フォント

ギリシア文字

ほとんど全てのユニコード対応フォントにはギリシア文字セットが(アクセント注記式も)含まれています。追加フォントパッケージには、完全にユニコード文字に未対応だが高品質なギリシア文字(もちろんラテン文字も)活字を使えるパッケージがあります:

  • otf-gfsAUR - Greek Font Society による OpenType フォントのセレクション
  • ttf-mgopenAUR - Magenta によるプロフェッショナル TrueType フォント

ヘブライ文字

  • culmusAUR - フリーのヘブライ文字のコレクション

インド系文字

  • ttf-freebanglafont - ベンガル文字フォント
  • ttf-indic-otf - インド系文字 OpenType フォントコレクション (ttf-freebanglafont を含む)
(This one contains a "look of disapproval" that might be more to your liking than the bdf-unifont one mentioned elsewhere in this document)
  • lohit-fontAUR - Fedora プロジェクトによるインド系文字 TrueType フォント (Oriya フォントなどを含む)
  • ttf-devanagarifontsAUR - デーヴァナーガリー TrueType フォント (283個のフォントを含む)
  • ttf-gujrati-fontsAUR - TTF グジャラート語フォント (Avantika, Gopika, Shree768)
  • ttf-gurmukhi-fonts_sikhnetAUR - TrueType グルムキー文字フォント (gurbaniwebthick, prabhki)
  • ttf-gurmukhi_punjabiAUR - TTF グルムキー文字/パンジャーブ語 (252個のフォントを含む)
  • ttf-kannada-fontAUR - カンナダ語、インドのカルナータカ州の公用語
  • ttf-tamilAUR - タミル文字ユニコード対応フォント

クメール文字

ラーオ文字

  • ttf-laoAUR - ラオス語 TTF フォント (Phetsarath_OT)
  • ttf-lao-fontsAUR - ラオス語 TTF フォント、Unicode 版と Windows 用の非 Unicode 版

メロエ文字 (古代エジプトのヒエログリフ)

  • ttf-aegyptusAUR - エジプト神聖文字フォント (Unicode フォントの古代文字に含まれています)

シンハラ文字

  • ttf-lklugAUR - シンハラ文字ユニコード対応フォント

タイ文字

  • ttf-tlwg - スケーラブルなタイ語フォントのコレクション

チベット文字

数学

Microsoft フォント

MS フォントを見て下さい。

Apple Mac OS X フォント

  • ttf-mac-fontsAUR - Mac OS X TrueType フォント
  • ttf-macAUR - Mac OS X TrueType フォント (このパッケージには ttf フォントは含まれていません (otf フォントだけです)、ttf フォントは自分自身で入手する必要があります)。

モノスペース

ここで提案があります。ユーザーによって好みはさまざまです、あなたに合うものを見つけて下さい。 急ぎの場合、Dan Benjamin のブログを読むといいでしょう: Top 10 Programming Fonts

Trevor Lowing によるフォントの一覧: http://www.lowing.org/fonts/

Slant の画像による比較: What are the best programming fonts?

TrueType

Bitmap

Sans-serif

Script

Serif

未分類

  • ttf-google-fonts-gitAURttf-google-fonts-hgAUR — フリーフォントの巨大なコレクション (ubuntu, inconsolata, droid などを含む) - Note: これをインストールするとフォントが 100 以上になるかもしれません
  • ttf-mph-2b-damase — Covers full plane 1 and several scripts
  • ttf-symbola — 絵文字や多くの記号。
  • ttf-sil-fontsAUR — SIL による Gentium, Charis, Doulos, Andika と Abyssinica
  • font-bh-ttf — X.Org Luxi フォント
  • ttf-cheapskatedustismo.com からのフォントコレクション
  • ttf-isabellaAUR — 1497年の Isabella Breviary に基づくカリグラフィーフォント
  • ttf-junicode — ほとんど全ての中世ラテン文字を揃えている Junius フォント
  • arkpandorafonts ttf-arkpandoraAUR — Arial と Times New Roman の代替フォント
  • xorg-fonts-type1PostScript フォントの IBM Courier と Adobe Utopia のセット

X11 でのフォント順序

Fontconfig は自動的に要求にあったフォントを選びだします。例えば、英語と日本語が含まれるウィンドウを表示しようとすると、デフォルトのフォントが日本語をサポートしていない場合、日本語を表示できるフォントに切り替わります。

Fontconfig はユーザーに $XDG_CONFIG_HOME/fontconfig/fonts.conf を使って好きな順番を設定するように定めています。 他の Serif フォントが表示できない場合、特定の日本語フォントを選ぶようにしてほしいときは、ファイルを次のようにします:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
   <family>serif</family>
   <prefer>
     <family>好みのラテン文字 Serif フォント名</family>
     <family>日本語フォント名</family>
   </prefer>
 </alias>
</fontconfig>

同じように Sans-serif や monospaced 用のセクションを作ることもできます。詳しくは fontconfig マニュアルを見て下さい。

フォントエイリアス

Linux では、アプリケーションが似たフォントを使えるようにするために、他のフォントを表すフォントエイリアスが複数用意されています。一般的なエイリアス: serif はセリフ体のフォントを表します (例: DejaVu Serif); sans-serif はサンセリフ体のフォントを表します (例: DejaVu Sans); monospace は等幅フォントを表します (例: DejaVu Sans Mono)。しかし、エイリアスが表すフォントは変わることがあり、KDE などのデスクトップ環境にあるようなフォント管理ツールでは対応関係が示されないことがしばしばです。

エイリアスがどのフォントを示しているのか調べるには次を実行します:

$ fc-match monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"

この場合 DejaVuSansMono.ttf が monospace エイリアスによって表示されるフォントです。

Tips and tricks

公式リポジトリからフォントをインストール

公式リポジトリにある全てのフォントをインストールすることも可能です。

全てのフォント
# pacman -S $(pacman -Ssq font)
全ての TrueType フォント
# pacman -S $(pacman -Ssq ttf)

インストールした全てのフォントを一覧する

次のコマンドを使うことであなたのシステムで利用できる全てのインストール済みフォントを一覧できます。

$ fc-list

アプリケーション固有のフォントキャッシュ

Matplotlib (python-matplotlibpython2-matplotlib) は自身のフォントキャッシュを使っているため、フォントを更新した後は、$HOME/.matplotlib/fontList.cache を削除してキャッシュを再生成させてください [2]

参照