LaTeX是一个文档准备系统它非常适用于生成高印刷质量的科技类和数学类文档。 它也能够生成所有其他种类的文档,小到简单的信件,大到完整的书籍。如你所见,它具有非常专业的排版输出能力,产生的文档看上去就像“印刷品”一样,十足保证了文档的规范性,因此LaTeX非常适合用于数模论文的排版。
一篇完整的数模论文通常由章节、图片、表格、公式、参考文献、附录代码几个部分构成,下面将围绕这六个部分进行概述。
【文末附该篇教程的LaTeX源码及数模国赛模板】
一、基本文档结构
\documentclass{...} % ... 指定文档类型
% 导言区
\begin{document}
% 正文内容
\end{document}
% 此后内容会被忽略
在安装测试时,你已经成功编写了第一个LaTeX程序。LaTeX 源代码以一个 \documentclass 命令作为开头,{...} 指定了文档使用的文档类。LaTeX提供的基础文档类常用的有 article, report, book:
*article 文章格式的文档类,广泛用于科技论文、报告、说明文档等。(数模论文即使用该文档类)
*report 长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单的书籍 等。
*book 书籍文档类,包含章节结构和前言、正文、后记等结构。
LaTeX 环境,用以使一些效果在局部生效,或是生成特殊的文档元素。环境的用法为一对命令\begin{...}和\end{...} (注意:\begin和\end 中填写的环境名要保持一致。)
document 环境当中的内容是文档正文。 在 \documentclass 和 \begin{document} 之间的位置称为导言区。在导言区中常会使用 \usepackage 命令调用宏包,进行文档的全局设置。
在使用 LaTeX时,时常需要依赖一些扩展来增强或补充LaTeX 的功能,比如排版复杂的表格、插入图片、添加数学公式等等。这些扩展称为宏包。比如调用排版图片常用的宏包:
\usepackage{graphicx}%插入图片
二、章节
在排版论文时LaTeX与 word 不同的是LaTeX不需关注缩进,标题等等。LaTeX可以通过一些命令进行方便快捷的设置。
\section{问题重述}
\subsection{问题的提出}
\section{符号说明}
\section{模型的建立与求解}
\subsection{问题一模型的建立及求解}
\subsubsection{模型的准备:数据可视化与处理}
\section, \subsection, \subsubsection 分别对应一,二,三级;这些命令生成章节标题,并能够自动编号
三、利用LaTeX排版图片和表格
1、浮动体
在排版论文中,图片和表格这类内容均称为浮动体。顾名思义,浮动体在文中的位置不是固定的,这些内容的尺寸往往太大,导致分页困难。LaTeX为了美观起见引入浮动体的机制,令大块的内容可以脱离上下文,自动放置在合适的位置。LaTeX 预定义了两类浮动体环境 figure 和 table。figure 里放图片,table 里放表格.
\begin{table/figure}[placement]
...
\end{table/figure}
参数提供了一些符号用来表示浮动体允许排版的位置,如 hbp 允许浮动体 排版在当前位置、底部或者单独成页。
参数 | 含义 |
h | 当前位置(代码所处的上下文) |
t | 顶部 |
b | 底部 |
p | 单独成页 |
! | 在决定位置时忽视限制 |
float 宏包为浮动体提供了 H 位置参数,不与 htbp 及! 混用。使用 H 位置参数时, 会取消浮动机制,将浮动体固定插入当前位置。
在浮动体图片和表格中使用 \caption 命令可加标题,并且自动给浮动体编号:
\caption{图片标题}
2、图片排版
插入图片需要使用graphicx宏包,建议使用如下模式:
\usepackage{graphicx}%插入图片
\usepackage{caption}%图片标题
\begin{figure}[!h]
\centering
\includegraphics[width=0.6\textwidth,height=0.5\textwidth]{未完成的任务定价评估}
\caption{未完成的任务定价评估}
\end{figure}
其中,[!h] 的作用是自动选择插入图片的最优位置,\centering 设置让图片居中,\includegraphics内参数设置了图片的高度与宽度,\caption{}用于设置图片的标题。
注:编译的图片标题一定要与使用的图片标题相同,并且图片一定要和文档放在同一文件夹内
3、绘制表格
在LaTeX绘制表格较为麻烦,这里推荐一个LaTeX表格在线生成器
Create LaTeX tables online – TablesGenerator.com
绘制表格最基本的模式为:
\begin{table}[htbp]
\centering
\caption{表格标题}
\begin{tabular}{ccc}
1 & 2 & 3 \\
\hline
4 & 5 & 6 \\
\hline
7 & 8 & 9
\hline
\end{tabular}
\end{table}
四、输入数学公式
首先是行内公式,例如 。行内公式使用 $...$ 包裹。 行间公式不需要编号的可以使用 或 包裹,例如
首先是行内公式,例如$ a^2 + b^2 = c^2$ 。行内公式使用 \verb|$ $| 包裹。行间公式不需要编号的可以使用 \verb|\[ \]|或\verb*|$$..$$| 包裹,例如$$E=mc^2$$
若需要对公式进行编号,可使用 equation 公式编译环境
\begin{equation}
{d_i} = \sqrt {
{
{({x_i} - {x_o})}^2} + {
{({y_i} - {y_o})}^2}}
\end{equation}
\begin{equation}
{\rho _j} = \frac{
{
{n_k}}}{
{\sum\limits_{j = 1}^n {
{n_j}} }}
\end{equation}
具体的公式编译方法可参考《一份(不太)简短的LaTeX介绍》mirrors.cloud.tencent.com/CTAN/info/lshort/chinese/lshort-zh-cn.pdf
推荐使用在线LaTeX公式网站
https://latex.codecogs.com/eqneditor/editor.php在线公式编辑器
五、参考文献排版
参考文献由 thebibliography 环境包裹。每条参考文献由 \bibitem 开头,其后是参考文献本身的内容,具体的编译模式如下
\usepackage{appendix}%附录
\begin{thebibliography}{总参考文献的数目}
\bibitem{引用的参考文献的标签} ...
\end{thebibliography}
举例:
\documentclass[12pt]{article}
\usepackage{appendix}%附录
\usepackage{ctex}%中文
\usepackage{hyperref}%超链接
\begin{thebibliography}{4}
\bibitem{}张书源.本溪市PM2.5污染健康效应及经济损失研究[D].沈阳大学,2023.
\bibitem{}何钰清,李磊,杨红龙,兰紫娟,邵应泉,张文海.深圳PM2.5浓度变化趋势及其月尺度预测方法[J].科学技术与工程,2022,22(01):400-408.
\bibitem{}蒋维楣,刘红年,张宁,彭珍. 空气污染气象学[M].南京大学出版社:, 202107.396.
\bibitem{}祝嫣然,计亚.疫情影响调研报告:个体户、民企受影响最为严重.\url{https://m.vicai.com/news/100570014.html.2020.9.13}
\end{thebibliography}
输出如下,在thebibliography 环境包含中会自动生成"参考文献"字样,并实现自动编号
注:以上举例收集了所有种类的参考文献的标准书写方法,在引用时可参考此写法
六、附录代码排版
附录代码需要用到可自定义代码环境 lstlisting 宏包,基本编译模式如下:
\usepackage{listings}%插入代码
\begin{appendices}
\section*{代码名称}
\begin{lstlisting}[代码类型]
内容...
\end{lstlisting}
\end{appendices}
举例:
\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}
输出如下:
写在最后:
教程比较简短,涉及到的东西比较基础,若想熟练掌握LaTeX需多多练习,《一份(不太)简短的LaTeX介绍》是一份很好的学习资料。可以试着用LaTeX抄几页优秀论文,以增加熟练度。
数模国赛模板:https://download.csdn.net/download/m0_75067300/88521284
该篇教程的LaTeX源码:https://download.csdn.net/download/m0_75067300/88521289