我的问题是调试一个包含多个输入文件的大型 LaTeX 项目(一本书)。每个错误的行都引用当前输入文件,但文件的名称在之前的编译消息中丢失了,找到它很费劲。有没有办法告诉 LaTeX 在错误行前面加上文件名作为前缀?
在写作过程中,我发现类似问题,不幸的是没有答复。
答案1
web2c tex 有一个命令行参数:
$ tex err
This is TeX, Version 3.1415926 (TeX Live 2013)
(./err.tex
! Undefined control sequence.
l.4 \zzz
? x
No pages of output.
Transcript written on err.log.
$ tex -file-line-error err
This is TeXk, Version 3.1415926 (TeX Live 2013)
(./err.tex
./err.tex:4: Undefined control sequence.
l.4 \zzz
?
答案2
由于您使用终端,因此您可以-file-line-error
通过执行以下操作来全局启用该选项
sudo emacs $(kpsewhich texmf.cnf)
(当然,使用你最喜欢的编辑器;如果sudo
不是在你的系统上进行系统维护的方式,你肯定知道如何获得适当的权限)并附加
file_line_error_style = t
到打开的文件。如果 TeX 发行版是“vanilla”,则文件应该是
/usr/local/texlive/2013/texmf.cnf
而在 Debian 上提供的打开的文件应该是
/etc/texmf/web2c/texmf.cnf
将显示有关在何处添加texmf.cnf
包含该行的新文件的说明。如果您已经创建了一个/etc/texmf.d/texmf.cnf
文件,则将该行附加到该文件中。
file_line_error_style
或者,在环境中设置变量;例如,添加
export file_line_error_style=t
到您的.bashrc
或.profile
。