windows上のemacsのフォントの設定はなんとかできたので、次はfirefoxなどのwebブラウザでCtrl-+
, Ctrl--
でフォントサイズを変更するように、emacsでも簡単にフォントサイズを変更したい。
(defun font0 (size)
(interactive "P")
(if (not size)
(setq size 12)) ;デフォルトのサイズ
(set-frame-font (font-spec :size (* size 1.0))) ;整数:pixels 実数:points
)
(defun font10 () (interactive) (font0 10)) ;13
(defun font11 () (interactive) (font0 11)) ;14
(defun font12 () (interactive) (font0 12)) ;16
(defun font13 () (interactive) (font0 13))
(defun font14 () (interactive) (font0 14)) ;18
(defun font15 () (interactive) (font0 15))
(defun font16 () (interactive) (font0 16)) ;21
(defun font18 () (interactive) (font0 18)) ;24
(defun font20 () (interactive) (font0 20))
(defun font22 () (interactive) (font0 22))
(defun font24 () (interactive) (font0 24))
とりあえず一つずつ関数を作って使っていた。
C-x C-0
, C-x C-=
, C-x C--
, C-x C-+
(text-scale-decrease
)を使うとバッファごとのフォントサイズは変更できる。しかし、バッファ単位ではなくフレーム単位で変更したいので試行錯誤した。
(defun font+ ()
(interactive)
(set-frame-font
(font-spec :size (+ (* (default-font-height) .6428571428) 1))))
(defun font- ()
(interactive)
(set-frame-font
(font-spec :size (- (* (default-font-height) .6428571428) 1))))
(global-set-key (kbd "C-c C-=") 'font+)
(global-set-key (kbd "C-C C--") 'font-)
このようにしたらC-cC-=
, C-cC--
で拡大、縮小できた。
フォントサイズが72のとき(default-font-height)
が112だったので、比率が.6428571428。
しかし、これとC-x C-0
, C-x C-=
, C-x C--
, C-x C-+
(text-scale-decrease
)を同時に使うとおかしくなる。
バッファ単位の拡大は使わないので問題ないが、何かいい方法はありますか。
ありました。zoom-frm.el 10年前から。