emacsにauctex (texlive 2012)

以前、

https://miyazakikenji.wordpress.com/2013/05/08/texlive/

でSputnik (ubuntu1204) にtexliveを導入する話をした。emacsを入れたとなっては当然、auctexを入れなければならない。emacsにも標準にTex-modeというのがあるが、誰も使っていない。また、日本製の「yatex」が人気だったが。昔ほどの勢いはない。おそらく現在もyatexを使っている多くは、学生時代からMeadowを今も使い続けている30代後半から40代のおっさんたちが中心でしょう。現在、少なくとも海外でemacsを使っている人は「auctex」一択である。さらにELPAに登録されているので、「M-x list-packages」で簡単に利用できる。

より、詳しい利用法として
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?AUCTeX
http://skalldan.wordpress.com/2011/07/20/auctex-%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%A8%E4%BE%BF%E5%88%A9%E3%81%AA%E6%A9%9F%E8%83%BD/
などが役に立つだろう。英語が読めるなら、一番いいのは、「M-x info」の中の記事を「lookup.el」を使って読むことである。あとチートシートを手許においておくと良いだろう。
http://ftp.gnu.org/pub/gnu/auctex/11.86-extra/tex-ref.pdf

導入法は、MacやWindowsは先の「texwiki」でよいにしても、Ubuntuは注意が必要である。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?AUCTeX#p2d711b9
の最初の行に書いてあるように、「 TeX Live 2013 以降に含まれている ptex2pdf を使用しています.」となっている。
だから、ppaでUbuntu1204に導入されたり、Ubuntu1304に通常導入されるのはtexlive2012なので、texlive2013用設定ファイルだとうまく動かない。昔に、texlive2012の設定ファイルを保存していたので、ここに掲示しておく。

;;
;; AUCTeX
;;
(setq TeX-default-mode 'japanese-latex-mode)
(setq japanese-LaTeX-default-style "jsarticle")
(setq TeX-engine-alist '((ptex "pTeX" "eptex" "platex" "eptex")
(jtex "jTeX" "jtex" "jlatex" nil)
(uptex "upTeX" "euptex" "uplatex" "euptex")))
(setq TeX-engine 'ptex)
(setq TeX-view-program-list '(("pxdvi" "pxdvi -watchfile 1 %d")
("advi" "advi -watch-file 1 %d")
("dviout" "wine \"$HOME/.wine/drive_c/w32tex/dviout/dviout.exe\" -1 %d")
("TeXworks" "texworks %o")
("SumatraPDF" "wine \"$HOME/.wine/drive_c/Program Files/SumatraPDF/SumatraPDF.exe\" -reuse-instance %o -forward-search \"%b\" %n")
("fwdevince" "fwdevince %o %n \"%b\"")
("Okular" "okular --unique \"file:%o#src:%n `pwd`/%b\"")
("zathura" "zathura -s -x \"emacsclient --no-wait +%%{line} %%{input}\" %o")
("qpdfview" "qpdfview --unique \"%o#src:%b:%n:0\"")
("PdfViewer" "pdfviewer \"file:%o#src:%n %b\"")
("gv" "gv --watch %o")
("MuPDF" "mupdf %o")
("acroread" "acroread %o")
("pdfopen" "pdfopen -viewer ar9-tab %o")))
(setq TeX-view-program-selection '((output-dvi "pxdvi")
(output-pdf "Evince")))
(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)
(add-hook 'LaTeX-mode-hook
(function (lambda ()
(add-to-list 'TeX-command-list
'("Latexmk" "latexmk %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk"))
(add-to-list 'TeX-command-list
'("Latexmk1" "latexmk -e 'q/platex %S %(mode)/' -e 'bibtex=q/pbibtex/' -e '$makeindex=q/mendex/' -e '$dvipdf=q/dvipdfmx %%O -o %%D %%S/' -norc -gg -pdfdvi %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk1"))
(add-to-list 'TeX-command-list
'("Latexmk2" "latexmk -e 'q/platex %S %(mode)/' -e 'bibtex=q/pbibtex/' -e '$makeindex=q/mendex/' -e '$dvips=q/dvips %%O -z -f %%S | convbkmk -g > %%D/' -e '$ps2pdf=q/ps2pdf %%O %%S %%D/' -norc -gg -pdfps %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk2"))
(add-to-list 'TeX-command-list
'("Latexmk3" "latexmk -e 'q/uplatex %S %(mode)/' -e 'bibtex=q/upbibtex/' -e '$makeindex=q/mendex/' -e '$dvipdf=q/dvipdfmx %%O -o %%D %%S/' -norc -gg -pdfdvi %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk3"))
(add-to-list 'TeX-command-list
'("Latexmk4" "latexmk -e 'q/uplatex %S %(mode)/' -e 'bibtex=q/upbibtex/' -e '$makeindex=q/mendex/' -e '$dvips=q/dvips %%O -z -f %%S | convbkmk -u > %%D/' -e '$ps2pdf=q/ps2pdf %%O %%S %%D/' -norc -gg -pdfps %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk4"))
(add-to-list 'TeX-command-list
'("Latexmk5" "latexmk -e '$pdflatex=q/pdflatex %S %(mode)/' -e '$bibtex=q/bibtex/' -e '$makeindex=q/makeindex/' -norc -gg -pdf %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk5"))
(add-to-list 'TeX-command-list
'("Latexmk6" "latexmk -e '$pdflatex=q/lualatex %S %(mode)/' -e '$bibtex=q/bibtexu/' -e '$makeindex=q/texindy/' -norc -gg -pdf %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk6"))
(add-to-list 'TeX-command-list
'("Latexmk7" "latexmk -e '$pdflatex=q/luajitlatex %S %(mode)/' -e '$bibtex=q/bibtexu/' -e '$makeindex=q/texindy/' -norc -gg -pdf %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk7"))
(add-to-list 'TeX-command-list
'("Latexmk8" "latexmk -e '$pdflatex=q/xelatex %S %(mode)/' -e '$bibtex=q/bibtexu/' -e '$makeindex=q/texindy/' -norc -gg -xelatex %t"
TeX-run-TeX nil (latex-mode) :help "Run Latexmk8"))
(add-to-list 'TeX-command-list
'("pdfpLaTeX" "platex %S %(mode) %t && dvipdfmx %d"
TeX-run-TeX nil (latex-mode) :help "Run pLaTeX and dvipdfmx"))
(add-to-list 'TeX-command-list
'("pdfpLaTeX2" "platex %S %(mode) %t && dvips -Ppdf -z -f %d | convbkmk -g > %f && ps2pdf %f"
TeX-run-TeX nil (latex-mode) :help "Run pLaTeX, dvips, and ps2pdf"))
(add-to-list 'TeX-command-list
'("pdfupLaTeX" "uplatex %S %(mode) %t && dvipdfmx %d"
TeX-run-TeX nil (latex-mode) :help "Run upLaTeX and dvipdfmx"))
(add-to-list 'TeX-command-list
'("pdfupLaTeX2" "uplatex %S %(mode) %t && dvips -Ppdf -z -f %d | convbkmk -u > %f && ps2pdf %f"
TeX-run-TeX nil (latex-mode) :help "Run upLaTeX, dvips, and ps2pdf"))
(add-to-list 'TeX-command-list
'("pBibTeX" "pbibtex %s"
TeX-run-BibTeX nil t :help "Run pBibTeX"))
(add-to-list 'TeX-command-list
'("upBibTeX" "upbibtex %s"
TeX-run-BibTeX nil t :help "Run upBibTeX"))
(add-to-list 'TeX-command-list
'("BibTeXu" "bibtexu %s"
TeX-run-BibTeX nil t :help "Run BibTeXu"))
(add-to-list 'TeX-command-list
'("Mendex" "mendex %s"
TeX-run-command nil t :help "Create index file with mendex"))
(add-to-list 'TeX-command-list
'("TeXworks" "texworks %s.pdf"
TeX-run-discard-or-function t t :help "Run TeXworks"))
(add-to-list 'TeX-command-list
'("SumatraPDF" "wine \"$HOME/.wine/drive_c/Program Files/SumatraPDF/SumatraPDF.exe\" -reuse-instance %s.pdf -forward-search \"%b\" %n"
TeX-run-discard-or-function t t :help "Forward search with SumatraPDF"))
(add-to-list 'TeX-command-list
'("Evince" "evince %s.pdf"
TeX-run-discard-or-function t t :help "Run Evince"))
(add-to-list 'TeX-command-list
'("fwdevince" "fwdevince %s.pdf %n \"%b\""
TeX-run-discard-or-function t t :help "Forward search with Evince"))
(add-to-list 'TeX-command-list
'("Okular" "okular --unique \"file:\"%s.pdf\"#src:%n `pwd`/%b\""
TeX-run-discard-or-function t t :help "Forward search with Okular"))
(add-to-list 'TeX-command-list
'("zathura" "zathura -s -x \"emacsclient --no-wait +%%{line} %%{input}\" %s.pdf"
TeX-run-discard-or-function t t :help "Run zathura"))
(add-to-list 'TeX-command-list
'("qpdfview" "qpdfview --unique \"\"%s.pdf\"#src:%b:%n:0\""
TeX-run-discard-or-function t t :help "Forward search with qpdfview"))
(add-to-list 'TeX-command-list
'("PdfViewer" "pdfviewer \"file:\"%s.pdf\"#src:%n %b\""
TeX-run-discard-or-function t t :help "Forward search with PdfViewer"))
(add-to-list 'TeX-command-list
'("gv" "gv --watch %s.pdf"
TeX-run-discard-or-function t t :help "Run gv"))
(add-to-list 'TeX-command-list
'("acroread" "acroread %s.pdf"
TeX-run-discard-or-function t t :help "Run Adobe Reader"))
(add-to-list 'TeX-command-list
'("pdfopen" "pdfopen -viewer ar9-tab %s.pdf"
TeX-run-discard-or-function t t :help "Run Adobe Reader")))))

(require 'dbus)

(defun un-urlify (fname-or-url)
"A trivial function that replaces a prefix of file:/// with just /."
(if (string= (substring fname-or-url 0 8) "file:///")
(substring fname-or-url 7)
fname-or-url))

(defun evince-inverse-search (file linecol &rest ignored)
(let* ((fname (un-urlify file))
(buf (find-file fname))
(line (car linecol))
(col (cadr linecol)))
(if (null buf)
(message "[Synctex]: %s is not opened..." fname)
(switch-to-buffer buf)
(goto-line (car linecol))
(unless (= col -1)
(move-to-column col)))))

(dbus-register-signal
:session nil "/org/gnome/evince/Window/0"
"org.gnome.evince.Window" "SyncSource"
'evince-inverse-search)

;;
;; RefTeX with AUCTeX
;;
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)

;;
;; kinsoku.el
;;
(setq kinsoku-limit 10)

「Forumla does not parse」となっているものも、コピーをすれば正しくペーストされるはずです。が、一応本来の画面を下に。
Screenshot_from_2013-06-01 16:09:32
自分の環境に合わせて使わないものと削除すればよいだろう。私は実質「latexmk」と「evince」しか使っていない。

現状では「euc」から「utf」の切り替えのせいなのか、「preview-latex」がエラーになる。これを回避することを考えているのだが未だ上手くいっていない。おそらく、内部を完全にユニコード化したuptexを使えば、こうしたことが避けられるだろうが、今後の課題である。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中