Latex_note_5

Latex_note_5

Charles Lv7

Latex_note_5

Latex中的参考文献

Latex中的参考文献BibTex

课程代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
% 导言区
\documentclass{ctexart}%book,report,letter

% 正文区(文稿区)
\begin{document}
%一次管理,一次使用的参考文献格式:
% \begin{thebibliography}
% \bibitem[label]{citekey}文献条目1
% \bibitem[label]{citekey}文献条目2
% ……
% \end{thebibliography}
引用一片文章\cite{arcticle1} 引用一本书\cite{book1}等等

\begin{thebibliography}{99}
\bibitem{arcticle1}陈立辉,苏伟,蔡川,陈晓云.\emph{基于LaTex的Web数学公式提取方法研究}[J].计算机科学.2014(06)
\bibitem{book1}William H.Press,Saul A.Teukolsky,
William T.Vetterling,Brian P.Flannery,
\emph{Numerical Recipes 3rd Edition:
The Art of Scientific Computing}
Cambridge University Press ,New York,2007.
\bibitem{latexGuide} Kopka Helmut,W.Daly Patrick,
\emph{Guide to \ LaTeX},$4^{th}$ Edition.
Available at \texttt{http://www.amazon.com}
\bibitem{latexMath} Graetzer George,\emph{Math Into \ LaTeX},
BirkhAuser Boston; 3 edition (June 22,2000).
\end{thebibliography}
\end{document}

课程内容细节:

  1. 一次管理,一次使用的参考文献格式:
1
2
3
4
5
\begin{thebibliography}
\bibitem[label]{citekey}文献条目1
\bibitem[label]{citekey}文献条目2
……
\end{thebibliography}

其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
引用时可以采用:\cite{citekey1,citekey2……}

  1. 可以在查文献时选择bibtex格式的参考文献以进行参考文献的应用等操作。具体操作见视频:LaTeX中的参考文献BibTex

课程代码效果图:

image-20230202125112772

Latex中的参考文献BibLaTeX

课程代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
% 导言区
\documentclass{ctexart}%book,report,letter

%biblatex/biber
%新的TEX参考文献排版引擎
%样式文件(参考文献样式文件--bbx文件,引用样式文件--cbx文件)使用LATEX编写
%支持根据本地化排版,如:
% biber -l zh__pinyin texfile,用于指定按拼音排序
% biber -l zh__stroke texfile,用于按笔画排序
% 正文区(文稿区)
\begin{document}

\end{document}

课程内容细节:

  1. 样式文件(参考文献样式文件–bbx文件,引用样式文件–cbx文件)使用LATEX编写
  2. 更多细节见:LaTeX中的参考文献BibLaTeX
  3. BibLatex编写思想为一次管理多次使用

课程代码效果图:

无~

参考解读

论文编号

LaTeX的自动编号

我们在一个有序列表中,都是用\item来表示一个个条目,却从来没有指定这是第几条条目。在我们按下排版按钮后,LaTeX自动给我们的条目标好了编号。这样的话,比如说我们想在第二条条目和第三条条目之间增加一条条目,只需要加一个\item即可,而不需要把接下来的所有条目的编号都加一。这就叫LaTeX的自动编号。

图片和表格的自动编号都是由\caption{}命令控制的。在默认情况下,图片和表格的编号都是全局顺序编号。也就是说,如果一张图片是整个文档中出现的第3张图片,那么它的编号就是3. 这种编号方式多见于论文。在书中常见的编号方式是章节内编号。

我们需要的是counterwithin. 首先,我们需要给出的是环境名。比如说,我们想改变的是表格环境的编号方式,环境名就是table, 图片的环境名就是figure. 接下来,我们需要考虑的是这个编号是跟着哪个编号走的。比如说,如果我需要表格的编号跟着section走,即section的编号是1,那么该章节内第三个出现的表格的编号就是1.3, 如果表格的编号跟着subsection走,即subsection的编号是1.3, 那么该子章节内第三个出现的表格的编号就是1.3.3. 下面假设我们要改变的是表格环境的编号方式,让它跟着subsection走,那么我们需要在导言区写的是:

1
\counterwithin{table}{subsection}
交叉引用

在我们写论文的过程中,我们可能会用到之前写过的东西。比如说,我的这步结论是根据之前的某个表格得出的。那么,按照LaTeX的哲学,我们可以不用在源码中写出具体的编号,因为编号是LaTeX自动帮我们编的。那么,我们该如何做呢?LaTeX提供了两个指令:\ref{}\label{}.

\label{}做的,是给我们想要引用的表格或是其他有编号的东西起个别名,而\ref{}做的是根据别名找到对应的编号。比如说,我给某个表格起了个叫adjTab的别名,那么\ref{adjTab}在编译后会自动变成该表格的编号。

那我们的\label{}该放在哪里呢?放在产生编号的命令后面。 这是什么意思呢?比如说,我要引用一个章节section{}的编号,那么我们应该写的是\section{Title}\lable{aLabel}. 而我们之前讲过,图片和表格的编号都是由\caption{}控制的,所以我们应该写的是\caption{Title}\label{aLabel}。除此之外,我们可以在前面去引用后面的编号。比如说,在某段之后会出现一个表格,但我在这表格之前的那段里就可以用\ref来引用这个表格的编号。

我们在编译LaTeX的时候,会发现除了.pdf文件以外,还生成了其他文件。LaTeX在编译的时候,会搜集所有的\label命令,在编译生成的.aux文件中创建一个对应表,一个label名对应一个编号。此时,\ref命令是不管用的,因为在处理\ref命令的时候,那个表还没有建成,所以第一次编译出来的结果,\ref命令对应的位置都是"??". 在我们再一次编译之后,\ref才会出现正确的编号。

参考文献

面介绍手动控制参考文献的方法:在正文中使用thebibliography环境。例如:

1
2
3
4
5
6
7
8
9
\begin{thebibliography}{99}
\bibitem{CPStructure}{Borgatti, S. and Everett, M. Models of core/periphery structures. Social Networks, 21:
375-395, October 2000}
\bibitem{rightskewed}{Newman, M. The structure and function of complex networks. SIAM Review, 45:167-256, 2003.}
\bibitem{CD}{Natarajan Meghanathan.A Binary Search Algorithm for Correlation Study of Decay Centrality vs. Degree Centrality and Closeness Centrality[J].Computer and information science,2017,10(2):52-75.}
\bibitem{CC}{Masucci, A. Paolo,Molinero, Carlos.Robustness and closeness centrality for self-organized and planned cities[J].The European physical journal, B. Condensed matter physics,2016,89(2):-.}
\bibitem{SA}{Chengxiang Zhuge,Chunfu Shao,Shuling Wang, et al.Sensitivity analysis of integrated activity-based model: using MATSim as an example[J].Transportation Letters,2019,11(2):93-103. DOI:10.1080/19427867.2017.1286772.}
\bibitem{CE}{L. Laporta,J. Afonso,I. Mesquita.The need for weighting indirect connections between game variables: Social Network Analysis and eigenvector centrality applied to high-level men’s volleyball[J].International Journal of Performance Analysis in Sport,2018,18(6):1067-1077. DOI:10.1080/24748668.2018.1553094.}
\end{thebibliography}

\begin{thebibliography}后还有一个{99}, 这是参考文献的最大条数,在这之间的每一个\bibitem代表一条参考文献。同样地,这是LaTeX自动帮你编号的。它实际上只有一个参数,我之所以写了两个大括号,是方便我们理解和使用。\bibitem{aRef}{aContent} , 排版出来的效果只有aContent. aRef有什么用呢?它用于文章前面的交叉引用(关于这个我后面的文章里会详细说明)。这里只需要知道一点,在文章后面写了以后,在文章正文内就能使用\cite{aRef}来引用这条参考文献。排版出来的效果为出现这个参考文献对应的编号。如果需要将编号置于右上角,则可以在导言区里写

1
\newcommand{\upcite}[1]{\textsuperscript{\cite{#1}}} 

然后在正文中使用\upcite{aRef}即可。

而这些参考文献的格式从哪来,我们一般是在百度学术或者Google学术上,找到对应的论文,然后点引用,会出现三种格式。我们直接复制GB/T 7714即可。

附录

使用附录的方式有许多种,我常用的是使用宏包appendix,其他方法大家也可以自行搜索。

在导言区里写上:

1
\usepackage[toc, page]{appendix} 

然后,在正文中想要出现附录的地方使用appendices环境,并且添加一句话,即:

1
2
3
\begin{appendices}
\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
\end{appendices}

然后,在这个环境中用\section{}等命令就能产生附录中的章节了。那句额外的代码,是为了不在目录中出现每个附录章节的名字,而只在目录中出现一个附录代表全体。

对于中文文档类,如ctexart等,需要在导言区\usepackage[toc, page]{appendix}之后加上两句话:

1
2
\renewcommand{\appendixtocname}{附录}
\renewcommand{\appendixpagename}{附录}

这两个的作用,一个是在目录中用“附录”替换"appendices", 一个是在正文中用“附录”替换"appendices".

Latex中的自定义命令和环境

课程代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
% 导言区
\documentclass{ctexart}%book,report,letter

%\newcommand{cmd}[args][default]{def}
%\renewcommand{cmd}[args][default]{def}
%字符串替换
\newcommand{\PRC}{People's Republic of \emph{China}}
%参数
\newcommand{\loves}[2]{#1 喜欢 #2}
\newcommand{\hatedby}[2]{#2 不受 #1 喜欢}
%默认参数
\newcommand{\love}[3][喜欢]{#2#1#3}
%\renewcommand
\renewcommand{\abstractname}{内容简介}

%\newenvironment{nam}[args][default]{begdef}{enddef}
%\renewenvironment{name}[args][default]{begdef}{enddef}
%为book类定义摘要(abstract)环境
\newenvironment{myabstract}[1][摘要]{
\small
\begin{center}
\bfseries #1
\end{center}
\begin{quotation}
}{\end{quotation}}

%环境参数
\newenvironment{Quotation}[1]%
{\newcommand{\quotesource}{#1}%
\begin{quotation}}%
{\par\hfill---《\textit{\quotesource}》%
\end{quotation}}

% 正文区(文稿区)
\begin{document}
%字符串替换

\PRC
%参数

\loves{猫儿}{鱼}

\hatedby{猫儿}{萝卜}
%默认参数

\love{猫儿}{鱼}

\love[最爱]{猫儿}{鱼}

%\renewcommand
\begin{abstract}
这是一段摘要……
\end{abstract}

\begin{myabstract}[我的摘要]
这是一段自定义摘要……
\end{myabstract}


\begin{Quotation}{易$\cdot$乾}
初九,潜龙勿用。
\end{Quotation}
\end{document}

课程内容细节:

  1. \newcommand-定义命令,命令只能由字母组成,不能以\end开头。

  2. \newcommand命令可以是简单的字符串替换,如

1
\newcommand{\PRC}{People's Republic of \emph{China}}
  1. \newcommand也可以使用参数,参数可以从1到9,使用时用#1,#2……#9表示
  2. \newcommand的参数也可以有默认值,指定参数个数的同时指定了首个参数的默认值,那么这个命令的第一个参数就成为可选的参数(要使用中括号指定)
  3. \renewcommand-重定义命令,与\newcommand命令作用和用法相同,但只能用于已有命令。
  4. 可以使用\newenvironment和\renewenvironment来定义新环境。且\newcommand和\newenvironment可以嵌套使用。
  5. 环境参数只能在环境前定义{begdef}中可以使用参数,环境后定义{enddef}中不能再使用环境参数。如果需要,可以先把前面得到的参数保存在一个命令中,在后面使用。

课程代码效果图:

image-20230202134825976

详细解读

自定义指令

\newcommand用于定义新命令。LaTeX的定义指令的方式有两类:def类和new类。比如说,我已经有一个指令叫\cmd\cmd1, 我要定义一个新的指令\cmd2, 它是先使用\cmd, 再使用\cmd1. 那么我们有如下两种定义方法:

1
\def\cmd2{\cmd\cmd1}

或者

1
\newcommand\cmd2{\cmd\cmd1}

可以直观地认为,就是在接下来文中出现\cmd2的地方,都直接用\cmd\cmd1来代替。

但是,\def命令和\newcommand命令也有区别,如果我定义了一个指令,它的名字已经被别的指令用了,那么\def命令则是直接替代,\newcommand命令会报错,我们用\renewcommand则不会报错。

对于定义带参数的命令,比如说,我们已经有了两个指令\cmd{}\cmd1{},我想定义指令\cmd2{}{},它接受两个参数,第一个参数传给\cmd{}, 第二个参数参数传给\cmd1{},这时候我们可以写

1
\def\cmd2#1#2{\cmd{#1}\cmd1{#2}}

或者

1
\newcommand\cmd2[2]{\cmd{#1}\cmd1{#2}}

对于\def指令,有几个参数就写几个#, 对于\newcommand指令,[]中直接写参数的数量。

自定义环境

如果我要新定义一个环境,则使用命令\newenvironment命令。比如说,我现在已经有一个叫env的环境,我想新定义一个叫env1的环境,它先进入env环境,再在环境内执行\cmd指令。那么,我们的写法为

1
\newenvironment{env1}{\begin{env}\cmd}{\end{env}}

{\env1}之后的第一个大括号内,写的是内容,可以理解为在遇到\begin{env1}时直接替换;第二个大括号内,遇到\end{env1}时直接替换。

最后,介绍一些作用域。和部分编程语言一样,LaTeX也有块级作用域。在LaTeX中,作用域由{...}及环境\begin{env}...\end{env}构成。比如说我们之前提到的\beseries命令,它使它所在的作用域内的所有文字变成粗体,于是我们可以写{\bfseries This is bold} and this is normal.这样, This is bold会是粗体,而and this is normal则会变回正常。在任何环境之间,也是如此。

  • Title: Latex_note_5
  • Author: Charles
  • Created at : 2023-02-02 12:13:58
  • Updated at : 2023-08-17 09:44:53
  • Link: https://charles2530.github.io/2023/02/02/latex-note-5/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments