megrxu

LaTeX 論文排版筆記

Aug 21, 2017  #LaTeX 

檔案組織

這次我用了單個的 Tex 檔案進行編譯,因此不算是結構化的寫作。但是目錄下面分了兩個資料夾figurescodes 兩個資料夾作為放置圖片和程式碼檔案用的。這樣也避免了大段的程式碼插進文件裡導致的不清晰以及不同步。cumcmthesis.cls 就是這次用的模板。實際上是根據 Github 上的開源模板 CUMCMThesis 做了微調改的。

Tips

enumerateitemize 環境

直接編譯出來的列表並不對齊,總是頂格開始陳列。所以使用一個宏包:enumitem。

在模板中加入:

1
2
3
4
\RequirePackage{enumitem}
% 設定列表環境
\setlist[itemize]{fullwidth,itemindent=2em}
\setlist[enumerate]{fullwidth,itemindent=2em,label=(\arabic*)}

(~~啊居然沒有 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 宏包。

可以像下面一樣設定圖片字尾名優先順序。

1
\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png}

可以像下面一樣設定圖片搜尋路徑。

1
2
\graphicspath{{figures/}{figure/}{pictures/}%
  {picture/}{pic/}{pics/}{image/}{images/}}

浮動物件的 ref 和 label

對於浮動物件,比如表格和圖片,由於可能並不緊挨著上下文的,因此有必要在上下文中設定連結連結到對應的圖示。這個時候 \ref\label 就很有用。 一般像這樣定義一個浮動物件的名字:(例如這裡設定 label 為 fig1)

1
2
3
4
5
\begin{figure}[!htbp]
  \centering
  \includegraphics[width=1\textwidth]{m}
  \caption{$m$ 關於時間的變化曲線}\label{fig1}
\end{figure}

之後就可以在正文中使用 \ref{fig1} 來獲取這個圖片的編號。如 Figure \ref{fig1}

簡單的參考文獻

如果針對比較簡單的參考文獻,那麼使用非常複雜的配置也沒有什麼必要(其實是我還沒學)。

所以可以使用比較簡單的 \cite\bibitem

使用以下語句定義:

1
2
3
4
5
\begin{thebibliography}{9}
  \bibitem{gvdc}張建輝與張峰, 月球軟著陸軌道最佳化方法比較研究. 工程數學學報, 2012(03): 第355-­365頁.
  \bibitem{lixt}趙鈞, 航天器軌道動力學. 2011, 哈爾濱工業大學出版社:哈爾濱. 第148-­152頁.
  \bibitem{jiuu}孫澤洲等, 嫦娥三號探測器的技術設計與成就. 中國科學:技術科學, 2014(04): 第331-­343頁.
\end{thebibliography}

之後就可以在正文中引用:

1
………類似這樣的。\cite{gvdc}

插入程式碼

使用 listings 宏包。 插入程式碼檔案。這樣就可以分別修改,並只需重新編譯就可以了。

下面的表示插入當前目錄下 code 資料夾裡面的 chasing_method.m 檔案,語法高亮遵循 Matlab 的語法。

1
\lstinputlisting[language=Matlab]{code/chasing_method.m}

設定目錄深度

1
\setcounter{secnumdepth}{3}


可能相關的