summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/buctthesis/doc/chapter/chapter2.tex
blob: bafdf9b27bf29ab77b1e4e1c82ada2a9c55d84f1 (plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
%% 第二章--chapter2.tex
\chapter{示例}\label{chap:CodeIntro}
\section{公式与数学类环境}\label{subsec:eqandmath}
公式分为编号和不编号的两类。可以使用\env{equation}环境为公式编号。
\begin{equation}\label{eq:gougu}
	x_{1,2}=\frac{-b \pm \sqrt{b^2-4ac}}{2a}.
\end{equation}
加上 \cs{label},就能使用 \cs{ref}或 \cs{eqref}引用了。
代入式~\ref{eq:gougu},可解得式~\eqref{eq:gougu}。

不编号的公式使用 \env{equation*} 环境。
\begin{equation*}
	\int_{-\infty}^{+\infty}\frac{1}{\sqrt{2\uppi}\sigma}		% 直立的 π
	\mathrm{e}^{-\tfrac{(x-\mu)^2}{2\sigma^2}} \,\mathrm{d}x =1
\end{equation*}

行内公式可套以美元符号 \verb+$  $+,如 $f(x)=ax^2+bx+c$.
对于上述 \env{equation*} 环境中的公式(即行间公式),可套以双美元符号 \verb+$$  $$+
或 \verb+\[   \]+。
但是并不建议使用前者,因其在 \LaTeX\ 中并没有完整的重定义,有可能会在某些命令上失效。

关于公式的命令可以参考 \pkg{amsmath} 宏包说明文档,中译可参考 \href{http://static.latexstudio.net/article/2019/0204/amsmath-guide-zh-cn.pdf}{amsmath 包使用手册};
%除此之外可参考 \href{http://media.cism.it/attachments/ch8.pdf}{Higher Mathematics}。
还有一些在线网站,如 \href{https://latexlive.com/}{latexlive} 不仅能够即时预览,还提供了图像与手写识别系统。
以下举几个例子来展示最常见的用法:

由$\cos 2x=\cos^2x-\sin^2x$ ,	% 函数
则$\Vector{n}=a\Vector{x}+b\Vector{y}+c\Vector{z}.$	% 自定义向量,区别于\vec。见 mycfg.sty
又因$\mathcal{M}\in \mathbb{R}$,			% 字母样式
于是
\[
	\int_a^b f(t)\,\mathrm{d}t = \iint\limits_S g(x,y)\,\mathrm{d}x\mathrm{d}y
	= \iiint\nolimits_D\, \mathrm{d}h.	% 积分号及角标
\]
得
\[\lim_{n \to \infty}\sum_{i=1}^n{\frac{1}{n}}\sin\frac{k}{n}.\]	% 极限、无穷、求和
故
\begin{equation}\label{eq:res}
	\oint_{\gamma}f(z)\,\mathrm{d}z=2\uppi\symbfit{i}\sum^n_{k=1}\mathrm{I}(\gamma,a_k)\mathrm{Res}(f,a_k).
\end{equation}

若要公式多行对齐,可以使用 \env{align} 环境。下面的例子在等号处对齐:
\begin{align}
	x^2 + y^2 & = 1            \\
	x         & = \sqrt{1-y^2} \\\text{and also }
	y         & =\sqrt{1-x^2}
\end{align}
这会对每一行的公式进行编号。若在 \env{equation} 环境中嵌套 \env{aligned} 环境,加上参数[b]
可以达到多行对齐但只对最后一个式子编号的效果:
\begin{equation}
	\begin{aligned}[b]
		(a + b)^3   & = (a + b) (a + b)^2         \\
					& = (a + b)(a^2 + 2ab + b^2)  \\
					& = a^3 + 3a^2b + 3ab^2 + b^3
	\end{aligned}
\end{equation}

模板使用 \pkg{amsthm} 宏包预定义了部分与数学相关的环境,格式及编号如下:
\begin{axiom}
	这是一条axiom,使用\env{axiom}环境。
\end{axiom}
\begin{theorem}[某某定理]   % []内为可选参数
	这是一条theorem,使用\env{theorem}环境。
\end{theorem}
\begin{corollary}[一条推论]\label{cor:cor1}
	这是一条corollary,使用\env{corollary}环境。
\end{corollary}
\begin{proof}
	这是一条proof,使用\env{proof}环境。
	\[
		\Matrix{A}=\begin{bmatrix}
			a_{11} & \cdots  & a_{1n} \\
			\vdots & \ddots & \vdots \\
			0      & \cdots & a_{nn}
		\end{bmatrix}_{n\times n}
	\]

	在证明的最后一行会加上证毕符号,若其位置不合理则需加上命令 \cs{qedhere}。
	综上所述,推论 \ref{cor:cor1} 成立。
\end{proof}
\begin{remark}
	这是一条remark,使用\env{remark}环境。
\end{remark}
\begin{assumption}
	这是一条assumption,使用\env{assumption}环境。
\end{assumption}
\begin{definition}
	这是一条definition,使用\env{definition}环境。
\end{definition}
\begin{property}
	这是一条property,使用\env{property}环境。
\end{property}
\begin{proposition}
	这是一条proposition,使用\env{proposition}环境。
\end{proposition}
\begin{lemma}
	这是一条lemma,使用\env{lemma}环境。
\end{lemma}

以上是模板已经定义了的数学类环境,但也能自定义。
如:
\newtheorem{tale}{传说}[chapter]	% 计数与章编号相关
\begin{tale}[山经]	  % []内为可选参数
	精卫衔微木,将以填沧海。
\end{tale}
\begin{tale}[海经]
	刑天舞干戚,猛志固常在。
\end{tale}


\section{代码}\label{subsec:code}
若要在文中插入代码,简单的代码可以使用原文照列命令~\verb+\verb+或~\verb*@\verb*@,
比如~\verb-i++-、\verb*|int main|,二者区别在于,带*号的将展示代码中的空格。
如果插入代码块,可使用环境\env{lstlisting},且可以有如下选择:
\subsubsection{直接在 \LaTeX\ 中书写代码}
\begin{lstlisting}[language=C++,caption=Hello World!,label=code:HelloWorld]
/* Hello World C++ */
#include<iostream>
using namespace std;
/*****   main function	*****/
int main()
{
	cout<<"Hello World!"<<endl;		@*//Print "Hello World!", I'm \LaTeX{}!@*
	return 0;
}
\end{lstlisting}
\subsubsection{引用代码文件}
源代码存放于 \file{code/} 文件夹里,直接调用即可。
\lstinputlisting[
	language=C++,
	caption=你好,世界!,
	label=code:HelloWorld2
]{code/helloworld.cpp}

模板按照《规范》以 Times New Roman 字体书写代码。
代码的关键字以粗体标出,而注释(西文)使用斜体。
模板载入文档类时的 \opt{submit} 选项将关闭代码颜色。

代码 \ref{code:HelloWorld} 展示了如何从代码块中临时返回到 \LaTeX\ 中。

\section{化学类}
模板加载了 \pkg{mhchem} 宏包,方便了化学(方程)式的书写。
使用命令 \cs{ce}\marg{formula} 把化学(方程)式括起来。
\subsubsection{简单化学式}
\begin{table}[H]
	\centering
	\begin{tabular}{llllll}
		\ce{H2O}    & \ce{Sb2O3}  & \ce{KCr(SO4)2.12H2O} & \ce{CrO4^2-}                & \ce{[AgCl2]-}              & \ce{^{0}_{-1}M^{-}} \\
		\ce{$n$H2O} & \ce{H2(aq)} & \ce{KCr(SO4)2*12H2O} & \ce{Fe(CN)_{$\frac{6}{2}$}} & \ce{$cis${-}[PtCl2(NH3)2]} & \ce{\alpha-Al2O3}   \\
	\end{tabular}
\end{table}
\subsubsection{含键化学式}
\begin{table}[H]
	\centering
	\begin{tabular}{llll}
		\ce{A-B=C#D}                           & \ce{A\bond{-}B\bond{=}C\bond{#}D} & \ce{A\bond{1}B\bond{2}C\bond{3}D} & \ce{A\bond{~}B\bond{~-}C} \\
		\ce{A\bond{~--}B\bond{~=}C\bond{-~-}D} & \ce{A\bond{...}B\bond{....}C}     & \ce{A\bond{->}B\bond{<-}C}        &                           \\
	\end{tabular}
\end{table}
\subsubsection{化学方程式}
\begin{table}[H]
	\centering
	\begin{tabular}{llll}
		\ce{A ->[H2O] B} & \ce{A <=>[{上方文字}][{text below}] B} & \ce{A ->[$x$][$x_i$] B} & \ce{A v B (v) -> C ^ D (^)} \\
	\end{tabular}
\end{table}
\subsubsection{其他}
\begin{itemize}
	\item 标注(可能对 CJK 文字不支持):
			\ce{Zn^2+
			<=>[+ 2OH-][+ 2H+]
			$\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$
			<=>[+ 2OH-][+ 2H+]
			$\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$
			}
	\item 对于化学方程式等的编号,与数学方程相似:
			$$\ce{2H2O ->[{electrify}] 2H2 ^ + O2 ^}$$
			\begin{equation}
					K^\ominus  = \ce{\frac{[Hg^2+][Hg]}{[Hg2^2+]}}
			\end{equation}
\end{itemize}

至于有机化学结构式等,尽管有一些宏包可以绘制,但使用图片插入可能是一个更好
的选择。

\section{文献引用和参考文献}\label{sec:bib}
模板使用 \cs{cite}\marg{CiteKey}命令实现上标、方括号以“顺序编码制”引用参考文献,
这是学校《规范》的要求。一个例子。\cite{abbott2016observation}而使用
\cs{nocite}\marg{CiteKey}命令则指明不引用但需要列出的参考文献。\nocite{*}

同一处引用多个文献时,应将各篇文献的引用标签一同写在 \cs{cite} 命令中,
并以西文逗号“,”分隔各标签。所产生的样式为:当在同一处引用两篇参考文献时,
引用序号将以西文逗号分隔;
当多余两篇且连续时,将标示起止序号并以短划线相连。这\cite{texbook,latexrumen}
又是\cite{texbook,latexrumen,gbt7714-2005}一个例子。\cite{abbott2016observation,texbook,latexrumen,buctthesis}

关于 \file{thesisbib.bib} 文件的编辑,
可以使用\href{http://scholar.google.com.cn/}{谷歌学术}\footnote{亦可以访问国内镜像站。}%
或\href{http://xueshu.baidu.com}{百度学术}两种方式(方法类似)将文献数据导入\BibTeX{}数据库,大致方法如下:
\begin{itemize}
	\item 在搜索框中搜索题目(或作者、DOI等),确定所引用的论文后点击“引用”;并在弹出框中,单击最下方“BibTeX”的链接,如图~\ref{fig:addbib};
	\item 在弹出的网页中复制所有代码至 \file{thesisbib.bib} 文件;
	\item 在论文中使用 \cs{cite} 命令引用相应的文献。
	% 这里用了一条简单的自定义命令,用于快速插入单张图片,见 \file{mycfg.sty}文件。
	\addfig{AddBib.png}{在谷歌学术中导出参考文献的步骤}{fig:addbib}
\end{itemize}

举个例子:经过图~\ref{fig:addbib} 所示步骤后,弹出的网页文本如下:
\begin{lstlisting}
@article{abbott2016observation,
	title={Observation of gravitational waves from a binary black hole merger},
	author={Abbott, Benjamin P and Abbott, Richard and %(省略)
	},
	journal={Physical review letters},
	volume={116},
	number={6},
	pages={061102},
	year={2016},
	publisher={APS}
}
	\end{lstlisting}
将以上内容复制进 \file{thesisbib.bib},在论文中使用
\cs{cite\{abbott2016observation\}}即可引用此文献。
这里的 “abbott2016observation”是该篇参考文献的引用标签,可以修改。
再来一个\cite{ashirov2008tetramerization} ,
网络上的资源引用\cite{buctthesis},等。

\section{其他}\label{sec:other}

\subsection{脚注}\label{subsec:footnote}
本模板采用带圈数字脚注,计数跨页重置,使用命令 \cs{footnote}\marg{text}。
前方高能\footnote{我是可爱的脚注。}。

有些情况下(比如在表格环境、各种盒子内)使用 \cs{footnote}并不能正确生成脚注。
我们可以分两步进行,先使用 \cs{footnotemark}\oarg{text} 为脚注计数,
再在合适的位置用 \cs{footnotetext}\oarg{mark}\marg{text} 生成脚注。比如表~\ref{tab:ftnt1}。
\begin{table}[htb]
	\centering
	\caption{脚注示例1}
	\label{tab:ftnt1}
	\begin{tabular}{llll}
		\hline
		人之初                & 性本善 & 性相近 & 习相远 \\
		苟\footnotemark 不教 & 性乃迁 & 教之道 & 贵以专 \\
		\hline
	\end{tabular}
\end{table}
\footnotetext{苟:如果。}

利用 \pkg{threeparttable} 宏包提供的 \env{threeparttable} 环境可以实现在表格底下写脚注,见表~\ref{tab:ftnt2}。

\begin{table}[htb]
\centering
\begin{threeparttable}
	\caption{脚注示例2}\label{tab:ftnt2}
	\begin{tabular}{cccc}
		\toprule
		昔孟母	& 择邻处\tnote{*} & 子不学	& 断机杼\\
		\midrule
		窦燕山\tnote{$\dagger$}	& 有义方 & 教五子\tnote{$\ddagger$}	&名俱扬\\
		\bottomrule
	\end{tabular}
	\begin{tablenotes}\small
		\item [*] 脚注1。
		\item [$\dagger$] 脚注2。
		\item [$\ddagger$] 脚注3。
	\end{tablenotes}
\end{threeparttable}
\end{table}

\subsection{列表环境}\label{subsec:items}
本模板提供了三种列表环境:不编号的\env{itemize}、编号的\env{enumerate}
和使用关键字的\env{description}环境。在文档的中英文摘要部分分别展示了
基础的编号和不编号的列表环境;上面三种列表环境可以嵌套使用(至多四层),
且会自动处理不同层次的缩进和编号,如下所示:
\begin{itemize}
	\item 一条
	\item 次条
	\item 这一条可以分为\dots
		\begin{itemize}
			\item 子一条
		\end{itemize}
\end{itemize}
稍复杂一点的,如:
\begin{enumerate}
	\item 中文
		\begin{description}
			\item[文言文] 古代汉语
			\item[白话文] 现代汉语
				\begin{enumerate}
					\item 口语
						\begin{enumerate}
							\item 普通话
							\item 方言
						\end{enumerate}
					\item 书面语
				\end{enumerate}
		\end{description}
	\item English
\end{enumerate}

注意:一级编号列表环境最多罗列10条,否则标签会显示错误。
%,到第11条时,标签将从第10条的\ding{201}到第11条的\ding{202}