系統(tǒng):MacOS Monterey
軟件:MacTeX, VSCode
最近在嘗試用LaTeX寫東西伶跷,reference的問題真的是很讓人頭疼篓冲,有時(shí)能正常編譯辨宠,有時(shí)則不明所以地報(bào)錯(cuò)。在此總結(jié)一下相關(guān)的方法。
引用文獻(xiàn)的方法
可以通過apacite包引用APA格式的文獻(xiàn)。在\begin{document}
前加入如下代碼來使用apacite包。
\usepackage{apacite}
然后在\end{document}
前加入如下代碼,citations
是你的bib文件的名字惰爬。
\bibliographystyle{apacite}
\bibliography{citations}
接著就可以在正文中引用文獻(xiàn)了,\cite{}
是以(作者惫企,年份)的格式引用撕瞧,\citeA{}
則是以作者(年份)的格式引用。
文獻(xiàn)文檔的準(zhǔn)備
見下圖狞尔,我們需要將引文條目放到bib文件中丛版,網(wǎng)站上一般都有BibTex格式的引文條目選項(xiàng),復(fù)制到bib文件中即可沪么。
這里有一個(gè)坑硼婿,bib文件中的格式是有要求的,例如下面這個(gè)條目禽车,實(shí)際上是錯(cuò)誤的,如果引用了這個(gè)條目刊殉,就無法正確的編譯殉摔。
@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}}
這是因?yàn)閖ournal一欄的Computers & mathematics with applications使用了&
符號(hào),這個(gè)符號(hào)在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不讓我進(jìn)行LaTeX的編譯翰意,所以我是在VSCode里進(jìn)行編譯木人,BibTeX的編譯則在TeXShop中進(jìn)行。
編譯BibTeX時(shí)冀偶,如果出現(xiàn)類似下圖的結(jié)果醒第,則需要排查錯(cuò)誤。例如下圖的報(bào)錯(cuò)信息為Warning--No journal in 1990Targeting
进鸠,說明bib文件中的名為1990Targeting
的文獻(xiàn)條目缺少了journal信息稠曼,需要補(bǔ)充完整。有時(shí)候并不會(huì)告訴我們錯(cuò)誤的原因客年,這就比較麻煩蒲列。
如果像下圖這樣,則說明BibTeX編譯成功了搀罢。
此時(shí)就可以正常顯示文獻(xiàn)內(nèi)容了蝗岖。
此后,只要不改動(dòng)所引用的參考文獻(xiàn)(也就是\cite{}
)榔至,后續(xù)就不需要進(jìn)行上述的四次編譯抵赢,書寫新的內(nèi)容后,只需要編譯LaTeX即可唧取。