EmacsはAndroid上で2つのフォントバックエンドをサポートしており、それぞれsfnt-androidおよびandroidという名前です。
起動時に、Emacsはディレクトリ /system/fonts と /product/fonts、およびEmacsホームディレクトリ内の fonts ディレクトリ(ユーザーフォントディレクトリ)にあるすべてのTrueType形式のフォントを列挙します。Emacsは「Droid
Sans Mono」という名前のフォントが必ず存在すると想定し、デフォルトでこのフォントを使用します。これらのフォントは、その後 sfnt-android フォントドライバによって表示されます。
このフォントドライバは現在、OpenTypeやカラーフォントに対応していないため、各システムにインストールされているフォントの一部のみがEmacsで利用可能です。この制限の解除にご関心がある方は、emacs-devel@gnu.orgまでご連絡ください。
sfnt-android フォントドライバがフォントを一切検出できなかった場合、Emacs は
android
フォントドライバにフォールバックします。これは非常に性能の低いフォントドライバであり、Android
プラットフォームが提供するフォントメトリクスの制限や不正確さに起因しています。その場合、Emacs
はシステムで設定されている「Monospace」書体を使用します。これは常に Droid Sans Mono であるはずです。
Xシステムと同様に、EmacsはAndroid上で可変幅フォントをサポートしています。これらのフォント(「TrueType GXフォント」、「可変幅フォント」、「マルチマスターフォント」とも呼ばれます)は、単一のフォントファイルを用いて、複数の異なるスタイル(「太字」、「斜体」など)を提供します。
ユーザーによってインストールされた変形可能フォントが検出されると、以前に検出されたフォントが提供していた各スタイルは、以降使用されなくなります。さらに、新しい変形可能フォントが、以前にインストールされていたフォントが提供していたスタイルのスーパーセットを備えている場合、同じファミリー名を持つ以前にインストールされた変形可能フォントも同様に無視されます。通常フォントが検出されると、同じスタイルおよびファミリーを持つ以前の通常フォントは削除され、同じファミリーを持つ変形可能フォントは、そのスタイルを提供するために使用されなくなります。
Emacsは通常、‘Monospace’、‘Monospace Serif’、‘Sans Serif’、および‘DejaVu Serif’という名前のフォントファミリーが存在することを前提としています。Androidではこれらの名称のフォントが提供されていないため、Emacsはこれらのリクエストを修正し、Androidに同梱されている対応するフォントファミリーセットのいずれかを要求するようにしています。
置換対象となるフォントファミリーのセット、または置換方法のいずれかを変更するには、変数 sfnt-default-family-alist を修正し、その後 Emacs
を再起動してください。なお、通常このような操作は不要であり、デフォルトまたは variable-pitch
フェイスへのカスタマイズは、それらの定義を修正する方が適切であることに留意してください(フェイスのカスタマイズ を参照)。