Emacs > AUCTeX
AUCTeX は Emacs の LaTeX, TeX, ConTeXt 用のメジャーモードです.
を参照.
公式のスクリーンショットのページを参照.
AUCTeX でサポートされている日本語用 TeX は upTeX*1, ASCII pTeX, NTT jTeX の3種類です。タイプセット時にどのコマンドを使うかは、変数 TeX-engine に3つのうちどれがセットされているかで決まります。*2
通常の LaTeX ユーザーは、カスタマイズオプション TeX-parse-self を有効にしておくのがおすすめです。クラスファイルやそのオプション引数から、TeX-engine が自動でセットされます。*3*4
期待と異なる engine が使われている場合は、Command メニューのサブメニューの TeXing Options から engine を変更できます。この engine の値は emacs を終了するとき保存されません。選択した engine をずっと使い続けるやり方は、以下の2通りがあります。
M-x customize-option RET japanese-TeX-engine-default RETとして Customize インターフェースを使ってもいいし、~/.emacs.d/init.el 等の初期化ファイルで
(setq japanese-TeX-engine-default 'uptex) ;; upTeX を標準にのようにしても構いません。
%%% Local Variables: %%% mode: japanese-latex %%% TeX-engine: uptex %%% End:のようにします。*5
上記どちらの場合も、TeX-engine に指定する値は uptex, ptex, jtex のいずれかです。
各 engine ごとに利用されるコマンド名(uplatex や platex 等)は変数 TeX-engine-alist-builtin に保存されています。異なるコマンドを使いたい場合や、新たな engine を定義したい場合はカスタマイズオプション TeX-engine-alist を利用してください。
forum:2047 のように、NTT jLaTeX 用のクラスファイルを ASCII pLaTeX で利用する場合は、上述の file (directory) local variable で TeX-engine に ptex を指定してください。
AUCTeX, TeX mode, YaTeX では " を入力しようとすると `` が入力されます. `` ではなく " を入力したい場合は ""(" を2回打つ)か C-q " (Ctrl-Q を入力した後で " を入力) とします.
M-x package-install RET auctex RET
または
M-x list-packages RET でリストを表示して auctex を選択
$ wget http://git.savannah.gnu.org/cgit/auctex.git/snapshot/master.tar.gz
または
$ curl -LO http://git.savannah.gnu.org/cgit/auctex.git/snapshot/master.tar.gz
で最新版の AUCTeX を入手します.
AUCTeX を展開してビルド・インストールします.
$ tar xvf master.tar.gz $ pushd master $ ./autogen.sh $ ./configure --prefix=/usr $ make $ sudo make install $ popd
デフォルトでは preview-latex もインストールされます。
load-path に追加して自動ロードする場合は以下を ~/.emacs.d/init.el に記述します.
(add-to-list 'load-path "/usr/share/emacs/site-lisp") (load "auctex.el" nil t t) (load "preview-latex.el" nil t t)
Emacs を起動して
C-x C-f ~/
で,ホームディレクトリ (~/) の場所を確認します.
~/.emacs.d/init.el に設定を記述します.
SumatraPDF を -forward-search <texfile> <linenumber> オプションを使用して実行した場合 SumatraPDF を前面に表示して forward search します.
SumatraPDF を前面に表示したくない場合は SumatraPDF/fwdsumatrapdf の fwdsumatrapdf.exe を使用します.
SumatraPDF の inverse search については Emacs#SumatraPDF との連携#inverse search を参照してください.
;; ;; AUCTeX ;; (with-eval-after-load 'tex-jp (dolist (command '("pTeX" "pLaTeX" "pBibTeX" "jTeX" "jLaTeX" "jBibTeX" "Mendex")) (delq (assoc command TeX-command-list) TeX-command-list))) (setq japanese-TeX-engine-default 'uptex) (setq japanese-LaTeX-default-style "bxjsarticle") ;(setq japanese-LaTeX-default-style "jlreq") (setq TeX-engine 'uptex) (setq TeX-PDF-from-DVI "Dvipdfmx") (setenv "Path" (concat "C:\\Program Files\\SumatraPDF;" (getenv "Path"))) (setq exec-path (append exec-path '("C:\\Program Files\\SumatraPDF"))) (setq TeX-view-program-selection '((output-pdf "SumatraPDF"))) (setq TeX-source-correlate-method 'synctex) (setq TeX-source-correlate-start-server t) (setq TeX-source-correlate-mode t) (add-hook 'LaTeX-mode-hook 'japanese-latex-mode) (with-eval-after-load 'tex-jp (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 '("Latexmk-upLaTeX" "latexmk -e \"$latex=q/uplatex %%O -kanji=utf8 -no-guess-input-enc %(file-line-error) %(extraopts) %S %(mode) %%S/\" -e \"$bibtex=q/upbibtex %%O %%B/\" -e \"$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/\" -e \"$makeindex=q/upmendex %%O -o %%D %%S/\" -e \"$dvipdf=q/dvipdfmx %%O -o %%D %%S/\" -norc -gg -pdfdvi %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk-upLaTeX")) (add-to-list 'TeX-command-list '("Latexmk-LuaLaTeX" "latexmk -e \"$lualatex=q/lualatex %%O %(file-line-error) %(extraopts) %S %(mode) %%S/\" -e \"$bibtex=q/upbibtex %%O %%B/\" -e \"$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/\" -e \"$makeindex=q/upmendex %%O -o %%D %%S/\" -norc -gg -pdflua %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk-LuaLaTeX")) (add-to-list 'TeX-command-list '("SumatraPDF" "powershell -Command \"& {$r = Write-Output %o;$t = Write-Output %b;$o = [System.String]::Concat('\"\"\"',[System.IO.Path]::GetFileNameWithoutExtension($r),'.pdf','\"\"\"');$b = [System.String]::Concat('\"\"\"',[System.IO.Path]::GetFileNameWithoutExtension($t),'.tex','\"\"\"');Start-Process SumatraPDF -ArgumentList ('-reuse-instance',$o,'-forward-search',$b,%n)}\"" TeX-run-discard-or-function t t :help "Forward search with SumatraPDF")) (add-to-list 'TeX-command-list '("Fwdsumatrapdf" "fwdsumatrapdf %s.pdf \"%b\" %n" TeX-run-discard-or-function t t :help "Forward search with fwdsumatrapdf")) (add-to-list 'TeX-command-list '("TeXworks" "synctex view -i \"%n:0:%b\" -o %s.pdf -x \"texworks --position=%%{page+1} %%{output}\"" TeX-run-discard-or-function t t :help "Forward search with TeXworks")) (add-to-list 'TeX-command-list '("TeXstudio" "synctex view -i \"%n:0:%b\" -o %s.pdf -x \"texstudio --pdf-viewer-only --page %%{page+1} %%{output}\"" TeX-run-discard-or-function t t :help "Forward search with TeXstudio")) (add-to-list 'TeX-command-list '("Firefox" "powershell -Command \"& {$r = Write-Output %o;$o = [System.String]::Concat('\"\"\"',[System.IO.Path]::GetFileNameWithoutExtension($r),'.pdf','\"\"\"');Start-Process firefox -ArgumentList ('-new-window',$o)}\"" TeX-run-discard-or-function t t :help "Run Mozilla Firefox")) (add-to-list 'TeX-command-list '("Chrome" "powershell -Command \"& {$r = Write-Output %s.pdf;$o = [System.String]::Concat('\"\"\"',[System.IO.Path]::GetFullPath($r),'\"\"\"');Start-Process chrome -ArgumentList ('--new-window',$o)}\"" TeX-run-discard-or-function t t :help "Run Google Chrome")) (add-to-list 'TeX-command-list '("Edge" "powershell -Command \"& {Get-Process -Name MicrosoftEdgeCP 2>$null;if($?){for($i=0;$i -lt 3;$i++){Stop-Process -Name MicrosoftEdgeCP;Start-Sleep -Seconds 1}};Start-Process shell:AppsFolder\\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge (Get-Item \"\"\"%s.pdf\"\"\").FullName}\"" TeX-run-discard-or-function t t :help "Run Microsoft Edge")) (add-to-list 'TeX-command-list '("AcroRead" "powershell -Command \"& {Get-Process -Name AcroRd32 2>$null;if($?){Stop-Process -Name AcroRd32};Start-Process synctex -ArgumentList ('view', '-i', '\"\"\"%n:0:%b\"\"\"', '-o', '\"\"\"%s.pdf\"\"\"', '-x', '\"\"\"rundll32 shell32,ShellExec_RunDLL AcroRd32 /A ''page=%%{page+1}'' ''%%{output}''\"\"\"')}\"" TeX-run-discard-or-function t t :help "Forward search with Adobe Acrobat Reader DC"))))) ;; ;; RefTeX with AUCTeX ;; (with-eval-after-load 'tex-jp (add-hook 'LaTeX-mode-hook 'turn-on-reftex)) (setq reftex-plug-into-AUCTeX t)
メニュー [Command] 入力 機能 Latexmk C-c C-c latexmk RET タイプセット (Latexmk) Latexmk-upLaTeX C-c C-c latexmk-uplatex RET タイプセット (Latexmk-upLaTeX) Latexmk-LuaLaTeX C-c C-c latexmk-lualatex RET タイプセット (Latexmk-LuaLaTeX) SumatraPDF C-c C-c sumatrapdf RET SumatraPDF で forward search Fwdsumatrapdf C-c C-c fwdsumatrapdf RET fwdsumatrapdf で forward search TeXworks C-c C-c texworks RET TeXworks で forward search TeXstudio C-c C-c texstudio RET TeXstudio で forward search Firefox C-c C-c firefox RET Firefox でプレビュー Chrome C-c C-c chrome RET Chrome でプレビュー Edge C-c C-c edge RET Edge でプレビュー AcroRead C-c C-c acroread RET Adobe Acrobat Reader DC で forward search
Emacs を起動して
C-x C-f ~/
で,ホームディレクトリ (~/) の場所を確認します.
~/.emacs.d/init.el に設定を記述します.
動作未確認です.
;; ;; PATH ;; (setenv "PATH" "/usr/local/bin:/Library/TeX/texbin/:/Applications/Skim.app/Contents/SharedSupport:$PATH" t) (setq exec-path (append '("/usr/local/bin" "/Library/TeX/texbin" "/Applications/Skim.app/Contents/SharedSupport") exec-path)) ;; ;; AUCTeX ;; (with-eval-after-load 'tex-jp (dolist (command '("pTeX" "pLaTeX" "pBibTeX" "jTeX" "jLaTeX" "jBibTeX" "Mendex")) (delq (assoc command TeX-command-list) TeX-command-list))) (setq japanese-TeX-engine-default 'uptex) (setq japanese-LaTeX-default-style "bxjsarticle") ;(setq japanese-LaTeX-default-style "jlreq") (setq TeX-engine 'uptex) (setq TeX-PDF-from-DVI "Dvipdfmx") (setq TeX-view-program-selection '((output-pdf "displayline"))) (setq TeX-source-correlate-method 'synctex) (setq TeX-source-correlate-start-server t) (setq TeX-source-correlate-mode t) (add-hook 'LaTeX-mode-hook 'japanese-latex-mode) (with-eval-after-load 'tex-jp (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 '("Latexmk-upLaTeX" "latexmk -e '$latex=q/uplatex %%O %(file-line-error) %(extraopts) %S %(mode) %%S/' -e '$bibtex=q/upbibtex %%O %%B/' -e '$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/' -e '$makeindex=q/upmendex %%O -o %%D %%S/' -e '$dvipdf=q/dvipdfmx %%O -o %%D %%S/' -norc -gg -pdfdvi %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk-upLaTeX")) (add-to-list 'TeX-command-list '("Latexmk-LuaLaTeX" "latexmk -e '$lualatex=q/lualatex %%O %(file-line-error) %(extraopts) %S %(mode) %%S/' -e '$bibtex=q/upbibtex %%O %%B/' -e '$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/' -e '$makeindex=q/upmendex %%O -o %%D %%S/' -norc -gg -pdflua %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk-LuaLaTeX")) (add-to-list 'TeX-command-list '("Displayline" "/Applications/Skim.app/Contents/SharedSupport/displayline %n %s.pdf \"%b\"" TeX-run-discard-or-function t t :help "Forward search with displayline")) (add-to-list 'TeX-command-list '("Skim" "open -a Skim %s.pdf" TeX-run-discard-or-function t t :help "Run Skim")) (add-to-list 'TeX-command-list '("Preview" "open -a Preview %s.pdf" TeX-run-discard-or-function t t :help "Run Preview")) (add-to-list 'TeX-command-list '("TeXShop" "open -a TeXShop %s.pdf" TeX-run-discard-or-function t t :help "Run TeXShop")) (add-to-list 'TeX-command-list '("TeXworks" "synctex view -i \"%n:0:%b\" -o %s.pdf -x \"/Applications/TeXworks.app/Contents/MacOS/TeXworks --position=%%{page+1} %%{output}\"" TeX-run-discard-or-function t t :help "Forward search with TeXworks")) (add-to-list 'TeX-command-list '("TeXstudio" "synctex view -i \"%n:0:%b\" -o %s.pdf -x \"/Applications/texstudio.app/Contents/MacOS/texstudio --pdf-viewer-only --page %%{page+1} %%{output}\"" TeX-run-discard-or-function t t :help "Forward search with TeXstudio")) (add-to-list 'TeX-command-list '("Firefox" "open -a Firefox %s.pdf" TeX-run-discard-or-function t t :help "Run Mozilla Firefox")) (add-to-list 'TeX-command-list '("Chrome" "open -a \"Google Chrome\" %s.pdf" TeX-run-discard-or-function t t :help "Run Google Chrome")) (add-to-list 'TeX-command-list '("AcroRead" "open -a \"Adobe Acrobat Reader DC\" %s.pdf" TeX-run-discard-or-function t t :help "Run Adobe Acrobat Reader DC"))))) ;; ;; RefTeX with AUCTeX ;; (with-eval-after-load 'tex-jp (add-hook 'LaTeX-mode-hook 'turn-on-reftex)) (setq reftex-plug-into-AUCTeX t)
メニュー [Command] 入力 機能 Latexmk C-c C-c latexmk RET タイプセット (Latexmk) Latexmk-upLaTeX C-c C-c latexmk-uplatex RET タイプセット (Latexmk-upLaTeX) Latexmk-LuaLaTeX C-c C-c latexmk-lualatex RET タイプセット (Latexmk-LuaLaTeX) Displayline C-c C-c displayline RET displayline で forward search Skim C-c C-c skim RET Skim でプレビュー Preview C-c C-c preview RET Preview でプレビュー TeXShop C-c C-c texshop RET TeXShop でプレビュー TeXworks C-c C-c texworks RET TeXworks で forward search TeXstudio C-c C-c texstudio RET TeXstudio で forward search Firefox C-c C-c firefox RET Firefox でプレビュー Chrome C-c C-c chrome RET Chrome でプレビュー AcroRead C-c C-c acroread RET Adobe Acrobat Reader DC でプレビュー
Emacs を起動して
C-x C-f ~/
で,ホームディレクトリ (~/) の場所を確認します.
~/.emacs.d/init.el に設定を記述します.
fwdevince は Evince/fwdevince の fwdevince を使用します.
;; ;; AUCTeX ;; (with-eval-after-load 'tex-jp (dolist (command '("pTeX" "pLaTeX" "pBibTeX" "jTeX" "jLaTeX" "jBibTeX" "Mendex")) (delq (assoc command TeX-command-list) TeX-command-list))) (setq japanese-TeX-engine-default 'uptex) (setq japanese-LaTeX-default-style "bxjsarticle") ;(setq japanese-LaTeX-default-style "jlreq") (setq TeX-engine 'uptex) (setq TeX-PDF-from-DVI "Dvipdfmx") (setq TeX-view-program-selection '((output-pdf "Evince"))) (setq TeX-source-correlate-method 'synctex) (setq TeX-source-correlate-start-server t) (setq TeX-source-correlate-mode t) (add-hook 'LaTeX-mode-hook 'japanese-latex-mode) (with-eval-after-load 'tex-jp (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 '("Latexmk-upLaTeX" "latexmk -e '$latex=q/uplatex %%O %(file-line-error) %(extraopts) %S %(mode) %%S/' -e '$bibtex=q/upbibtex %%O %%B/' -e '$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/' -e '$makeindex=q/upmendex %%O -o %%D %%S/' -e '$dvipdf=q/dvipdfmx %%O -o %%D %%S/' -norc -gg -pdfdvi %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk-upLaTeX")) (add-to-list 'TeX-command-list '("Latexmk-LuaLaTeX" "latexmk -e '$lualatex=q/lualatex %%O %(file-line-error) %(extraopts) %S %(mode) %%S/' -e '$bibtex=q/upbibtex %%O %%B/' -e '$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/' -e '$makeindex=q/upmendex %%O -o %%D %%S/' -norc -gg -pdflua %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk-LuaLaTeX")) (add-to-list 'TeX-command-list '("Xdg-open" "xdg-open %s.pdf" TeX-run-discard-or-function t t :help "Run xdg-open")) (add-to-list 'TeX-command-list '("Evince" ;"synctex view -i \"%n:0:%b\" -o %s.pdf -x \"evince -i %%{page+1} %%{output}\"" "TeX-evince-sync-view" TeX-run-discard-or-function t t :help "Forward search with Evince")) (add-to-list 'TeX-command-list '("Fwdevince" "fwdevince %s.pdf %n \"%b\"" TeX-run-discard-or-function t t :help "Forward search with fwdevince")) (add-to-list 'TeX-command-list '("Atril" ;"synctex view -i \"%n:0:%b\" -o %s.pdf -x \"atril -i %%{page+1} %%{output}\"" "TeX-atril-sync-view" TeX-run-discard-or-function t t :help "Forward search with Atril")) (add-to-list 'TeX-command-list '("Okular" "okular --unique \"file:\"%s.pdf\"#src:%n %a\"" TeX-run-discard-or-function t t :help "Forward search with Okular")) (add-to-list 'TeX-command-list '("Zathura" "zathura -x \"emacsclient --no-wait +%%{line} %%{input}\" --synctex-forward \"%n:0:%b\" %s.pdf" TeX-run-discard-or-function t t :help "Forward and inverse search with 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 '("TeXworks" "synctex view -i \"%n:0:%b\" -o %s.pdf -x \"texworks --position=%%{page+1} %%{output}\"" TeX-run-discard-or-function t t :help "Forward search with TeXworks")) (add-to-list 'TeX-command-list '("TeXstudio" "synctex view -i \"%n:0:%b\" -o %s.pdf -x \"texstudio --pdf-viewer-only --page %%{page+1} %%{output}\"" TeX-run-discard-or-function t t :help "Forward search with TeXstudio")) (add-to-list 'TeX-command-list '("MuPDF" "mupdf %s.pdf" TeX-run-discard-or-function t t :help "Run MuPDF")) (add-to-list 'TeX-command-list '("Firefox" "firefox -new-window %s.pdf" TeX-run-discard-or-function t t :help "Run Mozilla Firefox")) (add-to-list 'TeX-command-list '("Chromium" "chromium --new-window %s.pdf" TeX-run-discard-or-function t t :help "Run Chromium")) (add-to-list 'TeX-command-list '("AcroRead" "wine cmd /c start AcroRd32.exe %s.pdf" TeX-run-discard-or-function t t :help "Run Adobe Acrobat Reader DC"))))) ;; ;; RefTeX with AUCTeX ;; (with-eval-after-load 'tex-jp (add-hook 'LaTeX-mode-hook 'turn-on-reftex)) (setq reftex-plug-into-AUCTeX t)
メニュー [Command] 入力 機能 Latexmk C-c C-c latexmk RET タイプセット (Latexmk) Latexmk-upLaTeX C-c C-c latexmk-uplatex RET タイプセット (Latexmk-upLaTeX) Latexmk-LuaLaTeX C-c C-c latexmk-lualatex RET タイプセット (Latexmk-LuaLaTeX) Xdg-open C-c C-c xdg-open RET xdg-open でプレビュー Evince C-c C-c evince RET Evince で forward search Fwdevince C-c C-c fwdevince RET fwdevince で forward search Atril C-c C-c atril RET Atril で forward search Okular C-c C-c okular RET Okular で forward search Zathura C-c C-c zathura RET zathura で forward and inverse search Qpdfview C-c C-c qpdfview RET qpdfview で forward search TeXworks C-c C-c texworks RET TeXworks で forward search TeXstudio C-c C-c texstudio RET TeXstudio で forward search MuPDF C-c C-c mupdf RET MuPDF でプレビュー Firefox C-c C-c firefox RET Firefox でプレビュー Chromium C-c C-c chromium RET Chromium でプレビュー AcroRead C-c C-c acroread RET Adobe Acrobat Reader DC でプレビュー
Emacs 標準のパッケージ管理システムを使用してインストールした場合は何も記述しなくても AUCTeX が自動ロードされます.
AUCTeX が自動ロードされない場合は ~/.emacs.d/init.el に例えば次のように記述します.
(add-to-list 'load-path "~/.emacs.d/elpa/auctex-11.91.0") (require 'tex-site)
AUCTeX を自動ロードする場合は ~/.emacs.d/init.el に次のように記述します.
(load "auctex.el" nil t t) (load "preview-latex.el" nil t t)
upTeX をデフォルトにして dvipdfmx を使用する場合は次のように記述します.
(setq japanese-TeX-engine-default 'uptex) (setq TeX-engine 'uptex) (setq TeX-PDF-from-DVI "Dvipdfmx") (add-hook 'LaTeX-mode-hook 'japanese-latex-mode)
BXjscls の bxjsarticle を標準に設定する場合は次のように記述します.
(setq japanese-LaTeX-default-style "bxjsarticle")
jlreq を標準に設定する場合は次のように記述します.
(setq japanese-LaTeX-default-style "jlreq")
PDF Viewer を変更する場合は
(setq TeX-view-program-list '(("PDFviewer" "/path/viewer %o")))
(setq TeX-view-program-selection '((output-pdf "PDFviewer")))
になります。
禁則処理によって行長が何文字延びてもいいかは,Emacs の kinsoku.el の kinsoku-limit で定義されています.
デフォルトでは 4 ですが,少し長くしておかないと,単語の途中で切れてしまうことがあるかもしれません.
(setq kinsoku-limit 10)
メニュー [Command] 入力 機能 リストから選択 C-c C-c コマンドの実行 LaTeX C-c C-c latex RET 指定された TeX エンジンでタイプセット Dvipdfmx C-c C-c dvipdfmx RET dvipdfmx の実行 View C-c C-c view RET プレビュー または forward search BibTeX C-c C-c bibtex RET bibtex の実行 Biber C-c C-c biber RET biber の実行 Index C-c C-c index RET makeindex の実行 Xindy C-c C-c xindy RET texindy の実行 Check C-c C-c check RET lacheck の実行 ChkTeX C-c C-c chktex RET chktex の実行 Spell C-c C-c spell RET スペルチェックの実行 Clean C-c C-c clean RET 中間ファイル (.log .aux etc...) の削除 Clean All C-c C-c clean all RET 中間ファイル及び dvi ps pdf の削除 Recenter Output Buffer C-c C-l タイプセット処理を表示 Kill Job C-c C-k タイプセット処理を中断 Next Error C-c ` エラー行にジャンプ Quick View C-c C-v クイックビュー Compile and view C-c C-a タイプセットとプレビュー または forward search
メニュー [Command] 入力 TeX エンジンの選択 TeXing Options -> Use LuaTeX engine M-x TeX-engine RET luatex RET LuaTeX を使用 TeXing Options -> Use upTeX engine M-x TeX-engine RET uptex RET upTeX を使用
TeX-PDF-mode を有効にすると Default (pdfTeX) エンジン, LuaTeX エンジン, XeTeX エンジン で DVI ファイルのかわりに PDF ファイルを出力するようになります.
AUCTeX は TeX-PDF-mode がデフォルトで有効になっています.
メニュー [Command] 入力 機能 TeXing Options -> Generate PDF C-c C-t C-p TeX-PDF-mode を有効 ←→ 無効
TeX-interactive-mode を有効にするとエラーが発生した場合にユーザーからの応答を待つようになります.
(add-hook 'LaTeX-mode-hook 'TeX-interactive-mode)
メニュー [Command] 入力 機能 TeXing Options -> Run Interactively C-c C-t C-i TeX-interactive-mode を有効 ←→ 無効
TeX-source-correlate-mode を有効にすると SyncTeX が使用可能になります.
(setq TeX-source-correlate-method 'synctex) (setq TeX-source-correlate-start-server t) (setq TeX-source-correlate-mode t)
メニュー [Command] 入力 機能 TeXing Options -> Correlate I/O C-c C-t C-s TeX-source-correlate-mode を有効 ←→ 無効
メニュー [LaTeX] 入力 補完 Insert Environment (C-c C-e) -> リストから選択 C-c C-e \begin{...} ... \end{...} の補完 Section (C-c C-s) -> リストから選択 C-c C-s \chapter, \section などの補完
拡張子が tex のファイルを開くと自動的に立ち上がります。
下の「複数ファイルの文書」にも別の方法を説明しました。
まず C-c C-e すると,\documentclass{...} およびトップレベルの環境 \begin{document} ... \end{document} が入ります。
次に C-c C-s すると,\section の類のコマンドが入ります。
コマンド名は補完できます。
次に C-c C-e すると,\begin{...} ... \end{...} のような環境が入ります。 環境名は補完できます。
次に C-c C-c するとコンパイルできます。
次に C-c C-c すると依存関係を調べて出力ファイルが新しければ dvipdfmx を実行したりプレビューしたりします。
dvipdfmx が実行された場合は次に C-c C-c するとプレビューします。
再度コンパイルしたいのなら C-c C-c の後に l (小文字の L) をタイプした後で TAB (Tab キー) あるいは C-c C-c の後に l (小文字の L) をタイプした後で SPACE (Space キー) を打てば LaTeX の文字が補完されて RET (Enter キー) を押すと LaTeX の処理が行われます。
C-c C-a するとタイプセットからプレビューまでを一気に行います。
ダブルクォート " を打てば,状況に応じて `` または '' に変換してくれます。
TAB または SPACE で補完ができます。
これらが効かないときは ESC TAB で補完します。
候補一覧が出たら,さらに文字を補って補完するか, あるいはマウスの中央のボタンで候補をクリックします。
フォント関係のコマンドです。
メニュー [LaTeX] 入力 補完 補完 (数式モード) Insert Font -> Roman C-c C-f C-r \textrm{} \mathrm{} Insert Font -> Italic C-c C-f C-i \textit{} \mathit{} Insert Font -> Typewriter C-c C-f C-t \texttt{} \mathtt{} Insert Font -> Bold C-c C-f C-b \textbf{} \mathbf{} Insert Font -> Sans Serif C-c C-f C-f \textsf{} \mathsf{}
その他のコマンドです。
AUCTeX Clean ターゲット機能
これ以外にたくさんの機能があります。 ぜひ info auctex でドキュメントをお読みください。
サイトごとのカスタマイズは /usr/local/share/emacs/site-lisp/tex-site.el で行います。
たとえば hogehoge.tex から input または include されているファイルでは,次のように書いておきます。
%%% Local Variables: %%% mode: japanese-latex %%% TeX-engine: uptex %%% TeX-master: "hogehoge" %%% End:
すると,このバッファで C-c C-c すると,hogehoge.tex をコンパイルしたり hogehoge.dvi を表示したりします。 これはこのファイルを japanese-latex モードで開くという便利な副作用もあります。
もし自分自身がマスターなら,次のように書いておきます。
%%% Local Variables: %%% mode: japanese-latex %%% TeX-engine: uptex %%% TeX-master: t %%% End:
こういったものを自動で入れたい場合は,Emacs の設定ファイルに次のように書いておきます(私は書いていません)。
(setq TeX-auto-save t) (setq TeX-parse-self t) (setq-default TeX-master nil)
こうしておくと,ファイルを開くときに
Master file: (default this file)
と聞いてきますので,自分自身がマスターファイルなら単に Enter を押します。
キャンセルは C-g です。
AUCTeX は SumatraPDF の forward search に対応しています.
環境変数 Path と変数 exec-path に SumatraPDF のコマンド検索パスを追加します.
TeX-view-program-selection の output-pdf に TeX-view-program-list-builtin で設定されている SumatraPDF を指定します.
(setenv "Path" (concat "C:\\Program Files\\SumatraPDF;" (getenv "Path"))) (setq exec-path (append exec-path '("C:\\Program Files\\SumatraPDF"))) (setq TeX-view-program-selection '((output-pdf "SumatraPDF")))
C-c C-c view で View command: に SumatraPDF のコマンドが表示され forward search が実行できます.
inverse search については Emacs#SumatraPDF との連携#inverse search を参照してください.
TeX-command-list に SumatraPDF を追加して使用することもできます.
forward search は AUCTeX#インストール#Windows#設定 を参照してください.
C-c C-c sumatrapdf または C-c C-c fwdsumatrapdf で forward search ができます.
AUCTeX は Skim の forward search に対応しています.
環境変数 Path と変数 exec-path に displayline のコマンド検索パスを追加します.
TeX-view-program-selection の output-pdf に TeX-view-program-list-builtin で設定されている displayline を指定します.
(setenv "PATH" "/usr/local/bin:/Library/TeX/texbin/:/Applications/Skim.app/Contents/SharedSupport:$PATH" t) (setq exec-path (append '("/usr/local/bin" "/Library/TeX/texbin" "/Applications/Skim.app/Contents/SharedSupport") exec-path)) (setq TeX-view-program-selection '((output-pdf "displayline")))
C-c C-c view で View command: に displayline のコマンドが表示され forward search が実行できます.
inverse search は Emacs#e9c08b3d を参照してください.
TeX-command-list に displayline を追加して使用することもできます.
forward search は AUCTeX#インストール#macOS#設定 を参照してください.
C-c C-c displayline で forward search ができます.
AUCTeX の設定と便利な機能 | Amrta も参考になります.
AUCTeX は Evince の forward and inverse search に対応しています.
TeX-view-program-selection の output-pdf に TeX-view-program-list-builtin で設定されている Evince を指定します.
(setq TeX-view-program-selection '((output-pdf "Evince")))
C-c C-c view で View command: に TeX-evince-sync-view が表示され forward search が実行できます.
TeX-source-correlate-mode が有効になっていれば Ctrl + 左クリックで inverse search が実行できます.
TeX-command-list に fwdevince を追加して使用することもできます.
forward search は AUCTeX#インストール#Linux#設定 を参照してください.
C-c C-c fwdevince で forward search ができます.
以下のページも参考になります.
AUCTeX は Atril の forward and inverse search に対応しています.
TeX-view-program-selection の output-pdf に TeX-view-program-list-builtin で設定されている Atril を指定します.
(setq TeX-view-program-selection '((output-pdf "Atril")))
C-c C-c view で View command: に TeX-atril-sync-view が表示され forward search が実行できます.
TeX-source-correlate-mode が有効になっていれば Ctrl + 左クリックで inverse search が実行できます.
AUCTeX は Okular の forward search に対応しています.
TeX-view-program-selection の output-pdf に TeX-view-program-list-builtin で設定されている Okular を指定します.
(setq TeX-view-program-selection '((output-pdf "Okular")))
C-c C-c view で View command: に Okular のコマンドが表示され forward search が実行できます.
inverse search は Emacs#z0944532 を参照してください.
TeX-command-list に Okular を追加して使用することもできます.
forward search は AUCTeX#インストール#Linux#設定 を参照してください.
C-c C-c okular で forward search ができます.
AUCTeX は zathura の forward and inverse search に対応しています.
TeX-view-program-selection の output-pdf に TeX-view-program-list-builtin で設定されている Zathura を指定します.
(setq TeX-view-program-selection '((output-pdf "Zathura")))
C-c C-c view で View command: に zathura のコマンドが表示され forward and inverse search が実行できます.
Ctrl + 左クリックで inverse search が実行できます.
TeX-command-list に zathura を追加して使用することもできます.
forward and inverse search は AUCTeX#インストール#Linux#設定 を参照してください.
C-c C-c zathura で forward and inverse search ができます.
AUCTeX とは関係ありませんが,先頭に
% Time-stamp: <>
と書いておくと,保存したときにタイムスタンプが書き込まれます。 こうならない場合は ~/.emacs.d/init.el に次のように書いておきます。
(if (not (memq 'time-stamp write-file-hooks)) (setq write-file-hooks (cons 'time-stamp write-file-hooks)))