M-x align で TeX の表を整列できるようにする
Emacs の M-x align は桁揃えをしてくれるコマンドです.
align.el はルールに従ってはテキスト調整をするElispです (作者はJohn Wiegley さんです)。例えば int long_named_variable = 10; int a = 20; int short_named = 30; のコードフラグメントに対し、align.el は int long_named_variable = 10; int a = 20; int short_named = 30; のようにテキストを調整してくれます。align.el - ルールに従ってテキスト調整をする - Meadow memo
標準でもいろんな言語に対応しているのですが,やっぱり効かないときも多々あります.
そこで,M-x align-regexp を使います.
こいつを使えば正規表現でルールを指定できるので自由度がぐっと上がります.
例えば TeX の表なんかには標準で対応していないっぽいので
M-x align-regexp RET &
と実行すれば TeX の表の区切りである & で桁揃えしてくれます.
でもたったのこんだけの作業でも毎回やるのはめんどくさいので
M-x align でもできるようにします.
align-rules-list でルールを管理しているので,ルールを追加すれば良いです.
;; M-x align で TeX の table を整列 (require 'align) (add-to-list 'align-rules-list '(yatex-table (regexp . "\\(\\s-*\\)&") (modes . '(yatex-mode))))
これで,TeX の表をリージョンで選択して,M-x align で整列できるようになりました!