2013年1月27日日曜日

AUCTex + RefTexで快適論文作成

EmacserならLaTeXの編集はもちろんEmacsを使ってやりたいものです。
外部ツールAUCTeXと標準搭載のツールRefTexを使うと快適にLaTeXの編集やコンパイルが行えるようになります。
卒業シーズンも近づいてきましたので環境を整えておきましょう。

少し注意事項としてAUCTeXと同類のツールでYaTeX(野鳥)というものがあります。
YaTeXもここで書くことと同等のことが出来るはずですので、あまりYaTeXを使いこなせてない感のある人はこの記事を読む価値は十分あるかと思います。
でも詳しい使い方は各自ググるなりしてください。
あと、YaTeXからAUCTeXに乗り換えたいという方は恐らくYaTeXの設定を解除しないといけません。
ご注意を。
Carbon EmacsだとYaTeXの方が相性いいかもしれません。
ここではCocoa Emacs 24での設定方法を解説します。

AUCTeXのインストール

package-installが使える環境

割と新しいバージョンのEmacsで標準搭載のpackage-installを使うと簡単です。
M-x package-install [RET] auctex [RET]
これでインストール完了です。
texファイルを開いたときに自動ロードされるはずです。
されない場合はこちらを参考に設定してみてください。

 package-installが使えない環境

申し訳ないのですが、僕はこっちの環境ではなかったのでAUCTeX - Tex Wikiなどを参考にインストールしてください。
どうやら本家サイトからフォルダをダウンロードして、site-lisp/site-start.dにパスを通すらしいです。

AUCTeXとRefTeXの設定

僕の設定はこんな感じになっています。
(setq TeX-default-mode 'japanese-latex-mode)

(setq japanese-LaTeX-default-style "jarticle")
(setq TeX-output-view-style '(("^dvi$" "." "xdvi '%d'")))
(setq preview-image-type 'dvipng)
(add-hook 'LaTeX-mode-hook (function (lambda ()
  (add-to-list 'TeX-command-list
    '("pTeX" "%(PDF)ptex %`%S%(PDFout)%(mode)%' %t"
     TeX-run-TeX nil (plain-tex-mode) :help "Run ASCII pTeX"))
  (add-to-list 'TeX-command-list
    '("pLaTeX" "%(PDF)platex %`%S%(PDFout)%(mode)%' %t"
     TeX-run-TeX nil (latex-mode) :help "Run ASCII pLaTeX"))
  (add-to-list 'TeX-command-list
    '("acroread" "acroread '%s.pdf' " TeX-run-command t nil))
  (add-to-list 'TeX-command-list
    '("pdf" "dvipdfmx -V 4 '%s' " TeX-run-command t nil))
)))

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

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)

(add-hook 'LaTeX-mode-hook 'visual-line-mode)
;; (add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'TeX-mode-hook (lambda () (TeX-fold-mode 1)))

;; Change key bindings
(add-hook 'reftex-mode-hook
 '(lambda ()
               (define-key reftex-mode-map (kbd "\C-cr") 'reftex-reference)
               (define-key reftex-mode-map (kbd "\C-cl") 'reftex-label)
               (define-key reftex-mode-map (kbd "\C-cc") 'reftex-citation)
))

;; 数式のラベル作成時にも自分でラベルを入力できるようにする
(setq reftex-insert-label-flags '("s" "sfte"))

;; \eqrefを使う
(setq reftex-label-alist
      '(
        (nil ?e nil "\\eqref{%s}" nil nil)
        ))

; RefTeXで使用するbibファイルの位置を指定する
(setq reftex-default-bibliography '("~/tex/biblio.bib" "~/tex/biblio2.bib"))


flyspellはうざいのでコメントアウトしてますが、ONにしとくとスペルミスをハイライトしてくれます。
最後のbibファイルのパスはこの記事で設定したフォルダのbibファイルにしとけばOKです。
24行目のtexmasterの部分ですが、長い論文のように一つのpdfを作成するために複数のtexファイルを使っているようなときは、全てのtexファイルの下部に色々書き込んでおくとソースを解析してコンパイルしてくれる設定です。
詳しくはwikiなんかを参照してください。
7行目からは独自のコマンドを追加していってます。
詳しい使い方はこの後に書きます。

この設定を終えてtexファイルを開くと、モードラインに(LaTeX/M Ref)などと表示されていれば成功です。

AUCTeXとRefTeXの使い方

上で設定したコマンドと僕がよく使うコマンドを挙げときます。
C-c, C-c, “platex”platexの実行
C-c, C-c, “bibtex”bibtexの実行
C-c, C-vxdviの実行
C-c, C-c, “pdf”dvipdfmxの実行
C-c, C-c, “Clean” or "Celan All" 中間ファイルの削除など
C-c, C-e, <figureとかalignとか>\begin~\endの環境を挿入
ポジションやラベル、キャプションの入力も求められます。
C-c, C-s\sectionや\subsectionの挿入
タイトルとラベルが求められます。
C-c, C-f, C-r\textrm{}, \mathrm
C-c, C-f, C-b\textbf{}
C-c, C-f, C-i or TAB\textit{}
`, a or b...\alphaとか\betaとか。
C-c, r, [efinNst]のどれかのキーこれまで付けたラベル一覧から自動で挿入
例えばeなら数式の一覧が表示される。一覧に表示されてなかったらrでリスキャンしてくれる。
C-c, c\cite{}でソースとして設定してあるbibファイルから文字列検索してラベルを挿入
C-c, l\label{}を挿入
C-c, &対応するラベルにジャンプ
C-c, =アウトライン表示、選んだセクションへ飛ぶ
C-c, _編集中のファイルのマスターファイルを設定
C-c, C-o, C-bTeX-fold-buffer
C-c, C-o, bTex-fold-clearout-buffer
C-c, C-f シリーズはまだまだありますのでC-c, C-f の後に関係ないキーを押すとヘルプが出ます。
`シリーズも` ?と押せば一覧が出ます。
Tex-fold-modeは記号や書式を簡単なプレビュー表示にしてくれます。例えば\alphaがαと表示されます。
僕はtexからpdfへ一括でコンパイルさせないで途中のdviファイルで編集結果を確認しています。
C-c, C-v は打つ度にxdviが新しいフレームを起動してしまうので、一度起動したら後はplatexした後にMacのショートカットキー Command + Tabでアプリを切り替えて、大文字のRでファイルを更新してくれます。
nとpでページを行き来できます。

これでマウスは文鎮に出来ますね。

追記:Emacsのバッファ内で簡易プレビュー

LaTeX-modeになっているときに
  • C-c C-p C-d 
もしくは
  • M-x preview-document
でバッファ内にプレビュー表示ができます。

戻すときは
  •  C-c C-p C-c C-d
もしくは
  • M-x preview-clearout-document
でいけます。
 参考サイト:  clmemo@aka: preview-latex のインストール (2005/9) |AUCTeX|

追記:PDFビュワー『Skim』と連携

以下参照。
Ochiailab Tips: EmacsとSkimの連携 Part.2

0 件のコメント :

コメントを投稿