Emacs 21 Unicode 環境
since Sept. 10 2005
 

概要

FreeBSD Emacs 21 における Unicode 環境構築についてのメモである.Emacs における Unicode 処理系である Mule-UCS の組み込み,Unicode 多言語フォントの調整を行う.X11(X Window System)は Xorg-6.x を前提としている.

2005.9 現在,FreeBSD 5.4-RELEASE ports の Emacs バージョンは 21.3 / Mule 5.0 (SAKAKI 賢木)である.

Emacs 21
インストール

FreeBSD ports から Emacs 21 本体,Leim(多言語インプットメソッド),Mule-UCS(Unicode パッケージ)を組み込む.日本語インプットメソッド,仮名漢字変換サーバ等の日本語環境の設定については,インターネット・リソースが数多く存在するので,ここでは割愛する.

インストールはいずれも ports になっており簡単である.それぞれ
   /usr/ports/editor/emacs
   /usr/ports/editor/liem21
   /usr/ports/converters/mule-ucs
のディレクトリ下で make install とすればよい.

# cd /usr/ports/editor/emacs
# make install
# cd ../leim21
# make install
# cd ../../converters/mule-ucs
# make install
# rehash
	

多言語フォントの
導入

Emacs 多言語編集のために多言語フォントをセットアップする.まず Emacs 標準の多言語フォント intlfonts (1.2.1) を ports からインストールする.X11 フォントの項でも述べているがここでも手順をしるす.さらに,Xorg misc-bitmaps,日本語の追加フォントも同時にインストールしておく.

% setenv XFONTDIR /usr/X11R6/lib/X11/fonts
[ 作業のため X11 フォント・ディレクトリを環境変数にセット ]
% su -m
# cd /usr/ports/x11-fonts/intlfonts
# make install
# cd ../xorg-fonts-miscbitmaps
# make install
# cd /../../japanese/alias-fonts
# make install
# xset fp+ $XFONTDIR/misc
# xset fp rehash
	

次に電子書体オープンラボが配布している /efont/ Unicode フォントをインストールする.これによって intlfonts には含まれていない教会スラヴ語など Cyrillic U+0400-04FF 範囲のキリル・フォントや,古典ギリシア語複式アクセント付き文字も定義する Greek Extended U+1F00-1FFF 範囲のギリシア語フォントなどを利用することができる.

/efont/ は BDF フォントをダウンロードして使うこともできるが,ここではソースから,ノーマル,ボールド,イタリック,ボールド・イタリックの書体で PCF フォントを生成する方法を示す.このために Bdfresize,Mkbold,Mkitalic の各フォント・ユーティリティを事前にインストールしておく.これらのツールは FreeBSD ports から導入が可能である.

# cd /usr/ports/x11-fonts/bdfresize
# make install
# cd ../mkbold-mkitalic
# make install
# rehash
	

/efont/ ソースをダウンロードし,インストールする手順を以下に示す.

% mkdir -p ~/tmp/fonts
% cd ~/tmp/fonts
% wget -nH --cut-dirs=3 \
http://openlab.ring.gr.jp/efont/dist/unicode-bdf/\
efont-unicode-bdf-0.4.2-src.tar.bz2
% tar jxvf efont-unicode-bdf-0.4.2-src.tar.bz2
% cd efont-unicode-bdf-0.4.2-src
% ./configure
% make
% su -m
# mkdir $XFONTDIR/efont
# cp -p *.pcf.gz $XFONTDIR/efont
# mkfontdir $XFONTDIR/efont
# xset fp+ $XFONTDIR/efont
# xset fp rehash
	

フォント環境設定

以上でフォントが使える状態になったが,次回以降のシステム起動後も使用可能とするために,X11 設定ファイル /etc/X11/xorg.conf の Files セクションに misc,efont のフォントパスを追加しておく.

Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/X11R6/lib/X11/fonts/local/"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/efont/"
                 ......
EndSection
	

また,Emacs の初期フォントとして /efont/ を使うよう,以下の設定情報を $HOME/.Xdefaults に追記する.14 ドット・フォントの例である.

Emacs.Font: fontset-14
! -- 14 dot --
! medium-r-normal
Emacs.Fontset-0: -*-fixed-medium-r-normal--14-*-*-*-*-*-fontset-14,\
  ascii:-*-fixed-medium-r-normal--14-*-iso8859-1,\
  japanese-jisx0213-1:-*-fixed-medium-r-normal--14-*-jisx0213.2000-1,\
  japanese-jisx0213-2:-*-fixed-medium-r-normal--14-*-jisx0213.2000-2,\
  japanese-jisx0208:-*-fixed-medium-r-normal--14-*-jisx0208*,\
  katakana-jisx0201:-*-fixed-medium-r-normal--14-*-jisx0201*,\
  mule-unicode-e000-ffff:-*-fixed-medium-r-normal-ja-13-*-iso10646*,\
  mule-unicode-0100-24ff:-*-fixed-medium-r-normal--13-*-iso10646*

! bold-r-normal
Emacs.Fontset-1: -*-fixed-bold-r-normal--14-*-*-*-*-*-fontset-14,\
  ascii:-*-fixed-bold-r-normal--14-*-iso8859-1,\
  japanese-jisx0213-1:-*-fixed-bold-r-normal--14-*-jisx0213.2000-1,\
  japanese-jisx0213-2:-*-fixed-bold-r-normal--14-*-jisx0213.2000-2,\
  japanese-jisx0208:-*-fixed-bold-r-normal--14-*-jisx0208*,\
  katakana-jisx0201:-*-fixed-bold-r-normal--14-*-jisx0201*,\
  mule-unicode-e000-ffff:-*-fixed-medium-r-normal-ja-13-*-iso10646*,\
  mule-unicode-0100-24ff:-*-fixed-bold-r-normal--13-*-iso10646*

! medium-i-normal
Emacs.Fontset-2: -*-fixed-medium-i-normal--14-*-*-*-*-*-fontset-14,\
  ascii:-*-fixed-bold-r-normal--14-*-iso8859-1,\
  japanese-jisx0213-1:-*-fixed-medium-i-normal--14-*-jisx0213.2000-1,\
  japanese-jisx0213-2:-*-fixed-medium-i-normal--14-*-jisx0213.2000-2,\
  japanese-jisx0208:-shinonome-mincho-medium-i-normal--14-*-jisx0208*,\
  katakana-jisx0201:-*-fixed-bold-r-normal--14-*-jisx0201*,\
  mule-unicode-e000-ffff:-*-fixed-medium-r-normal-ja-13-*-iso10646*,\
  mule-unicode-0100-24ff:-*-fixed-medium-r-normal--13-*-iso10646*

! bold-i-normal
Emacs.Fontset-3: -*-fixed-bold-i-normal--14-*-*-*-*-*-fontset-14,\
  ascii:-*-fixed-bold-i-normal--14-*-iso8859-1,\
  japanese-jisx0213-1:-*-fixed-medium-i-normal--14-*-jisx0213.2000-1,\
  japanese-jisx0213-2:-*-fixed-medium-i-normal--14-*-jisx0213.2000-2,\
  japanese-jisx0208:-shinonome-mincho-bold-i-normal--14-*-jisx0208*,\
  katakana-jisx0201:-*-fixed-bold-r-normal--14-*-jisx0201*,\
  mule-unicode-e000-ffff:-*-fixed-medium-r-normal-ja-13-*-iso10646*,\
  mule-unicode-0100-24ff:-*-fixed-bold-r-normal--13-*-iso10646*
	

格納したら,X11 リソース・データベースに反映する.

% xrdb -merge ~/.Xdefaults
	

Mule-UCS の
設定

Emacs 初期設定ファイル .emacs に以下のような内容を記述する.
  un-defune-safe-characters-for-coding-systems
  un-define-change-charset-order
については「CJK, Unicode パッケージ,ロシア語多書体の利用 — Emacs 設定の注意事項」を参照.

;;
;; Unicode Mule-UCS 設定
;;
(setq un-define-safe-charsets-for-coding-systems
 '(ascii
   latin-iso8859-1 latin-iso8859-2 latin-iso8859-3 latin-iso8859-4
   cyrillic-iso8859-5 greek-iso8859-7
   hebrew-iso8859-8 latin-iso8859-9
   ipa thai-tis620 ethiopic indian-is13194 
   vietnamese-viscii-lower vietnamese-viscii-upper
   mule-unicode-0100-24ff 
   japanese-jisx0208
   japanese-jisx0213-1 japanese-jisx0213-2
   japanese-jisx0212
   korean-ksc5601
   chinese-big5-1 chinese-big5-2
   chinese-gb2312
   chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3
   chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6
   chinese-cns11643-7
   chinese-sisheng
   mule-unicode-2500-33ff mule-unicode-e000-ffff
   latin-jisx0201 katakana-jisx0201
   ))
(require 'un-define)
(require 'un-tools)
(require 'jisx0213)
(un-define-change-charset-order
 '(ascii
   latin-iso8859-1 latin-iso8859-2 latin-iso8859-3 latin-iso8859-4
   cyrillic-iso8859-5 greek-iso8859-7
   hebrew-iso8859-8 latin-iso8859-9
   ipa thai-tis620 ethiopic indian-is13194 
   vietnamese-viscii-lower vietnamese-viscii-upper
   mule-unicode-0100-24ff 
   japanese-jisx0208
   japanese-jisx0213-1 japanese-jisx0213-2
   japanese-jisx0212
   korean-ksc5601
   chinese-big5-1 chinese-big5-2
   chinese-gb2312
   chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3
   chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6
   chinese-cns11643-7
   chinese-sisheng
   mule-unicode-2500-33ff mule-unicode-e000-ffff
   latin-jisx0201 katakana-jisx0201
   ))
	

以上で Emacs 21 Unicode 環境はほぼ完了である.仮想端末から emacs & を投入して,Emacs を起動する.

インプット
メソッド

Emacs 21 では Leim 多言語インプットメソッドを切替えて数多くの言語を入力することが可能である.教会スラヴ語などのスラヴ語一般と,古典・現代ギリシア語のために,私なりに作成したインプットメソッドも追加して利用できる.「Emacs スラヴ語/古典ギリシア語汎用インプットメソッド」を参照していただきたい.

インプットメソッドの切替えはC-x C-m C-\ もしくは M-x set-input-method を投入し,Select input method (default ...): プロンプトに対し,インプットメソッド名を応答することで行う.

キリル文字入力用を中心に,インプットメソッド名の主なものを以下に示す.

- cyrillic-jcuken キリル йцукен ロシア語キーボード配列
- cyrillic-yawerty キリル яверты 配列
- cyrillic-translit キリル・アスキー翻字入力
- cyrillic-jis-russian JIS ロシア文字入力
- cyrillic-macedonian マケドニア語用
- cyrillic-ukrainian ウクライナ語用
- cyrillic-beylorussian ベラルーシ語用
- latin-1-prefix Latin-1 入力(前置修飾式)
- latin-1-postfix Latin-1 入力(後置修飾式)
- latin-2-prefix Latin-2 入力(前置修飾式)
その他 latin-3-prefix なども同様
- latin-2-postfix Latin-2 入力(後置修飾式)
その他 latin-3-postfix なども同様
- slavonic スラヴ語汎用
- greek-polytonic 現代・古典ギリシア語汎用

Mule-UCS は Unicode のコードポイントで文字を入力するインタフェースを備えている.M-x insert-ucs-character を投入して UCS codepoint: プロンプトに対し ?\xコードポイント(十六進四桁) を入力すると,当該コードポイントの Unicode 文字がカーソル位置に挿入される.例えば,?\x9dd7 とすると CJK 統合漢字「鷗」が入力できる.Unicode 漢字コードポイントは『JIS漢字字典』(芝野耕司著,日本規格協会)等で参照することができる.

更新履歴

 

Sept. 10, 2005 新規作成