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 で整列できるようになりました!