LaTeX寫論文之有用指令
我寫論文主要是套模板, 所以整體的格式排版我基本上不會調整, 主要是一些細節上的設定. 主要的一些參考來自於中文手冊: 一份(不太)簡短的 LATEX2ε 介紹 .
表格
自定義豎線粗細
\documentclass{article}
% 導入關鍵包 array
\usepackage{array}
% 定義新的列類型, 這里定義了一個豎線類型`?`
% 實際上可以直接用它來代替`\begin{tabular}`右側的格式設置里的`|`.
\newcolumntype{?}{!{\vrule width 1pt}}
\begin{document}
\begin{tabular}{|c?c|c|}
...
\end{tabular}
\end{document}
- https://tex.stackexchange.com/questions/257128/how-does-the-newcolumntype-command-work?answertab=votes#tab-top
- https://tex.stackexchange.com/questions/156807/single-thicker-vertical-line
array
文檔: https://mirror.bjtu.edu.cn/ctan/macros/latex/required/tools/array.pdf
調整位置
參考 浮動體 一節.
合並單元格
同行內: \multicolumn{⟨n⟩}{⟨column-spec⟩}{⟨item⟩}
, 其中 ⟨n⟩
為要合並的列數, ⟨column-spec⟩
為合並單元格后的列格式, 只允許出現一個 l/c/r
或 p
格式. 如果合並前的單元格前后帶表格線 |
, 合並后的列格式也要帶 |
以使得表格的豎線一致. 下面的例子還體現了, 形如 \multicolumn{1}{⟨column-spec⟩}{⟨item⟩}
的命令可以用來修改某一個單元格的列格式.
同列內: \multirow{⟨n⟩}{⟨width⟩}{⟨item⟩}
, ⟨width⟩
為合並后單元格的寬度, 可以填 *
以使用自然寬度.
注意, 合並了多行或者多列, 對應的位置不用再填充數據, 但是這里要注意間隔符 &
的適當調整. 同時要注意合並了上下的單元格后, 若是在中間繪制橫線, 可以使用 \cline{}
通過制定繪制的列的范圍來靈活的定制橫線.
列表
無序列表
\usepackage{enumitem}
\begin{document}
\begin{itemize}
\item ...
\item ...
\end{itemize}
\end{document}
有序列表
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item ...
\item ...
\end{enumerate}
\end{document}
壓縮空間
想要壓縮列表項的空間, 可以在在 \begin{itemize}
或者 \begin{enumerate}
后添加配置項: [noitemsep, nolistsep]
.
圖片
主要基於 \usepackage{graphicx}
來插入提供插入圖片支持.
插入圖片
\includegraphics[⟨options⟩]{⟨filename⟩}
\begin{figure}[t]
\centering
% 使圖片居中, 也可以直接使用 `\begin{center} ... \end{center}` 環境包裹要居中的內容來實現.
\includegraphics[width=\textwidth]{data/hardexapmles.pdf}
% 這里在方括號里配置總體的寬度, 一般可以使用 `\textwidth` 作為基准寬度, 可以通過使用數字接該命令, 實現特定倍數的設置.
\caption{caption.}
% 自定義圖片的caption內容.
\label{fig:figlabel}
% 自定義圖片標簽, 可以在文中使用 `\ref{fig:figlabel}` 引用. 注意, 這里的 `fig:` 不是必須的, 只是為了方便區分.
\end{figure}
調整位置
參考 浮動體 一節.
浮動體
這部分主要摘自 一份(不太)簡短的 LATEX2ε 介紹, 這可以看做是一份非常有用的LaTeX的參考手冊.
內容豐富的文章或者書籍往往包含許多圖片和表格等內容. 這些內容的尺寸往往太大, 導致分頁困難. LATEX 為此引入了浮動體的機制, 令大塊的內容可以脫離上下文, 放置在合適的位置. LATEX 預定義了兩類浮動體環境 figure
和 table
. 習慣上 figure
里放圖片, table
里放表格, 但並沒有嚴格限制, 可以在任何一個浮動體里放置文字/公式/表格/圖片等等任意內容.
以 table
環境的用法舉例, figure
同理:
⟨placement⟩
參數提供了一些符號用來表示浮動體允許排版的位置, 如 hbp
允許浮動體排版
在當前位置/底部/單獨成頁. table
和 figure
浮動體的默認設置為 tbp
.
雙欄排版環境下, LATEX 提供了 table*
和 figure*
環境用來排版跨欄的浮動體。它們的用法與table
和 figure
一樣, 不同之處為雙欄的 ⟨placement⟩
參數只能用 tp
兩個位置。
浮動體的位置選取受到先后順序的限制. 如果某個浮動體由於參數限制, 空間限制等原因在當前頁無法放置, 就要推遲到之后處理, 並使得之后的同類浮動體一並推遲.
\clearpage
命令會在另起一頁之前, 先將所有推遲處理的浮動體排版成頁, 此時 htbp
等位置限制被完全忽略. float
宏包為浮動體提供了 H
位置參數, 不與 htbp
及 !
混用. 使用 H
位置參數時, 會取消浮動機制, 將浮動體視為一般的盒子插入當前位置. 這在一些特殊情況下很有用 (如使用 multicol
宏包排版分欄內容的時候), 但尺寸過大的浮動體可能使得分頁比較困難.
文本
主要是幾個特定的格式:
textbf{text}
加粗text
文本textit{text}
傾斜text
文本textcolor{color}{text}
將text
文本着色為color
指定的顏色. 調用color
或xcolor
宏包后, 我們就可以用這樣的命令切換顏色, 我們一般使用color
宏包並配合特定顏色名字來設定顏色.
\rotatebox{90}{text}
將text
文本逆時針旋轉90°.
定制長度
首先可以嘗試比較直接的 \vspace{}
和 \hspace{}
來調整前后內容的垂直間距和水平間距. \vspace
命令生成的垂直間距在一頁的頂端或底端可能被 "吞掉" ,類似 \hspace
在一行的開頭和末尾那樣。對應地,\vspace*
命令產生不會因斷頁而消失的垂直間距。\vspace
也可用 \stretch
設置無限延伸的垂直長度。在段落內的兩行之間增加垂直間距,一般通過給斷行命令 \\
加可選參數,如 \\[6pt]
或 \\*[6pt]
。\vspace
也可以在段落內使用,區別在於 \vspace
只引入垂直間距而不斷行
另外, 這里列舉了一些可以調整的長度設定, 表中所有的長度命令可用 \setlength{}{}
來修改.
在這里我常用到的是其中的 abovecaptionskip
和 belowcaptionskip
. 這可以用來調整圖標的caption與上下文字之間的距離.
\begin{figure}[t]
\setlength{\abovecaptionskip}{0.2cm} %調整圖片標題與圖距離
\setlength{\belowcaptionskip}{-0.4cm} %調整圖片標題與下文距離
...
\end{figure}
這里使用的單位主要定義如下:
基於此, 可以實現更為靈活的調整. 不過看起來 em
和 ex
調整起來更合理些.