Unicode 数学記号の Emacs フォントの高さが一致しない

Unicode 数学記号の Emacs フォントの高さが一致しない

一般的でない数学的な Unicode 記号を挿入する場合 (通常は font-lock-add-keywords を使用)、デフォルトのフォントに特定の文字がない場合、代わりにその文字を含む別のフォントが使用されるという問題が発生します。

どういうわけか、2 番目のフォントの記号の高さが、最初のフォントのすべての通常文字の高さと異なる場合があり、おそらく 1 ピクセルずれています。これにより、現在の行の高さが変わり、記号を入力すると画面上のテキストの多くが 1 ピクセルずつ上下に「移動」します。これは非常に煩わしいです。(この問題を引き起こすデフォルトの代替フォントは Arial です。)

現在、「Source Code Pro」がデフォルトのフォントである場合、次のようなものを使用してこの問題を解決しています。

(set-default-fontset "fontset-default" '(#x???? . #x????) "DejaVu Serif")

範囲は 2100..23ff、27c0..27ff、2900..2bff のようになります。DejaVu Serif にもこの文字がないことがわかった場合は、この方法がうまくいかないことがあります。その場合は、同じ高さで文字がある別のフォントを探す必要があります。これは、OS X 10.9.3 上の emacs 24.3 で実行されています。

関連する問題として、一部の文字では、選択領域内で文字が強調表示されているかどうかに応じて、異なるフォント (異なる高さ) が使用されることがあります。

なぜこのようなことが起こるのでしょうか。また、どうすればいいのでしょうか。行の高さがジャンプしない限り、どのフォントが使用されるかは特に気にしません。何か提案はありますか。2 番目の代替フォントの高さをまったく同じに調整する方法はありますか。

関連情報