latex方法快速检索
- 本文主要为国赛论文书写服务,利用的是Github上cumcmthesis论文模板
- 本文部分节选自:https://zhuanlan.zhihu.com/p/456055339?utm_source=wechat_session&utm_medium=social&utm_oi=1205892532468609024&utm_campaign=shareopn
前序
- 文件的正文部分需要放入document环境中
\begin{document}
...
\end{document}
-
宏包cumcmthesis涵盖了很多,具体可以去看
-
正文直接在document环境中书写,不用加入空格缩进,文档默认进行首行缩进。
-
相邻的两行在编译时仍然会视为同一段。LaTeX中,另起一段需要使用一行相隔,例如:
第一段
第二段
- 换页
\newpage
正文部分
- 列表
- 有序列表
\begin{enumerate}
\item ...
\item ...
\item ...
\end{enumerate}
% 或者自定义item样式
\begin{enumerate}
\item[(1)] ...
\item[(2)] ...
\item[(3)] ...
\end{enumerate}
- 无序列表
\begin{itemize}
\item one
\item two
\item ...
\end{itemize}
- 字体
\textbf{} % 加宽加粗
\textsc{} % 小型大写
\textsl{} % 倾斜:英文有效
\textup{} % 直立
\textit{} % 意大利斜体:英文有效
\verb|你的内容| % 文段中的英文与英文符号组合都可以这样写,可以防止一些语法的干扰
- 章节划分
\section{}
\subsection{}
\subsubsection{}
- 插入图片
- figure环境是一个浮动体环境,图片的最终位置可能会跑动
- 常用选择项[htbp]是浮动格式:
- [h]:here,当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩页面不够,这一参数将不起作用。
- [t]: top,顶部。将图形放置在页面的顶部。
- [b]: bottom,底部。将图形放置在页面的底部。
- [p]: page of its own,浮动页。将图形放置在一个允许有浮动对象的页面上。
- 可以使用[htb],[btp]这样的组合。只要这几个参数在花括号里面,作用不分先后顺序。LaTex会尽量满足排在前面的浮动格式。
- [!h]只是试图放在当前位置。如果页面剩下的部分放不下,还是会跑到下一页。感叹号是指忽略了一些浮动体的严格规则
\begin{figure}[htbp]
\centering
\includegraphics[width=.8\textwidth]{smokeblk.pdf}
\caption{电路图}
\label{fig:circuit-diagram}
\end{figure}
% [htbp]的作用是自动选择插入图片的最优位置,
% \centering设置让图片居中
% [width=]设置了图片的宽度
% \caption{}用于设置图片的标题
% \label{fig:circuit-diagram}是一个标签,供交叉引用使用的。
% 交叉引用,就是说:我在插入一张图片以后(假设这张图片已有编号),现需要在文段部分对这张图片进行引用说明。
% 引用语法为:\cref{fig:circuit-diagram} (动手试一下就知道效果了)。
% 图片是自动编号的。\cref{label}由cleveref宏包提供,比普通的\ref{label}更加自动化。
% 图片并排: minipage环境展示
% 以下例子用到了subcaption命令,需要加载subcaption宏包。
\begin{figure}
\centering
\begin{minipage}[c]{0.3\textwidth}
\centering
\includegraphics[width=0.95\textwidth]{f1}
\subcaption{流程图}
\label{fig:sample-figure-a}
\end{minipage}
\begin{minipage}[c]{0.3\textwidth}
\centering
\includegraphics[width=0.95\textwidth]{f1}
\subcaption{流程图}
\label{fig:sample-figure-b}
\end{minipage}
\begin{minipage}[c]{0.3\textwidth}
\centering
\includegraphics[width=0.95\textwidth]{f1}
\subcaption{流程图}
\label{fig:sample-figure-c}
\end{minipage}
\caption{多图并排示例}
\label{fig:sample-figure}
\end{figure}
% 这相当于整体是一张大图片
% 大图片引用是\cref{fig:sample-figure}
% 子图引用别分是\cref{fig:sample-figure-a}、\cref{fig:sample-figure-b}、\cref{fig:sample-figure-c}。
% 如果原本两张图片的高度不同,但是希望它们缩放后等高的排在同一行,参考:
\begin{figure}
\centering
\begin{minipage}[c]{0.48\textwidth}
\centering
\includegraphics[height=0.2\textheight]{cat}
\subcaption{一只猫}
\end{minipage}
\begin{minipage}[c]{0.48\textwidth}
\centering
\includegraphics[height=0.2\textheight]{smokeblk}
\subcaption{电路图}
\end{minipage}
\caption{多图并排示例}
\end{figure}
- 表格
直接使用Create LaTeX tables online – TablesGenerator.com来生成
https://www.tablesgenerator.com/#
\begin{table}[!htbp]
\caption{中文标题} \label{tab:xxx} \centering
\begin{tabular}{cc...c}
\toprule[1.5pt]
表头第1个格 & 表头第2个格 & ... & 表头第n个格 \\
\midrule[1pt]
表中数据(1,1) & 表中数据(1,2) & ... & 表中数据(1,n) \\
表中数据(2,1) & 表中数据(2,2) & ... & 表中数据(2,n) \\
................................................... \\
表中数据(m,1) & 表中数据(m,2) & ... & 表中数据(m,n) \\
\bottomrule[1.5pt]
\end{tabular}
\end{table}
- 产生垂直空间/空行
\bigskip % 通常大约一行空间,带有拉伸和收缩
\medskip % 通常约为行空间的一半,具有拉伸和收缩功能
\smallskip % 通常约为行距的四分之一,具有拉伸和收缩功能
~\\ % 一个空行
- 公式
- 以下仅例子简单介绍了基础的使用,对于更复杂的需求,可以阅读相关的宏包手册,如
http://texdoc.net/texmf-dist/doc/latex/amsmath/amsldoc.pdf - 在数学环境里面,字体用的是数学字体,一般与正文字体不同。假如要公式里面有个别文字,则需要把这部分放在text环境里面,即\text{文本环境}
- 公式中个别需要加粗的字母可以用 $\bm{math symbol}$。如 $ \alpha a\bm{\alpha a} $
- 记得善用latex在线编辑器
% 行内公式:
$$包裹
% 行间公式
\[
E=mc^2
\]
$$ E=mc^2 $$
% 这两种都可以
% 带编号的公式,\cref{eq:energy}可以引用
\begin{equation}
E=mc^2
\label{eq:energy}
\end{equation}
% 多行公式与对齐
\begin{align}
P & = UI \\
& = I^2R
\end{align}
% 矩阵
\[
\mathbf{X} = \left(
\begin{array}{cccc}
x_{11} & x_{12} & \ldots & x_{1n} \\
x_{21} & x_{22} & \ldots & x_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
x_{n1} & x_{n2} & \ldots & x_{nn} \\
\end{array} \right)
\]
% 分段函数
[
f(x) =
\begin{cases}
0 & x \text{为无理数} , \\
1 & x \text{为有理数} .
\end{cases}
\]
- 定理环境等等的使用
把下面的代码复制到你的tex文件里看看,肯定就会了
\begin{definition}
定义环境
\label{def:nosense}
\end{definition}
\cref{def:nosense}除了告诉你怎么使用这个环境以外,没有什么其它的意义。
\begin{theorem}
这是一个定理。
\label{thm:example}
\end{theorem}
由\cref{thm:example}我们知道了定理环境的使用。
\begin{lemma}
这是一个引理。
\label{lem:example}
\end{lemma}
由\cref{lem:example}我们知道了引理环境的使用。
\begin{corollary}
这是一个推论。
\label{cor:example}
\end{corollary}
由\cref{cor:example}我们知道了推论环境的使用。
\begin{assumption}
这是一个假设。
\label{asu:example}
\end{assumption}
由\cref{asu:example}我们知道了假设环境的使用。
\begin{conjecture}
这是一个猜想。
\label{con:example}
\end{conjecture}
由\cref{con:example}我们知道了猜想环境的使用。
\begin{axiom}
这是一个公理。
\label{axi:example}
\end{axiom}
由\cref{axi:example}我们知道了公理环境的使用。
\begin{principle}
这是一个定律。
\label{pri:example}
\end{principle}
由\cref{pri:example}我们知道了定律环境的使用。
\begin{problem}
这是一个问题。
\label{pro:example}
\end{problem}
由\cref{pro:example}我们知道了问题环境的使用。
\begin{example}
这是一个例子。
\label{exa:example}
\end{example}
由\cref{exa:example}我们知道了例子环境的使用。
\begin{proof}
这是一个证明。
\label{prf:example}
\end{proof}
由\cref{prf:example}我们知道了证明环境的使用。
\begin{solution}
这是一个解。
\label{sol:example}
\end{solution}
由\cref{sol:example}我们知道了解环境的使用。
- 脚注生成
在这句话后面生成脚注\footnote{脚注可以补充说明一些东西}
- 参考文献引用
这里先记录不使用BibTeX的方法
\begin{thebibliography}{9}%宽度9
\bibitem[1]{liuhaiyang2013latex}
刘海洋.
\newblock \LaTeX {}入门\allowbreak[J].
\newblock 电子工业出版社, 北京, 2013.
\bibitem[2]{mathematical-modeling}
全国大学生数学建模竞赛论文格式规范 (2020 年 8 月 25 日修改).
\bibitem{3} \url{https://www.latexstudio.net}
\end{thebibliography}
% 在正文引用文献,可以这样写:\cite{liuhaiyang2013latex}。这就是一个简单的引用
- 附录写法
注意另起一页
\newpage
%附录
\begin{appendices}
\section{排队算法--matlab 源程序}
\begin{lstlisting}[language=matlab]
kk=2;[mdd,ndd]=size(dd);
while ~isempty(V)
[tmpd,j]=min(W(i,V));tmpj=V(j);
for k=2:ndd
[tmp1,jj]=min(dd(1,k)+W(dd(2,k),V));
tmp2=V(jj);tt(k-1,:)=[tmp1,tmp2,jj];
end
tmp=[tmpd,tmpj,j;tt];[tmp3,tmp4]=min(tmp(:,1));
if tmp3==tmpd, ss(1:2,kk)=[i;tmp(tmp4,2)];
else,tmp5=find(ss(:,tmp4)~=0);tmp6=length(tmp5);
if dd(2,tmp4)==ss(tmp6,tmp4)
ss(1:tmp6+1,kk)=[ss(tmp5,tmp4);tmp(tmp4,2)];
else, ss(1:3,kk)=[i;dd(2,tmp4);tmp(tmp4,2)];
end;end
dd=[dd,[tmp3;tmp(tmp4,2)]];V(tmp(tmp4,3))=[];
[mdd,ndd]=size(dd);kk=kk+1;
end; S=ss; D=dd(1,:);
\end{lstlisting}
\section{规划解决程序--lingo源代码}
\begin{lstlisting}[language=c]
kk=2;
[mdd,ndd]=size(dd);
while ~isempty(V)
[tmpd,j]=min(W(i,V));tmpj=V(j);
for k=2:ndd
[tmp1,jj]=min(dd(1,k)+W(dd(2,k),V));
tmp2=V(jj);tt(k-1,:)=[tmp1,tmp2,jj];
end
tmp=[tmpd,tmpj,j;tt];[tmp3,tmp4]=min(tmp(:,1));
if tmp3==tmpd, ss(1:2,kk)=[i;tmp(tmp4,2)];
else,tmp5=find(ss(:,tmp4)~=0);tmp6=length(tmp5);
if dd(2,tmp4)==ss(tmp6,tmp4)
ss(1:tmp6+1,kk)=[ss(tmp5,tmp4);tmp(tmp4,2)];
else, ss(1:3,kk)=[i;dd(2,tmp4);tmp(tmp4,2)];
end;
end
dd=[dd,[tmp3;tmp(tmp4,2)]];V(tmp(tmp4,3))=[];
[mdd,ndd]=size(dd);
kk=kk+1;
end;
S=ss;
D=dd(1,:);
\end{lstlisting}
\end{appendices}