「Java Runtime Environment のフォント」の版間の差分
細 (Add Chinese translation) タグ: visualeditor-switched |
細 (AshMyzk がページ「Java 実行環境のフォント」を「Java Runtime Environment のフォント」に移動しました: Java 公式の名前に合わせる) |
||
(2人の利用者による、間の4版が非表示) | |||
13行目: | 13行目: | ||
TrueType フォントは Java で一番良くサポートされているフォーマットです。 |
TrueType フォントは Java で一番良くサポートされているフォーマットです。 |
||
− | ==アンチエイリアス== |
+ | == アンチエイリアス == |
− | フォントの[[Wikipedia:Antialiased_font|アンチエイリアス]]は Linux の Oracle Java 1.6 及び OpenJDK で利用可能です。システム全体の設定でアンチエイリアスを使うには、次の行を {{ic|/etc/environment}} に追加してください: |
||
+ | フォントの [[Wikipedia:Antialiased_font|アンチエイリアス]] は Linux の Oracle Java 1.6 及び OpenJDK で利用可能です。 |
||
− | export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=''setting''' |
||
+ | |||
+ | === xsettings デーモンの実行 === |
||
+ | |||
+ | Java は、xsettings を通じてシステムのデフォルトを取得しようとします。[[GNOME]] では何もする必要はありません。{{ic|gnome-settings-daemon}} はすでに実行されています。それ以外の場合は、[[Xsettingsd]] が簡単な代替手段です。 |
||
+ | |||
+ | === 自動的に取得された設定を上書きする === |
||
+ | |||
+ | xsettingsデーモンを実行したくない場合、またはフォントがまだ醜く見える場合は、アンチエイリアスを設定するシステムプロパティもあります。システム全体でこれを行うには、{{ic|/etc/environment}} に以下の行を追加します: |
||
+ | |||
+ | _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=''setting''' |
||
{{Ic|''setting''}} は以下の7つの値のどれか一つに置き換えて下さい: |
{{Ic|''setting''}} は以下の7つの値のどれか一つに置き換えて下さい: |
||
40行目: | 49行目: | ||
|} |
|} |
||
− | + | {{Ic|gasp}} と {{Ic|lcd}} の設定は多くの場合に適切に機能します。 |
|
− | + | オプションで GTK のルックアンドフィールを使用するには、代わりに次の行を追加します。 |
|
_JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel' '' |
_JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel' '' |
||
50行目: | 59行目: | ||
* '''TrueType''' フォントにはポイントサイズに合わせてどうフォントを表示するかデザイナーによって決められたグリッド調整およびスキャン変換手続き (''GASP'') テーブルが含まれています。サイズによっては完全にアンチエイリアスをかけられたり、場合によってはヒンティングを適用したり、あるいはビットマップフォントとして表示するようになったりします。特定のポイントサイズではそれらを組み合わせて使われることもあります。}} |
* '''TrueType''' フォントにはポイントサイズに合わせてどうフォントを表示するかデザイナーによって決められたグリッド調整およびスキャン変換手続き (''GASP'') テーブルが含まれています。サイズによっては完全にアンチエイリアスをかけられたり、場合によってはヒンティングを適用したり、あるいはビットマップフォントとして表示するようになったりします。特定のポイントサイズではそれらを組み合わせて使われることもあります。}} |
||
− | コマンドラインで実行ファイルの前に変数を指定して新しい設定を試して |
+ | コマンドラインで実行ファイルの前に変数を指定して新しい設定を試して下さい: |
_JAVA_OPTIONS=''options'' ''executable'' |
_JAVA_OPTIONS=''options'' ''executable'' |
||
変更を適用するには再ログインする必要があります。 |
変更を適用するには再ログインする必要があります。 |
||
− | |||
− | === フォントのヒンティング === |
||
− | |||
− | 一部の Java アプリケーションにはヒンティングのシステム設定が反映されません。Java アプリを起動する前に、以下の環境変数のどれかを使ってみてください: |
||
− | |||
− | export FT2_SUBPIXEL_HINTING=0 # Classic mode |
||
− | export FT2_SUBPIXEL_HINTING=1 # Infinality mode |
||
− | export FT2_SUBPIXEL_HINTING=2 # Default mode |
||
− | |||
− | 例えば、{{ic|0}} の場合 FreeType は太字でないフォントを使うようになります。 |
||
− | |||
− | === OpenJDK パッチ === |
||
− | |||
− | Java のオプションを使って強制的にアンチエイリアスをかけても、ネイティブアプリケーションのアンチエイリアスよりかは品質で劣ります。[[AUR]] にある OpenJDK のパッチを使うことで改善することができます: |
||
− | * パッチ適用済み ({{ic|1=--enable-infinality=yes}}) の '''OpenJDK7''' は {{AUR|jre7-openjdk-infinality}} でインストールできます。 |
||
− | * パッチ適用済みの '''OpenJDK8''' は {{AUR|jre8-openjdk-infinality}} でインストールできます。 |
||
− | パッチを適用したバージョンでは fontconfig と freetype の [[Infinality]] パッチを上手く混ぜ合わせています。標準の {{Pkg|fontconfig}} API を使用しているため {{AUR|fontconfig-infinality}} に依存はしていません。 |
||
==フォント選択== |
==フォント選択== |
||
81行目: | 73行目: | ||
変更を適用するには再ログインする必要があります。 |
変更を適用するには再ログインする必要があります。 |
||
− | ===文字化けの修正 |
+ | === 文字化けの修正 === |
+ | |||
− | 以下のディレクトリにフォントファイルを配置してください。ディレクトリが存在しない場合は作成してください。 |
||
+ | フォントファイルを {{ic|/usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/}} に配置します。必要に応じて作成します。 |
||
+ | |||
+ | 実際に使用している JRE の {{ic|/usr/lib/jvm/java-8-openjdk}} を {{ic|$JAVA_HOME}} に置き換えてください。Oracle Java 9 以降、この機能は削除されていることに注意してください。Oracle は[https://bugs.java.com/bugdatabase/view_bug?bug_id=8039273、ユーザーに {{ic|lib}} の変更を促すためにバグとみなし]、設定ファイルを {{ic|conf}} に移動し、フォールバック機能を "mis-feature" と呼びました。この動作を提供する具体的な関数は {{ic|sun.awt.FontConfiguration.getInstalledFallbackFontsFonts}} で、OpenJDK にはまだあるようです。 |
||
+ | |||
+ | これにより、Java は常にこのディレクトリ内のフォントをフォールバックシーケンスに追加して、文字の形状 (グリフ) を検索します。この方法では、アプリケーションがどのようなフォントを要求したとしても、必要に応じてこれらの追加フォントが不足しているグリフを提供します。 |
||
+ | |||
+ | == 参照 == |
||
+ | * [https://docs.oracle.com/en/java/javase/11/intl/font-configuration-files.html Java Font Configuration Files] (Java 11); [https://docs.oracle.com/javase/8/docs/technotes/guides/intl/fontconfig.html Java 8] |
||
− | /usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/ |
2024年4月2日 (火) 17:24時点における最新版
ユーザーによってはデフォルトの Java フォントや Java アプリケーションのフォントの表示モードが気に入らないという人もいるでしょう。Oracle Java Runtime Environment (JRE) のフォント表示を改善する方法は複数存在します。これらの方法は別々に使うこともできますが、多くの場合まとめて使うことでより良い結果が得られるでしょう。
TrueType フォントは Java で一番良くサポートされているフォーマットです。
目次
アンチエイリアス
フォントの アンチエイリアス は Linux の Oracle Java 1.6 及び OpenJDK で利用可能です。
xsettings デーモンの実行
Java は、xsettings を通じてシステムのデフォルトを取得しようとします。GNOME では何もする必要はありません。gnome-settings-daemon
はすでに実行されています。それ以外の場合は、Xsettingsd が簡単な代替手段です。
自動的に取得された設定を上書きする
xsettingsデーモンを実行したくない場合、またはフォントがまだ醜く見える場合は、アンチエイリアスを設定するシステムプロパティもあります。システム全体でこれを行うには、/etc/environment
に以下の行を追加します:
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'
setting
は以下の7つの値のどれか一つに置き換えて下さい:
設定 | 説明 |
---|---|
off , false , default
|
アンチエイリアスなし |
on
|
完全なアンチエイリアス |
gasp
|
フォントに埋め込まれたヒント情報を使う |
lcd , lcd_hrgb
|
多数派の LCD モニターにあわせてアンチエイリアスを調整する |
lcd_hbgr , lcd_vrgb , lcd_vbgr
|
もうひとつの LCD モニター設定 |
gasp
と lcd
の設定は多くの場合に適切に機能します。
オプションで GTK のルックアンドフィールを使用するには、代わりに次の行を追加します。
_JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
コマンドラインで実行ファイルの前に変数を指定して新しい設定を試して下さい:
_JAVA_OPTIONS=options executable
変更を適用するには再ログインする必要があります。
フォント選択
TrueType フォント
Java アプリケーションによっては特定の TrueType フォントを使用するよう選択できたりしますが、こういったアプリケーションは使用したいフォントのディレクトリパスを指定できるようになっています。TrueType フォントは /usr/share/fonts/TTF
ディレクトリにインストールされます。次の行を /etc/environment
に追加してフォントを有効にしてください。
JAVA_FONTS=/usr/share/fonts/TTF
変更を適用するには再ログインする必要があります。
文字化けの修正
フォントファイルを /usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/
に配置します。必要に応じて作成します。
実際に使用している JRE の /usr/lib/jvm/java-8-openjdk
を $JAVA_HOME
に置き換えてください。Oracle Java 9 以降、この機能は削除されていることに注意してください。Oracle はlib
の変更を促すためにバグとみなし、設定ファイルを conf
に移動し、フォールバック機能を "mis-feature" と呼びました。この動作を提供する具体的な関数は sun.awt.FontConfiguration.getInstalledFallbackFontsFonts
で、OpenJDK にはまだあるようです。
これにより、Java は常にこのディレクトリ内のフォントをフォールバックシーケンスに追加して、文字の形状 (グリフ) を検索します。この方法では、アプリケーションがどのようなフォントを要求したとしても、必要に応じてこれらの追加フォントが不足しているグリフを提供します。
参照
- Java Font Configuration Files (Java 11); Java 8