X11の下でMuleを実行する方法 ------------------------------------------------------------ 目次: 1. フォント・パスの設定 2. フォントの構築 3. 追加フォント 4. Muleのフォント選択機構 ------------------------------------------------------------ 1. フォント・パスの設定 MuleをXクライアントとして実行するには、 各文字集合(例. GB2312 [中国語], JISX0208 [日本語])毎に Xのフォントが必要である。 自分のXサーバで利用できるフォントの一覧は、 コマンド'xlsfonts'によって見ることができる。 % xlsfonts | egrep -i gb2312 とすれば、中国語(GB)用のフォントに何があるかが見れる。 % xlsfonts | egrep -i jisx0208 とすれば、日本語用のフォントに何があるかが見れる。 % xlsfonts | egrep -i ksc5601 とすれば、韓国語のフォントに何があるかが見れる。 % xlsfonts | egrep -i big5 とすれば、Big5用のフォントに何があるかが見れる。 必要なフォントが見つからないならば、「フォント・パス」を次のようにチェックする: % xset q X11R5のデフォルト設定の下では、日本語と韓国語のフォントは ディレクトリ/usr/lib/X11/fonts/miscに置かれている。 これらのディレクトリが自分のフォント・パスになければ、次のように設定する: % xset fp+ /usr/lib/X11/fonts/misc このようなディレクトリがないならば、自分でBDFファイルからXのフォントを 作らなければならない(「フォントの構築」 参照)。 これでX上でMuleを実行できる。 デフォルト以外のフォントを使いたいならば、 コマンド・ライン或はXのリソース・ファイルで指定できる ('man mule'とするか、ファイル'mule/etc/mule.1'を見よ)。 2. フォントの構築 X11R5は、沢山のフォント(BDF形式)付きで配布されている。 X11R5/mit/fonts/bdf/misc下にあるのは次のもの: jiskan16.bdf, jiskan24.bdf (日本語) hanglm16.bdf, hanglm24.bdf (韓国語) X11R5/contrib/clients/cxterm/fonts下にあるのは次のもの: cclib16st.bdf, cclib24st.bdf (中国語 GB) hku-ch16.bdf (中国語 Big5) これらファイルからフォントを作るために、 ディレクトリを作った方がいい(それを${font}とすれば): % mkdir ${font} % cd ${font} % bdftopcf xxx/jiskan24.bdf >jiskan24.pcf % bdftopcf yyy/hanglm24.bdf >hanglm24.pcf ... % mkfontdir % xset fp+ `pwd` 本当にこれらフォントが使える様になったかどうか、 コマンド'xlsfonts'でチェックする。 もし、X11R4を使っているのなら、'bdftopcf'の代わりに'bdftosnf'を使うこと。 3. 追加フォント MuleはX11R5の配布にあるフォント以外のフォントも必要とする。 例えば、EGGでcWnnのcserverを使っている場合、 SiSheng文字のフォントも必要である。 Muleのftpディレクトリ下にある'fonts'ディレクトリには、 これらのフォントを置いてある。 4. Muleのフォント選択機構 ある文字集合にどのフォントを使うか、を指定する方法は幾つかある。 (1) 関数'set-x-default-font'を呼出す。 lisp/mule-init.el中で、 この関数呼び出しによって殆どのフォントにデフォルト値を与えている。 site-init.el中で、この値を変更或は追加するのは自由である。 ASCII以外なら、個人の.emacs中でこの関数を使って変更して構わない。 以下が、'set-x-default-font'の説明である: ------------------------------------------------------------ set-x-default-font: 第1引数LEADING-CHARの文字集合のデフォルト値として、 第2引数FONTNAMEと第3引数ENCODINGを設定する。 ------------------------------------------------------------ mule-init.el中の例: (set-x-default-font lc-thai "-*-fixed-medium-r-*--*-*-*-*-*-*-tis620.2529-1" 1) (2) Xのリソース・データベースで指定する。 Muleのマニュアル・ページ(etc/mule.1)を参照のこと。 筆者の~/.Xresourcesからの例: *FontJP: -*-fixed-medium-r-*--*-*-jisx0208.1983-* *FontLTN1: -ETL-Fixed-Medium-R-Normal--*-*-ISO8859-1 (3) Muleのコマンド・ライン引数でフォントを指定する。 Muleのマニュアル・ページ(etc/mule.1)を参照のこと。 例: % mule -fn a14 -fnjp k14 (4) 関数'x-set-font'の呼び出しによる。 これがフォントを動的に変更する唯一の方法。 以下が'x-set-font'の説明。GNU Emacsオリジナルの拡張であることに注意。 Muleのdump中(作成時)には使えない。 ------------------------------------------------------------ x-set-font: Xウィンドウで使用するフォントを設定する。 プログラム中で呼出す場合、引数が3つ指定できる。 FONTNAME, LEADING-CHAR (0 或は 0x81..0xFF), と ENCODING (0 か 1)。 LEADING-CHAR と ENCODING のデフォルト値は 0。 フォントのロードに成功すれば、tを返し、さもなくばnilを返す。 ------------------------------------------------------------ 例: ESC ESC (x-set-font "k14" lc-jp 0) 優先順位は、次の順: (1) < (2) < (3) < (4) どのフォントがロードされているかを知りたい場合、'x-get-fontinfo'を使う。 ------------------------------------------------------------ x-get-fontinfo: LEADING-CHARの文字集合のフォント情報を、次の形のリストで得る。 REQUESTED-NAME: フォント・オープンに使用したフォント名 OPENED-NAME: 実際にオープンされたフォント名 OPENED: フォントが実際にオープンされたならt、さもなくばnil ------------------------------------------------------------ OPEND-NAMEがnilで、OPENEDがtならば、 REQUESTED-NAMEの代わりにASCIIフォントが使われている。