我手头有一个半坏的 LaTeX 项目。可以通过忽略大量错误来编译它,得到一个基本可以接受的结果。
但是现在我想修复错误,但是错误消息似乎没有显示文件名或行号?
主要的 TeX 文件名为PROGI_ProjektnaDokumentacija.tex
,其他的如下:
Arhitektura.tex
Dnevnik_promjena_dokumentacije.tex
Dodatak.tex
Implementacija.tex
Literatura.tex
Opis_projektnog_zadatka.tex
Specifikacija_programske_potpore.tex
Zakljucak.tex
我使用或来编译它pdflatex PROGI_ProjektnaDokumentacija.tex
(latexmk -pdf PROGI_ProjektnaDokumentacija.tex
但必须按回车键忽略许多错误)。
当我运行时latexmk -pdf PROGI_ProjektnaDokumentacija.tex
,会产生大量的输出,这是直到第一个错误为止的输出的结束:
[6] (/usr/share/texmf-dist/tex/latex/kpfonts/ts1jkp.fd)
Package fancyhdr Warning: \headheight is too small (12.0pt):
(fancyhdr) Make it at least 14.49998pt, for example:
(fancyhdr) \setlength{\headheight}{14.49998pt}.
(fancyhdr) You might also make \topmargin smaller to compensate:
(fancyhdr) \addtolength{\topmargin}{-2.49998pt}.
[7]
! LaTeX Error: There's no line here to end.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.91
?
同时,这是PROGI_ProjektnaDokumentacija.log
文件的结尾:
Overfull \hbox (3.47267pt too wide) in paragraph at lines 47--47
[][]\OT1/jkp/m/n/12 10.11.2022[]
[]
Overfull \hbox (3.47267pt too wide) in paragraph at lines 47--47
[][]\OT1/jkp/m/n/12 11.11.2022[]
[]
Overfull \hbox (3.47267pt too wide) in paragraph at lines 47--47
[][]\OT1/jkp/m/n/12 11.11.2022[]
[]
Overfull \hbox (3.47267pt too wide) in paragraph at lin
是的,最后一行突然结束。
如何诊断?
答案1
-file-line-error
Skillmon 用选项为我指明了正确的方向pdflatex
。这个选项本身似乎没有任何效果,但是后来我决定查看手册 ( man pdflatex
),这让我有了尝试这个选项的想法-halt-on-error
。这是成功的(启动 后不需要交互pdflatex
):
$ pdflatex -file-line-error -halt-on-error PROGI_ProjektnaDokumentacija.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./PROGI_ProjektnaDokumentacija.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-04-10>
(/usr/share/texmf-dist/tex/latex/base/report.cls
Document Class: report 2021/10/04 v1.4n Standard LaTeX document class
(/usr/share/texmf-dist/tex/latex/base/size12.clo))
[...]
[7]
./Opis_projektnog_zadatka.tex:91: LaTeX Error: There's no line here to end.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.91
./Opis_projektnog_zadatka.tex:91: ==> Fatal error occurred, no output PDF file
produced!
Transcript written on PROGI_ProjektnaDokumentacija.log.
当使用 LuaTeX 而不是 PDFTeX 时,一个问题是 LuaTeX 的命令行选项似乎存在错误,因为它似乎不支持某些没有额外前缀的选项。因此,我使用和-
重复了相同的选项:-
--
lualatex -file-line-error --file-line-error -halt-on-error --halt-on-error PROGI_ProjektnaDokumentacija.tex
和latexmk
:
latexmk -g -gg -lualatex -file-line-error --file-line-error -halt-on-error --halt-on-error PROGI_ProjektnaDokumentacija.tex
Michael Fraiman 的评论也很有帮助:
还要注意,这
[7]
意味着第 7 页已经生成,所以错误出现在第 8 页的某个地方。