3

.tex ファイルの編集に emacs で flymake を使用しようとしています。

アンバランスブレース{または}. 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.elflymake-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 を実行しています。

私は何が欠けていますか?あなたが提供できるすべての提案に感謝します。

4

1 に答える 1

0

そうですね、3 日間で 13 回の閲覧があったということは、答えが得られる可能性が低いことを意味していると思います。

ほとんどの emacs の問題と同様に、これは.emacsファイルを編集することで修正できます。このブロックをファイルに追加します。

(add-to-list
    `flymake-err-line-patterns
    '("Runaway argument?" nil nil nil)) ; fixes unbalanced braces in LaTeX files

latexこれにより、およびの問題が修正されpdflatexます。

(pdf)latex は、このエラーが生成されたときに行番号を表示しないことに注意してください (これは がnil nil nil表すものです)。したがって、これが発生した場合、flymake はエラーがファイルの最初の行にあることを通知し.texます。

M-C-f(forward-sexp) およびM-C-b(backward-sexp) は、バランスの取れた括弧をスキップして、一致しない括弧を検索できるようにします。ソース

完全を期すために、flymake が.texファイルをチェックする方法を次に示します。

(defun flymake-get-tex-args (file-name)
  (list "pdflatex"
        (list "-file-line-error" "-draftmode" "-interaction=nonstopmode" file-name)))

構文チェッカーが異なる場合、または別のエラー メッセージを生成する場合は、"Runaway argument?"テキストをチェッカーのエラー メッセージに置き換えます。

于 2013-09-16T17:02:30.313 に答える