文件组织
这次我用了单个的 Tex 文件进行编译,因此不算是结构化的写作。但是目录下面分了两个文件夹figures
和 codes
两个文件夹作为放置图片和代码文件用的。这样也避免了大段的代码插进文档里导致的不清晰以及不同步。cumcmthesis.cls
就是这次用的模板。实际上是根据 Github 上的开源模板 CUMCMThesis 做了微调改的。
Tips
enumerate
和 itemize
环境
直接编译出来的列表并不对齐,总是顶格开始陈列。所以使用一个宏包:enumitem。
在模板中加入:
|
|
(~~啊居然没有 LaTeX 的高亮 (-̇᷇̂ᴥ ̇᷇̂-)~~支持的,我太傻了)好像 highlight.js 真的没有。。。
这里也可以顺便定义一下有序列表的样式,是希腊字母还是数字之类的。
Table 环境
普通 Table 使用
\hline
可以画横线,在{cc}
区域,c
代表居中,可以用|
来画竖线。 另外[!htbp]
部分可以设置浮动对象的放置优先规则。\\
来换行。&
来对齐。1 2 3 4 5 6 7 8 9
\begin{table}[!htbp] \begin{tabular}{cc} \hline $a_{ij}$ & 第i个节点到第j个巡警平台的最短距离 \\ $x_{ij}$ & 第i个节点是否由第j个巡警平台管辖 \\ $P$ & 巡警平台所构成的集合 \\ $V$ & A区所有节点所构成的集合 \\ \end{tabular} \end{table}
长表格 如果表格很长,需要跨页,则先使用宏包
longtable
, 并将tabular
换为longtable
即可。三线表 使用
booktabs
宏包,可以有\toprule
等命令,方便地做出三线表。1 2 3 4 5 6 7 8 9 10 11 12 13 14
\begin{table}[!htbp] \centering \begin{tabular}{cc} \toprule[1pt] \makebox[0.3\textwidth][c]{符号} & \makebox[0.4\textwidth][c]{意义} \\ \midrule[0.5pt] $a_{ij}$ & 第i个节点到第j个巡警平台的最短距离 \\ $x_{ij}$ & 第i个节点是否由第j个巡警平台管辖 \\ $P$ & 巡警平台所构成的集合 \\ $V$ & A区所有节点所构成的集合 \\ \bottomrule[1pt] \end{tabular} \end{table}
插入图表
使用 graphicx
宏包。
可以像下面一样设置图片后缀名优先级。
|
|
可以像下面一样设置图片搜索路径。
|
|
浮动对象的 ref 和 label
对于浮动对象,比如表格和图片,由于可能并不紧挨着上下文的,因此有必要在上下文中设置链接链接到对应的图标。这个时候 \ref
和 \label
就很有用。
一般像这样定义一个浮动对象的名字:(例如这里设置 label 为 fig1)
|
|
之后就可以在正文中使用 \ref{fig1}
来获取这个图片的编号。如 Figure \ref{fig1}
。
简单的参考文献
如果针对比较简单的参考文献,那么使用非常复杂的配置也没有什么必要(其实是我还没学)。
所以可以使用比较简单的 \cite
和 \bibitem
。
使用以下语句定义:
|
|
之后就可以在正文中引用:
|
|
插入代码
使用 listings
宏包。
插入代码文件。这样就可以分别修改,并只需重新编译就可以了。
下面的表示插入当前目录下 code
文件夹里面的 chasing_method.m
文件,语法高亮遵循 Matlab 的语法。
|
|
设置目录深度
|
|