emacs, mozc, TeX 入力

emacs, mozc, TeX 入力

- Norbert Preining の投稿
返信数: 5
皆様

ノルベルトです。最近よくemacsで日本語のTeXドキュメントを作っています。そのときemacs-mozcを使っています。

基本的に満足していますが、TeX commandの入力は大変だと思います。いつむ入力モードを変更し、「\foobar」をうって、又モードの変更しないといけませんか?

欲しいのは、最初のキーが「\」か「{」ならば、自動にローマ字モードに変わります。

それはできませんか?皆さん、どうするんですか。

ありがとうございます。

ノルベルト
Norbert Preining への返信

Re: emacs, mozc, TeX 入力

- 前田 一貴 の投稿
DDSKK で同じようなことをしているので,試してみました.
Emacs Lisp の作法的にどうなのかはわかりませんが,こんな感じでどうでしょうか?

(defun mozc-insert-backslash ()
  "Turn mozc off and insert backslash."
  (interactive)
  (toggle-input-method)
  (insert "\\"))
(defun mozc-insert-left-curly-bracket ()
  "Turn mozc off and insert left curly bracket."
  (interactive)
  (toggle-input-method)
  (insert "{"))
(add-hook 'mozc-mode-hook
          (lambda()
            (define-key mozc-mode-map "\\" 'mozc-insert-backslash)
            (define-key mozc-mode-map "{" 'mozc-insert-left-curly-bracket)))


ちなみに,私は DDSKK ではこんな感じにしています.

(setq skk-rule-tree (skk-compile-rule-list
                    skk-rom-kana-base-rule-list
                    '(("(" nil "(")
                      (")" nil ")")
                      ("!" nil "!")
                      ("$" nil (lambda (arg)
                                  (skk-latin-mode nil)
                                  (insert "$")))
                      ("\\" nil (lambda (arg)
                                  (skk-latin-mode nil)
                                  (insert "\\"))))
                    skk-rom-kana-rule-list))
前田 一貴 への返信

Re: emacs, mozc, TeX 入力

- 匿 名 の投稿
元々のご要望とは少し異なりますが、
boiled-mozcはどうでしょうか。

https://github.com/tadanagao/boiled-mozc

私はWnn8ユーザで、boiling-eggを使っています。
http://www.gcd.org/sengoku/boiling-egg/Welcome.ja.html

日本語と直接入力でモードの切り替えが必要ないため、
EmacsでのTeX文書入力に便利です。
前田 一貴 への返信

Re: emacs, mozc, TeX 入力

- Norbert Preining の投稿
前田さん

ありがとうございます。それはいい提案です!
昨日新しいスライドを作る時使ってみました。
一つ少し変えました:

...
(define-key mozc-mode-map "\\" 'mozc-insert-backslash)
(define-key mozc-mode-map "{" 'self-insert-command)
(define-key mozc-mode-map "}" 'self-insert-command)
(define-key mozc-mode-map "$" 'self-insert-command)
...
それと、結構いい感じになりました。

もちろん、僕の目的は「commandだけローマ字入れて、その後自動にmozcモードに戻る」というですが、難しそうです。

どうも有難うございます。

ノルベルト
Norbert Preining への返信

Re: emacs, mozc, TeX 入力

- 前田 一貴 の投稿
自動で戻すところまで考えたことはありませんでした.

試しに mozc-mode で最初にアルファベット大文字を1文字入れると,以降は半角で入りますね.
A\foobar[Enter]
みたいな感じです.ただ,普通はバックスラッシュを入力しようとすると,全角円マークが入ります.
そこで予想なんですが,ローマ字変換テーブルでバックスラッシュに半角バックスラッシュを割り当てると
よいのではないでしょうか.

mozc のGUIツールが起動できる環境になく,CUIでやる方法もわからないのでテストはできていないです.
申し訳ありません.

もちろん,何も考えずに入力して,最後に F10 を押す方法もありますが…….
Norbert Preining への返信

Re: emacs, mozc, TeX 入力

- 匿 名 の投稿
私はYaTeXモードを使っています(日本語変換はATOK X3+iiimf)が、YaTeXの場合はTeXコマンドをミニバッファに書き込みます。
ミニバッファでは自動的に日本語入力モードはOFFになり、
TeXコマンドを入力し終えると、元の位置に戻りますがそのときには自動的に日本語入力モードはONになります。
「\foobar」なら
(1) C-c mでミニバッファに移動、日本語入力モードはOFFになっている
(2) \foobarをタイプ、エンターを押下
(3) 本文に\foobarが挿入され、日本語入力モードがONになっている。