$\LaTeX$ で RPN 的に数式を入力してみる
2015-03-20
2025-04-07
嬉しい人がいるかどうか分からないけど、公開してみます。 仕様は大きく変更になる可能性があります。
Table of contents
-
texrpnmath-0.4
-
0.3 からの変更点:
- 大幅に改訂。 [elisp] texrpmmath-mode (on-the-spot 入力) 実装。
- ギリシャ文字の入力等において、RPN による LaTeX 数式エディタ
を
パクら参考にさせていただきました。
-
0.2 からの変更点:
- texrpnmath.el 追加。それに伴う変更
-
0.1 からの変更点:
- Undo 機能追加 等
-
$\mathrm{Lua}\LaTeX$ を使うと .texファイルに埋め込むことができますが、スクリプト単体でも使用できます。詳しくは README を参照して下さい。
Emacs での使用
インストール
texrpnmath.lua
を適切な場所にコピーtexrpnmath.el
を適切な場所にコピー-
以下を
.emacs
に追加 (SOMEWHERE
は適切に変更して下さい)(require 'texrpnmath) ;; or ;; (autoload 'texrpnmath-insert "texrpnmath.el" nil t) ;; (autoload 'texrpnmath-mode "texrpnmath.el" nil t) (custom-set-variables '(texrpnmath-script "SOMEWHERE/texrpnmath.lua"))
- その後
eval
(あるいは Emacs 再起動) し、M-x texrpnmath-mode
でマイナーモードへ移行します。 -
(参考) $\mathrm{AUC}\TeX$ で使用する場合の例: 以下を
.emacs
を追加するとC-c m
,C-c ~
に texrpnmath-insert, texrpnmath-mode がそれぞれバインドされます。 なお、C-c ~
は $\mathrm{AUC}\TeX$ では LaTeX-math-mode に割り当てられています。 これをオーバーライドしたくない場合は別のキーを使用するか、M-x texrpnmath-mode
で起動して下さい。;; AUCTeX (eval-after-load "latex" '(progn (add-hook 'LaTeX-mode-hook '(lambda () (local-set-key "\C-cm" 'texrpnmath-insert) ;; LaTeX-math-mode をオーバーライド (local-set-key "\C-c~" 'texrpnmath-mode)))))
使用方法 (マイナーモード)
スクリプトとしての使用
スクリプトとして実行すると、こんな感じになります。
$ lua texrpnmath.lua
RPN> a sin
1: \sin a
RPN> b cos
1: \sin a
2: \cos b
RPN> frac
1: \frac{\sin a}{\cos b}
RPN> .show .clear .quit
\frac{\sin a}{\cos b}
.u
(または .undo
) で直前の入力 (行単位) を取り消すことができます:
RPN> a sin
1: \sin a
RPN> b sin
1: \sin a
2: \sin b
RPN> frac
1: \frac{\sin a}{\sin b}
RPN> .u
1: \sin a
2: \sin b