2016年9月20日火曜日

yatexで数式イメージ補完を使って数式書体を変更したい

普段はLaTeX文書を作成するのにemacs+YaTeXを使用しています。
YaTeXでは数式環境中でセミコロン; を押下すると数式イメージ補完入力可能になり、その後aを押せば\alphaが、6を押せば\partialが補完されます。

セミコロンの後にmrを押せば、\mathrm{}が補完され、括弧の間にカーソルが移ります。同様にmsで\mathsf{}, miで\mathit{}なども補完されるのですが、自分が普段良く使う\mathbbや\mathscrはデフォルトで定義されていないようです。

これら数式の書体変更の命令はセクション型(\section{})のコマンドなので、ユーザー定義のセクション型補完の変数として用意されているuser-section-tableに登録すると、セクション型補完のコマンド[prefix]-sで入力した際には括弧まで補完してくれます。

\mathbbや\mathscrも数式イメージ補完を行いたいと思ったので、ユーザ定義の数式記号の変数YaTeX-math-sign-alist-privateにも登録してみたのですが、数式イメージ補完入力からこれらのコマンドを入力すると、括弧が補完されません。

yatex.elで定義されている変数section-tableにこれらのコマンドを登録しておけば、数式イメージ補完入力でも括弧が入力されることを確認したのですが、これらの挙動の違いがイマイチ把握出来ていません。yatex.elを直接変更するとなるとYaTeXのアップデート毎にyatex.elを修正する必要があるので、根本的な解決方法が知りたいのですが、どうすればよいのでしょう?


追記:2016/12/18
yatexの更新の度にyatex.elを書き換えるのは面倒なので,とりあえずinit.elに次のように記述しました.
(setq yatex-mode-load-hook
      '(lambda()
  (setq section-table
        (append section-table '(("mathscr") ("mathbb") ("mathfrak"))))
  ))
user-section-tableに追加せずに,直接section-tableにmasthscrなどを追加しています.user-section-tableへの追加で済む方法はないのかな?