Gnupack の Emacs上でlatexを操作できるようにする。以前に紹介したように、auctexが主流である。
すでに、w32texを導入済みとする。
w32texは、パスや環境変数などを自分で行う必要がない。さらにtexworksも導入してくれる。付け加えたのは、以前、
sputnik と texlive2012
で、UbuntuやMacでの設定を説明したが、texmf.cnf を編集して、Dropbox に styファイルやbibファイルなどをおいて共有するようにする。「extractbb」などは既に導入されているので、パスの設定だけする。texmf.cnfはデフォルト通り導入していれば、”c:\w32tex\share\texmf-dist\web2c” にあるはずである。
Gnupack をルートに導入しているのなら、C:\gnupack_basic-11.00のconfig.iniに
PATH = %PATH%;C:\w32tex\bin;C:\w32tex\dviout
これでGnupackのEmacsから実行できるようになる。
Emacs24以上なら「M-x list-packages」が使えるようであるので、これで「auctex」を導入すれば良い。
導入の際に気がついたのだが、「auctex-latexmk」というパッケージも見つけたのでこれも一緒にダウンロードする。
設定のために
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?AUCTeX#w81a725c
を参考にしてみたが、結構、いい加減である。
GnupackでEmacsを導入すると言っているのに、設定ファイルの前に「W32TeX の場合は latexmk の実行には Strawberry Perl が必要です」と書いてある。GnupackのCygwinでPerlは導入されるので、latexmkは Strawberry Perl がなくても利用可能である。さらに設定ファイルのなかで、
(setq TeX-view-program-list '(("TeXworks" "texworks %o")
("SumatraPDF" "start SumatraPDF -reuse-instance %o -forward-search \"%b\" %n")
("fwdsumatrapdf" "fwdsumatrapdf %o \"%b\" %n")
("Firefox" "start firefox -new-window %o")
("Chrome" "powershell -Command \"\"")
("pdfopen" "pdfopen --rxi --file %o")))
と「start」がSumatraPDFやFirefoxで使われているが、
http://www.snowelm.com/~t/doc/tips/20020114.ja.html
にあるように、CygwinつまりGnupackからは「start」は使えない。
そうしたことを鑑みて、新しいパッケージを全面的につかった、私の設定を以下に書きます。
まず、「~/.latexmkrc」に
# .latexmkrc starts
$kanji = "-kanji=$ENV{\"LATEXENC\"}" if defined $ENV{"LATEXENC"};
kanji";
$bibtex = 'pbibtex $kanji';
$dvipdf = 'perl -e "exec(\'dvipdfmx\', \$ARGV[0])"';
# .latexmkrc ends
とする。一部文字化けしているので画像では
となります。
そして、「~/.emacs.d/init.el」に
;; auctex
(setq TeX-default-mode 'japanese-latex-mode)
(setq japanese-LaTeX-command-default "LatexMk")
(setq japanese-LaTeX-default-style "jsarticle")
(setq TeX-view-program-list '(("TeXworks" "texworks %o")
("SumatraPDF" "cygstart SumatraPDF -reuse-instance %o -forward-search \"%b\" %n")
("pdfopen" "pdfopen --rxi --file %o")))
(setq TeX-view-program-selection '((output-pdf "SumatraPDF")))
(setq preview-image-type 'dvipng)
(setq TeX-source-correlate-method 'synctex)
(setq TeX-source-correlate-start-server t)
(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
(add-hook 'LaTeX-mode-hook 'TeX-PDF-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
;; latexmk
(require 'auctex-latexmk)
(auctex-latexmk-setup)
;; auto-revert
(add-hook 'latex-mode-hook 'auto-revert-mode)
(add-hook 'LaTeX-mode-hook 'auto-revert-mode)
とします。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?AUCTeX#w81a725c
との主な違いは、「Tex-Command-List」を一切使わず、「start」となっているのを「cygstart」に変えたのと、パッケージから導入した「auctex-latexmk」を呼び出すようにしていることである。あと、最後の「auto-revert」は、ファイルが更新されると開いているバッファも自動的に更新されるようになるモードである。これはあとで「org-export」や「Sweave」のExportの際に非常に便利になる。
使い方は「C-c C-c LatexMk」でコンパイル。「C-c C-c View」でPDF表示。現状は「SumatraPDF」をビューアーにつかっている。Acrobat Readerだと、ファイルを開いたまま更新してくれない。
このやり方は「Mac」や「Ubuntu」でも同様に有効であろう。