次の関数を使用して、emacs の latex ファイルで latexmk を実行しています。
(defun my-run-latex ()
(interactive)
(if (buffer-modified-p)
(progn
(setq TeX-save-query nil)
(TeX-save-document (TeX-master-file))
(TeX-command "Latexmk" 'TeX-master-file -1))
(TeX-view)))
( https://stackoverflow.com/a/14699078/406686から取得)。
test.tex
次のようないくつかのエラーを含む単純なドキュメント ( ) があるとします。
\documentclass{article}
\begin{document}
\error1
\error2
\end{document}
たとえば、Space キーを押してから Backspace キーを押して (または変更を行って元に戻す)、my-run-latex
latexmk を実行すると、すべてのターゲットが最新であると表示されます。問題は、エラーリストが失われるため、TeX-next-error
何の効果もありません。
この場合、latexmk の実行を妨げるものに置き換えることで問題を解決できると思います(buffer-modified-p)
(latexmk が前回の実行以降にファイルが変更されたかどうかを確認するのと同じテストを行うのが最善です)。これを行う方法はありますか?