多言語テキストエディタ GNU Emacs 上でスラヴ語,古典ギリシア語を入力するためのインプットメソッド Emacs-lisp: slavonic-
slavonic-greek-im-0503
このパッケージは 2004 年に自分の必要に駆られて作成した。標準の Emacs Leim/Quail インプットメソッド群にも,当然ながら,キリル文字用,ギリシア文字用ともに存在する。しかしながら,教会スラヴ語 Церковно-
今回のリリースでは,スラヴ語用のメソッドを二つ用意した。slavonic-church モードと slavonic-generic モードである。前者は,ロシア語,ウクライナ語,教会スラヴ語,古スラヴ語入力に特化したもので,後者は,Unicode Cyrillic U+0400-
slavonic-church モード使用のイメージを下図に示す。
slavonic-church モード
slavonic-greek-im インストール
slavonic-greek-im のインストールは,インプットメソッド Emacs-lisp 本体(slavonic.el, greek-polytonic.el)をバイトコンパイルし,Emacs quail ディレクトリにこれらをコピーした後に,leim-list.el(インプットメソッドリスト)に新しいインプットメソッドを登録する,という一連の処理を実行する。もちろん,これらの処理は,パッケージ添付の Makefile を用いて make install とすれば,すべて自動で実行される。詳細は次のとおり。
まずアーカイブをダウンロードして解凍する。
$ wget -nH -nd http://yasuda.homeip.net/archives/slavonic-greek-im-1503.tar.gz $ tar zxvf slavonic-greek-im-1503.tar.gz -C ~/var
次に Makefile の先頭にある以下の諸変数の右辺を,ユーザの環境に応じて編集する。これと同じ内容のものは Makefile.macosx としてとして添付してあるので,Emacs 24.4.1 をお使いの Mac OS ユーザなら Makefile.macosx をそのまま使えばよい。
# Variables # for users PREFIX = /Applications/Emacs.app/Contents EMACS = $(PREFIX)/MacOS/Emacs EMACSVER = 24.4.1 EMACSPATH = $(PREFIX)/Resources LEIMPATH = $(EMACSPATH)/lisp/leim
そして,インストール実行。
$ cd ~/var/slavonic-greek-im-1503 $ sudo make install *** Leim input method elisp install ... *** Emacs byte-compiling ... cd elisp && /Applications/Emacs.app/Contents/MacOS/Emacs -batch -f batch-byte-compile slavonic.el greek-polytonic.el Wrote /Users/isao/var/slavonic-greek-im-1503/elisp/slavonic.elc Wrote /Users/isao/var/slavonic-greek-im-1503/elisp/greek-polytonic.elc *** Leim dir back up to ./leim-back ... cd elisp && cp greek-polytonic.el* slavonic.el* /Applications/Emacs.app/Contents/Resources/lisp/leim/quail *** Quail input method list updating ... cd elisp && /Applications/Emacs.app/Contents/MacOS/Emacs -batch -l inst.el Loading quail... Updating /Applications/Emacs.app/Contents/Resources/lisp/leim/leim-list.el ... Checking /Applications/Emacs.app/Contents/Resources/lisp/leim/quail/ZOZY.el ... ... Saving file /Applications/Emacs.app/Contents/Resources/lisp/leim/leim-list.el... Wrote /Applications/Emacs.app/Contents/Resources/lisp/leim/leim-list.el Updating /Applications/Emacs.app/Contents/Resources/lisp/leim/leim-list.el ... done
Makefile.macosx を使うのなら,sudo make -f Makefile.macosx install を発行すればよい。
エラー対策
ところが,今回の版を GNU Emacs 24.4.1 on Mac OS X Mavericks にインストールし,M-x set-input-method RET slavonic-church RET を発行して試験したところ,本パッケージのインプットメソッド Emacs-lisp が認識されないというエラー(Can't activate input method `slavonic-church')に遭遇した。これまで Emacs をバージョンアップするたびに slavonic-greek-im を導入してきたが,こんなエラーははじめてであった。以下,このエラーの対策についてしるしておく。
上記インストールのなかで,leim-quail インプットメソッドのリスト leim-list.el に slavonic-greek の Emacs-lisp を追加・更新している。つまり,以下のような Emacs-lisp inst.el を emacs のバッチモードで実行することによりこれを行っている。
$ cat inst.el ;; leim-list.el 更新用 Emacs-lisp (load-library "quail") (quail-update-leim-list-file "/Application/Emacs.app/Contents/Resources/lisp/leim") $ sudo /Application/Emacs.app/Contents/MacOS/Emacs -batch -l inst.el
これで更新された leim-list.el を確認すると,インストールしたメソッドがきちんと登録されている。
(register-input-method
"slavonic-generic" "Slavonic" 'quail-use-package
"СЛ" "Славянская клавиатура - Roman transcription (UNICODE)"
"quail/slavonic")
(register-input-method
"slavonic-church" "Church Slavonic" 'quail-use-package
"ЦС" "Славянская клавиатура - Roman transcription (UNICODE)"
"quail/slavonic")
(register-input-method
"greek-polytonic" "Greek-polytonic" 'quail-use-package
"ΠΓ" ""
"quail/greek-polytonic")
通常なら,Emacs は起動するときロードパスにある leim-list.el を自動で読み込むはずであり,なぜエラーになるのかよくわからなかったが,leim-list.el を明示的に読み込ませる(これを Emacs で開いて M-x eval-buffer を実行する。「Emacs に評価させる」と称する)と認識された。よって Emacs の初期設定ファイルである .emacs に次の一文を入れておくことで対策とした。
(load-file "/Applications/Emacs.app/Contents/Resources/lisp/leim/leim-list.el")
もうひとつの方策としては,上で示した “leim-list.el added fragments” の Emacs-lisp を .emacs に直接記載しても slavonic-greek-im を使うことが出来る。たとえば,次のようにしるしておく。
;; ;; インプットメソッド関数定義 ;; ;;; slavonic, greek input method の登録 (register-input-method "slavonic-generic" "Slavonic" 'quail-use-package "СЛ" "Славянская клавиатура - Roman transcription (UNICODE)" "quail/slavonic") (register-input-method "slavonic-church" "Church Slavonic" 'quail-use-package "ЦС" "Славянская клавиатура - Roman transcription (UNICODE)" "quail/slavonic") (register-input-method "greek-polytonic" "Greek-polytonic" 'quail-use-package "ΠΓ" "" "quail/greek-polytonic") ;;; Cyrillic generic (defun set-slavonic-input () "Slavonic general for Russian, Ukrainian, Old Slavonic, etc." (interactive) (set-input-method "slavonic-church")) ;;; Cyrillic phonetic (defun set-cyrillic-input () "Cyrillic yawerty, Quail original" (interactive) (set-input-method "cyrillic-yawerty")) ;;; Greek Polytonic (defun set-greek-input () "Greek-polytonic for Classic and Modern Greek" (interactive) (set-input-method "greek-polytonic")) ;;; ファンクションキーでインプットメソッド選択 (global-set-key [f5] 'set-slavonic-input) (global-set-key [f6] 'set-greek-input) (global-set-key [C-f5] 'set-cyrillic-input)
このようにしておくと,ファンクションキー 5 で slavonic-church に,ファンクションキー 6 で greek-polytonic に切り替えることが出来る。