Keijir Blog

やっぱハワイ行きたいよね

Carbon Emacs + pTex(Sjis) + latexmk + YaTex + xdvi(k) の設定


MacBook にしてから Tex で文章を書くのには Carbon Emacs を使うようになった.


.emacs の設定をがんばってしている最中で,とりあえず Yatex + Latexmk が便利そう!

latexmk は,めんどくさい platex jbibtex platex platex とかを latexmk だけでしてくれる prel スクリプト
YaTex は, Emacs からplatex とか入力支援みたいな感じ.


MacWiki - CarbonEmacsAndYatex
latexmk - MyTeXpert
LaTeX では latexmk を使うと気持ちが良い - 理系学生日記


ここらを参考にしつつ,


~/.bashrc

alias Emacs='open -a Emacs.app'
alias acroread='open -a Adobe\ Reader.app'

complete -f -X '!*.tex' platex latexmk
complete -f -X '!*.dvi' xdvi
complete -f -X '!*.pdf' acroread


これで,Terminal.app から Emacs とか開ける.


~/.latexmkrc

$latex  = 'platex -src-specials';
$bibtex = 'jbibtex';
$makeindex  = 'mendex';
$dvipdf  = 'dvipdfmx';
$dvips  = 'dvipsk';
$dvi_previewer ='xdvi';
$pdf_previewer = 'open -a Adobe\ Reader.app';


これで,欧文 Tex にしか対応していないのを platex とか日本語使えるの使える.


~/.emacs

(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(add-hook 'yatex-mode-hook
  '(lambda ()
     (setq tex-command "latexmk -pv")
     (setq dvi2-command "xdvi")
))


これで,Emacs で *.tex を開くと Yatexモードになる. C-c tj でコンパイル + xdvi で表示!



追記...


Emacs Lisp TIPS smart-compile.el を発見!


これで拡張子やモードから自動判断して C-cc を入力したときに適したコンパイルしてくれる.


.emacs 追記

(require 'smart-compile)
(global-set-key "\C-cc" 'smart-compile)
(define-key menu-bar-tools-menu [compile] '("Compile..." . smart-compile))


これで,smart-compile.el が使える


これを *.tex のときは,latexmk を利用するように変更する.

smart-compile.el の62行目あたりを変更

  ("\\.tex\\'"        . "latexmk -pv %f")


更に追記

$ latexmk -pdfdvi targetfile

これが動いてなかったのでちょっといじる.

~/bin/latexmk l.1723

    foreach ($dvipdf, $ps2pdf) {
        # Source and dest without flag for destination
        if ( $_ && ! /%/ ) { $_ .= " %O %S"; }
    }

追記ここまで...


本当は Emacs lisp 書いて *.tex 保存時に latexmk 実行したいけど, Emacs lisp わからん.
加えて,src-special で TeX ソース⇔プレビューア相互参照これもなんでか利用できん.

後は,誰かえらい人まかせた!