2017年11月6日月曜日

ubuntuで動かすemacsの日本語フォントを調整する方法


苦労したので、分かったことを共有します。

動作環境

OS: ubuntu17.10
emacs: 25.2.2

背景

ubuntu17.10のaptコマンドでインストールできるemacsで使われる日本語フォントは、個人的にあまり好きではありません。
なぜなら、英数字より高さがあるために行間が伸びてしまうのと、文字によってフォントがおかしく感じるだからです。(「直」のフォントががおかしいです。)


そのため、日本語フォントを変更してみました。

日本語のフォントを変更

ubuntuで使えるフォントは、下記のコマンドをターミナルで実行すると確認できます。
fc-list

下記のコマンドでゴシック体を検索するとTakaoPGothicというフォントを確認できたので、それを使うことにしました。
fc-list | grep Gothic



emacsの初期化ファイルに下記の記述を追加すると、日本語フォントをTakaoPGothicに変更できます。
(emacsの初期設定ファイルはいくつか種類がありますが、この記事では「~/.emacs.d/init.el」を使います。)
.emacs.d/init.el
(set-fontset-font t 'japanese-jisx0208 "TakaoPGothic")

上記の設定を記述したら、emacsを再起動します。
設定が反映されたら、フォントが変わると思います。


フォントが良くなりました。

日本語に使っているフォントのサイズを変更

TakaoPGothicに変更したことで、初期の見た目より自分好みになったのですが、英数字より日本語のフォントが若干大きいのがまだ気になります。


下記の記述をemacsの初期設定ファイルに記述することで、フォント(TakaoPGothic)のスケールを変更できます。
注意すべき点としては、emacsはfc-listで表示される最初の文字列をフォント名として認識するようで、TakaoPGothisは「Takao P ゴシック」として認識されているため、「TakaoPGothic」に対してスケール変更しようとしても、うまくいきません。
そのため、日本語が含まれる文字列のフォント名に対して、リスケールの設定をする必要があります。
.emacs.d/init.el
(add-to-list 'face-font-rescale-alist '(".*Takao P.*" . 0.85)) ; OK
(add-to-list 'face-font-rescale-alist '(".*TakaoP.*" . 0.85)) ; Wrong


上記のOKの方を設定ファイルに記述してemacsを再起動すると、フォントのサイズが変わると思います。


個人的に心地良く感じる文字サイズになりました。
(高さは若干大きいですが、これ以上小さくすると日本語の線が細くなってしまってバランスが悪く感じるので、リスケール値0.85に落ち着きました。)

余談

emacsが認識しているフォント名は「(print (font-family-list))」をemacs lispで実行すると表示されます。
自分の環境で実行すると、TakaoPGothicは、文字化けしていますが下記のように「Takao P ゴシック」として認識されてるようでした。


まとめ

「日本語を含むフォント名」をリスケール対象のフォント文字列にする必要があると分かるのに時間がかかりましたが、期待通りのフォントとサイズに変更できました。

共有する情報は以上です。

参考

- face-font-rescale-alistについて知った記事です。
フォント設定にface-font-rescale-alistを使う
Emacs のフォント設定について

- (print (font-family-list)) について知った記事です。
Emacs: Font Configuration

0 件のコメント :