我正在尝试在 emacs 中使用 flymake 进行 .tex 文件编辑。
在我输入一个不平衡的大括号{
或}
. 当 flymake 启动时,它会返回错误:
Flymake:运行时出现配置错误(pdflatex -file-line-error -draftmode -interaction=nonstopmode /home/matt/test_flymake.tex)。Flymake 将关闭。
为了完整起见,这是我.emacs
文件的相关部分:
(defun flymake-get-tex-args (file-name)
(list "pdflatex"
(list "-file-line-error" "-draftmode" "-interaction=nonstopmode" file-name)))
查看 flymake手册可以了解正在发生的事情:
CFGERR:语法检查过程返回非零退出代码,但没有报告错误/警告。这表明可能存在配置错误(例如,语法检查工具没有合适的错误消息模式)。
因此,挖掘日志(flymake-log-value = 3)我发现问题在于pdflatex
解析器返回非零退出代码,但不会生成 flymake 识别为错误的内容。具体来说:
parsed 'Runaway argument?', no line-err-info
parsed '{Conclusions \bibliographystyle {plain} \bibliography {ma\ETC.', no line-err-info
parsed '! File ended while scanning use of \@xdblarg.', no line-err-info
parsed '<inserted text> ', no line-err-info
parsed ' \par ', no line-err-info
parsed '<*> /home/matt/test_flymake.tex', no line-err-info
parsed ' ', no line-err-info
parsed '! Emergency stop.', no line-err-info
parsed '<*> /home/matt/test_flymake.tex', no line-err-info
parsed ' ', no line-err-info
parsed '! ==> Fatal error occurred, no output PDF file produced!', no line-err-info
所以,pdflatex
我对我的“失控论点”很生气,但不会产生flymake
被认为是错误的东西。挖掘flymake.el
文件显示其中flymake-err-line-patterns
包含以下模式:
("\\(LaTeX \\(Warning\\|Error\\): .*\\) on input line \\([0-9]+\\)" 20 3 nil 1)
所以......最后一个问题似乎是flymake
不能识别Runaway argument?
为错误消息。
现在,我的问题是:我错过了什么吗?我不能成为第一个遇到这个问题的人,但我找不到任何关于它的东西。我发现很难相信每个人都只是构建了一个自定义解决方案来修改错误模式,特别是因为我没有做任何不寻常的事情,只是想让它开箱即用。
万一这很重要,我在 Ubuntu 12.04 上使用 emacs 24.3 并运行 pdflatex (pdftex) 2012。
我错过了什么?感谢大家提供的任何建议。