Infinality
Infinality パッチセットは freetype2 のフォントレンダリングを大幅に向上させます。また、新しい機能を多数追加します。
目次
機能
Infinality の設定は /etc/X11/xinit/xinitrc.d/infinality-settings
内の環境変数で全て行うことができます。以下を設定可能です:
- Emboldening Enhancement: Y emboldening を無効化し、太字のないフォントでよりよい結果が得られます。ネイティブの TT hinter と autohinter で動作します。
- Auto-Autohint: TT 情報が含まれていないフォントで autohint を自動的に強制します。
- Autohint Enhancement: autohint にピクセルから水平ステムを抽出させます。よくヒンティングされた truetype フォントと同じような結果が得られますが、100% パテントフリーです (私が知る限り)。
- Customized FIR Filter: 起動時にあなたが設定した filter values を選択します。ネイティブの TT hinter と autohinter で動作します。
- Stem Alignment: ビットマップ文字を調整してピクセルの境界を最適化します。ネイティブの TT hinter と autohinter で動作します。
- Pseudo Gamma Correction: 指定された値・サイズまで文字を薄く・濃くします。ネイティブの TT hinter と autohinter で動作します。
- Embolden Thin Fonts: 細い、もしくは薄いフォントを太くして可読性を上げます。autohinter で動作します。
- Force Slight Hinting: プログラムが完全なヒンティングを求めているときも軽量なヒンティングを強制します。(fedora の infinality-settings パッケージに含まれている) local.conf を使っている場合 @font-face フォントで改善が見られます。
- ChromeOS Style Sharpening: ChromeOS はフォントの見た目をシャープにするパッチを使っています。現在このパッチは infinality パッチセットに含まれています。
また、多くのプリセットが含まれており /etc/X11/xinit/xinitrc.d/infinality-settings
で USE_STYLE 変数を設定することで使うことができます。
インストール
カスタムリポジトリ
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。
全てのライブラリはクリーンな chroot 環境でビルドされ、i686 と x86_64 アーキテクチャ両方で利用でき、multilib もサポートしています。
最高の結果を得るため、またユーザーの利便性を向上させるため、ハイパーテキストドキュメントを作成・再現するのに必要な幅広い数の書体を全て提供する、補足のリポジトリ infinality-bundle-fonts が利用できます。フォントは全て手動で選択し、ウェブやオフィスで使われているプロプライエタリのフォントと互換性があるだけでなく、高品質のテキストレンダリングを保証します。全てのフォントは 100% フリーで利用可能であり GPL, OFL, Apache やその他の互換性がある非制限的なライセンスが使われています。
通常は、インストール後の設定は必要ありません。とはいえ、柔軟性は最大限確保されておりユーザーは必要に応じてバンドルを簡単にカスタマイズすることができます。
インストール
infinality-bundle リポジトリを pacman.conf
に追加して、infinality-bundle メタパッケージをインストールしてください。
x86_64 アーキテクチャの multilib ライブラリも使いたい場合は、infinality-bundle-multilib リポジトリを追加して、infinality-bundle-multilib メタパッケージをインストールしてください。
さらに、フリーフォントの広範なコレクションを使いたい場合、infinality-bundle-fonts リポジトリを追加して、ibfonts-meta-base や ibfonts-meta-extended メタパッケージをインストールしてください。
最後に、X サーバーを再起動すると変更が適用されます。
制限ライセンスの推奨フォント
以下は自由に再配布することができないフォントのリストで、そのためバイナリパッケージの infinality-bundle-fonts には含まれていません。しかしながら、特定の条件下では無料でインストールして利用することが可能です。ソースパッケージが AUR にあります。フォントを使う前には EULA を読んで詳細を確認してください。
- ttf-brillAUR
- otf-nerisAUR
- ttf-allerAUR
- ttf-envy-code-rAUR
使用方法
デスクトップ環境 (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"
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
フォントの置き換え
/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 リポジトリにコミットされた修正がすばやく (パッケージをリビルドしたときに) 適用されます。
手動
freetype2-infinalityAUR を AUR からインストールできます。multilib を使っている場合、AUR から lib32-freetype2-infinalityAUR もインストールしてください。AUR には最新の開発スナップショットの freetype2 と Infinality パッチセットも入っています: freetype2-infinality-gitAUR と lib32-freetype2-infinality-gitAUR。
さらに、エンジンのレンダリング設定とは別に、定義済みフォントのスタイルやアンチエイリアス設定の選択を有効にするために fontconfig-infinalityAUR もインストールすることを推奨します。インストール後、フォントのスタイル (win7, winxp, osx, linux, ...) を次のコマンドで選択できます:
# fc-presets set
win7 や osx に設定する場合、適切なフォントがインストールされている必要があります。
詳細は次の記事を見て下さい: 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 .
それからサンプルにそってファイルを編集してください。
デフォルトの置き換えルールの上書きとカスタムルールの追加は 35-repl-custom.conf
を使って行えます。このファイルはデフォルトで有効になっているので、使いたいときは編集するだけで終わります。
Firefox/Chrome ブラウザで等幅フォントがプロポーショナルフォントになる
fc-match
ツールでブラウザがどのフォントを使用しているのか確認できます。"monospace"
で Arial のようなプロポーショナルフォントが使われている場合:
# fc-match "monospace" monospace: arial.ttf: "Arial" "Normal"
次を実行してください:
# fc-presets set
フォントに関する一般的な問題
フォントに問題が発生する (例: PDF 文章で、適切なフォントファミリーをインストールしているはずなのに特定の記号がロードされない) ときは、まず次を実行してみてください:
# fc-cache -fr
このコマンドはフォントキャッシュを全て削除してもう一度初めから再作成します。
参照
- Infinality bundle and fonts - プロジェクトのホームページ (to be updated soon)
- fontconfig-ultimate - git repository providing all patches, configuration files and build scripts for the entire infinality-bundle+fonts collection in separate branches (
master
- the most recent release,infinality-bundle
- archive,pkgbuild
- Arch Linux build scripts) - infinality-bundle: good looking fonts made (even) easier - infinality-bundle support thread in the Arch Linux Forums
- infinality-bundle-fonts: a free multilingual font collection for Arch - infinality-bundle-fonts support thread in the Arch Linux Forums