LaTeX 报错问题汇总
VSCode Latex 编译报错问题汇总
使用 pdflatex 四步编译,下载的 IEEE 期刊模版,报错:
I found no \bibdata command
原因是该 receipe 使用了 bibtex 可执行文件,会需要 bib 引用作为输入,因此解决方法就是在.tex 文件的\end{document}前面加两句
1
2\bibliographystyle{IEEEtran}
\bibliography{refs.bib}然后创建 refs.bib, 看可否,不行的话,引用一个文献,就可以了
pdflatex 和 xelatex 区别
区别比较多,基本语言区别不大。比如字体方面,XeLaTeX 是可以直接调用操作系统字体的,多语言的场景,xelatex 使用比较方便,PDFLaTeX 是不行的。英文场景 pdflatex 足够用了。
vscode latex 中 sort bib 的功能,按照作者年份等排序,并可配置是否去重等,但是一般用不到.
latex 编译报错
- 杀掉 vscode 进程,重启 vscode
- 删除辅助文件,重新编译
- 检查 begin end {} 配对数目
- 检查公式的
_
是否转义 - 换 overleaf 编译一下试试
LaTeX 报错容易找不到的地方
- 作者邮箱中含有
_
等需要反斜杠转义的符号 - 作者的 bio 中含有
&
等需要反斜杠转义的符号
Latex no endif endfor
1 | \usepackage[noend]{algorithmic} |
伪代码 _
要写成\_
转义
Underfull hbox (badness 10000) in paragraph at lines
Underfull 是说该处排版内容太稀疏了(badness 10000) 是 TeX 衡量排版效果不好的一个尺度;可以通过使用空格符和换行符来进行处理。
Overfull 是说该处内容太多,超出了设定的印刷范围 49.88315 点。这多数是由于系统无法找到合适的自动换行点造成的。
不过这两个警告都不影响实际显示,若嫌麻烦,不处理也没事。造成
underfull 的原因有很多,最常见是在不该使用 \\
的地方使用了
\\
.
supplementary
supplementary 使用的包建议直接从主文件完全复制过来,然后加上以下两行:
1 | \usepackage{xr} |
如果主文件使用了 hyperref 包来点击跳转和加 bookmark,那 supplementary 还需要加上以下两行:
1 | \usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,urlcolor=black]{hyperref} |
最近使用的时候就因为主文件使用了 hyperref,然后 supplementary 没有加上这两行,导致引用主文件公式的时候名称多一些 section 名字,通过查看 aux 辅助文件,我料想应该是这个包的问题,尝试之后确实纠正了。
supplementary 使用 appendices 大片空白
当要把正文中的证明等换到 supplementary 中时,由于当时将正文的公式都使用了下面的命令进行空间压缩,因此 latex 的自动调整不合适了。因此去掉这些固定距离的代码,latex 自动调整就没有大片空白了。
1 | \setlength{\abovedisplayskip}{1pt} |