(aset char-width-table ?♡ 2)
のようにすればハートマーク "♡" の文字幅が 2 に設定できます。ユニコードの番号を使用して以下のよに設定することも可能です。(aset char-width-table #x2661 2)
この例だと同じく ♡ U+2661 の文字幅が 2 になります。この方法で一文字づつ詳細に設定していくこもできますが、便利な仕組みが準備されています。例えば
(setq cjk-char-width-table-list '((ja_JP nil (japanese-jisx0213.2004-1 (#x2121 . #x2D7E)) (japanese-jisx0212 (#x2121 . #x2F7E)) (cp932-2-byte (#x8140 . #x879F))) (zh_CN nil (chinese-gb2312 (#x2121 . #x297E))) (zh_HK nil (big5-hkscs (#xA140 . #xA3FE) (#xC6A0 . #xC8FE))) (zh_TW nil (big5 (#xA140 . #xA3FE)) (chinese-cns11643-1 (#x2121 . #x427E))) (ko_KR nil (korean-ksc5601 (#x2121 . #x2C7E))) (CJK nil (japanese-jisx0213.2004-1 (#x2121 . #x2D7E)) (japanese-jisx0212 (#x2121 . #x2F7E)) (cp932-2-byte (#x8140 . #x879F)) (chinese-gb2312 (#x2121 . #x297E)) (big5-hkscs (#xA140 . #xA3FE) (#xC6A0 . #xC8FE)) (big5 (#xA140 . #xA3FE)) (chinese-cns11643-1 (#x2121 . #x427E)) (korean-ksc5601 (#x2121 . #x2C7E))) (none nil))) (use-cjk-char-width-table 'ja_JP)
互換性に気を使った非常に良いやり方ですね。さすがです。一方でユニコード規定での CJK 文字幅を実現するのは面倒なのですが。
この設定で文字コードの範囲指定が全文字(2121〜7E7E)でなく中途半端な数字で終っているのは漢字はデフォルトで全角なので、先頭に非漢字の部分だけを指定してやれば良いからです。数を少なくすることで少しでも起動速度が速くなることを期待しています。(第四水準の指定をしていないのも同じ理由です。第四水準には漢字しかないので)。
これだけで終らないところが悩ましい.... 続く。
0 件のコメント:
コメントを投稿