Difference between revisions of "Font Configuration (日本語)"

From ArchWiki
Jump to: navigation, search
m (アンチエイリアス)
(フォントが歪む)
(6 intermediate revisions by the same user not shown)
Line 20: Line 20:
 
今日の Linux の標準は Fontconfig ですが、アプリケーションによっては未だにフォントの選択と表示に [[X Logical Font Description]] を使っているものもあります。
 
今日の Linux の標準は Fontconfig ですが、アプリケーションによっては未だにフォントの選択と表示に [[X Logical Font Description]] を使っているものもあります。
  
Arch Linux のフォントレンダリングパッケージには ''freetype2'' のサポートが含まれており バイトコードインタプリタ (BCI) が有効になっています。LCD モニターでより良いフォントレンダリングを行うためのパッチがあてられたパッケージも存在します。[[#パッチがあてられているパッケージ]] を見て下さい。[[#Infinality]] パッケージは自動ヒンティングとサブピクセルレンダリング、リコンパイル不要の LCD フィルター調整、太字フォントの auto-hinter が可能です。
+
Arch Linux のフォントレンダリングパッケージには ''freetype2'' のサポートが含まれており バイトコードインタプリタ (BCI) が有効になっています。LCD モニターでより良いフォントレンダリングを行うためのパッチがあてられたパッケージも存在します。[[#パッチがあてられているパッケージ]] を見て下さい。[[#Infinality|Infinality]] パッケージは自動ヒンティングとサブピクセルレンダリング、リコンパイル不要の LCD フィルター調整、太字フォントの auto-hinter が可能です。
  
 
== フォントパス ==
 
== フォントパス ==
Line 53: Line 53:
 
Fontconfig については [http://fontconfig.org/fontconfig-user.html fonts-conf] の man ページで説明されています。
 
Fontconfig については [http://fontconfig.org/fontconfig-user.html fonts-conf] の man ページで説明されています。
  
Configuration can be done per-user through {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}, and globally with {{ic|/etc/fonts/local.conf}}.  The settings in the per-user configuration have precedence over the global configuration.  Both these files use the same syntax.
+
設定は {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}} を使ってユーザーごとに行うことも、{{ic|/etc/fonts/local.conf}} で全体的に設定することもできます。ユーザー別の設定はグローバルの設定よりも優先されます。これらのファイルは同じ構文を使っています。
{{Note|Configuration files and directories: {{ic|~/.fonts.conf}}, {{ic|~/.fonts.conf.d}} and {{ic|~/.fontconfig/*.cache-*}} are deprecated since fontconfig 2.10.1 ([http://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb185d5651b57380b0a9443001e8051b29d upstream commit]) and will not be read by default in the future versions of package. Use instead {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}, {{ic|$XDG_CONFIG_HOME/fontconfig/conf.d}} and {{ic|$XDG_CACHE_HOME/fontconfig/*.cache-*}} respectively. If you use the second directory, the file '''must''' follow the naming convention {{ic|NN-name.conf}} (where NN it's a two digit number like 00, 10, or 99).}}
+
  
Fontconfig gathers all its configurations in a central file ({{ic|/etc/fonts/fonts.conf}}). This file is replaced during fontconfig updates and shouldn't be edited. Fontconfig-aware applications source this file to know available fonts and how they get rendered. This file is a conglomeration of rules from the global configuration ({{ic|/etc/fonts/local.conf}}), the configured presets in {{ic|/etc/fonts/conf.d/}}, and the user configuration file ({{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}). {{ic|fc-cache}} can be used to rebuild fontconfig's configuration, although changes will only be visible in newly launched applications.
+
{{Note|設定ファイルとディレクトリ: {{ic|~/.fonts.conf}}, {{ic|~/.fonts.conf.d}}, {{ic|~/.fontconfig/*.cache-*}} は fontconfig 2.10.1 から使われなくなりました ([http://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb185d5651b57380b0a9443001e8051b29d upstream commit]) 次のバージョンのパッケージからデフォルトで読み込まれなくなります。代わりに {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}, {{ic|$XDG_CONFIG_HOME/fontconfig/conf.d}}, {{ic|$XDG_CACHE_HOME/fontconfig/*.cache-*}} を各々使って下さい。二番目のディレクトリを使う場合、ファイルの名前は次の決まりに'''従う必要があります''' {{ic|NN-name.conf}} (NN は2桁の数字です、例: 00, 10, 99)。}}
  
{{Note|For some desktop environments (such as [[GNOME]] and [[KDE]]) using the ''Font Control Panel'' will automatically create or overwrite the user font configuration file.  For these desktop environments, it is best to match your already defined font configurations to get the expected behavior.}}
+
Fontconfig は全ての設定を一つの中心ファイル ({{ic|/etc/fonts/fonts.conf}}) に集めます。このファイルは fontconfig がアップデートしたときに置き換えられるので編集してはいけません。Fontconfig に対応したアプリケーションはこのファイルを読み込んで利用できるフォントとレンダリング方法を知ります。このファイルは、全体的な設定 ({{ic|/etc/fonts/local.conf}}) と {{ic|/etc/fonts/conf.d/}} の設定済みプリセット、そしてユーザーの設定ファイル ({{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}) に書かれたルールの寄せ集めです。{{ic|fc-cache}} を使うことで fontconfig の設定をリビルドできます、ただし変更は新しく起動したアプリケーションにのみ適用されます。
 +
 
 +
{{Note|([[GNOME (日本語)|GNOME]] [[KDE (日本語)|KDE]] などの) デスクトップ環境によっては、''フォントコントロールパネル''を使うと自動的にユーザーのフォント設定ファイルが作成・上書きされます。これらのデスクトップ環境では、期待した動作をするために既に定義済みの設定ファイルにあわせるのが最善です。}}
  
 
Fontconfig の設定ファイルは [[Wikipedia:ja:XML|XML]] 形式で、以下のヘッダーが必要になります:
 
Fontconfig の設定ファイルは [[Wikipedia:ja:XML|XML]] 形式で、以下のヘッダーが必要になります:
Line 104: Line 105:
 
=== ヒンティング ===
 
=== ヒンティング ===
  
[[Wikipedia:Font hinting|Font hinting]] (also known as instructing) is the use of mathematical instructions to adjust the display of an outline font so that it lines up with a rasterized grid, such as the pixel grid in a display. Fonts will not line up correctly without hinting until displays have 300 [[Wikipedia:Dots per inch|DPI]] or greater. Two types of hinting are available.
+
[[Wikipedia:ja:フォントヒンティング|フォントヒンティング]] (instructing とも呼ばれます) は数学的な情報を使ってアウトラインフォントの表示を調整し、ディスプレイのピクセルグリッドと同じように、ラスタライズされたグリッドにフォントを並べる技術です。ディスプレイが 300 [[Wikipedia:ja:dpi|DPI]] 以上ない場合ヒンティングがないとフォントを正しく並べることはできません。ヒンティングは2つのタイプが利用できます。
  
 
==== バイトコードインタプリタ (BCI) ====
 
==== バイトコードインタプリタ (BCI) ====
  
Using normal hinting, TrueType hinting instructions in the font are interpreted by freetype's Byte-Code Interpreter. This works best for fonts with good hinting instructions.
+
通常のヒンティングを使って、freetype の Byte-Code Interpreter によってフォント内の TrueType ヒンティング情報が解釈されます。正しいヒンティング情報があるフォントでは一番良く働きます。
  
To enable normal hinting:
+
通常のヒンティングを有効にするには:
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 122: Line 123:
 
==== Autohinter ====
 
==== Autohinter ====
  
Auto-discovery for hinting. This looks worse than normal hinting for fonts with good instructions, but better for those with poor or no instructions. The autohinter and subpixel rendering are not designed to work together and should not be used in combination.
+
ヒンティングを自動検知します。情報が揃っているフォントでの通常ヒンティングよりは見た目が悪くなりますが、情報が少なかったり無かったりするフォントでは見た目が良くなります。autohinter とサブピクセルレンダリングは同時に動作させることが想定されていないので一緒に使ってはいけません。
  
To enable auto-hinting:
+
自動ヒンティングを有効にするには:
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 134: Line 135:
 
</nowiki>}}
 
</nowiki>}}
  
==== Hint style ====
+
==== ヒントスタイル ====
  
Hint style is the amount of influence the hinting mode has.  Hinting can be set to: {{ic|hintfull}}, {{ic|hintmedium}}, {{ic|hintslight}} and {{ic|hintnone}}. With BCI hinting, hintfull should work best for most fonts. With the autohinter, hintslight is recommended.
+
ヒントスタイルはヒンティングモードの影響力の強さを示します。ヒンティングの強さは次のどれかに設定できます: {{ic|hintfull}}, {{ic|hintmedium}}, {{ic|hintslight}}, {{ic|hintnone}}。BCI ヒンティングでは、ほとんどのフォントで hintfull が最適です。autohinter を使っている時は、hintslight が推奨されています。
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 146: Line 147:
 
</nowiki>}}
 
</nowiki>}}
  
{{Note|Some applications, like [[Gnome|Gnome 3]] may [[#Troubleshooting|override default hinting settings.]]}}
+
{{Note|[[GNOME (日本語)|Gnome 3]] などのアプリケーションによっては、[[#トラブルシューティング|デフォルトのヒンティング設定を無視する]]ことがあります。}}
  
 
=== サブピクセルレンダリング ===
 
=== サブピクセルレンダリング ===
  
Subpixel rendering effectively triples the horizontal (or vertical) resolution for fonts by making use of subpixels. The autohinter and subpixel rendering are not designed to work together and should not be used in combination without the [[#Infinality]] patch set.
+
サブピクセルレンダリングはサブピクセルを使うことでフォントの横の (もしくは縦の) 解像度を事実上3倍にします。autohinter とサブピクセルは一緒に動作させることを予定されていないので、[[#Infinality: 一般的な方法|Infinality]] パッチセットを使っていない限り、同時に両方とも使ってはいけません。
  
Most monitors manufactured today use the Red, Green, Blue (RGB) specification. Fontconfig will need to know your monitor type to be able to display your fonts correctly.
+
今日ではほとんどのモニターは赤・緑・青 (RGB) の並びを使っています。フォントを正しく表示するために、Fontconfig にあなたのモニターのタイプを知らせる必要があります。
  
''RGB (most common), BGR, V-RGB (vertical), or V-BGR''
+
''RGB (最も一般的), BGR, V-RGB (), V-BGR''
  
To enable subpixel rendering:
+
サブピクセルレンダリングを有効にするには:
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 166: Line 167:
 
</nowiki>}}
 
</nowiki>}}
  
If you notice unusual colors around font's borders, the wrong subpixel arrangement might be configured.  The [http://www.lagom.nl/lcd-test/subpixel.php Lagom subpixel layout test] web page can help identify it.
+
フォントの縁に異常な色が出る場合、間違ったサブピクセル配列が設定されている可能性があります。[http://www.lagom.nl/lcd-test/subpixel.php Lagom subpixel layout test] で配列を確認することができます。
  
 
==== LCD フィルター ====
 
==== LCD フィルター ====
  
When using subpixel rendering, you should enable the LCD filter, which is designed to reduce colour fringing.  This is described under [http://www.freetype.org/freetype2/docs/reference/ft2-lcd_filtering.html LCD filtering] in the FreeType 2 API reference.  Different options are described under [http://www.freetype.org/freetype2/docs/reference/ft2-lcd_filtering.html#FT_LcdFilter FT_LcdFilter], and are illustrated by this [http://www.spasche.net/files/lcdfiltering/ LCD filter test] page.
+
サブピクセルレンダリングを使う場合、色縁を減らす LCD フィルターを有効にするべきです。FreeType 2 API リファレンスの [http://www.freetype.org/freetype2/docs/reference/ft2-lcd_filtering.html LCD filtering] にこのフィルターの説明があります。また、[http://www.freetype.org/freetype2/docs/reference/ft2-lcd_filtering.html#FT_LcdFilter FT_LcdFilter] にオプションの説明があり、[http://www.spasche.net/files/lcdfiltering/ LCD filter test] にそれぞれのオプションを使って実際に表示したサンプルがあります
  
The {{ic|lcddefault}} filter will work for most users. Other filters are available that can be used in special situations: {{ic|lcdlight}}; a lighter filter ideal for fonts that look too bold or fuzzy, {{ic|lcdlegacy}}, the original Cairo filter; and {{ic|lcdnone}} to disable it entirely.
+
ほとんどのユーザーにとっては {{ic|lcddefault}} フィルターが具合が良いでしょう。他のフィルターは特別な事情がある場合に使えます: {{ic|lcdlight}} は明るいフィルターで、太すぎたりぼやけているフォントに向いています。{{ic|lcdlegacy}} はオリジナルの Cairo フィルターです。{{ic|lcdnone}} はフィルターを完全に無効にします。
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 182: Line 183:
 
</nowiki>}}
 
</nowiki>}}
  
==== Advanced LCD filter specification ====
+
==== 高度な LCD フィルター設定 ====
  
If the available, built-in LCD filters are not satisfactory, it is possible to tweak the font rendering very specifically by building a custom freetype2 package and modifying the hardcoded filters. The [[Arch Build System]] can be used to build and install packages from source.
+
内臓の LCD フィルターで満足しない時は、freetype2 のカスタムパッケージをビルドしてハードコードされたフィルターを修正することでフォントレンダリングを調整することが可能です。[[Arch Build System (日本語)|Arch Build System]] を使えばソースからパッケージをビルド・インストールできます。
  
First, refresh the freetype2 PKGBUILD as root:
+
まず、root で freetype2 PKGBUILD を更新してください:
  
 
  # abs extra/freetype2
 
  # abs extra/freetype2
  
This example uses {{ic|/var/abs/build}} as the build directory, substitute it according to your personal ABS setup. Download and extract the freetype2 package as a regular user:
+
この例ではビルドディレクトリに {{ic|/var/abs/build}} を使っています、あなたの ABS セットアップにあわせて置き換えてください。通常ユーザーで freetype2 パッケージをダウンロード・展開します:
  
 
  $ cd /var/abs/build
 
  $ cd /var/abs/build
Line 197: Line 198:
 
  $ makepkg -o
 
  $ makepkg -o
  
Edit the file {{ic|src/freetype-VERSION/src/base/ftlcdfil.c}} and look up the definition of the constant {{ic|default_filter[5]}}:
+
{{ic|src/freetype-VERSION/src/base/ftlcdfil.c}} ファイルを編集して {{ic|default_filter[5]}} 定数の定義を見て下さい:
  
 
  static const FT_Byte  default_filter[5] =
 
  static const FT_Byte  default_filter[5] =
 
     { 0x10, 0x40, 0x70, 0x40, 0x10 };
 
     { 0x10, 0x40, 0x70, 0x40, 0x10 };
  
This constant defines a low-pass filter applied to the rendered glyph. Modify it as needed. Save the file, build and install the custom package:
+
この定数はレンダリングされた文字に適用するローパスフィルタを定義しています。必要に応じて修正してください。ファイルを保存し、カスタムパッケージをビルド・インストールしてください:
  
 
  $ makepkg -e
 
  $ makepkg -e
Line 208: Line 209:
 
  # pacman -U freetype2-VERSION-ARCH.pkg.tar.xz
 
  # pacman -U freetype2-VERSION-ARCH.pkg.tar.xz
  
Reboot or restart X. The lcddefault filter should now render fonts differently.
+
再起動して X を起動してください。これで lcddefault フィルタはフォントを違ったふうに表示するはずです。
  
 
=== 太字フォントで auto-hinter を無効にする ===
 
=== 太字フォントで auto-hinter を無効にする ===
  
The auto-hinter uses sophisticated methods for font rendering, but often makes bold fonts too wide. Fortunately, a solution can be turning off the autohinter for bold fonts while leaving it on for the rest:
+
auto-hinter は複雑な方法を使ってフォントを表示しますが、しばしば太字フォントの幅が広すぎになってしまうことがあります。幸いに、太字フォントのみ autohinter をオフにすることで解決できます:
 
  ...
 
  ...
 
  <match target="font">
 
  <match target="font">
Line 226: Line 227:
 
=== 大きいフォントでだけアンチエイリアスを有効にする ===
 
=== 大きいフォントでだけアンチエイリアスを有効にする ===
  
''See also [http://sharpfonts.co.cc/ sharpfonts.co.cc] for related information.''
+
''[http://sharpfonts.co.cc/ sharpfonts.co.cc] に関連情報があります。''
  
Some users prefer the sharper rendering that anti-aliasing does not offer:
+
ユーザーによってはアンチエイリアスのないギザギザのレンダリングの方を好むかもしれません:
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 260: Line 261:
 
=== フォントの置き換え ===
 
=== フォントの置き換え ===
  
The most reliable way to do this is to add an XML fragment similar to the one below. ''Using the "binding" attribute will give you better results'', for example, in Firefox where you may not want to change properties of font being replaced. This will cause Ubuntu to be used in place of Georgia:
+
一番信頼できる方法は下のような XML フラグメントを追加することです。''"binding" 属性を使うことでよりよい結果を得ることができます''、例えば、Firefox でフォントのプロパティを変更したくない場合。下のフラグメントは Georgia の代わりに Ubuntu を使わせます:
 
  ...
 
  ...
 
   <match target="pattern">
 
   <match target="pattern">
Line 267: Line 268:
 
   </match>
 
   </match>
 
  ...
 
  ...
An alternate approach is to set the "preferred" font, but ''this only works if the original font is not on the system'', in which case the one specified will be substituted:
+
他の方法として "preferred" フォントを設定するというのもありますが、''元のフォントがシステムに存在しない時にしか効果がありません''。その場合、指定したフォントが代わりに使われます:
 
  ...
 
  ...
 
  < !-- Replace Helvetica with Bitstream Vera Sans Mono -->
 
  < !-- Replace Helvetica with Bitstream Vera Sans Mono -->
Line 280: Line 281:
 
=== ビットマップフォントの無効化 ===
 
=== ビットマップフォントの無効化 ===
  
fontconfig でビットマップフォントを無効化するには、{{ic|70-no-bitmaps.conf}} を使って下さい (which is not placed by fontconfig by default):
+
fontconfig でビットマップフォントを無効化するには、{{ic|70-no-bitmaps.conf}} を使って下さい (このファイルはデフォルトでは fontconfig によって作られません):
  
 
  # cd /etc/fonts/conf.d
 
  # cd /etc/fonts/conf.d
Line 286: Line 287:
 
  # ln -s ../conf.avail/70-no-bitmaps.conf
 
  # ln -s ../conf.avail/70-no-bitmaps.conf
  
This oneliner should also work:
+
次のワンライナーも使えるはずです:
  
 
  # ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
 
  # ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
  
You may not need to remove {{ic|70-yes-bitmaps.conf}} if it does not exist. You can choose which fonts to replace bitmaps fonts with (Helvetica, Courier and Times bitmap mapts to TTF fonts) by:
+
{{ic|70-yes-bitmaps.conf}} が存在しない場合は削除する必要はありません。ビットマップフォントをどのフォントで置き換えるか選択することもできます (Helvetica, Courier and Times bitmap mapts to TTF fonts):
  
 
  # cd /etc/fonts/conf.d
 
  # cd /etc/fonts/conf.d
 
  # ln -s ../conf.avail/29-replace-bitmap-fonts.conf
 
  # ln -s ../conf.avail/29-replace-bitmap-fonts.conf
  
<div id="EmbeddedBitmap">To disable embedded bitmap for all fonts:<div>
+
<div id="EmbeddedBitmap">全てのフォントで埋め込みビットマップを無効にするには:<div>
  
 
{{hc|~/.config/fontconfig/conf.d/20-no-embeded.conf|<nowiki>
 
{{hc|~/.config/fontconfig/conf.d/20-no-embeded.conf|<nowiki>
Line 309: Line 310:
 
</nowiki>}}
 
</nowiki>}}
  
To disable embedded bitmap fonts for a specific font:
+
特定のフォントで埋め込みビットマップフォントを無効にするには:
  
 
  <match target="font">
 
  <match target="font">
Line 322: Line 323:
 
ビットマップフォントのスケーリングを無効化するには (which often makes them blurry)、{{ic|/etc/fonts/conf.d/10-scale-bitmap-fonts.conf}} を削除してください。
 
ビットマップフォントのスケーリングを無効化するには (which often makes them blurry)、{{ic|/etc/fonts/conf.d/10-scale-bitmap-fonts.conf}} を削除してください。
  
=== Create bold and italic styles for incomplete fonts ===
+
=== 不完全なフォントにボールド・イタリック体を作成する ===
  
Freetype has the ability to automatically create ''italic'' and '''bold''' styles for fonts that do not have them, but only if explicitly required by the application. Given programs rarely send these requests, this section covers manually forcing generation of missing styles.
+
Freetype には ''italic'' '''bold''' のスタイルがフォントにないときに自動で作成する機能があります。ただし、この機能はアプリケーションによって明示的に必要とされたときしか使われません。プログラムがこのようなリクエストを送るのは稀なので、このセクションでは手動で欠けているスタイルを強制的に作成する方法を説明しています。
  
Start by editing {{ic|/usr/share/fonts/fonts.cache-1}} as explained below. Store a copy of the modifications on another file, because a font update with {{ic|fc-cache}} will overwrite {{ic|/usr/share/fonts/fonts.cache-1}}.
+
下で説明しているように {{ic|/usr/share/fonts/fonts.cache-1}} を編集するところから初めて下さい。{{ic|fc-cache}} でフォントの更新がされると {{ic|/usr/share/fonts/fonts.cache-1}} が上書きされるので、修正したコピーを他のファイルに保存してください。
  
Assuming the Dupree font is installed:
+
Dupree フォントがインストールされていると仮定します:
 
  "dupree.ttf" 0 "Dupree:style=Regular:slant=0:weight=80:width=100:foundry=unknown:index=0:outline=True:''etc...''
 
  "dupree.ttf" 0 "Dupree:style=Regular:slant=0:weight=80:width=100:foundry=unknown:index=0:outline=True:''etc...''
  
Duplicate the line, change {{ic|<nowiki>style=Regular</nowiki>}} to {{ic|<nowiki>style=Bold</nowiki>}} or any other style. Also change {{ic|<nowiki>slant=0</nowiki>}} to {{ic|<nowiki>slant=100</nowiki>}} for italic, {{ic|<nowiki>weight=80</nowiki>}} to {{ic|<nowiki>weight=200</nowiki>}} for bold, or combine them for '''''bold italic''''':
+
この行を複製して、{{ic|<nowiki>style=Regular</nowiki>}} {{ic|<nowiki>style=Bold</nowiki>}} などの他のスタイルに変更してください。さらに、イタリック体では {{ic|<nowiki>slant=0</nowiki>}} {{ic|<nowiki>slant=100</nowiki>}} に、ボールド体では {{ic|<nowiki>weight=80</nowiki>}} {{ic|<nowiki>weight=200</nowiki>}} に変更してください。もしくは '''''bold italic''''' と結合するなら:
 
  "dupree.ttf" 0 "Dupree:style=Bold Italic:slant=100:weight=200:width=100:foundry=unknown:index=0:outline=True:''etc...''
 
  "dupree.ttf" 0 "Dupree:style=Bold Italic:slant=100:weight=200:width=100:foundry=unknown:index=0:outline=True:''etc...''
  
Now add necessary modifications to {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}:
+
必要な修正を {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}} に加えて下さい:
 
{{bc|<nowiki>
 
{{bc|<nowiki>
 
...
 
...
Line 364: Line 365:
 
...
 
...
 
</nowiki>}}
 
</nowiki>}}
{{Tip| Use the value 'embolden' for existing bold fonts in order to make them even bolder.}}
+
{{Tip|既に太字フォントが存在していて、更に太くしたいときは 'embolden' という値を使って下さい。}}
  
=== Change rule overriding ===
+
=== ルールの優先順を変更する ===
  
Fontconfig processes files in {{ic|/etc/fonts/conf.d}} in numerical order. This enables rules or files to override one another, but often confuses users about what file gets parsed last.
+
Fontconfig は番号順で {{ic|/etc/fonts/conf.d}} 内のファイルを処理します。ルールやファイルが他のルールを上書きする可能性があり、どのファイルが最後にパースされるのか混乱するおそれがあります。
  
To guarantee that personal settings take precedence over any other rules, change their ordering:
+
個人設定が他の全てのルールに優先することを保証するには、順番を変えて下さい:
 
  # cd /etc/fonts/conf.d
 
  # cd /etc/fonts/conf.d
 
  # mv 50-user.conf 99-user.conf
 
  # mv 50-user.conf 99-user.conf
Line 376: Line 377:
 
This change seems however to be unnecessary for the most of the cases, because a user is given enough control by default to set up own font preferences, hinting and antialiasing properties, alias new fonts to generic font families, etc.
 
This change seems however to be unnecessary for the most of the cases, because a user is given enough control by default to set up own font preferences, hinting and antialiasing properties, alias new fonts to generic font families, etc.
  
=== Example fontconfig configurations ===
+
=== fontconfig 設定サンプル ===
  
Example fontconfig configurations can be found on this [[Font_Configuration/fontconfig_Examples|page]].
+
fontconfig の設定例はこの[[Font_Configuration/fontconfig_Examples|ページ]]にあります。
  
A simple starting point:
+
出発点となるシンプルな設定:
  
 
{{hc|/etc/fonts/local.conf|<nowiki>
 
{{hc|/etc/fonts/local.conf|<nowiki>
Line 414: Line 415:
 
== パッチがあてられているパッケージ ==
 
== パッチがあてられているパッケージ ==
  
These patched packages are available in the [[Arch User Repository|AUR]]. A few considerations:
+
以下のパッチ済みパッケージは [[Arch User Repository (日本語)|AUR]] から利用できます。注意事項:
  
* Configuration is usually necessary.
+
* 基本的に設定が必要になります。
* The new font rendering will not kick in until applications restart.
+
* 新しいフォントレンダリングはアプリケーションが再起動するまで有効になりません。
* Applications which [[Wikipedia:Static library|statically link]] to a library will not be affected by patches applied to the system library.
+
* ライブラリに[[Wikipedia:ja:静的リンク|静的リンク]]しているアプリケーションはシステムライブラリにあてられたパッチの影響を受けません。
  
=== Infinality: the generic way ===
+
=== Infinality ===
  
The infinality patchset aims to greatly improve freetype2 font rendering. It adds multiple new capabilities.
+
infinality パッチセットは freetype2 のフォントレンダリングを大幅に向上させます。また、新しい機能を多数追加します。
  
* [http://www.infinality.net/blog/infinality-freetype-patches/ Home page].
+
* [http://www.infinality.net/blog/infinality-freetype-patches/ ホームページ]
* [http://www.infinality.net/forum/ Forum].
+
* [http://www.infinality.net/forum/ フォーラム]
 +
* [http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html infinality についての短い記事 (とスクリーンショット)]
  
Infinality's settings are all configurable at runtime via environment variables in {{ic|/etc/profile.d/infinality-settings.sh}}, and include the following:
+
Infinality の設定は {{ic|/etc/profile.d/infinality-settings.sh}} 内の環境変数で実行しながら全て行うことができます。以下を設定可能です:
  
*'''Emboldening Enhancement''': Disables Y emboldening, producing a much nicer result on fonts without bold versions.  Works on native TT hinter and autohinter.
+
*'''Emboldening Enhancement''': Y emboldening を無効化し、太字のないフォントでよりよい結果が得られます。ネイティブの TT hinter autohinter で動作します。
*'''Auto-Autohint''': Automatically forces autohint on fonts that contain no TT instructions.
+
*'''Auto-Autohint''': TT 情報が含まれていないフォントで autohint を自動的に強制します。
*'''Autohint Enhancement''': Makes autohint snap horizontal stems to pixels. Gives a result that appears like a well-hinted truetype font, but is 100% patent-free (as far as I know).
+
*'''Autohint Enhancement''': autohint にピクセルから水平ステムを抽出させます。よくヒンティングされた truetype フォントと同じような結果が得られますが、100% パテントフリーです (私が知る限り)
*'''Customized FIR Filter''': Select your own [http://www.infinality.net/forum/viewtopic.php?f=2&t=19 filter values] at run-time.  Works on native TT hinter and autohinter.
+
*'''Customized FIR Filter''': 起動時にあなたが設定した [http://www.infinality.net/forum/viewtopic.php?f=2&t=19 filter values] を選択します。ネイティブの TT hinter autohinter で動作します。
*'''Stem Alignment''': Aligns bitmap glyphs to optimized pixel boundaries.  Works on native TT hinter and autohinter.
+
*'''Stem Alignment''': ビットマップ文字を調整してピクセルの境界を最適化します。ネイティブの TT hinter autohinter で動作します。
*'''Pseudo Gamma Correction''': Lighten and darken glyphs at a given value, below a given size.  Works on native TT hinter and autohinter.
+
*'''Pseudo Gamma Correction''': 指定された値・サイズまで文字を薄く・濃くします。ネイティブの TT hinter autohinter で動作します。
*'''Embolden Thin Fonts''': Embolden thin or light fonts so that they are more visible.  Works on autohinter.
+
*'''Embolden Thin Fonts''': 細い、もしくは薄いフォントを太くして可読性を上げます。autohinter で動作します。
*'''Force Slight Hinting''': Force slight hinting even when programs want full hinting. If you use the local.conf I provide (included in infinality-settings fedora package) you will notice nice improvements on @font-face fonts.
+
*'''Force Slight Hinting''': プログラムが完全なヒンティングを求めているときも軽量なヒンティングを強制しまう。(fedora の infinality-settings パッケージに含まれている) local.conf を使っている場合 @font-face フォントで改善が見られます。
*'''ChromeOS Style Sharpening''': ChromeOS uses a patch to sharpen the look of fonts. This is now included in the infinality patchset.
+
*'''ChromeOS Style Sharpening''': ChromeOS はフォントの見た目をシャープにするパッチを使っています。現在このパッチは infinality パッチセットに含まれています。
  
A number of presets are included and can be used by setting the USE_STYLE variable in {{ic|/etc/profile.d/infinality-settings.sh}}.
+
多くのプリセットが含まれており {{ic|/etc/profile.d/infinality-settings.sh}} で USE_STYLE 変数を設定することで使うことができます。
  
{{Note|
+
==== インストールと設定 ====
* The user bohoomil maintains a very good configuration in his [https://github.com/bohoomil/fontconf github repo] which is available as a [https://aur.archlinux.org/packages/fontconfig-infinality-ultimate-git/ package] in the AUR.
+
 
* Install {{AUR|grip-git}} from AUR to have a realtime preview.
+
{{Tip|このセクションで挙げられている全ての AUR パッケージは bohoomil のカスタムリポジトリからもインストールできます。リポジトリを有効にする方法は[[#カスタムリポジトリからインストール|下のセクション]]を見て下さい。}}
 +
 
 +
{{Note|fontconfig-infinality-ultimate < 2.11.0-2 を使っている場合、fontconfig-infinality-ultimate パッケージを (アップグレードではなく) 再インストールする必要があります:
 +
  pacman -Rdd fontconfig-infinality-ultimate
 +
  pacman -S fontconfig-infinality-ultimate
 
}}
 
}}
  
{{AUR|freetype2-infinality}} can be installed from the [[Arch User Repository|AUR]]. Additionally, if you are using {{pkg|lib32-freetype2}} from [multilib], replace it with {{AUR|lib32-freetype2-infinality}} from the AUR. The AUR also contains a Git version of freetype2 that builds the latest development snapshot of freetype2 with the Infinality patchset: {{AUR|freetype2-git-infinality}}, {{AUR|lib32-freetype2-git-infinality}}.
+
{{AUR|freetype2-infinality}} [[Arch User Repository (日本語)|AUR]] からインストールできます。multilib を使っている場合、AUR から {{AUR|lib32-freetype2-infinality}} もインストールしてください。AUR には最新の開発スナップショットの freetype2 Infinality パッチセットも入っています: {{AUR|freetype2-infinality-git}} {{AUR|lib32-freetype2-infinality-git}}
  
It is recommended to also install {{AUR|fontconfig-infinality}} to enable selection of predefined font substitution styles and antialiasing settings, apart from the rendering settings of the engine itself. After doing so, you can select the font style (win7, winxp, osx, linux, ...) with:
+
さらに、エンジンのレンダリング設定とは別に、定義済みフォントのスタイルやアンチエイリアス設定の選択を有効にするために {{AUR|fontconfig-infinality}} もインストールすることを推奨します。インストール後、フォントのスタイル (win7, winxp, osx, linux, ...) を次のコマンドで選択できます:
 
  # infctl setstyle
 
  # infctl setstyle
  
If you set e.g. win7 or osx you need the corresponding fonts installed.
+
win7 osx に設定する場合、適切なフォントがインストールされている必要があります。
  
 
{{Note|
 
{{Note|
* Default infinality settings can cause some programs  to display fonts at 72 DPI instead of 96. If you notice a problem open {{ic|/etc/fonts/infinality/infinality.conf}} search for the section on DPI and change 72 to 96. This problem can specifically affect conky causing the fonts to appear smaller than they should. Thus not aligning properly with images.
+
* ユーザー bohoomil が素晴らしい設定を彼の [https://github.com/bohoomil/fontconf github repo] でメンテナンスしており AUR では {{AUR|fontconfig-infinality-ultimate-git}} として利用可能です。
 +
* デフォルトの infinality の設定では 72 DPI ではなく 96 DPI でフォントを表示するときに問題が生じることがあります。問題が起きているようなら {{ic|/etc/fonts/infinality/infinality.conf}} を開いて DPI に関するセクションを探し 72 から 96 に値を変更して下さい。この問題は特に conky がフォントを小さく表示してしまう影響を与えます。そのため画像が正しく表示されなくなります。
 +
* AUR から {{AUR|grip-git}} をインストールすることでリアルタイムのフォントプレビューができます。
 
* ''The README for {{AUR|fontconfig-infinality}} says that /etc/fonts/local.conf should either not exist, or have no infinality-related configurations in it.  The local.conf is now obsolete and completely replaced by this configuration.''
 
* ''The README for {{AUR|fontconfig-infinality}} says that /etc/fonts/local.conf should either not exist, or have no infinality-related configurations in it.  The local.conf is now obsolete and completely replaced by this configuration.''
 
}}
 
}}
  
for more information see this article: http://www.infinality.net/forum/viewtopic.php?f=2&t=77
+
詳細は次の記事を見て下さい: http://www.infinality.net/forum/viewtopic.php?f=2&t=77
  
* [http://www.infinality.net/blog/infinality-freetype-patches/ Home page]
+
==== カスタムリポジトリからインストール ====
* [http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html Short article about infinality (contains screenshots)]
+
  
=== Infinality: the easy way ===
+
また、bohoomil が '''infinality-bundle''' リポジトリを管理していて、3つの基本的なライブラリ (freetype2-infinality-ultimate, fontconfig-infinality-ultimate & cairo-infinality-ultimate) に事前にパッチ・設定・ビルドを行ったバイナリを全てのアーキテクチャで提供しています (i686, x86_64, multilib)。{{Pkg|infinality-bundle}} を使えば、インストール・設定は劇的にシンプルになります。
  
bohoomil also maintains '''infinality-bundle''' repository, offering three basic libraries (freetype2-infinality-ultimate, fontconfig-infinality-ultimate & cairo-infinality-ultimate) as pre-patched, pre-configured and pre-built binaries for all architectures (i686, x86_64, multilib). Using {{Pkg|infinality-bundle}} makes the whole installation and configuration process dramatically simplified.
+
インストールによって、対応する標準の Arch ライブラリが置き換えられます (i.e. freetype2 の代わりに freetype2-infinality-ultimate が、fontconfig の代わりに fontconfig-infinality-ultimate が、標準の cairo の代わりに cairo-infinality-ultimate が使われます)。ライブラリは Arch のパッケージと完全に互換性があります。ほとんどの場合インストール・アップグレードをした後に何らかの設定をする必要はありません: 全ては何もしなくても上手く動くはずです。
  
Installing it will replace the corresponding, generic Arch libraries (i.e. freetype2-infinality-ultimate will be used instead of freetype2, fontconfig-infinality-ultimate instead of fontconfig and fontconfig-infinality-ultimate from the AUR, and cairo-infinality-ultimate instead of the regular cairo). The libraries are fully compatible with the Arch packages and are meant to be used as drop-in replacements for them. No post installation/upgrade steps are required for most use scenarios: everything should work out of the box.
+
リポジトリを使うには、以下を {{ic|/etc/pacman.conf}} に追加してください:
 
+
To use the repository, add
+
  
 
{{bc|<nowiki>[infinality-bundle]
 
{{bc|<nowiki>[infinality-bundle]
 
SigLevel = Never
 
SigLevel = Never
Server = http://bohoomil.cu.cc/infinality-bundle/$arch</nowiki>}}
+
Server = http://ibn.net63.net/infinality-bundle/$arch</nowiki>}}
to your /etc/pacman.conf.
+
  
If you want to have access to multilib versions, add the following, too:
+
multilib バージョンにアクセスしたいときは、同じように:
  
 
{{bc|<nowiki>[infinality-bundle-multilib]
 
{{bc|<nowiki>[infinality-bundle-multilib]
 
SigLevel = Never
 
SigLevel = Never
Server = http://bohoomil.cu.cc/infinality-bundle-multilib/$arch</nowiki>}}
+
Server = http://ibn.net63.net/infinality-bundle-multilib/$arch</nowiki>}}
  
Import and sign the key:
+
キーをインポート・署名して下さい:
  
 
  # pacman-key -r 962DDE58
 
  # pacman-key -r 962DDE58
 
  # pacman-key --lsign-key 962DDE58
 
  # pacman-key --lsign-key 962DDE58
  
Refresh your repositories:
+
リポジトリを更新して下さい:
  
 
  pacman -Syu
 
  pacman -Syu
  
In case of server down times, there is always a backup copy of the repository available via [https://www.dropbox.com/sh/ugmxbui00chidox/njDKnTG49W Dropbox].
+
サーバーがダウンしている場合、リポジトリのバックアップコピーが [https://www.dropbox.com/sh/ugmxbui00chidox/njDKnTG49W Dropbox] が利用できます。
  
When installing some packages (like [https://www.archlinux.org/packages/?sort=&q=libgdiplus&maintainer=&flagged= libgdiplus]), you may encounter an error:
+
パッケージによって ({{Pkg|libgdiplus}} など)、インストール時にエラーが表示されるかもしれません:
  
 
{{bc|:: cairo and cairo-infinality-ultimate are in conflict. Remove cairo-infinality-ultimate? [y/N] n
 
{{bc|:: cairo and cairo-infinality-ultimate are in conflict. Remove cairo-infinality-ultimate? [y/N] n
Line 499: Line 503:
 
error: failed to prepare transaction (conflicting dependencies)}}
 
error: failed to prepare transaction (conflicting dependencies)}}
  
If this happens, install the new package with {{bc|# pacman -Sd foo}} instead.
+
この場合には、新しいパッケージを {{bc|# pacman -Sd foo}} を使ってインストールして下さい。
 +
 
 +
詳しい情報は [http://bohoomil.cu.cc infinality-bundle user notes] を見て下さい。
  
For more information, see [http://bohoomil.github.io/ib.html infinality-bundle user notes].
+
フォーラムのサポートスレッドは[https://bbs.archlinux.org/viewtopic.php?id=162098 ここ]にあります。
  
A support thread in the Forums is available [https://bbs.archlinux.org/viewtopic.php?id=162098 here].
+
{{Note|One frequent issue users face with this repo is that the package database or signatures do not check out. Often times a simple force refresh of the package lists (pacman -Syy) will fix the issue. If that fails, try removing the infinality-bundle files from /var/lib/pacman/sync and then resyncing again.}}
  
 
=== Ubuntu ===
 
=== Ubuntu ===
Line 511: Line 517:
 
[[Arch User Repository (日本語)|AUR]] からパッチのあたったパッケージをインストールしてください。パッケージの名前は: {{AUR|freetype2-ubuntu}} {{AUR|fontconfig-ubuntu}} {{AUR|cairo-ubuntu}}。
 
[[Arch User Repository (日本語)|AUR]] からパッチのあたったパッケージをインストールしてください。パッケージの名前は: {{AUR|freetype2-ubuntu}} {{AUR|fontconfig-ubuntu}} {{AUR|cairo-ubuntu}}。
  
The global configuration will need to be added. See [[#Example fontconfig configurations]] for a starting point.
+
全体的な設定を追加する必要があります。[[#fontconfig 設定サンプル]] を見てください。
 
Ubuntu の設定では ''hintslight'' オプションが一番良いレンダリングをもたらします。
 
Ubuntu の設定では ''hintslight'' オプションが一番良いレンダリングをもたらします。
  
Note that the *-ubuntu AUR packages need to be kept up-to-date by the user, and will not be updated by pacman along with other packages. The whole graphical system can become inoperable if the user-installed core graphical libraries become incompatible with the official repository applications.
+
<nowiki>*-ubuntu</nowiki> の AUR パッケージはユーザーによって最新に保つ必要があることに注意してください。pacman で他のパッケージと共に更新されることはありません。ユーザーがインストールしたコアグラフィカルライブラリが公式リポジトリのアプリケーションと互換性がなくなると、グラフィカルシステム全体が動作不可能になる可能性があります。
  
 
=== パッチがあたっていないパッケージに戻す ===
 
=== パッチがあたっていないパッケージに戻す ===
Line 522: Line 528:
 
  # pacman -S --asdeps freetype2 cairo fontconfig
 
  # pacman -S --asdeps freetype2 cairo fontconfig
  
== Applications without fontconfig support ==
+
== fontconfig をサポートしていないアプリケーション ==
  
Some applications like [[URxvt]] will ignore fontconfig settings. This is very apparent when using the infinality patches which are heavily reliant on proper configuration. You can work around this by using {{ic|~/.Xresources}}, but it is not nearly as flexible as fontconfig. Example (see [[#Fontconfig configuration]] for explanations of the options):
+
[[URxvt]] など、アプリケーションによっては fontconfig の設定を無視することがあります。このことは、適切な設定に大いに依存している infinality パッチを使っている時に非常に明らかです。{{ic|~/.Xresources}} を使うことで問題を解決することができますが、このファイルの柔軟性は fontconfig に到底及びません。例 (オプションの説明は [[#Fontconfig 設定]] を見てください):
  
 
{{hc|~/.Xresources|<nowiki>
 
{{hc|~/.Xresources|<nowiki>
Line 535: Line 541:
 
</nowiki>}}
 
</nowiki>}}
  
Make sure the settings are loaded properly when X starts with {{ic|xrdb -q}} (see [[Xresources]] for more information).
+
X が起動した時に設定が正しくロードされているか {{ic|xrdb -q}} で確認してください (詳細な情報は [[Xresources]] を見てください)
  
 
== トラブルシューティング ==
 
== トラブルシューティング ==
  
=== Distorted fonts ===
+
=== フォントが歪む ===
  
{{Note|96 DPI is not a standard. You should use your monitor's actual DPI to get proper font rendering, especially when using subpixel rendering.}}
+
{{Note|96 DPI はスタンダードではありません。あなたのモニターの実際の DPI を使って正しいフォントレンダリングをする必要があります (特にサブピクセルレンダリングを使う場合)。}}
  
If fonts are still unexpectedly large or small, poorly proportioned or simply rendering poorly, fontconfig may be using the incorrect DPI.
+
フォントが大きすぎ・小さすぎたり、プロポーションやレンダリングがおかしい場合、fontconfig が間違った DPI を使っている可能性があります。
  
Fontconfig should be able to detect DPI parameters as discovered by the Xorg server. You can check the automatically discovered DPI with {{ic|xdpyinfo}} (provided by the {{pkg|xorg-xdpyinfo}} package):
+
Fontconfig Xorg サーバーによる DPI パラメータを検知することができます。自動で検知された DPI を ({{pkg|xorg-xdpyinfo}} パッケージに入っている) {{ic|xdpyinfo}} で確認してみて下さい:
  
 
{{hc|<nowiki>$ xdpyinfo | grep dots</nowiki>|
 
{{hc|<nowiki>$ xdpyinfo | grep dots</nowiki>|
Line 551: Line 557:
 
}}
 
}}
  
If the DPI is detected incorrectly (usually due to an incorrect monitor EDID), you can specify it manually in the Xorg configuration, see [[Xorg#Display Size and DPI]]. This is the recommended solution, but it may not work with buggy drivers.
+
DPI (おそらくモニター EDID が誤っているせいで) 間違って検出されている場合、Xorg の設定で手動で指定することが可能です。[[Xorg (日本語)#画面サイズと DPI]] を参照してください。これは推奨されている解決方法ですが、ドライバーにバグがあると動かないことがあります。
  
 
Fontconfig will default to the Xft.dpi variable if it is set. Xft.dpi is usually set by desktop environments (usually to Xorg's DPI setting) or manually in {{ic|~/.Xdefaults}} or {{ic|~/.Xresources}}. Use xrdb to query for the value:
 
Fontconfig will default to the Xft.dpi variable if it is set. Xft.dpi is usually set by desktop environments (usually to Xorg's DPI setting) or manually in {{ic|~/.Xdefaults}} or {{ic|~/.Xresources}}. Use xrdb to query for the value:
Line 568: Line 574:
 
  ...
 
  ...
  
=== Calibri, Cambria, Monaco, etc. not rendering properly ===
+
=== Calibri, Cambria, Monaco などが正しく表示されない ===
  
Some scalable fonts have embedded bitmap versions which are rendered instead, mainly at smaller sizes. Force using scalable fonts at all sizes by [[#EmbeddedBitmap|#Disabling embedded bitmap]].
+
スケーラブルフォントによっては、主として小さなサイズの時、代わりとして埋め込みビットマップが表示されることがあります。全てのサイズでスケーラブルフォントを使うには[[#EmbeddedBitmap|埋め込みビットマップを無効にしてください]]
  
=== Older GTK and QT applications ===
+
=== 古い GTK QT アプリケーション ===
  
Modern GTK apps enable Xft by default but this was not the case before version 2.2.  If it is not possible to update these applications, force Xft for old [[GNOME]] applications by adding to {{ic|~/.bashrc}}:
+
新しい GTK アプリはデフォルトで Xft を有効にしますが、バージョン 2.2 以前では話が違っていました。これらのアプリケーションを更新できない場合、{{ic|~/.bashrc}} に次を追加することで古い [[GNOME (日本語)|GNOME]] に Xft を強制してください:
  
 
  export GDK_USE_XFT=1
 
  export GDK_USE_XFT=1
  
For older QT applications:
+
古い QT アプリケーションでは:
  
 
  export QT_XFT=true
 
  export QT_XFT=true
  
=== Applications overriding hinting ===
+
=== アプリケーションがヒンティングを無視する ===
  
Some applications may override default fontconfig hinting and anti-aliasing settings. This may happen with [[Gnome]] 3, for example. Use the specific configuration program for the application in such cases. For gnome, try {{pkg|gnome-tweak-tool}}.
+
アプリケーションによってはデフォルトの fontconfig のヒンティングやアンチエイリアス設定を無視することがあります。例えば [[GNOME (日本語)|Gnome]] 3 で起こることがあります。そのような場合はアプリケーションにあった指定の設定プログラムを使って下さい。gnome なら、{{pkg|gnome-tweak-tool}} を試用してください。
  
 
== 参照 ==
 
== 参照 ==

Revision as of 06:18, 21 October 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki: フォントの追加方法と推奨フォント Template:Article summary wiki Template:Article summary wiki: Sun の Java マシン 特有のフォント Template:Article summary wiki: Microsoft フォントの追加と Windows のフォント設定 Template:Article summary wiki: X 用の古いコアフォントシステム Template:Article summary end

Fontconfig はアプリケーションに利用できるフォントのリストを提供し、フォントのレンダリングの設定をするために作られたライブラリです。fontconfig パッケージや Wikipedia:ja:Fontconfig を見て下さい。Free type ライブラリ (freetype2 パッケージ) はこの設定に基づいてフォントを描写します。

今日の Linux の標準は Fontconfig ですが、アプリケーションによっては未だにフォントの選択と表示に X Logical Font Description を使っているものもあります。

Arch Linux のフォントレンダリングパッケージには freetype2 のサポートが含まれており バイトコードインタプリタ (BCI) が有効になっています。LCD モニターでより良いフォントレンダリングを行うためのパッチがあてられたパッケージも存在します。#パッチがあてられているパッケージ を見て下さい。Infinality パッケージは自動ヒンティングとサブピクセルレンダリング、リコンパイル不要の LCD フィルター調整、太字フォントの auto-hinter が可能です。

フォントパス

アプリケーションからフォントを使えるようにするには、迅速かつ容易にアクセスできるようフォントを一覧表に入れる必要があります。

最初から Fontconfig が利用するフォントパスは: /usr/share/fonts/~/.fonts/ (このフォルダでは Fontconfig は再帰的にスキャンします) です。管理とインストールを簡単にするために、フォントを追加する際にはこのフォントパスを使うのが推奨されます。

Fontconfig が認識しているフォントの一覧を表示するには:

$ fc-list : file

出力のフォーマットについては man fc-list を見て下さい。

Xorg が利用しているフォントパスを確認するには Xorg のログを見て下さい:

$ grep /fonts /var/log/Xorg.0.log
Tip: xset q コマンドでも Xorg が使っているフォントパスを確認できます。

Fontconfig とは違い、Xorg は /usr/share/fonts/ ディレクトリを再帰的に調べないことに注意してください。パスを追加するときは、フルパスを使ってください:

Section "Files"
    FontPath     "/usr/share/fonts/local/"
EndSection

フォントパスをユーザーごとに設定したい場合は、以下のように ~/.xinitrc に追記することでフォントパスを追加・削除できます:

xset +fp /usr/share/fonts/local/           # Prepend a custom font path to Xorg's list of known font paths
xset -fp /usr/share/fonts/sucky_fonts/     # Remove the specified font path from Xorg's list of known font paths

Xorg が認識しているフォントの一覧を表示するには、xorg-xlsfonts パッケージに入っている xlsfonts を使って下さい。

Fontconfig 設定

Fontconfig については fonts-conf の man ページで説明されています。

設定は $XDG_CONFIG_HOME/fontconfig/fonts.conf を使ってユーザーごとに行うことも、/etc/fonts/local.conf で全体的に設定することもできます。ユーザー別の設定はグローバルの設定よりも優先されます。これらのファイルは同じ構文を使っています。

Note: 設定ファイルとディレクトリ: ~/.fonts.conf, ~/.fonts.conf.d, ~/.fontconfig/*.cache-* は fontconfig 2.10.1 から使われなくなりました (upstream commit) 次のバージョンのパッケージからデフォルトで読み込まれなくなります。代わりに $XDG_CONFIG_HOME/fontconfig/fonts.conf, $XDG_CONFIG_HOME/fontconfig/conf.d, $XDG_CACHE_HOME/fontconfig/*.cache-* を各々使って下さい。二番目のディレクトリを使う場合、ファイルの名前は次の決まりに従う必要があります NN-name.conf (NN は2桁の数字です、例: 00, 10, 99)。

Fontconfig は全ての設定を一つの中心ファイル (/etc/fonts/fonts.conf) に集めます。このファイルは fontconfig がアップデートしたときに置き換えられるので編集してはいけません。Fontconfig に対応したアプリケーションはこのファイルを読み込んで利用できるフォントとレンダリング方法を知ります。このファイルは、全体的な設定 (/etc/fonts/local.conf) と /etc/fonts/conf.d/ の設定済みプリセット、そしてユーザーの設定ファイル ($XDG_CONFIG_HOME/fontconfig/fonts.conf) に書かれたルールの寄せ集めです。fc-cache を使うことで fontconfig の設定をリビルドできます、ただし変更は新しく起動したアプリケーションにのみ適用されます。

Note: (GNOMEKDE などの) デスクトップ環境によっては、フォントコントロールパネルを使うと自動的にユーザーのフォント設定ファイルが作成・上書きされます。これらのデスクトップ環境では、期待した動作をするために既に定義済みの設定ファイルにあわせるのが最善です。

Fontconfig の設定ファイルは XML 形式で、以下のヘッダーが必要になります:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

  <!-- settings go here -->

</fontconfig>

この記事で出てくる設定例ではこれらのタグは省略しています。

プリセット

プリセットは /etc/fonts/conf.avail ディレクトリにインストールされています。/etc/fonts/conf.d/README に記述されているように、シンボリックリンクを作成することで、ユーザーごと・全体的に、プリセットの設定を有効にすることが可能です。これらのプリセットは個別の設定ファイルの設定を上書きします。

例えば、サブピクセル RGB レンダリングを全体的に有効にするには:

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/10-sub-pixel-rgb.conf

ユーザーごとの設定として同じことをするには:

$ mkdir $XDG_CONFIG_HOME/fontconfig/conf.d
$ ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf $XDG_CONFIG_HOME/fontconfig/conf.d

アンチエイリアス

フォントラスタライズとはベクター形式のフォントデータをビットマップのデータに変換して表示することです。結果としてエイリアシングによってジャギーが発生することがあります。アンチエイリアスがデフォルトで有効になっており、フォントのエッジの見た目の解像度を増しています。

  <match target="font">
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

ヒンティング

フォントヒンティング (instructing とも呼ばれます) は数学的な情報を使ってアウトラインフォントの表示を調整し、ディスプレイのピクセルグリッドと同じように、ラスタライズされたグリッドにフォントを並べる技術です。ディスプレイが 300 DPI 以上ない場合ヒンティングがないとフォントを正しく並べることはできません。ヒンティングは2つのタイプが利用できます。

バイトコードインタプリタ (BCI)

通常のヒンティングを使って、freetype の Byte-Code Interpreter によってフォント内の TrueType ヒンティング情報が解釈されます。正しいヒンティング情報があるフォントでは一番良く働きます。

通常のヒンティングを有効にするには:

  <match target="font">
    <edit name="hinting" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Autohinter

ヒンティングを自動検知します。情報が揃っているフォントでの通常ヒンティングよりは見た目が悪くなりますが、情報が少なかったり無かったりするフォントでは見た目が良くなります。autohinter とサブピクセルレンダリングは同時に動作させることが想定されていないので一緒に使ってはいけません。

自動ヒンティングを有効にするには:

  <match target="font">
    <edit name="autohint" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

ヒントスタイル

ヒントスタイルはヒンティングモードの影響力の強さを示します。ヒンティングの強さは次のどれかに設定できます: hintfull, hintmedium, hintslight, hintnone。BCI ヒンティングでは、ほとんどのフォントで hintfull が最適です。autohinter を使っている時は、hintslight が推奨されています。

  <match target="font">
    <edit name="hintstyle" mode="assign">
      <const>hintfull</const>
    </edit>
  </match>
Note: Gnome 3 などのアプリケーションによっては、デフォルトのヒンティング設定を無視することがあります。

サブピクセルレンダリング

サブピクセルレンダリングはサブピクセルを使うことでフォントの横の (もしくは縦の) 解像度を事実上3倍にします。autohinter とサブピクセルは一緒に動作させることを予定されていないので、Infinality パッチセットを使っていない限り、同時に両方とも使ってはいけません。

今日ではほとんどのモニターは赤・緑・青 (RGB) の並びを使っています。フォントを正しく表示するために、Fontconfig にあなたのモニターのタイプを知らせる必要があります。

RGB (最も一般的), BGR, V-RGB (縦), V-BGR

サブピクセルレンダリングを有効にするには:

  <match target="font">
    <edit name="rgba" mode="assign">
      <const>rgb</const>
    </edit>
  </match>

フォントの縁に異常な色が出る場合、間違ったサブピクセル配列が設定されている可能性があります。Lagom subpixel layout test で配列を確認することができます。

LCD フィルター

サブピクセルレンダリングを使う場合、色縁を減らす LCD フィルターを有効にするべきです。FreeType 2 API リファレンスの LCD filtering にこのフィルターの説明があります。また、FT_LcdFilter にオプションの説明があり、LCD filter test にそれぞれのオプションを使って実際に表示したサンプルがあります

ほとんどのユーザーにとっては lcddefault フィルターが具合が良いでしょう。他のフィルターは特別な事情がある場合に使えます: lcdlight は明るいフィルターで、太すぎたりぼやけているフォントに向いています。lcdlegacy はオリジナルの Cairo フィルターです。lcdnone はフィルターを完全に無効にします。

  <match target="font">
    <edit mode="assign" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>

高度な LCD フィルター設定

内臓の LCD フィルターで満足しない時は、freetype2 のカスタムパッケージをビルドしてハードコードされたフィルターを修正することでフォントレンダリングを調整することが可能です。Arch Build System を使えばソースからパッケージをビルド・インストールできます。

まず、root で freetype2 の PKGBUILD を更新してください:

# abs extra/freetype2

この例ではビルドディレクトリに /var/abs/build を使っています、あなたの ABS セットアップにあわせて置き換えてください。通常ユーザーで freetype2 パッケージをダウンロード・展開します:

$ cd /var/abs/build
$ cp -r ../extra/freetype2 .
$ cd freetype2
$ makepkg -o

src/freetype-VERSION/src/base/ftlcdfil.c ファイルを編集して default_filter[5] 定数の定義を見て下さい:

static const FT_Byte  default_filter[5] =
    { 0x10, 0x40, 0x70, 0x40, 0x10 };

この定数はレンダリングされた文字に適用するローパスフィルタを定義しています。必要に応じて修正してください。ファイルを保存し、カスタムパッケージをビルド・インストールしてください:

$ makepkg -e
# pacman -Rd freetype2
# pacman -U freetype2-VERSION-ARCH.pkg.tar.xz

再起動して X を起動してください。これで lcddefault フィルタはフォントを違ったふうに表示するはずです。

太字フォントで auto-hinter を無効にする

auto-hinter は複雑な方法を使ってフォントを表示しますが、しばしば太字フォントの幅が広すぎになってしまうことがあります。幸いに、太字フォントのみ autohinter をオフにすることで解決できます:

...
<match target="font">
    <test name="weight" compare="more">
        <const>medium</const>
    </test>
    <edit name="autohint" mode="assign">
        <bool>false</bool>
    </edit>
</match>
...

大きいフォントでだけアンチエイリアスを有効にする

sharpfonts.co.cc に関連情報があります。

ユーザーによってはアンチエイリアスのないギザギザのレンダリングの方を好むかもしれません:

...
<match target="font">
    <edit name="antialias" mode="assign">
        <bool>false</bool>
    </edit>
</match>

<match target="font" >
    <test name="size" qual="any" compare="more">
        <double>12</double>
    </test>
    <edit name="antialias" mode="assign">
        <bool>true</bool>
    </edit>
</match>

<match target="font" >
    <test name="pixelsize" qual="any" compare="more">
        <double>16</double>
    </test>
    <edit name="antialias" mode="assign">
        <bool>true</bool>
    </edit>
</match>
...

フォントの置き換え

一番信頼できる方法は下のような XML フラグメントを追加することです。"binding" 属性を使うことでよりよい結果を得ることができます、例えば、Firefox でフォントのプロパティを変更したくない場合。下のフラグメントは Georgia の代わりに Ubuntu を使わせます:

...
 <match target="pattern">
   <test qual="any" name="family"><string>georgia</string></test>
   <edit name="family" mode="assign" binding="same"><string>Ubuntu</string></edit>
 </match>
...

他の方法として "preferred" フォントを設定するというのもありますが、元のフォントがシステムに存在しない時にしか効果がありません。その場合、指定したフォントが代わりに使われます:

...
< !-- Replace Helvetica with Bitstream Vera Sans Mono -->
< !-- Note, an alias for Helvetica should already exist in default conf files -->
<alias>
    <family>Helvetica</family>
    <prefer><family>Bitstream Vera Sans Mono</family></prefer>
    <default><family>fixed</family></default>
</alias>
...

ビットマップフォントの無効化

fontconfig でビットマップフォントを無効化するには、70-no-bitmaps.conf を使って下さい (このファイルはデフォルトでは fontconfig によって作られません):

# cd /etc/fonts/conf.d
# rm 70-yes-bitmaps.conf
# ln -s ../conf.avail/70-no-bitmaps.conf

次のワンライナーも使えるはずです:

# ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/

70-yes-bitmaps.conf が存在しない場合は削除する必要はありません。ビットマップフォントをどのフォントで置き換えるか選択することもできます (Helvetica, Courier and Times bitmap mapts to TTF fonts):

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/29-replace-bitmap-fonts.conf
全てのフォントで埋め込みビットマップを無効にするには:
~/.config/fontconfig/conf.d/20-no-embeded.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

特定のフォントで埋め込みビットマップフォントを無効にするには:

<match target="font">
  <test qual="any" name="family">
    <string>Monaco</string>
  </test>
  <edit name="embeddedbitmap"><bool>false</bool></edit>
</match>

ビットマップフォントのスケーリングを無効にする

ビットマップフォントのスケーリングを無効化するには (which often makes them blurry)、/etc/fonts/conf.d/10-scale-bitmap-fonts.conf を削除してください。

不完全なフォントにボールド・イタリック体を作成する

Freetype には italicbold のスタイルがフォントにないときに自動で作成する機能があります。ただし、この機能はアプリケーションによって明示的に必要とされたときしか使われません。プログラムがこのようなリクエストを送るのは稀なので、このセクションでは手動で欠けているスタイルを強制的に作成する方法を説明しています。

下で説明しているように /usr/share/fonts/fonts.cache-1 を編集するところから初めて下さい。fc-cache でフォントの更新がされると /usr/share/fonts/fonts.cache-1 が上書きされるので、修正したコピーを他のファイルに保存してください。

Dupree フォントがインストールされていると仮定します:

"dupree.ttf" 0 "Dupree:style=Regular:slant=0:weight=80:width=100:foundry=unknown:index=0:outline=True:etc...

この行を複製して、style=Regularstyle=Bold などの他のスタイルに変更してください。さらに、イタリック体では slant=0slant=100 に、ボールド体では weight=80weight=200 に変更してください。もしくは bold italic と結合するなら:

"dupree.ttf" 0 "Dupree:style=Bold Italic:slant=100:weight=200:width=100:foundry=unknown:index=0:outline=True:etc...

必要な修正を $XDG_CONFIG_HOME/fontconfig/fonts.conf に加えて下さい:

...
<match target="font">
    <test name="family" qual="any">
        <string>Dupree</string>
         <!-- other fonts here .... -->
     </test>
     <test name="weight" compare="more_eq"><int>140</int></test>
     <edit name="embolden" mode="assign"><bool>true</bool></edit>
</match>

<match target="font">
    <test name="family" qual="any">
        <string>Dupree</string>
        <!-- other fonts here .... -->
    </test>
    <test name="slant" compare="more_eq"><int>80</int></test>
    <edit name="matrix" mode="assign">
        <times>
            <name>matrix</name>
                <matrix>
                    <double>1</double><double>0.2</double>
                    <double>0</double><double>1</double>
                </matrix>
        </times>
    </edit>
</match>
...
Tip: 既に太字フォントが存在していて、更に太くしたいときは 'embolden' という値を使って下さい。

ルールの優先順を変更する

Fontconfig は番号順で /etc/fonts/conf.d 内のファイルを処理します。ルールやファイルが他のルールを上書きする可能性があり、どのファイルが最後にパースされるのか混乱するおそれがあります。

個人設定が他の全てのルールに優先することを保証するには、順番を変えて下さい:

# cd /etc/fonts/conf.d
# mv 50-user.conf 99-user.conf

This change seems however to be unnecessary for the most of the cases, because a user is given enough control by default to set up own font preferences, hinting and antialiasing properties, alias new fonts to generic font families, etc.

fontconfig 設定サンプル

fontconfig の設定例はこのページにあります。

出発点となるシンプルな設定:

/etc/fonts/local.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>

  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>

  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>

  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>

  <edit mode="assign" name="lcdfilter">
    <const>lcddefault</const>
  </edit>
 
 </match>
</fontconfig>

パッチがあてられているパッケージ

以下のパッチ済みパッケージは AUR から利用できます。注意事項:

  • 基本的に設定が必要になります。
  • 新しいフォントレンダリングはアプリケーションが再起動するまで有効になりません。
  • ライブラリに静的リンクしているアプリケーションはシステムライブラリにあてられたパッチの影響を受けません。

Infinality

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

Infinality の設定は /etc/profile.d/infinality-settings.sh 内の環境変数で実行しながら全て行うことができます。以下を設定可能です:

  • 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/profile.d/infinality-settings.sh で USE_STYLE 変数を設定することで使うことができます。

インストールと設定

Tip: このセクションで挙げられている全ての AUR パッケージは bohoomil のカスタムリポジトリからもインストールできます。リポジトリを有効にする方法は下のセクションを見て下さい。
Note: fontconfig-infinality-ultimate < 2.11.0-2 を使っている場合、fontconfig-infinality-ultimate パッケージを (アップグレードではなく) 再インストールする必要があります:
 pacman -Rdd fontconfig-infinality-ultimate
 pacman -S fontconfig-infinality-ultimate

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

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

# infctl setstyle

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

Note:
  • ユーザー bohoomil が素晴らしい設定を彼の github repo でメンテナンスしており AUR では fontconfig-infinality-ultimate-gitAUR として利用可能です。
  • デフォルトの infinality の設定では 72 DPI ではなく 96 DPI でフォントを表示するときに問題が生じることがあります。問題が起きているようなら /etc/fonts/infinality/infinality.conf を開いて DPI に関するセクションを探し 72 から 96 に値を変更して下さい。この問題は特に conky がフォントを小さく表示してしまう影響を与えます。そのため画像が正しく表示されなくなります。
  • AUR から grip-gitAUR をインストールすることでリアルタイムのフォントプレビューができます。
  • The README for fontconfig-infinalityAUR says that /etc/fonts/local.conf should either not exist, or have no infinality-related configurations in it. The local.conf is now obsolete and completely replaced by this configuration.

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

カスタムリポジトリからインストール

また、bohoomil が infinality-bundle リポジトリを管理していて、3つの基本的なライブラリ (freetype2-infinality-ultimate, fontconfig-infinality-ultimate & cairo-infinality-ultimate) に事前にパッチ・設定・ビルドを行ったバイナリを全てのアーキテクチャで提供しています (i686, x86_64, multilib)。infinality-bundle を使えば、インストール・設定は劇的にシンプルになります。

インストールによって、対応する標準の Arch ライブラリが置き換えられます (i.e. freetype2 の代わりに freetype2-infinality-ultimate が、fontconfig の代わりに fontconfig-infinality-ultimate が、標準の cairo の代わりに cairo-infinality-ultimate が使われます)。ライブラリは Arch のパッケージと完全に互換性があります。ほとんどの場合インストール・アップグレードをした後に何らかの設定をする必要はありません: 全ては何もしなくても上手く動くはずです。

リポジトリを使うには、以下を /etc/pacman.conf に追加してください:

[infinality-bundle]
SigLevel = Never
Server = http://ibn.net63.net/infinality-bundle/$arch

multilib バージョンにアクセスしたいときは、同じように:

[infinality-bundle-multilib]
SigLevel = Never
Server = http://ibn.net63.net/infinality-bundle-multilib/$arch

キーをインポート・署名して下さい:

# pacman-key -r 962DDE58
# pacman-key --lsign-key 962DDE58

リポジトリを更新して下さい:

pacman -Syu

サーバーがダウンしている場合、リポジトリのバックアップコピーが Dropbox が利用できます。

パッケージによって (libgdiplus など)、インストール時にエラーが表示されるかもしれません:

:: cairo and cairo-infinality-ultimate are in conflict. Remove cairo-infinality-ultimate? [y/N] n
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
この場合には、新しいパッケージを
# pacman -Sd foo
を使ってインストールして下さい。

詳しい情報は infinality-bundle user notes を見て下さい。

フォーラムのサポートスレッドはここにあります。

Note: One frequent issue users face with this repo is that the package database or signatures do not check out. Often times a simple force refresh of the package lists (pacman -Syy) will fix the issue. If that fails, try removing the infinality-bundle files from /var/lib/pacman/sync and then resyncing again.

Ubuntu

Ubuntu はフォントレンダリングライブラリに設定とパッチを追加しています。

AUR からパッチのあたったパッケージをインストールしてください。パッケージの名前は: freetype2-ubuntuAUR fontconfig-ubuntuAUR cairo-ubuntuAUR

全体的な設定を追加する必要があります。#fontconfig 設定サンプル を見てください。 Ubuntu の設定では hintslight オプションが一番良いレンダリングをもたらします。

*-ubuntu の AUR パッケージはユーザーによって最新に保つ必要があることに注意してください。pacman で他のパッケージと共に更新されることはありません。ユーザーがインストールしたコアグラフィカルライブラリが公式リポジトリのアプリケーションと互換性がなくなると、グラフィカルシステム全体が動作不可能になる可能性があります。

パッチがあたっていないパッケージに戻す

パッチがあたっていないパッケージを復元するには、オリジナルのパッケージを再インストールしてください:

# pacman -S --asdeps freetype2 cairo fontconfig

fontconfig をサポートしていないアプリケーション

URxvt など、アプリケーションによっては fontconfig の設定を無視することがあります。このことは、適切な設定に大いに依存している infinality パッチを使っている時に非常に明らかです。~/.Xresources を使うことで問題を解決することができますが、このファイルの柔軟性は fontconfig に到底及びません。例 (オプションの説明は #Fontconfig 設定 を見てください):

~/.Xresources
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

X が起動した時に設定が正しくロードされているか xrdb -q で確認してください (詳細な情報は Xresources を見てください)。

トラブルシューティング

フォントが歪む

Note: 96 DPI はスタンダードではありません。あなたのモニターの実際の DPI を使って正しいフォントレンダリングをする必要があります (特にサブピクセルレンダリングを使う場合)。

フォントが大きすぎ・小さすぎたり、プロポーションやレンダリングがおかしい場合、fontconfig が間違った DPI を使っている可能性があります。

Fontconfig は Xorg サーバーによる DPI パラメータを検知することができます。自動で検知された DPI を (xorg-xdpyinfo パッケージに入っている) xdpyinfo で確認してみて下さい:

$ xdpyinfo | grep dots
  resolution:    102x102 dots per inch

DPI が (おそらくモニター EDID が誤っているせいで) 間違って検出されている場合、Xorg の設定で手動で指定することが可能です。Xorg (日本語)#画面サイズと DPI を参照してください。これは推奨されている解決方法ですが、ドライバーにバグがあると動かないことがあります。

Fontconfig will default to the Xft.dpi variable if it is set. Xft.dpi is usually set by desktop environments (usually to Xorg's DPI setting) or manually in ~/.Xdefaults or ~/.Xresources. Use xrdb to query for the value:

$ xrdb -query | grep dpi
Xft.dpi:	102

Those still having problems can fall back to manually setting the DPI used by fontconfig:

...
<match target="pattern">
   <edit name="dpi" mode="assign"><double>102</double></edit>
</match>
...

Calibri, Cambria, Monaco などが正しく表示されない

スケーラブルフォントによっては、主として小さなサイズの時、代わりとして埋め込みビットマップが表示されることがあります。全てのサイズでスケーラブルフォントを使うには埋め込みビットマップを無効にしてください

古い GTK と QT アプリケーション

新しい GTK アプリはデフォルトで Xft を有効にしますが、バージョン 2.2 以前では話が違っていました。これらのアプリケーションを更新できない場合、~/.bashrc に次を追加することで古い GNOME に Xft を強制してください:

export GDK_USE_XFT=1

古い QT アプリケーションでは:

export QT_XFT=true

アプリケーションがヒンティングを無視する

アプリケーションによってはデフォルトの fontconfig のヒンティングやアンチエイリアス設定を無視することがあります。例えば Gnome 3 で起こることがあります。そのような場合はアプリケーションにあった指定の設定プログラムを使って下さい。gnome なら、gnome-tweak-tool を試用してください。

参照