Windows Meadow 2.10 多言語環境の設定
since Mar. 18 2005


 

概要

 

GNU Emacs は Windows においては Meadow という名で多くのユーザがいる.本稿は,Meadow 2.10 で多言語テキストを読み書きするための環境構築についてのメモである.Meadow のインストール,Mule-UCS,Unicode フォント及びインプットメソッドの追加・設定について述べる.私は Windows 2000 で試験しているが,Windows XP でも同じオペレーションでよいはずである.

インプットメソッドについては,スラヴ語/古典ギリシア語汎用インプットメソッドを Meadow に導入する方法についても触れる.これは,Unicode フォントを利用して,スラヴ語(ロシア語,ウクライナ語,マケドニア語,教会スラヴ語など Cyrillic 0400-04FF で記述できるキリル言語)及びギリシア語(現代と古典ギリシア語)をそれぞれひとつのインプットメソッドで入力可能とする Leim 用 Emacs Lisp プログラムである.

Meadow の開発バージョンである 3.00 については『Meadow 3.00』に多言語環境の構築メモを整理したので,より新しい版に関心のある方はこちらを参照いただきたい.

Meadow 2.10
インストール

 

Meadow は現時点(2005.3)ではバージョン 2.10 (ASAGAO) がリリース間際の最新版である.GNU Emacs 21.4 をベースにして開発されたものである.

Meadow ダウンロードサイトからインストーラ setup-2.10.7.exe をダウンロードする.

インストーラはいくつかの導入形態をサポートしているが,ここではネットワークインストールを行うこととする.「パッケージ保管フォルダ(以下説明では "C:\tmp" とする)」,「Meadow インストール先フォルダ("C:\meadow")」及び「ホームディレクトリ("C:\home")」を決めておく.

  1. setup-2.10.7.exe をエクスプローラからダブルクリックするなどして実行する.インストーラが起動する.
  2. "Next>" をクリックすると,"installation method" を聞いてくる.
  3. "Install from the internet" を選択して,次("Next>" をクリックする).
  4. "Local Package Directory" にパッケージを保管するフォルダ C:\tmp を指定して次.
  5. "Installation Root Directory" に Meadow インストール先フォルダ C:\meadow を指定して次.
  6. "Direct Connection" を選択して次.
  7. "Select Download Site" に対し適当な URL を選び次.
  8. "Select package to install" 画面(図1)で,Meadow 本体のほか次のパッケージを追加で選択する.

    • imagemagick
    • intlfonts
    • mule-ucs
    • misc

    intlfonts は Emacs 標準の多言語フォントパッケージ,mule-ucs は Unicode サポートパッケージである."New" の欄に "Skip" と表示されている場合インストールされない."Skip" の部分をクリックしてバージョン番号が表示されるようにする.

    図1 パッケージ選択画面
  9. パッケージ選択を行い "Next>" をクリックするとダウンロードとインストールフォルダへの展開が始まる.
  10. 終了すると install.exe の実行と ImageMagick のインストールを問い合わせる画面となる.両方にチェックをつけて "Finish".
  11. コマンドプロンプト画面の問い合わせに,ホームディレクトリ名 C:\home を応答する.Windows の環境変数 HOME(Windows 2000 ではコントロールパネルの「システム」を開き「詳細」タブ「環境変数」をクリックして編集する)にも登録しておく.
  12. エクスプローラで C:\meadow\bin\RunMW32.exe をマウス右ボタンでデスクトップにドラッグし,Meadow 起動ショートカットを作成する.さらにショートカットのプロパティの「作業フォルダ」にホームディレクトリを設定しておく.これでショートカットをダブルクリックすると,Meadow が起動する."Ctrl + h h" で「こんにちは」多言語デモが閲覧できるはずである(図2).

    図2 「こんにちは」デモ画面

/efont/ フォント

 

多言語フォント intlfonts は残念ながら Unicode で定義されている教会スラヴ語などのキリル文字や,古典ギリシア語の複式アクセントを有する文字を含んでいない.Unicode フォントはいくつか公開されているが,ここでは電子書体オープンラボ /efont/ 16ドットフォントを導入・設定する.スラヴ語一般,古典ギリシア語の字母が実用レベルで —/efont/ 文字セットはすべての字母を網羅しているわけではない— 含まれている.

efont-unicode-bdf-0.4.2.tar.bz2 をダウンロードして適当なフォルダ(C:\tmp)に展開する.アーカイブの解凍は Lhaplus のような "tar.bz2" をサポートするものが必要である.

展開したら,半角固定ピッチの16ドットフォント h16*.bdf を intlfonts と同じフォルダにコピーする.コマンドプロンプト入力は以下のとおり.

C:\tmp\efont-unicode-bdf-0.4.2> copy h16*.bdf ⇒
\meadow\packages\fonts\intlfonts

Meadow で /efont/ Unicode BDF フォントを利用するための設定を行う.Meadow intlfonts パッケージ添付の auto-autoloads.el を修正する.以下に示すとおり intlfonts-file-16dot-alist に,mule-unicode-0100-24ff エンコーディングとこれに対する Unicode フォントの定義を追加する.ついでに indian-1-column の行のコメントをはずしておく(上記「こんにちは」デモ画面のとおり Hindi が正しく表示されるようになる).

(defvar intlfonts-file-16dot-alist
  (append '((ascii 
     ;; normal         bold
    ("lt1-16-etl.bdf" "lt1-16b-etl.bdf" 
     ;; italic         bold-italic
     "lt1-16i-etl.bdf" "lt1-16bi-etl.bdf"))
    (katakana-jisx0201 ("8x16rk.bdf") 1-byte-set-msb);; JISX0201
               ・・・(略)・・・
    (indian-is13194 ("isci16-mule.bdf"));; IS13194-Devanagari
    (indian-2-column ("ind16-mule.bdf"));; MuleIndian-2
    (indian-1-column ("ind1c16-mule.bdf"));; MuleIndian-1
    (lao ("lao16-mule.bdf") 1-byte-set-msb);; MuleLao-1
    (tibetan ("tib16-mule.bdf"));; MuleTibetan-0
    ;;(tibetan-1-column ("tib1c16-mule.bdf"));; MuleTibetan-1
    ;; add for Unicode
    (mule-unicode-0100-24ff 
    ;;  normal    bold        italic      bold-italic  
      ("h16.bdf" "h16_b.bdf" "h16_i.bdf" "h16_bi.bdf") 
      unicode-font-encoder)
    )
               ・・・(略)・・・
))
	

ホームディレクトリ(C:\home)に Meadow の初期設定ファイルである .emacs を作成する..emacs で様々なカスタマイズが可能であるが,ここでは /efont/ などの BDF フォント,Mule-UCS と日本語環境の設定のために必要最低限の例を示す.

;;;; -*- mode: lisp-interaction; coding: iso-2022-7bit -*-

;;; Mule-UCS の設定
(setq unicode-basic-translation-charset-order-list
      '(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-jisx0208
        korean-ksc5601
        chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3
        chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6
        chinese-cns11643-7
        chinese-gb2312
        chinese-big5-1 chinese-big5-2
        chinese-sisheng
        japanese-jisx0212
        japanese-jisx0213-1 japanese-jisx0213-2
        latin-jisx0201 katakana-jisx0201
        ))
(require 'un-define)
(setq bitmap-alterable-charset 'tibetan-1-column)
(require 'jisx0213)

;;; 日本語環境設定
(set-language-environment "Japanese")

;;; IMEの設定
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list 
  '("[--]" "[あ]" "[--]"))
(add-hook 'mw32-ime-on-hook
	  (function (lambda () (set-cursor-height 2))))
(add-hook 'mw32-ime-off-hook
	  (function (lambda () (set-cursor-height 4))))

;;; BDF フォント設定
(setq bdf-use-intlfonts16 t)
(setq initial-frame-alist '((font . "intlfonts16")))

;;; 初期フレームの設定
(setq default-frame-alist
      (append (list '(foreground-color . "black")
		    '(background-color . "white")
		    '(background-color . "gray")
		    '(border-color . "black")
		    '(mouse-color . "white")
		    '(cursor-color . "black")
		    '(width . 80)
		    '(height . 40)
		    '(top . 100)
		    '(left . 100))
	      default-frame-alist))

;;; end of file
	

unicode-basic-translation-charset-order-list の指定は必須ではないが,Unicode 文字が JIS フォントで置き換えられてしまわないよう,mule-unicode-0100-24ff を japanese-jisx0208 などのマルチバイト・エンコーディング・文字セットよりも前に記述して,その優先度を高くしていることに注意すべきである.以上で /efont/ を含む多言語テキストを編集する環境構築は完了である.キリル文字,ギリシア文字のサンプルテキストを掲載しておくので,マウス右クリックでダウンロードし,Meadow で確認していただきたい.図3 のようなフォント表示がされればOKである.


図3 サンプル表示画面

スラヴ語,ギリシア語汎用インプットメソッド

 

Meadow 標準の Leim パッケージで提供されるインプットメソッドでは,キリル言語,ギリシア語の入力は,それぞれ ISO 8859-5 及び ISO 8859-7 のコード範囲に限定される.このため Unicode 環境に即した教会スラヴ語,古典ギリシア語の入力を可能とするスラヴ語,ギリシア語汎用インプットメソッドを作成した.これは本来 UNIX Emacs 20/21 向けに書いたものだが,Meadow でも利用可能である.

利用方法等詳細は『Emacs スラヴ語/古典ギリシア語汎用インプットメソッド』を参照いただきたい.ここでは Meadow での導入について簡単に述べる.

次のリンクから slavonic.elgreek-polytonic.elC:\meadow\leim\quail フォルダにコピーする.

新たに追加した slavonic.el と greek-polytonic.el を Quail インプットメソッド・リストに登録する.このためには,Meadow を起動し,次のコマンドを入力する."M-x" は "Altキー" + "xキー","C-x" は "Ctrlキー" + "xキー", "RET" はリターンキーを示す.

M-x load-library RET
quail RET
M-x quail-update-leim-list-file RET
c:/meadow/leim RET

インプットメソッドの組込みは完了である.Meadow を再起動して入力できるか試してみる.

C-x C-m C-\ slavonic RET でスラヴ語インプットメソッドが起動する.モード行に [--]-СЛ とインディケータが表示される.キリル文字を入力している例を図に示す.

C-x C-m C-\ greek-polytonic RET で古典ギリシア語インプットメソッドが起動する.モード行に [--]-ΠΓ とインディケータが表示される.


図4 入力画面例