フォント

提供: ArchWiki
2024年4月6日 (土) 14:46時点におけるAshMyzk (トーク | 投稿記録)による版 (TranslationStatus)
ナビゲーションに移動 検索に移動

関連記事

Wikipedia:Computer font (日本語版) より: 「コンピュータのフォントは、グラフィカルなグリフのセットを含むデジタルデータファイルとして実装されている。コンピュータフォントは、フォントエディタを用いて設計・作成される。コンピュータの画面用に特別に設計されたフォントで、印刷用ではないものをスクリーンフォントという。」

なお、フォントのライセンスによっては、法的な制約を受ける場合があります。

目次

フォントフォーマット

今日使われるほとんどのコンピュータフォントのデータフォーマットは、ビットマップアウトラインのどちらかです。

ビットマップフォント
各面とサイズで各グリフのイメージを表現するドットやピクセルの配列で構成されます。
アウトラインまたはベクターフォント
ベジェ曲線、描画命令、そして計算式を使用して各グリフを表現します。文字のアウトラインは任意のサイズで表示できます。

ビットマップフォーマット

上記のフォーマットは gzip で圧縮することもできます。利用可能なビットマップフォントは#ビットマップを見てください。

アウトラインフォーマット

  • Adobe による PostScript フォント – 様々なフォーマットがあります。例: Printer Font ASCII (PFA) と Printer Font Binary (PPB)。
  • Apple と Microsoft による TrueType (ファイル拡張子: ttf)
  • TrueType を基に Microsoft によって開発された OpenType (ファイル拡張子: otfttf)

多くの場合、TrueType と OpenType の技術的な差異は無視することができます。

他のフォーマット

組版アプリケーションの TeX と、それに組み合わせるフォントソフトウェアの Metafont は、従来から独自の方法で文字をレンダリングします。この2つのプログラムでフォントとして使われるファイル拡張子に *pk*gfmfvf があります。最近のバージョンでは、TrueType フォントと OpenType フォントを使うこともできます。

FontForge (fontforge) はフォント編集アプリケーションであり、独自のネイティブなテキストベースのフォーマット sfd (spline font database) でフォントを保存できます。

SVG にも独自のフォント表現方式があります。

インストール

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

Pacman

有効化されているリポジトリ内のフォント及びフォントコレクションは pacman でインストールできます。

利用可能なフォントはパッケージをクエリすることで確認できます (例えば、fontttf といった単語で検索するなど)。

パッケージを作成する

フォントの管理は pacman からできるようにしたほうが良いでしょう。Arch のパッケージを作成することで、pacman に管理させることができます。また、パッケージは Arch コミュニティと AUR で共有することもできます。フォントをインストールするパッケージは特に似ています (フォントパッケージガイドライン を参照してください)。

フォントファイルのファミリー名は fc-query を使うことで確認できます (例: fc-query -f '%{family[0]}\n' /path/to/file)。フォーマットについては FcPatternFormat(3) で説明されています。

手動インストール

システムで設定されているリポジトリに存在しないフォントを追加する際に推奨される方法は #パッケージを作成する で説明されています。この方法では、後にフォントパッケージの削除と更新を pacman で行うことができます。

または、フォントを手動でインストールすることもできます:

  • シングルユーザーの場合、フォントは ~/.local/share/fonts/ にインストールします。
    • 多くの場合、他のユーザーとしてグラフィカルなアプリケーションを実行しない限り、これで十分です。
    • 過去には ~/.fonts/ が使われていましたが、現在は非推奨です。
  • システム全体 (全ユーザー) にインストールする場合は、/usr/local/share/fonts/ の下にフォントを配置します。
    • 先にディレクトリを作成する必要があるかもしれません: mkdir -p /usr/local/share/fonts
    • /usr/share/fonts/ はパッケージマネージャの権限下にあり、手動で変更するべきではありません。

サブディレクトリ構造の作成はユーザー次第であり、Linux ディストリビューションによって異なります。わかりやすくするために、各フォントをそれ自身のディレクトリに置くとよいでしょう。Fontconfig はデフォルトのパスを再帰的に検索し、ネストしたファイルを確実に拾います。

構造の例は次のとおりです:

/usr/local/share/fonts/
├── otf
│   └── SourceCodeVariable
│       ├── SourceCodeVariable-Italic.otf
│       └── SourceCodeVariable-Roman.otf
└── ttf
    ├── AnonymousPro
    │   ├── Anonymous-Pro-B.ttf
    │   ├── Anonymous-Pro-I.ttf
    │   └── Anonymous-Pro.ttf
    └── CascadiaCode
        ├── CascadiaCode-Bold.ttf
        ├── CascadiaCode-Light.ttf
        └── CascadiaCode-Regular.ttf

フォントファイルには、すべてのユーザーに対して十分な読み取り権限を与える必要があります。少なくとも、ファイルの場合は 444、ディレクトリの場合は 555chmod しておく必要があります。

Xserver がフォントを直接読み込むためには (フォントサーバ の使用とは対照的に)、新しく追加したフォントのディレクトリを FontPath エントリで追加する必要があります。このエントリは Xorg 設定ファイルFiles セクションにあります (例: /etc/X11/xorg.conf/etc/xorg.conf)。詳しくは #古いアプリケーション を見て下さい。

最後に、fontconfig キャッシュをアップデートします (通常は fontconfig ライブラリを使用するアプリケーションが実行するため必要ありません):

$ fc-cache

古いアプリケーション

fontconfig をサポートしていない古いアプリケーション (例: GTK 1.x アプリケーションや xfontsel) では、インデックスをフォントディレクトリ内に作成しておく必要があります:

$ 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
ノート: 多くのパッケージはインストール時に Xorg がフォントを使えるように自動的に設定を行います。その場合、この手順は不要です。

これは、/etc/X11/xorg.conf/etc/X11/xorg.conf.d でグローバルに設定することもできます。

以下は、/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/misc"
    FontPath    "/usr/share/fonts/truetype"
    FontPath    "/usr/share/fonts/TTF"
    FontPath    "/usr/share/fonts/util"
EndSection

Pango の警告

システムで 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 権限でシステム全体で有効にします。

# fc-cache
/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"

フォントパッケージ

以下は、公式リポジトリや AUR から入手できる多くのフォントパッケージを精選したリストです。幅広い Unicode サポートのあるフォントには "Unicode" とマークしています。

ヒント: Archfonts は公式リポジトリや AUR にあるすべての TTF フォントの概要を生成するために使用できる Python スクリプトです。

ビットマップ

ノート: pango 1.44 は、FreeType のサポートをやめ HarfBuzz を採用したため、従来の BDF/PCF ビットマップフォントへのサポートがなくなり、一部のアプリケーション (gnome-terminal など) では、フォントが機能しなくなりました (グリフではなく豆腐が表示されます)。FS#63297Pango issue #386HarfBuzz issue #1897 を参照して下さい。

Pango 1.44 及びそれ以降で機能するフォント:

ラテン文字

ファミリー

基本のフォントセットを提供するパッケージ:

基本のフォントセットを提供しないパッケージ:

  • B612 (ttf-b612AUR) – Airbus が提供するオープンソースのフォントファミリ (サンセリフと等幅)。飛行機のコクピット画面で読みやすいようにデザインされています。
  • Ghostscript (gsfonts) – URW によって寄付された Ghostscript フォント。Helvetica、Times、Courier などのクローンを含んでいます。GNU FreeFont (gnu-free-fonts) と TeX Gyre フォント (tex-gyre-fonts) は両方とも部分的にこの Ghostscript フォントをベースとしています。
  • Luxi fonts (font-bh-ttfAUR) – Lucida に似ている X.Org フォントファミリ
  • Roboto (ttf-roboto) – 最近の Android バージョンのデフォルトフォント。CJK などサポートされていない言語に関しては Noto フォントによって補完されます。
  • TeX Gyre フォント群 (tex-gyre-fonts) – TeX ユーザーの Polish GUST association によって作成されました。ほとんどは URW Ghostscript フォントをベースとしており、Helvetica、Times、Courier などのクローンを含んでいます。一部のフォントは独自の数学関連のフォントを含んでいます (#数学 を参照)。
  • Ubuntu フォントファミリ (ttf-ubuntu-font-family)

レガシーな Microsoft フォントパッケージ:

  • Microsoft フォント (ttf-ms-fontsAUR) – Andalé Mono、Courier New、Arial、Arial Black、Comic Sans、Impact、Lucida Sans、Microsoft Sans Serif、Trebuchet、Verdana、Georgia、Times New Roman
  • Vista フォント (ttf-vista-fontsAUR) – Consolas、Calibri、Candara、Corbel、Cambria、Constantia

等幅

以下では、"プログラミングリガチャ" (例えば "->" という文字列が "⟶" という2文字分の幅のグリフとして表示される機能のこと) をサポートしているフォントには ⟶ という印をつけています。その他の等幅フォントは #ビットマップ#ファミリー も見てください。

関連するウェブサイト:

サンセリフ

セリフ

手書き

  • ttf-nothingyoucoulddoAUR – フォトグラファーの手書きフォント
  • ttf-indieflowerAUR – 活力のある丸みを帯びた手書きサンセリフフォント
  • ttf-pacificoAUR – 1950年代のアメリカサーフカルチャーからインスピレーションを得た、毛筆手書きフォント。キリル文字に拡張されています。
  • otf-londrinaAUR – ブラジル、サンパウロの通りからインスピレーションを得た、手書きフォント。
  • otf-teslaAUR – ニコラテスラの手書きの再構築結果をベースとしたスクリプトフォント。
  • ttf-architects-daughterAUR – 建築関連文書の見た目と四角い見た目、そして日常の手書きの自然な感じを取り入れたフォント。

未分類

  • ttf-cheapskateAURdustismo.com のフォントコレクション
  • ttf-junicode – 中世のラテン文字をほぼ完全に収録している Junius フォント
  • ttf-mph-2b-damaseAUR – 第1面全てといくつかの文体をカバーしているフォント
  • xorg-fonts-type1PostScript フォントの Adobe Utopia と IBM Courier のセット。
  • all-repository-fontsAUR – 公式リポジトリ内の全フォントをインストールするメタパッケージ。
  • ttf-google-fonts-gitAUR – フリーフォント (Ubuntu、Inconsolata、Roboto などを含む) の巨大なコレクション。注: 100以上のフォントが追加されるため、フォントダイアログが非常に長くなるかもしれません。

非ラテン文字

古代文字

  • ttf-ancient-fontsAUR – エーゲ文明やエジプト文明の文字、楔形文字、アナトリア半島の諸文明やマヤ文明の古代文字などの Unicode 記号が含まれているフォント。

アラビア文字

en:Localization/Arabic#Fonts を参照。

ベンガル文字

en:Localization/Bengali#Fonts を参照。

点字

  • ttf-ubrailleAUR点字 の Unicode 記号が入っているフォント

中国語、日本語、韓国語、ベトナム語

汎 CJK

Adobe Source Han フォントと Noto CJK フォントには同一のグリフとメトリックが含まれていますが、プロジェクトが Adobe と Google の両方によって委託されたため、異なるブランドがつけられています。

これらのコレクションは両方とも簡体字、繁体字、日本語、韓国語を包括的にサポートしており、デザインと見た目は統一されています。

中国語

en:Localization/Chinese#Fonts を参照

日本語

ローカリゼーション#フォント を参照。

韓国語

en:Localization/Korean#Fonts を参照。

ベトナム語
  • ttf-hannom – チュノム用のベトナム語 TrueType フォント

キリル文字

#ラテン文字 も参照。

  • ttf-paratypeAUR – ParaType によるフォントファミリ: サンセリフ、セリフ、等幅、拡張キリル文字・ラテン文字を含む。OFL ライセンス。
  • otf-russkopisAUR – キリル文字のフリーな OpenType 筆記体フォント

ギリシャ文字

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

  • otf-gfsAUR – Greek Font Society による OpenType フォントのセレクション
  • ttf-mgopenAUR – Magenta によるプロフェッショナル TrueType フォント
  • ttf-sbl-greekAUR – SBL Greek。Society of Biblical Literature (SBL) により作成されました。
  • ttf-sbl-biblitAUR – SBL BibLit。SBL Greek と SBL Hebrew の文字を含んでいます。

ヘブライ文字

  • opensiddur-hebrew-fontsAUR – オープンソースなヘブライフォントの大規模なコレクション。少数のラテン文字、ギリシャ文字、アラビア文字、アムハラ文字も含んでいます。
  • culmusAUR – フリーなヘブライフォントの良質なコレクション。
  • alefbetAUR – 2つのヘブライフォント (現時点では): 一般的に使用されている "David Libre" と、手書きフォントの "Gveret Levin"。
  • ttf-ms-fontsAUR – Arial フォントなどが含まれています。
  • ttf-sbl-hebrewAUR – SBL Hebrew。Society of Biblical Literature (SBL) によって作成されました。
  • ttf-sbl-biblitAUR – SBL BibLit。SBL Hebrew と SBL Greek の両方の文字を含んでいます。

インド語群

en:Localization/Indic#Fonts を参照。

クメール文字

モンゴル・ツングース語族

  • ttf-abkaiAUR – シベ文字・満州文字・ダウール文字フォント (開発途中で不完全です)

ペルシア文字

Saber RastiKerdar によって作られた美麗なペルシア語フォント。

  • ttf-yasAUR – Yas Persian フォントシリーズ (hollow zero あり)。
  • ttf-x2AUR – ペルシア語、アラビア語、ウルドゥー語、パシュトゥー語、ダリー語、ウズベク語、クルド語、ウイグル語、古代トルコ語 (オスマン語)、現代トルコ語 (ローマ字) までをサポートしているフリーフォント。

タイ・カダイ語族

  • fonts-tlwgAUR – スケーラブルなタイ語フォントのコレクション
  • ttf-google-thaiAUR – Google による高品質なタイ語フォントと Thai National Fonts の改良
  • ttf-laoAUR – ラオス語 TTF フォント (Phetsarath_OT)

チベット・ビルマ語派

  • ttf-tibetan-machine – チベット語 Machine TTFont
  • ttf-sil-padaukAUR – ビルマ文字を使用する多くの派生言語をサポートする Unicode フォント。

絵文字と記号

Unicode 規格には「絵文字」と呼ばれる画像文字のためにあてられたセクションが存在します。

絵文字フォントには様々なフォーマットが存在します: CBDT/CBLC (Google)、SBIX (Apple)、COLR/CPAL (Microsoft)、SVG (Mozilla/Adobe)。

サポートされているフォーマットの絵文字フォントが少なくとも1つインストールされていれば、特に設定せずとも絵文字は表示されるはずです。しかし、一部の絵文字フォントはグリフを巨大な固定サイズのビットマップとしてエンコードするので、意図したサイズで表示するためにビットマップフォントのダウンスケーリングを使用する必要があります (これはデフォルトで有効化されています)。

Unicode 規格に従った絵文字フォントのフォールバックは、絵文字を扱うための追加のコードを必要とします。

絵文字を見つけて入力する方法については アプリケーション一覧/ユーティリティ#Text input を参照してください。

ソフトウェア CBDT/CBLC SBIX COLR/CPAL SVG 絵文字フォントフォールバック
Freetype Yes Yes Yes No
Pango Freetype Yes
WebKitGTK Freetype Yes
Qt Freetype No [2] [3] [4]
Chromium Freetype Yes
Firefox Freetype Yes No、回避策は Firefox#フォントのトラブルシューティング を見てください。
ノート: Qt は一度に最初の 255 個のフォントしか利用できません [5]所望の代替フォントのリストに絵文字フォントが存在することを確認してください。

CBDT/CBLC:

  • noto-fonts-emoji – Google のオープンソース絵文字 15.1。
  • ttf-joypixels – EmojiOne creator のプロプライエタリな絵文字 15.0。
  • ttf-twemojiAUR – Twitter のオープンソース絵文字 15.0。

SVG:

  • otf-openmojiAUR – Schwäbisch Gmünd の German University of Design のオープンソース絵文字 15.0。
  • ttf-twemoji-colorAUR – Twitter のオープンソース絵文字 14.0。

アウトラインのみ:

  • ttf-symbolaAUR – 多くの Unicode 記号 (絵文字を含む) を提供します。

顔文字は様々な文字セット (CJK フォントやインド語群フォントを含む) からなります。例えば、次のパッケージは既存の顔文字をほぼカバーします: gnu-free-fontsttf-arphic-umingttf-indic-otf

数学

加えて、texlive-basictexlive-fontsextra には Latin Modern Math や STIX フォントといった多くの数学フォントが含まれています。設定については TeX Live#Fontconfig でフォントを利用可能にする を参照してください。

他のオペレーティングシステムのフォント

代替フォントの順番

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>
ヒント:
  • 日本語ロケールを使用する場合、この設定を機能させるには LC_LANGund に設定する必要があります。さもないと、英語と日本語のテキストの両方とも日本語フォントで描画されます。
  • Fontconfig 設定を変更した後は fc-match -a monospace | head を実行して、代替フォントが正しく設定されていることを確認してください。

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

フォント設定#デフォルトまたは代替フォントを設定する も参照。

フォントエイリアス

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

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

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

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

ヒントとテクニック

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

以下のコマンドを使うことで、システム上で利用可能な全ての Fontconfig フォントを一覧表示できます:

$ fc-list

特定の言語のインストール済みフォントを一覧する

アプリケーションやブラウザは、fontconfig の設定と、Unicode テキスト用の利用可能なフォントグリフに基づいて、フォントを選択し描画します。特定の言語用のインストール済みフォントを一覧表示するには、fc-list :lang="2文字の言語コード" を実行してください。

例えば、インストール済みのアラビア語フォント及びアラビア語グリフをサポートしているフォントを一覧表示するには:

$ fc-list -f '%{file}\n' :lang=ar
/usr/share/fonts/TTF/FreeMono.ttf
/usr/share/fonts/TTF/DejaVuSansCondensed.ttf
/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf
/usr/share/fonts/TTF/DejaVuSansMono.ttf
/usr/share/fonts/TTF/FreeSerif.ttf

特定の Unicode 文字を持つインストール済みフォントを一覧表示する

特定の Unicode コードポイントをサポートする等幅フォントを検索するには:

$ fc-match -s monospace:charset=1F4A9

テーミナルフォントを実行中に設定する

X resources を使用するターミナルエミュレータ (xtermrxvt-unicode など) では、エスケープシーケンスでフォントを設定することができます。具体的には、echo -e "\033]710;$font\007" でノーマルフォント (~/.Xresources*font に対応) を変更します。*boldFont*italicFont*boldItalicFont のフォントファミリを変更するには、710 の部分をそれぞれ 711712713 に変更してください。

$font~/.Xresources と同じ構文を使用し、ターミナルエミュレータがサポートするフォントなら何でも使えます (例: xft:dejavu sans mono:size=9)。

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

Matplotlib (python-matplotlib) は独自のフォントキャッシュを使用するので、フォントを更新したら、キャッシュを再生成して新しいフォントを検出させるために、~/.matplotlib/fontList.cache~/.cache/matplotlib/fontList.cache~/.sage/matplotlib-1.2.1/fontList.cache などを削除するのを忘れないでください。[6]

双方向テキストのサポート

右横書き言語に関連するトラブルシューティングについては 双方向テキスト を参照してください。

点字フォントがターミナル内で正しく表示されない

点字のレンダリングの問題がターミナル内で発生する場合は、点字フォントをインストールして gnu-free-fonts をアンインストールしてみてください。

フォント設定に関するアプリケーション固有のヒント

Emacs

Emacs は Linux の標準的なデスクトップアプリケーションとは異なったサイズ計算を行い、Emacs 関連のパッケージは同じ設定フォーマットを使うとは限りません。なので、ポイントサイズや生のピクセルサイズは利用できません。他の値を使ってみてください。

Visual Studio Code

等幅フォントで特定の文字のスケーリングが正しく行われない問題が発生する場合は、Editor: Experimental Whitespace Rendering を "svg" から "font" に変更してください。これは "Terminus (TTF)" フォントや "IBM 3270" フォントで問題を解決することが知られています。

参照

翻訳ステータス: このページは en:Fonts の翻訳バージョンです。最後の翻訳日は 2024-04-06 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。