Emacs スラヴ語/古典ギリシア語インプットメソッド 1503

多言語テキストエディタ GNU Emacs 上でスラヴ語,古典ギリシア語を入力するためのインプットメソッド Emacs-lisp: slavonic-greek-im パッケージを更改した。弊サイトのダウンロードページから取得してお使いいただける。GNU Emacs 21 以降で動作する。最近の Ver 24.4 でも動作確認済みである。

slavonic-greek-im-0503

このパッケージは 2004 年に自分の必要に駆られて作成した。標準の Emacs Leim/Quail インプットメソッド群にも,当然ながら,キリル文字用,ギリシア文字用ともに存在する。しかしながら,教会スラヴ語 Церковно-славянский язык, Church Slavonic や古スラヴ語 Старо-славянский язык, Old Slavonic を入力するすべがなく,自作せざるを得なかった。ギリシア語についても,自分にとってやり易いと思う古典ギリシア語複式アクセント入力スタイルが欲しかった。自作した所以である。

今回のリリースでは,スラヴ語用のメソッドを二つ用意した。slavonic-church モードと slavonic-generic モードである。前者は,ロシア語,ウクライナ語,教会スラヴ語,古スラヴ語入力に特化したもので,後者は,Unicode Cyrillic U+0400-U+04FF のすべてのキリル文字の入力をサポートしたものである。

slavonic-church モード使用のイメージを下図に示す。

20150301-emacs-im.png
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.elemacs のバッチモードで実行することによりこれを行っている。

$ 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 に切り替えることが出来る。