我一直在为LaTeX使用LaTeXBox插件进行错误格式化,我已经认识到了一个我无法解决的问题。
LaTeX生成相对结构化的日志文件,其中类似Lisp的paranthesis语法用于解析的文件,例如:
(/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 (...
))
上面的大部分输出都可以正确解析,但是,如上所示,其中一条路径已被破坏且无法解析。只有一个这样的错误就足以打破文件堆栈,从而导致错误地解析日志文件。
问题可以用更一般的方式说明:我想使用errorformat来解析跨越行的文件名:
/path/to/some/
file.txt
我正在寻找这个问题的解决方案,或者使用更多的vim魔法(也许我错过了一个很好的errorformat选项?),或者可能有latex
或pdflatex
的一些选项。任何解决方案都表示赞赏。
答案 0 :(得分:1)
我想我找到了一个很好的解决方案。显然,可以使用max_print_line=<number>
来设置乳胶日志输出的换行。因此,如果发出latex命令:
max_print_line=2000 pdflatex <filename>.tex
文件名被跨行破坏的问题可能会被解决,因为在它们达到2000列之前不会破坏行。
我首先通过this SO answer找到了这个解决方案。
因此,总结一下:我认为如果使用%P/%O/%Q
,那么用%r
和%f
解析文件名的max_print_line
指令应该有效。
注意:这是max_print_line,而不是max_print_lines。