平衡点


2026/02/18

_ AUCTeX と latexmk の連携(2026年版)

昔の話は以下

最近は typeset のコマンド調整などは latexmk に処理を任せてしまい, AUCTeXは編集補助にしか使っていなかったのだけれど, Emacs から latexmk を走らせても良いよね, という気分になったので.

AUCTeX の本体の方では以下のコミットで LaTeXMk のサポートが入った模様

しかしながら, Debian パッケージ版はちょっと古いので, じたばたと.

最終的には, 以下の様な感じで.

(leaf auctex
  :if (and (executable-find "uplatex")
           (executable-find "latexmk"))
  :preface
  ;; -------------------------------------------------------------------------
  ;; Debian パッケージを利用するための調整
  (add-to-list 'my:package-menu-exclude-packages "auctex")
  (if (and (not (featurep 'text-site))
           (file-directory-p "/usr/share/auctex"))
      (progn
        (add-to-list 'load-path "/usr/share/auctex")
        (add-to-list 'load-path "/usr/share/emacs/site-lisp/auctex")))
  ;; -------------------------------------------------------------------------
  (unless (file-directory-p (expand-file-name "auctex/auto" my:d:tmp))
    (make-directory (expand-file-name "auctex/auto" my:d:tmp) t)
    (make-directory (expand-file-name "auctex/style" my:d:tmp) t))
  ;; -------------------------------------------------------------------------
  :mode  ("\\.tex\\'" . japanese-latex-mode)
  ;; -------------------------------------------------------------------------
  :hook
  ((emacs-startup-hook . (lambda ()
                           (load "auctex.el" nil t)
                           ;; (load "preview-latex.el" nil t)
                           ))
   (LaTeX-mode-hook    . (lambda ()
                           (add-to-list 'TeX-expand-list
                                        '("%(-PDF)"
                                          (lambda ()
                                            (if TeX-PDF-mode
                                                (cond
                                                 ((eq TeX-engine 'default) "-pdf")
                                                 ((eq TeX-engine 'uptex)   "-pdfdvi")
                                                 ((eq TeX-engine 'ptex)    "-pdfdvi")
                                                 ((eq TeX-engine 'xetex)   "-pdfxe")
                                                 ((eq TeX-engine 'luatex)  "-pdflua")) ""))))
                           (add-to-list 'TeX-command-list
                                        '("LaTeXmk" "latexmk %(-PDF) -pvc  %(output-dir) %t"
                                          TeX-run-format nil (latex-mode doctex-mode) :help "Run Latexmk"))
                           (setq TeX-command-output-list
                                 '(("LaTeXmk" ("pdf"))))
                           (setq TeX-command-default "LaTeXmk")
                           (eglot-ensure)
                           (turn-on-reftex)
                           (TeX-source-correlate-mode)
                           (TeX-PDF-mode)
                           (LaTeX-math-mode)
                           ))
   )
  :init
  ;; -------------------------------------------------------------------------
  ;; 基本設定
  (setq TeX-auto-local (expand-file-name "auctex/auto" my:d:tmp)
        TeX-style-local (expand-file-name "auctex/style" my:d:tmp)
        TeX-auto-untabify t
        TeX-engine 'uptex
        TeX-source-correlate-method 'synctex
        TeX-source-correlate-start-server t
        TeX-source-correlate-mode t
        TeX-ispell-extend-skip-list t
        TeX-electric-sub-and-superscript t
        ;; -------------------------------------------------------------------
        LaTeX-math-mode t
        LaTeX-figure-label "fig:"
        LaTeX-table-label "tab:"
        LaTeX-section-label "sec:"
        ;; -------------------------------------------------------------------
        reftex-plug-into-AUCTeX t
        reftex-cite-prompt-optional-args t
        ;; -------------------------------------------------------------------
        font-latex-fontify-script nil
        font-latex-script-display nil
        font-latex-fontify-sectioning  1.0
        ;; -------------------------------------------------------------------
        ;; TeX-auto-save t
        ;; TeX-parse-self t
        ;; TeX-master nil
        )
  )

ちなみにこれだと Emacs の裏でずっと latexmk が走り続けるので, どこかのタイミングでプロセスを止めなきゃだめなんだが, どうすっかなぁ.

あと TeX-command-listTeX-expand-listdefcustom な変数のハズなのに, tex ファイルを開くと, 設定が全て無視されて初期値に戻る. これはいったいどういう処理なんだろうか…


連絡先など
"
最近の日記
  • 2026/02/18
    • 1. AUCTeX と latexmk の連携(2026年版)
  • 2026/02/16
    • 1. corfu の設定を見直す (2026年版)
  • 2026/02/14
    • 1. Windows11, macOS, Linux (Wayland) での clipboard 共有
  • 2026/02/04
    • 1. Emacs で Modern Fortran を弄るためのアレコレ
  • 2026/01/15
    • 1. dh_installdocs の便利(?)機能
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|12|
2025|02|03|04|05|06|08|09|10|12|
2026|01|02|
Back to Top ▲