数学建模MCM/ICM——LaTeX排版

时间:2021-07-05 18:49:09

LATEX 简介

一种基于 TEX 的排版系统,优点如下:

  • 数学公式美观
  • 便于处理复杂表格
  • 生成的PDF文件质量高,这是相对于Word转PDF而言,不存在那些细节问题
  • (至少本人看来)用于论文排版在效率和美观上都优于Word,简单入门后即可解决大多数常见问题
  • 语法简单易懂
  • 跨平台

LATEX 资源


简单入门

注意事项

  • 这里有我自己做的CUMCM模板,注释详尽https://github.com/Momingcoder/LaTeX-for-CUMCM
  • 编辑器WinEdt,使用PDFTeXify较好,插入图片时选择PDF格式,要注意图片不要太大,否则最后生成的PDF也会很大
  • 想随时预览的可以安装TeXstudio http://www.texstudio.org/
  • 对于Matlab绘图导出时中文乱码的问题:对图进行打印,选择Microsoft PDF打印即可,裁剪时可直接用PS,效果拔群。
  • Gsview裁剪eps文件(Ctex已内置该软件):菜单栏“options–show bounding boxs”选中,打开eps图,然后File->PS TO EPS,不选择Automatically calculate Bounding Box,然后点击yes,用鼠标单击左、下、右、上边进行裁剪即可,输出为eps(需要自己加后缀)
  • MathTypeExcel2LaTeX很方便,尽量学会使用

编译命令

  • 编译出错时,屏幕上有问号,等待用户输入命令:
    Enter:继续处理
    X:退出
    ?:显示可以使用的命令
    S:忽略后续错误
    R:执行下去,出现错误也不停留
    Q:不提示任何消息地执行
    I:插入一些内容
    E:编辑源文件
    H:显示帮助

基本语法

其实和HTML有些类似,当然要比HTML和Markdown复杂。

  • Hello World
  • begin{xxx}和end{xxx}构成一个环境,一篇文章只能有一个document环境
\documentclass[11pt]{article}
\begin{document}
Hi. This is my first \LaTeX file.
\end{document}
  • 使用宏包
\usepackage{ctex}
\usepackage[margin=2.5cm]{geometry} %页面设置
  • 自定义命令
% \newcommand{\yourcommand}[参数个数]{内容}
\newcommand{\hei}{\CJKfamily{hei}}
\newcommand{\song}{\CJKfamily{song}}
  • 居中
\centerline{…}  %单行

\begin{center}
%多行
\end{center}

\centering %表格
  • 分行
\linebreak[n]   %建议分行,n可取0,1,2,3,4,数字越大建议力度越大
\linebreak %强制换行,撑满整行,增加字间距
\nolinebreak %建议不分行,用法同\linebreak,作用于单个字
\mbox{文本内容} %使文本内容保持在同一行
\CJKkern %禁止在所在的两汉字间换行
  • 分页
\newpage            %强制分页
\pagebreak[n] %建议分页
\nopagebreak[n]

%增加当前页高度从而避免难看的分页:
\enlargethispage{尺寸} %可增加的最大高度
\enlargethispage*{尺寸} %严格指定增加高度
  • 间距
%水平间距
\quad %插入空白,相当于当前字体尺寸大小
\qquad %相当于两倍的\quad
\ %大约为\quad的3/18
\hspace{宽度大小} %\hspace*{宽度大小}
\hfill %弹性长度,根据排版需要插入空白
\hspace{\fill} %撑满整行
\hphantom{文本} %占据文本的宽度
\setlength{\parskip}{2em} %段落间距
  • 首行缩进
\CJKindent  %首行缩进2汉字
\setlength{\parindent}{2em}
\indent
\noindent
  • 字体
\upshape    %直立字体
\slshape %斜体
\mdseries %中等权重
\bfseries %粗体

%GBK中包含的中文字体有以下几种
\song %宋
\kai %楷
\fs %仿宋
\hei %黑体
\li %隶书
\you %幼圆

\textstyle %正文样式
\scriptstyle %角标样式
\scriptscriptstyle %二级角标样式
  • 公式
$...$   %行内公式

\begin{equation}\label{}%标签
…… %行间公式
\end{equation}

\ref{label} %引用

%阵列
\begin{array}{ccc}%三行三列,每列元素居中为c,居左为l,居右为r
 &  &  \\
 &  &  \\
 &  & 
\end{array}

%矩阵
\left(
\begin{array}{ccc}
 &  &  \\
 &  &  \\
 &  &  \\
\end{array}
\right)

%公式按照章节编号
\makeatletter % `@' now normal "letter"
\@addtoreset{equation}{section}
\makeatother % `@' is restored as "non-letter"
\renewcommand\theequation{\arabic{section}.{\arabic{equation}}}
  • 表格
\begin{table}
\centering %居中
*
\caption{}\label{} %标题、标签
\end{table}
\begin{figure}
\centering
% Requires \usepackage{graphicx}
\includegraphics[width=]{}\\ %宽度(会自动锁定纵横比)、路径
\caption{}\label{} %标题、标签
\end{figure}
  • 章节
%可以简单认为是一级、二级、三级、小节、小小节
\section{}
\subsection{}
\subsubsection{}
\paragraph{}
\subparagraph{}
  • 标题中文化
\renewcommand{\partname}{}
\renewcommand{\thepart}{}
\renewcommand{\chaptername}{}
  • 设置标题
\titleformat{\section}{\CJKfamily{hei}\sihao\centering}{\thesection}{1em}{} %设置章节标题字体为黑体
\titlespacing{\section}{0pt}{2.5\wordsep}{2\wordsep} %设置章节标题间距
\titleformat{\subsection}{\CJKfamily{hei}\xiaosi}{\thesubsection}{0.7em}{} %设置二级标题
\titlespacing{\subsection}{0pt}{1.5\wordsep}{1\wordsep} %设置章节标题间距
\titleformat{\subsubsection}{\CJKfamily{song}\xiaosi}{\thesubsubsection}{0.4em}{} %设置三级标题
\titlespacing{\subsubsection}{0pt}{0.5\wordsep}{0.5\wordsep} %设置章节标题间距
  • 插入其他tex文件
\input{}
  • 页眉页脚
\pagestyle{版式}      %有如下几种版式
%plain:页眉为空,页码居中(缺省)
%empty:页眉页脚都为空,不显示页码
%headings:显示页眉(页码、页眉标题)
  • 参考文献
\begin{thebibliography}{2}
\bibitem{cite1}***
\bibitem{cite2}***
\end{thebibliography}
  • 附录
\begin{appendices}
\section{Main}
\lstinputlisting{./code/Main.m}
\section{DrawArea}
\lstinputlisting{./code/DrawArea.m}
\end{appendices}
  • 复杂表格
\usepackage{multirow} 
\multirow{nrows}[bigstructs]{width}[fixup]{text}
%nrows 设定所占用的行数。
%bigstructs 此为可选项,主要是在你使用了 bigstruct 宏包时使用。
%width 设定该栏文本的宽度。如果想让 LaTeX 自行决定文本的宽度,则用 * 即可。
%fixup 此为可选项,主要用来调整文本的垂直位置。
%text 所要排版的文本。可用 \\ 来强迫换行。
\par
\vspace{-1.2em}%调整与前文的距离
\begin{table}[htbp]
\caption{\label{table:SNN}SNN参数测试表}
\centering
%\setlength{\abovetopsep}{1mm}%表名与表之间距离
\setlength{\belowbottomsep}{-0.8em}%表尾与后文之间距离
\tabcolsep0.15in%设置列间距
\begin{tabular}{ccccccc}
\toprule
\multirow{2}{*}{参数} & t=12 & t=15 & t=18 & t=21 & t=24 & t=27 \\
& n(\%) & n(\%) & n(\%) & n(\%) & n(\%) & n(\%)\\
\midrule
k=20 & 0(0.0) & 9(7.4) & 83(68.0) & / & /& / \\
k=25 & 0(0.0) & 0(0.0) & 2(1.6) & 31(25.4) & 110(90.2) & / \\
k=30 & 0(0.0) & 0(0.0) & 0(0.0) & 0(0.0) & 11(9.0) & 55(45.1) \\
\bottomrule
\end{tabular}
\end{table}
\par

%列宽控制:
\begin{tabular}{|p{0.6cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|p{1.1cm}|}
\hline
% after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
评阅人 & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ \\
\hline
评分 & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ \\
\hline
备注 & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ & ~ \\
\hline
\end{tabular}
  • 多图插入
\usepackage{subfig}%多图
\begin{figure}
\centering
\subfloat[]{ (可添加子图名称)
\label{}
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[width=4in]{./figure/pic1.eps}
\end{minipage}
}
\subfloat[]{
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[width=4in]{./figure/pic2.eps}
\end{minipage}
}
\vspace{-1em}
\caption{初始图和结果图}\label{fig:lunmu}
\end{figure}