使用输入文件时将偏移量添加到行号(在错误消息中)

使用输入文件时将偏移量添加到行号(在错误消息中)

我正在编译一个乳胶文档,当我遇到错误时,我会收到类似的消息

l.1041 \end{frame}

它告诉我第 1041 行之前的某处有错误。到目前为止一切顺利。我可以使用我的文本编辑器快速找到第 1041 行。

但有时我有一个乳胶文档(例如main.tex),其中包含类似

\input{../my_headers}

在文件开头。现在,如果 latex 告诉我第 1041 行有错误,则它指的是插入到其中的main.tex由组成的源代码my_headers.tex。因此,如果我编辑实际文件main.tex,则第 1041 行并不对应于错误位置。我想要的位置是 1041 减去 中的行数my_headers.tex

因此,我可以手动计算它,或者编写一个脚本,但似乎必须有一个简单的选项来告诉 latex 在计算行号时忽略输入/包含文件。

有任何想法吗?

答案1

错误消息中显示的数字始终指的是当前正在读取的文件中的行号,因此无需计算偏移量。

因此,如果出现如下消息

l.1041 \end{frame}

出现时,它指的是日志中括号后面最后一个文件中的行号(,在你的情况下,可能是

(./my_headers.tex

将在日志中错误消息之前的几行中出现。如果您使用该-file-line-error选项启动排版引擎,您将获得更多信息,例如

./my_headers.tex:13: Undefined control sequence
l.13 \wronglytypedcommand

因此,调用应该是

pdflatex -file-line-error <other options> main

其中<other options>可能包含常用选项,如-synctex=1。如何添加此选项取决于从前端或编辑器启动排版的方式。

相关内容