Emacs23でバックスラッシュとチルダが表示できない問題を回避した
X11上のemacsでチルダが表示されない。 - deruiの日記
俺もEmacs23でバックスラッシュとチルダが表示できない現象に遭遇した。*1他のフォントならば、どちらも表示できるのだが。
とりあえず、似ている文字を代用することで逃げの手を打つことにした。standard-display-tableを使うと、実際の文字に対して表示上の文字を変更することができる。
バックスラッシュは元々¥で表示されていたので、\に。チルダはオーバーラインで表示させた。以下のコードを.emacs.elに加えよう。
(setq standard-display-table (or standard-display-table (make-display-table))) (aset standard-display-table ?\\ [?\x18]) (aset standard-display-table ?~ [?\x7f])
なお、半角ぱうフォントの形状をテキスト化したものを見れば、別の文字で代用することもできる。文字はSTARTCHARで16進数表記されている。この設定では以下の字形で代用している。
変更前
STARTCHAR 005c ENCODING 92 SWIDTH 576 0 DWIDTH 8 0 BBX 8 16 0 -2 BITMAP ................ .........11..11. .........11..11. ..........1111.. ..........1111.. ...........11... ...........11... .........111111. .........111111. ...........11... .........111111. .........111111. ...........11... ...........11... ...........11... ................ ENDCHAR (略) STARTCHAR 007e ENCODING 126 SWIDTH 576 0 DWIDTH 8 0 BBX 8 16 0 -2 BITMAP ..........111.11 .........1111111 .........11.111. ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ENDCHAR
変更後
STARTCHAR 0018 ENCODING 24 SWIDTH 576 0 DWIDTH 8 0 BBX 8 16 0 -2 BITMAP ................ ................ ........11...... ........11...... .........11..... .........11..... ..........11.... ..........11.... ...........11... ...........11... ............11.. ............11.. .............11. .............11. ................ ................ ENDCHAR (略) STARTCHAR 007f ENCODING 127 SWIDTH 576 0 DWIDTH 8 0 BBX 8 16 0 -2 BITMAP ................ .........1111111 .........1111111 ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ENDCHAR