Infinality

提供: ArchWiki
2016年11月21日 (月) 22:52時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

infinality パッチセットは freetype2 のフォントレンダリングを大幅に向上させます。また、新しい機能を多数追加します。

機能

Infinality の設定は環境変数で全て行うことができます。以下を設定可能です:

  • Emboldening Enhancement: Y emboldening を無効化し、太字のないフォントでよりよい結果が得られます。ネイティブの TT hinter と autohinter で動作します。
  • Auto-Autohint: TT 情報が含まれていないフォントで autohint を自動的に強制します。
  • Autohint Enhancement: autohint にピクセルから水平ステムを抽出させます。よくヒンティングされた truetype フォントと同じような結果が得られますが、100% パテントフリーです (私が知る限り)。
  • Customized FIR Filter: 起動時にあなたが設定した フィルター を選択します。ネイティブの TT hinter と autohinter で動作します。
  • Stem Alignment: ビットマップ文字を調整してピクセルの境界を最適化します。ネイティブの TT hinter と autohinter で動作します。
  • Pseudo Gamma Correction: 指定された値・サイズまで文字を薄く・濃くします。ネイティブの TT hinter と autohinter で動作します。
  • Embolden Thin Fonts: 細い、もしくは薄いフォントを太くして可読性を上げます。autohinter で動作します。
  • Force Slight Hinting: プログラムが完全なヒンティングを求めているときも軽量なヒンティングを強制します。
  • ChromeOS Style Sharpening: ChromeOS はフォントの見た目をシャープにするパッチを使っています。現在このパッチは infinality パッチセットに含まれています。

詳しくは README を見て下さい。

また、多くのプリセットが含まれており /etc/X11/xinit/xinitrc.d/xft-settings.sh で USE_STYLE 変数を設定することで使うことができます。

変数は /etc/profile.d/infinality-settings.sh で設定すると良いでしょう。infinality-settings.sh を参照。

インストール

カスタムリポジトリ

Infinality-bundle は Arch Linux のテキストレンダリングを改善させる、簡単で"インストールしたら忘れることができる"手段を提供するソフトウェアのコレクションです。パッケージは extra リポジトリのシステムライブラリと完全な互換性があるため、簡単に置き換えることが可能です。

現在、このバンドルに含まれているのは:

  • freetype2-infinality-ultimate - Infinality などのパッチをあててビルドされた freetype2
  • fontconfig-infinality-ultimate - freetype2-infinality-ultimate 用に最適化された fontconfig。free (デフォルト), MS, custom フォントコレクションの個別の設定プリセットが含まれています。
  • cairo-infinality-ultimate - Ubuntu のパッチをあててビルドされた cairo
  • jdk8-openjdk-infinality - infinality パッチが適用された jdk8-openjdk

全てのライブラリはクリーンな chroot 環境でビルドされ、i686 と x86_64 アーキテクチャ両方で利用でき、multilib もサポートしています。

最高の結果を得るため、また、ユーザーの利便性を向上させるため、ハイパーテキストドキュメントを作成・再現するのに必要な幅広い数の書体を全て提供する、infinality-bundle-fonts リポジトリが利用できます。フォントは全て手動で選択し、ウェブやオフィスで使われているプロプライエタリのフォントと互換性があるだけでなく、高品質のテキストレンダリングを保証します。全てのフォントは 100% フリーで利用可能であり GPL, OFL, Apache やその他の互換性がある非制限的なライセンスが使われています。

通常は、インストール後の設定は必要ありません。とはいえ、柔軟性は最大限確保されておりユーザーは必要に応じてバンドルを簡単にカスタマイズすることができます。

インストール

infinality-bundle リポジトリを pacman.conf に追加して、infinality-bundle メタパッケージをインストールしてください。

ノート: 忘れずに pacman のキーリングに ID 962DDE58 キーを追加してください。詳しくは Pacman-key#非公式のキーの追加 を参照。

x86_64 アーキテクチャの multilib ライブラリも使いたい場合は、infinality-bundle-multilib リポジトリを追加して、infinality-bundle-multilib メタパッケージをインストールしてください。

さらに、フリーフォントの広範なコレクションを使いたい場合、infinality-bundle-fonts リポジトリを追加して、ibfonts-meta-baseibfonts-meta-extended メタパッケージをインストールしてください。

ノート: pacman による依存関係の解決時にパッケージの衝突が検出されます、例:
resolving dependencies...
looking for inter-conflicts...
:: freetype2-infinality-ultimate and freetype2 are in conflict. Remove freetype2? [y/N]
yes と答えて下さい。

最後に、X サーバーを再起動すると変更が適用されます。

制限ライセンスの推奨フォント

以下は自由に再配布することができないフォントのリストで、そのためバイナリパッケージの infinality-bundle-fonts には含まれていません。しかしながら、特定の条件下では無料でインストールして利用することが可能です。ソースパッケージが AUR にあります。フォントを使う前には EULA を読んで詳細を確認してください。

使用方法

デスクトップ環境 (Gnome, KDE, Xfce4, Cinnamon, LXDE) のユーザーは DE のコントロールパネルからフォント設定を調整してください。基本的に、設定は freetype2 の設定ファイル (/etc/profile.d/infinality-settings.sh) にあるものを複製します:

Xft.antialias: 1
Xft.autohint: 0
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xft.rgba: rgb

DE のコントロールパネルで上記全てが設定できない場合は、設定できるものだけ調整してください。上記の設定以外に INFINALITY_FT 変数をカスタマイズすることもできます。例:

# Makes fonts darker and thicker
export INFINALITY_FT_BRIGHTNESS="-10"

# Not too sharp, not too smooth
export INFINALITY_FT_FILTER_PARAMS="16 20 28 20 16"
ノート: カスタマイズは infinality パッケージのアップデート時に .pacsave ファイルに保存されます。

Microsoft のプロプライエタリフォントを使いたい場合 infinality-bundle-fonts のインストールを省略することができます。この場合、fontconfig の MS プリセットを有効にして正しいフォントセットが選択されるようにする必要があります。プリセットを有効にするには、次を実行して:

# fc-presets set
1) combi
2) free
3) ms
4) reset
5) quit
Enter your choice...

3 を選択してください。

詳細は fc-presets help を実行してください。

カスタムフォントコレクションを使いたい場合、fontconfig パラメータを適宜に調整する combi プリセットが利用できます。combi プリセットを有効にすると、'combi' 設定ファイル (/etc/fonts/conf.avail.infinality/combi) の中身を自由に変更できるようになります。変更する時は、'combi' ディレクトリのバックアップコピーを作成するのを忘れないで下さい。

追加フォント

さらにフォントをインストールしたい人のために、追加の infinality-bundle-fonts-extra コレクションが存在します。利用できるパッケージを表示するには次を実行してください:

$ pacman -Ss infinality-bundle-fonts-extra
ノート:
  • 公式リポジトリAUR からサードパーティのフォントをインストールするときは、その前に毎回 infinality-bundle-fonts コレクションからそのフォントがインストールできないか確認してください。
  • infinality-bundle-fonts-extra グループ全体をインストールするのはやめましょう。利用できるフォント全てが必要というわけではないのであれば、ハードドライブのクラッタを不必要に増やしフォントキャッシュのパフォーマンスを下げるだけの結果になります。ほとんどの場合 ibfonts-meta-extended で十分です。

フォントの置き換え

/etc/fonts/conf.d/37-repl-global-preset.conf で設定されているデフォルトフォントの置き換えを上書きしたり新しい置き換えを追加したい場合、/etc/fonts/conf.d/35-repl-custom.conf を使って下さい。置き換えるフォントファミリーの数だけテンプレート (16行のコード) を複製して適当なフォント名を指定する必要があります。

パッケージの署名

このリポジトリを使っているとパッケージデータベースや署名が一致しないという問題に遭遇することがあるかもしれません。通常はパッケージリストを強制的に更新 (pacman -Syy) することで問題は解決します。問題が解決しない場合、/var/lib/pacman/sync から infinality-bundle のファイルを削除してからもう一度リポジトリを再同期してみてください。

アップデート

fontconfig-infinality-ultimate は頻繁にアップデートされます。基本的に3-4週間ごとにアップデートされ、マイナーバグが修正されます。AUR の fontconfig-infinality-ultimate-gitAUR を使用する場合、GitHub リポジトリにコミットされた修正がすばやく (パッケージをリビルドしたときに) 適用されます。

ノート:
  • fontconfig-infinality-ultimate-git は [infinality-bundle] リポジトリのパッケージの開発版です。安定版ではないため、ときどき壊れてしまう可能性があるので注意してください。
  • バグを報告するときは、全てのコードに関連する問題 (レンダリングがおかしい、fontconfig が機能しない、など) は GitHub Issues * bohoomil/fontconfig-ultimate に、Arch 特有の問題 (パッケージングや一般的な質問など) は Arch フォーラムの専用スレッドに報告してください。レポートを作成する前に、[infinality-bundle] のパッケージが正しくインストールされているか、カスタマイズされているか確認してください。

手動

警告: 上流の infinality パッチは昔の 2.4x freetype2 ブランチを対象としています。基本的には bohoomil によって提供されているカスタムリポジトリを使うことが推奨されます。

freetype2-infinalityAURAUR からインストールできます。multilib を使っている場合、AUR から lib32-freetype2-infinalityAUR もインストールしてください。AUR には最新の開発スナップショットの freetype2 と Infinality パッチセットも入っています: freetype2-infinality-gitAURlib32-freetype2-infinality-gitAUR

さらに、エンジンのレンダリング設定とは別に、定義済みフォントのスタイルやアンチエイリアス設定の選択を有効にするために fontconfig-infinalityAUR もインストールすることを推奨します。インストール後、フォントのスタイル (win7, winxp, osx, linux, ...) を次のコマンドで選択できます:

# fc-presets set

win7 や osx に設定する場合、適切なフォントがインストールされている必要があります。

ノート:
  • ユーザー bohoomil が素晴らしい設定を彼の github リポジトリでメンテナンスしており AUR では fontconfig-infinality-ultimate-gitAUR として利用可能です。
  • AUR から grip-gitAUR をインストールすることでリアルタイムのフォントプレビューができます。
  • fontconfig-infinalityAUR の README には /etc/fonts/local.conf は存在しないか、infinality の設定はそこにないと書いてあります。現在 local.conf は廃止されておりこの設定によって完全に置き換えられます。

詳細は次の記事を見て下さい: http://www.infinality.net/forum/viewtopic.php?f=2&t=77

トラブルシューティング

フォント設定#トラブルシューティングも参照。

Spotify

Spotify でレンダリングに問題が発生する [1] 場合、以下のフォント設定を試してみて下さい:

USE_STYLE="2"
export INFINALITY_FT_FRINGE_FILTER_STRENGTH="50"
export INFINALITY_FT_USE_VARIOUS_TWEAKS="true"
export INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH="20"
export INFINALITY_FT_GAMMA_CORRECTION="30 80"
export INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="25"
export INFINALITY_FT_STEM_FITTING_STRENGTH="25"

Google Chrome

この投稿で説明されている Google Chrome ブラウザのレンダリング問題を解決するには、/etc/fonts/fonts.conf ファイルを編集して以下のエントリをアンコメントしてください:

<!--match target="pattern">
<edit name="dpi" mode="assign">
<double>72</double>
</edit>
</match-->

Emacs

infinality-bundle-fonts をインストールするとデフォルトの可変ピッチの書体で問題が発生すると Emacs ユーザーが報告しています。フリーフォントで Emacs を正しく使えるようにするには、$HOME/.emacs で可変ピッチファミリーを指定してください。Noto Sans (別名 'sans' もしくは 'system font') 以外なら何でもかまいません、例:

(custom-set-faces
 '(default ((t (:family "Liberation Mono" :slant normal :weight regular :height 98))))
 '(variable-pitch ((t (:family "Liberation Sans" :slant normal :weight regular :height 98 )))))

GIMP

画像の中のテキストのサブピクセルレンダリングに問題が起こると GIMP ユーザーが報告しています。一番良い解決法は GIMP のサブピクセルレンダリングを完全に無効にすることです。以下の内容のファイル /etc/gimp/2.0/fonts.conf (ユーザー別なら ~/gimp-2.8/fonts.conf) を追加してください:

/etc/gimp/2.0/fonts.conf
<fontconfig>
  <match target="font">
    <edit name="rgba" mode="assign">
      <const>none</const>
    </edit>
  </match>
</fontconfig>

特別なダイアクリティカルマークや記号

言語によっては特別なダイアクリティカルマークや記号がデフォルトフォントでは正しく表示されないことがあります。

これは拡張ラテン文字 (A と B) をサポートしていないウェブフォントを利用する定義済みの CSS テンプレートを使うウェブサイト (特にブログ) で問題になります。infinality-bundle の問題ではないため、本当は問題が起こるサイトの作者・管理者が修正すべき事柄ですが、fontconfig で該当するフォントを置き換えるルールを作成することで問題を回避することができます。この方法を使いたいときは、まず 36-repl-missing-glyphs.conf を有効にしてください:

$ cd /etc/fonts/conf.d
$ ln -s ../conf.avail.infinality/36-repl-missing-glyphs.conf .

それからサンプルにそってファイルを編集してください。

ノート: ラテン文字以外の文章のデフォルトフォントは 65-non-latin-preset.conf (デフォルト設定) で設定します。

デフォルトの置き換えルールの上書きとカスタムルールの追加は 35-repl-custom.conf を使って行えます。このファイルはデフォルトで有効になっているので、使いたいときは編集するだけで終わります。

Firefox/Chrome ブラウザで等幅フォントがプロポーショナルフォントになる

fc-match ツールでブラウザがどのフォントを使用しているのか確認できます。"monospace" で Arial のようなプロポーショナルフォントが使われている場合:

# fc-match "monospace"
monospace: arial.ttf: "Arial" "Normal"

次を実行してください:

# fc-presets set

漢字がおかしくなる

特定のフォントサイズでは "的" "照" "吧" などの CJK 文字が変形してしまうことがあります [2]。自動ヒンティングを一部無効化することで解決します:

export INFINALITY_FT_STEM_ALIGNMENT_STRENGTH=0
export INFINALITY_FT_STEM_FITTING_STRENGTH=0
export INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE=0
export INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT=0
export INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH=0
export INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS=false

フォントに関する一般的な問題

フォントに問題が発生する (例: PDF 文章で、適切なフォントファミリーをインストールしているはずなのに特定の記号がロードされない) ときは、まず次を実行してみてください:

# fc-cache -fr

このコマンドはフォントキャッシュを全て削除してもう一度初めから再作成します。

参照