scramble cadenza

技術ネタのガラクタ置き場

emacs で linum-mode + Ricty フォントを使おうとすると、余計な空白が含まれてしまう件

イントロ

linum-modeの余計な余白をなくす方法 - handlename's blogと同じ現象。
ただこの方のコードをコピペしても、私の環境では治らず。おまけにググっても情報が少ない。

しかし font が怪しいという考察は非常に参考になりました。

環境は

試行錯誤

  • font が怪しいとはいえど、Ricty を使いたい。
  • ググって emacs の font 変更のやり方を探して片っ端から試してみた。
    • font 設定にオプション付けて何とかならないかと思ったが、うまくいかず。
  • しまいにはRictyの公式の以下のコードでやっても、ずれるという始末。
    • 公式ではあまり想定していないことなのかもしれない、と考えた。
(set-face-attribute 'default nil
                    :family "Ricty Discord"
                    :height 120)
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0208
                  (cons "Ricty Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0212
                  (cons "Ricty Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'katakana-jisx0201
                  (cons "Ricty Discord" "iso10646-1"))

結論

(set-face-attribute 'default nil :family "Ricty Discord" :height 135)

を入れてはダメ、絶対。

それ以外の

(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0208
                  (cons "Ricty Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0212
                  (cons "Ricty Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'katakana-jisx0201
                  (cons "Ricty Discord" "iso10646-1"))

で日本語のみ Ricty を使いましょう。

え? それだと英数字が Ricty じゃない?

(set-face-attribute 'default nil :family "Inconsolata" :height 135)

で妥協しましょう。
Ricty の一部は Inconsolata なので綺麗に見えるはず。

まとめ

f:id:mgi:20140201201813p:plain

問題なく半角と全角が 1:2 になってます。
これで私は満足しました。