記号(○△□)とか罫線素片のグリフが2桁幅のビットマップなUnicodeフォント

メモ。

  • 後述の理由で記号(○△□)とか罫線素片のグリフが2桁幅のビットマップなUnicodeフォントが欲しい
  • ビットマップなUnicodeフォントといえば efont
  • efontのb14 (-efont-biwidth-medium-r-normal--14-140-75-75-p-70-iso10646-1) がほぼ欲しいのもの
  • b14でEastAsian Ambiguous Widthな文字たちのグリフを2桁幅のが欲しいものそのもの
  • b14は複数のフォントを合成したもの
    • EastAsian Ambiguous Width Charactersは、東雲14のを生かすように生成スクリプトを変更すればよさそう

で、efont-unicode-bdf-0.4.2-src での変更個所は以下の通り。

:> h14_add.hex
:> halfwidth.list
vi Makefile.in
--- Makefile.in.orig    2010-01-17 23:59:57.000000000 +0900
+++ Makefile.in 2010-01-18 00:50:46.000000000 +0900
@@ -292,7 +292,7 @@
        mv $@.tmp $@
        touch -r $< $@
 b%.hex: f%.hex h%.hex
-       tools/hexmerge $^ > $@.tmp && \
+       tools/hexmerge $^ $$(echo $^|egrep -o '^f[0-9]+.hex') > $@.tmp && \
        mv $@.tmp $@

 configure: configure.in

で、

./configure
make b14.pcf.gz b14_b.pcf.gz b14_bi.pcf.gz b14_i.pcf.gz

欲しい理由

追記 2010-01-25

mltermの開発者の方からわざわざパッチをいただきmltermが落ちなくなったので、現在は ENCODING = EUC-JP と東雲フォントの組み合わせで使ってます。
パッチはmlterm version 2.9.4 post/cvs-1.969に対するものと、mlterm version 3.0.0 pre/cvs-1.998に対するものの2ついただきました。MacX11.app (XQuartz 2.4.0 (xorg-server 1.5.3-apple14)) でしか発現しない問題なんじゃないかと思うのですが、同様にお困りの方は、近いうちにコミットされるそうなのでこちらからどうぞ。 http://mlterm.sourceforge.net/



  • MacのターミナルはX11.appでmlterm派
    • CVS版を自ビルドして使用 (mlterm version 2.9.4 post/cvs-1.969)
    • ターミナルはビットマップフォント派
    • ktermは、色つけたりするのにPS1にエスケープシーケンス入れているとC-rとかしたときにプロンプトの行がぐちゃぐちゃになるのが嫌で、数年前にmltermに移行。メインマシンのLinuxもmlterm。
    • rxvt系 (rxvt, rxvt-unicode, mrxvt) はそれぞれ不満があって常用はやめた。なんだか覚えてないけど。
  • Macでだけ、mltermが落ちる
    • perl -e 'print pack("N",$_) for 143..144' すると、X Error of failed request: BadValue (integer parameter out of range for operation), Major opcode of failed request: 45 (X_OpenFont), ... といって落ちる
    • なので、うっかりバイナリとかutf-8とか非EUC-JPなものを出力しちゃうと落ちる。
    • Linuxのmltermは落ちない
    • ENCODING = EUC-JP だと落ちる
    • ENCODING = UTF-8 では落ちない
      • オールドタイプなんで、環境を euc-jp ベースから utf-8 ベースにするのがめんどくってやってないしあんまやる気がしない。。。
    • ENCODING = EUC-JISX0213 で以下の設定 (~/.mlterm/main) では落ちない
      • not_use_unicode_font = false
      • only_use_unicode_font = true
      • iso88591_font_for_usascii = true
      • col_size_of_width_a = 2
  • ENCODING = EUC-JISX0213 で落ちなくなったけど、EastAsian Ambiguous Width Charactersが、グリフは1桁幅で表示されるけど、カーソルの移動とか文字としては2桁幅で認識されているようになった。
    • 箇条書きに●■とかつかうし、Wanderlustのスレッド表示で罫線素片使いまくりなので、かなりキモいことに。
    • じゃ、グリフの幅が2桁幅のビットマップなUnicodeフォントがあればいいじゃない
    • 以上が動機