YaTeXを使いながらスムーズに入力するために.

YaTeX を使っていると括弧の入力時に閉じる方も補完される.括弧の内側での入力が終わって次の入力に移る時,いちいち外に出なければ行けないのが面倒に感じていた.ずっと前から次に入力する場所までジャンプするという関数が欲しかったので,自分で書いてみた.
動作としては, r_{\mathrm{B}} という入力の場合,YaTeXで入力すると添え字のBを入力しおわったときにr_{\mathrm{B|}} の|の位置にカーソルがある.次の入力は }} の外側だが,そこまで C-f C-f と入力するのではなく,一発で外側まででる.\frac{A|}{}では,\frac{A}{|}までジャンプする.$a|$だと,$a$|に.少しの差だけど,こういう感覚で入力したかった.

(defun MyTeX-jump-to-next ()
  (interactive)
  (cond
   *1

全てのケースを網羅するのは大変だから,とりあえずこれだけで.ショートカットはコマンド+J(または C-j) に割り当てている.¥はバックスラッシュ.

ちなみに,YaTeXは,YaTeX-skip-default-readerをtにしているので,引数をミニバッファから入力するのでなく,バッファに\section{|}という形で直ちに挿入されるようにしている.

*1:= (following-char) ?$ ) (skip-chars-forward "$") ) ((= (following-char) 40 ) (skip-chars-forward "(") ) ((= (following-char) 41 ) (skip-chars-forward ")") ) ((= (following-char) 91 ) (skip-chars-forward "[") ) ((= (following-char) 93 ) (skip-chars-forward "]") ) (t (skip-chars-forward "^{}()[]\n\$") (skip-chars-forward "}") (skip-chars-forward "{") ))) (add-hook 'yatex-mode-hook '(lambda() (local-set-key [(alt j)] 'MyTeX-jump-to-next) ; (local-set-key [(control j)] 'MyTeX-jump-to-next)