檔案組織
這次我用了單個的 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 的語法。
|
|
設定目錄深度
|
|