emacsで日本語も英語もプロポーショナルフォントで表示したい。
emacsでM-x variable-pitch-mode
とすると、バッファごとにデフォルト(等幅)のフォントとプロポーショナルフォントを切り替えられる。しかしWindowsのNTemacsでは、デフォルトフォントの設定だけしかしていないと、asciiフォントしかプロポーショナルにならず、日本語フォントはデフォルトの等幅のままになる。
(set-face-attribute 'default nil :family "Consolas" :height 120)
(set-fontset-font t 'japanese-jisx0208 (font-spec :family "MeiryoKe_Console"))
(add-to-list 'face-font-rescale-alist '("MeiryoKe_Console" . 1.09))
文字a
の上でM-x describe-char
uniscribe:-outline-Consolas-normal-normal-normal-mono-16----c--iso8859-1 (#x83)
文字あ
の上でM-x describe-char
uniscribe:-outline-MeiryoKe_Console-normal-normal-normal-mono-17----c--iso8859-1 (#x901)
M-x variable-pitch-mode
文字a
の上でM-x describe-char
uniscribe:-outline-Arial-normal-normal-normal-sans-16----p--iso8859-1 (#x44)
文字あ
の上でM-x describe-char
uniscribe:-outline-MeiryoKe_Console-normal-normal-normal-mono-17----c--iso8859-1 (#x901)
試行錯誤してvariable-pitch
faceにfontsetを設定したら、日本語フォントもプロポーショナルフォントで表示された。
(add-to-list 'face-font-rescale-alist '("MeiryoKe_PGothic" . 1.09))
(create-fontset-from-ascii-font
"Arial:weight=normal:slant=normal" nil "variable")
(set-fontset-font
"fontset-variable" 'japanese-jisx0208 (font-spec :family "MeiryoKe_PGothic"))
(set-face-attribute 'variable-pitch nil :fontset "fontset-variable")
M-x variable-pitch-mode
文字a
の上でM-x describe-char
uniscribe:-outline-Arial-normal-normal-normal-sans-16----p--iso8859-1 (#x44)
文字あ
の上でM-x describe-char
uniscribe:-outline-MeiryoKe_PGothic-normal-normal-normal-mono-17----p--iso8859-1 (#x7251)