2

Vim 用の LaTeXBox プラグインを使用して LaTeX のエラーフォーマットに取り組んでいますが、解決できない問題を認識しています。

LaTeX は比較的構造化されたログ ファイルを生成します。ここでは、解析されたファイルに Lisp のような括弧構文が使用されます。たとえば、次のようになります。

(/path/to/some/file.xxx ...)

最初は、これは単純な問題のように見えます。%P/%O/%Qディレクティブを%rおよびとともに使用し%fて、ファイル名を解析できます。単純な.texファイルとプロジェクトの場合、これはうまく機能します。ただし、場合によっては、ファイル名が完成する前に改行することがあります。たとえば、次のような結果が得られる場合があります。

) (/some/file/with/long/file/name.sty) (/some/file/with/even/longer/fi
le/name.sty (...
))

上記の出力のほとんどは正しく解析できますが、上記のように、パスの 1 つが破損しており、解析されません。このようなエラーが 1 つあるだけでファイルのスタックが壊れ、ログ ファイルの誤った解析につながります。

問題は、より一般的な方法で述べることができます: 行をまたがるファイル名を解析するために errorformat を使用したい:

/path/to/some/
file.txt

この問題の解決策を探しています。vim マジックを追加するか (おそらく、適切な errorformat オプションを見逃したのでしょうか?)、 または のオプションをいくつか使用しlatexますpdflatex。どんな解決策でも大歓迎です。

4

1 に答える 1

1

I think I have found a good solution to this. Apperantly, one may use max_print_line=<number> to set the wrap with of the latex log output. Thus, if one issues the latex command:

max_print_line=2000 pdflatex <filename>.tex

The problem with filenames being broken across lines will probably be solved, since lines will not be broken until they reach 2000 colums.

I found this solution first through this SO answer.

So, to sum up: I think the %P/%O/%Q directives with %r and %f to parse the file names should work if one uses max_print_line.

Beware: this is max_print_line, not max_print_lines.

于 2013-07-24T10:12:12.390 に答える