快適なYaTeXライフをあなたに。

id:syou6162のコメント

elispを全く書けないんですが、C-c t jで、のやつをこっそり追記してもらえたりすると喜びますw

を受けて。

YaTeXではキーバインドC-c t jなどで起動できるタイプセット用のコマンド、プレビュー用のコマンドなどを編集することができて、それはYaTeXのカスタマイズ変数を.emacsで設定することにより行なう。

にあるように、tex-command、dvi2-commandという変数の値を書き換えることでそれらを実現することができる。Emacs Lispでは変数に値をセットするのはsetqという手続きを使う。

で、この変数tex-commandにtexソースのコンパイルとdviからpdfへの変換を一度に行なうようにしたシェルスクリプトをコマンドとして起動するように設定してやればいい。またdvi2-commandにはプレビュー用アプリケーションを起動するようなコマンドを設定しておく。いずれもstringとして設定を行なう。

; コマンドサーチパスの設定
(setenv "PATH"
	(concat "/opt/local/bin:~/utils:" (getenv "PATH")))

; yatexを使う時に必須の設定
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

; typesetter、previewerの設定
(setq tex-command "platex2pdf" ; 自作スクリプト
      dvi2-command "open -a Preview.app")

; dvi2-commandで自動的に拡張子を補完してくれるようにする設定
(setq YaTeX-dvi2-command-ext-alist
  '(("xdvi\\|dvipdfmx" . ".dvi")
    ("ghostview\\|gv" . ".ps")
    ("acroread\\|pdf\\|Preview\\|TeXShop" . ".pdf")))

注意すべきポイント

  • Carbon Emacsからシェルを呼び出したとき、.bashrcなどのシェルの設定ファイルを読みにいかなっぽい。コマンドがデフォルトでパスの通ってないところにあるので、環境変数PATHを改めて設定している。
  • YaTeX-dvi2-command-ext-alistにはデフォルト値が設定されているが自分の環境ではPreviewなどには対応していない様子。そこでこの設定を追加する。CarbonEmacsAndYatex - MacWikiを参考にして設定。読み方は、YaTeX-dvi2-command-ext-alistはLispでいうところの「PairのList」になっていて、各Pairのcarはdvi2-commandの値にマッチさせるEmacs正規表現でcdrが補完する拡張子になっている。