3.1 基本的参考文献引用方式
在源代码结尾处,加入由thebibliography
环境包裹的参考文献。每条参考文献由 \bibitem
开头,其后是参考文献本身的内容。在正文中相应位置使用\cite{⟨citation⟩}
进行引用:⟨citation⟩
为对应的需要引用文献的[]
内容。
\begin{thebibliography}{⟨widest label⟩} %⟨widest label⟩表示参考文献的最大数目,一般填99表示最多可引用99条参考文献。
\bibitem[⟨item number⟩]{⟨citation⟩} % ⟨item number⟩ 自定义参考文献的序号,一般情况下都会省略,按自然排序给定序号。⟨citation⟩ 是\cite使用的文献标签,
\bibitem[⟨item number⟩]{⟨citation⟩}
\bibitem{cs-c-svm}卢丹,殷亚强.基于CS-C-SVM的多参数GNSS欺骗干扰检测[J/OL].信号处理:1-10[2021-11-27] %一个例子,正文引用使用\cite{cs-c-svm}
\end{thebibliography}
注:参考文献的应用样式一般是GB/T 7714-2015
新国标,在知网下首先点击下图的1处位置,即可找到需要格式的引文,其余网站同理。
以上生成的参考文献样式是[1]
,要想实现上标的参考文献还得在导言区加入以下代码,并在正文引用时使用\upcite{}
命令。
%%% 导言区加入以下代码
\newcommand{\upcite}[1]{\textsuperscript{\textsuperscript{\cite{#1}}}}
thebibliography
环境自动生成不带编号的一节(article 文档类)或一章(report / book 文档类)。在 article 文档类的节标题默认为 “Reference”,而在 report / book 文档类的章标题默认 为 “Bibliography”。
以下给出一个示例代码:
\documentclass{article}
\usepackage{ctex}
\begin{document}
\section{引用参考文献}
这里做一个示例,对GNSS的文章做一个引用\cite{cs-c-svm},还有第二个上标引用\upcite{ins-gnss}。
\begin{thebibliography}{99}
\bibitem{cs-c-svm}卢丹,殷亚强.基于CS-C-SVM的多参数GNSS欺骗干扰检测[J/OL].信号处理:1-10[2021-11-27].http://kns.cnki.net/kcms/detail/11.2406.TN.20211122.1852.006.html.
\bibitem{ins-gnss}刘娣,刘坤,毕云蕊,许有熊,朱松青.基于图优化的INS/GNSS深组合导航系统研究[J/OL].电光与控制:1-7[2021-11-27].http://kns.cnki.net/kcms/detail/41.1227.tn.20211117.2037.003.html.
\end{thebibliography}
\end{document}
3.2 利用BIBTEX进行参考文献引用
在上一节中的thebibliography
环境中已经可以实现参考文献的引用了,但是这种参考文献的引用方式不方便在各个参考文献的列表样式间迁移(不同的期刊可能有不同的要求),而且这样的排序十分不利于管理,所以下面介绍一种更方便管理的参考文献引用方式:BIBTEX。
- 建立
.bib
文献库并将其存入.tex
文件的同级目录:其内容是若干个文献条目,建立方式为在Winedt内新建文件,保存时命名为xxx.bib
即可。一般情况下BIBTEX 文献条目不需要自己手写,从 Google Scholar 或者知网/万方等网站上都能够导出 BIBTEX 文献条目,大部分的文献管理软件也支持生成 BIBTEX 格式的数据库。
Google Scholar 文献条目的生成:
如上图所示,先找到需要引用的文献,点击1处的双引号,在引用格式里选择BibTeX,即可得到以下内容:
@article{groves2015principles, %这个是\cite{}引用的标签 title={Principles of GNSS, inertial, and multisensor integrated navigation systems, [Book review]}, author={Groves, Paul D}, journal={IEEE Aerospace and Electronic Systems Magazine}, volume={30}, number={2}, pages={26--27}, year={2015}, publisher={IEEE} }
将其复制到上面新建的
.bib
文件中,第一行的括号里包含的即是正文引用的标签。
除了以上的方式,还可以使用文献管理软件进行文献条目的生成(后面介绍文献管理软件时会提到)。
-
设定参考文献的格式:参考文献的写法在不同文献里千差万别,包括作者、标题、年份等各项的顺序和字体样式、 文献在列表中的排序规则等。BIBTEX 用样式(style)来管理参考文献的写法。BIBTEX 提供了几 个预定义的样式,如
plain, unsrt, alpha
等。如果使用期刊模板的话,可能会提供自用的样式。 样式文件以 .bst 为扩展名。 使用样式文件的方法是:在源代码内(一般在导言区)使用\bibliographystyle
命令:\bibliographystyle{⟨bst-name⟩}
,这里 ⟨bst-name⟩ 为 .bst 样式文件的名称,不要带 .bst 扩展名。若使用预定义的样式,使用\bibliographystyle{plain}
即可; -
正文中使用
\cite{}
命令进行引用,在文末生成参考文献列表的时候,通常只列出正文引用过的文献,而不是.bib
文件中的所有参考文献; -
在需要列出参考文献的位置,使用
\bibliography
命令:\bibliography{⟨bib-name⟩}
,其中 ⟨bib-name⟩ 是 BIBTEX 数据库的文件名,不要带 .bib 扩展名。 -
进行编译,编译顺序为:
xelatex->bibtex->xelatex->xelatex
,注意这儿需要进行三次xelatex编译和一次bibtex编译,bibtex编译可使用快捷键Shift+Ctrl+B
。以下给出一个示例代码:
\documentclass{article} \bibliographystyle{plain} \begin{document} \section{Some words} Some excellent books, for example\cite{groves2015principles,hofmann2007gnss}. \bibliography{ref}% bib文献库的名字 \end{document}
%下面为示例代码对应的bib文献库内容 @article{groves2015principles, title={Principles of GNSS, inertial, and multisensor integrated navigation systems, [Book review]}, author={Groves, Paul D}, journal={IEEE Aerospace and Electronic Systems Magazine}, volume={30}, number={2}, pages={26--27}, year={2015}, publisher={IEEE} } @book{hofmann2007gnss, title={GNSS--global navigation satellite systems: GPS, GLONASS, Galileo, and more}, author={Hofmann-Wellenhof, Bernhard and Lichtenegger, Herbert and Wasle, Elmar}, year={2007}, publisher={Springer Science \& Business Media} }
3.3 正文引用的形式
LaTeX提供了对人名——年份的引用方式的处理:例如natbib
宏包在正文中支持两种引用方式:\citep{⟨citation⟩}
和 \citet{⟨citation⟩}
,它们分别生成形如 (Axford et al., 2013) 和 Axford et al. (2013) 的人名——年份引用。
其次,natbib 宏包同样也支持数字引用,并可以将引用的序号压缩,例如: 使用\usepackage[numbers,sort&compress]{natbib}
调用 natbib 宏包时指定以上选项后,连续引用多篇文献时,会生成形如 [3–7] 的引用而不是 [3, 4, 5, 6, 7]。
3.4 latex编译过程
下面解答一个问题:为什么有时候需要编译两次或者三次才能生成完整的PDF文件呢?
除了源代码文件 .tex 以外,我们在使用 LATEX 时还可能接触到各种格式的文件。本节简单 介绍一下在使用 LATEX 时能够经常见到的文件。 每个宏包和文档类都是带特定扩展名的文件,除此之外也有一些文件出现于 LATEX 模板中:
-
.sty
宏包文件。宏包的名称与文件名一致。 -
.cls
文档类文件。文档类名称与文件名一致。 -
.bib
BIBTEX 参考文献数据库文件。 -
.bst
BIBTEX 用到的参考文献格式模板。
LATEX 在编译过程中除了生成 .dvi 或 .pdf 格式的文档外,还可能会生成相当多的辅助文件和日志。一些功能如交叉引用、参考文献、目录、索引等,需要先通过编译生成辅助文件,然后再次编译时读入辅助文件得到正确的结果,所以复杂的 LATEX 源代码可能要编译多次。这些辅助中间文件在下面被列出:
-
.log
排版引擎生成的日志文件,供排查错误使用。 -
.aux
LATEX 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等。 -
.toc
LATEX 生成的目录记录文件。 -
.lof
LATEX 生成的图片目录记录文件。 -
.lot
LATEX 生成的表格目录记录文件。 -
.bbl
BIBTEX 生成的参考文献记录文件。 -
.blg
BIBTEX 生成的日志文件。 -
.idx
LATEX 生成的供 makeindex 处理的索引记录文件。 -
.ind
makeindex 处理 .idx 生成的用于排版的格式化索引文件。 -
.ilg
makeindex 生成的日志文件。 -
.out
hyperref 宏包生成的 PDF 书签记录文件。