系统:MacOS Monterey
软件:MacTeX, VSCode
最近在尝试用LaTeX写东西,reference的问题真的是很让人头疼,有时能正常编译,有时则不明所以地报错。在此总结一下相关的方法。
引用文献的方法
可以通过apacite包引用APA格式的文献。在\begin{document}
前加入如下代码来使用apacite包。
\usepackage{apacite}
然后在\end{document}
前加入如下代码,citations
是你的bib文件的名字。
\bibliographystyle{apacite}
\bibliography{citations}
接着就可以在正文中引用文献了,\cite{}
是以(作者,年份)的格式引用,\citeA{}
则是以作者(年份)的格式引用。
文献文档的准备
见下图,我们需要将引文条目放到bib文件中,网站上一般都有BibTex格式的引文条目选项,复制到bib文件中即可。
这里有一个坑,bib文件中的格式是有要求的,例如下面这个条目,实际上是错误的,如果引用了这个条目,就无法正确的编译。
@article{schvaneveldt1988graph,
author = {Schvaneveldt, R W and Dearholt, D W and Durso, F T},
journal = {Computers & mathematics with applications},
number = {4},
pages = {337-345},
title = {Graph theoretic foundations of pathfinder networks},
volume = {15},
year = {1988}}
这是因为journal一栏的Computers & mathematics with applications使用了&
符号,这个符号在LaTeX中具有特殊用途,我们需要用\&
来代替&
,如下。
@article{schvaneveldt1988graph,
author = {Schvaneveldt, R W and Dearholt, D W and Durso, F T},
journal = {Computers \& mathematics with applications},
number = {4},
pages = {337-345},
title = {Graph theoretic foundations of pathfinder networks},
volume = {15},
year = {1988}}
编译的方法
如下图,在TeXShop界面——菜单栏——排版,先采用LaTeX编译一次(即编译tex文件,生成aux文件),然后采用BibTeX编译一次(即,基于aux文件编译bib文件),最后编译LaTeX两次。
不知道为什么TeXShop不让我进行LaTeX的编译,所以我是在VSCode里进行编译,BibTeX的编译则在TeXShop中进行。
编译BibTeX时,如果出现类似下图的结果,则需要排查错误。例如下图的报错信息为Warning--No journal in 1990Targeting
,说明bib文件中的名为1990Targeting
的文献条目缺少了journal信息,需要补充完整。有时候并不会告诉我们错误的原因,这就比较麻烦。
如果像下图这样,则说明BibTeX编译成功了。
此时就可以正常显示文献内容了。
此后,只要不改动所引用的参考文献(也就是\cite{}
),后续就不需要进行上述的四次编译,书写新的内容后,只需要编译LaTeX即可。