論文格式排版是你的文章留給審稿人的第一印象,一篇排版糟糕的文章很難會使審稿人相信這篇文章提出了卓有建樹的思想。當論文提供模板時咱們能夠按照模板進行排版, 而對於模板沒有涵蓋的地方甚至沒有模板可用時, 咱們有必要了解你們約定俗成的排版格式。本文簡要介紹了論文書寫過程當中經常使用的格式規範及其 LaTeX 書寫方法。
中文排版編程
不論中英文, 科技文章一般均使用英文半角標點。中文文章的行內公式和兩邊正文之間要有空格。例如:機器學習
經過計算協方差矩陣~$\Sigma$~咱們能夠\ldots % 注意"~"編程語言
此外, 推薦使用 XeLaTeX 編譯器編譯中文文章. XeLaTeX 對中文支持較好, 好比它能夠自動在行內公式和兩邊正文之間加空格, 無需人爲指定。ide
括號/引用號函數
英文文章中括號, 以及引用符號 (如 [1], [2] 等) 要與前一個詞留有空格, 而中文文章一般則不一樣。例如:學習
Principal component analysis (PCA) is a statistical procedure that \ldots字體
引號優化
和 Word 這種所見即所得的排版軟件不一樣, LaTeX 用不一樣的符號分別表示左引號和右引號。左引號用`表示 (鍵盤左上角, Tab 鍵上面), 右引號用'表示 (平時輸引號的那個鍵). 雙引號用過輸入兩個引號來獲得。例如:3d
`machine', ``learning''.component
連字符
不一樣長度的"-"表示不一樣含義。 一個"-"長度的連字符用於詞中; 兩個"-"長度的連字符經常使用於制定範圍; 三個"-"長度的連字符是破折號; 數學中的負數要用數學環境下的-獲得。例如:
daughter-in-law, pages 13--67, yes --- or no?, $-1$.
着重強調
在正式文章中, 一般不使用粗體進行強調, 須要強調的詞使用斜體標出。例如:
PCA is the simplest of the true \emph{eigenvector}-based multivariate analyses.
數字分隔
文中出現的位數很長的數字要用逗號","進行分割, 每 3 位數字進行分割, 逗號兩側不加空格。例如:
The MNIST dataset contains 60,000 images \ldots
圖表格式
全部的圖表都要有題目, 圖的題目要寫在圖的下方, 而表的題目要寫在表格的上方。圖表的題目是一句話, 因此要以句號"."結尾。在正文中對圖/表/章節的引用能夠用以下方式, 注意 Figure/Table/Section 和數字之間的"~":
\ldots, as illustrated in Figure~1. \\\ldots, as shown in Figure~2. \\
As Figure~3 illustrates, \ldots \\
Figure~4 shows \ldots \\
Table~1 summarizes \ldots \\\ldots will be discussed in Section~1. \\\ldots, as described in Section~2.
在實際寫文章時, 全部的引用 (figure, table, equation, section) 都應該用 ref 來管理, 這樣編號能夠自動生成, 免去手工調整編號的煩惱。
數學環境
LaTeX 自身只提供最基本的數學符號和環境, 所以咱們在須要書寫數學公式時, 一般在引言區導入 amsmath 包:
\usepackage{amsmath}
如下咱們假定 amsmath 包已被導入。
數域
實數域, 天然數域等表示數域的符號須要用空心字母表示. 空心字母在 LaTeX 中用 mathbb 輸入, 這須要在引言區導入 amssymb 包. 例如:
\usepackage{amssymb}$\mathbb{R}, \mathbb{N}$.
組合數
和國內一般用 Cnk 表示組合數不一樣, 國際上一般用括號表示組合數, 讀做"n choose k". 在 LaTeX 中組合數能夠用 binom 命令打出。例如:
$\binom{n}{k}$.
集合
集合中的分割能夠用豎線"|", 也能夠用冒號":". 分割符與左右要有空格。例如:
$\{x \mid x \ge 0.\}$. % Note "\mid" instead of "|"
省略號
省略號分兩種。列舉一系列元素中的省略用 ldots; 數學運算表達式中的省略用 cdots. 即省略號高度要和左右符號的高度一致。而在普通文本中的省略號一概用 ldots。例如:
$x_1, x_2, \ldots, x_n$, $x_1 + x_2 + \cdots + x_n$.
優化問題
一般, 優化問題解得的最優值用 star 表示, 而不是"*". 優化問題的變量要寫到"arg min"或"arg max"總體的下方。例如:
\begin{equation}
x^\star = \mathop{\arg\min}_x (x-1)^2 \,.
\end{equation}
函數映射
函數映射一般有其固定的寫法, 例如:
$f\colon A \mapsto B$.
矩陣與向量
矩陣和向量要用粗體表示。有人習慣於用直立粗體表示矩陣, 用斜體粗體表示向量。使用 bm 須要在引言區導入 bm 包. 例如:
\usepackage{bm}$\bf{A}, \bf{\Omega}, \bm{x}, \bm{\mu}$.
若是讓大小寫字母都變爲斜體粗體, 能夠用 boldsymbol 命令。例如:
$\boldsymbol{A}, \boldsymbol{\Omega}, \boldsymbol{x}, \boldsymbol{\mu}$.
此外向量也能夠用箭頭標註。例如:
$\vec x, \vec \mu$.
矩陣和向量能夠用中括號"[]"或小括號"()"表示, 目前國際上用中括號表示更常見, 這是由於用小括號表示矩陣和向量容易和表示代數運算優先級的小括號相混淆。在 LaTeX 中能夠用 bmatrix 環境書寫矩陣。例如:
\begin{equation}
\begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn} \\
\end{bmatrix}
\end{equation}
有單位的量
表示單位量綱的符號不是變量, 故應當以直立體出現, 而且數字和單位之間要有空格, 例如:
$m = 50\,\mathrm{kg}, V = 150\,\mathrm{m}^3$. % Note "\,"
此外, siunitx 包含了標準單位, 能自動調整字體和間距, 還能夠以很是天然的方式實現複雜的單位和科學記數法等表達。
微元符號
表示微元的 d 不是變量, 應當以直立體出現。此外, 在積分符號中, 微元符號要與前面的被積函數保持必定空格距離. 例如:
$\int_1^2 \log x \, \mathrm{d} x$. % Note "\,"
轉置符號
表示轉置的 T 不是變量, 應當以直立體出現。例如:
$\boldsymbol x^{\mathrm{T}}$.
此外, 也有人用 intercal, top, 或 mathsf{T} 來表示轉置.
函數名
函數名不是變量, 故應當以直立體出現。LaTeX 內置支持一些經常使用的函數名, 例如:
$\sin(x), \exp(x)$.
當咱們須要本身定義函數名時, 在在引言區使用 DeclareMathOperator 命令聲明須要定義的函數名。例如:
\DeclareMathOperator{\sign}{sign}
$\sign(x)$.
標號基礎
重要的公式須要標號。包含在 equation 環境中的環境會被自動標號, 若是你不須要標號, 能夠用 equation*環境或將公式放於\[和\] 之間。例如:
\begin{equation} % Equation with numbering
e^{i\pi} = -1
\end{equation}
\begin{equation*} % Equation without numbering
a^2 + b^2 = c^2
\end{equation*}
\[ % Equation with numbering
a^2 + b^2 = c^2
\]
標點基礎
公式後的標點是不少人忽視的地方。並非全部公式後都要或不要加標點, 公式 (包括行內公式和行間公式) 是句子的一部分, 所以, 咱們須要根據公式在句子中所處的位置來判斷在公式後加什麼標點. 行間公式中公式和標點之間要空格。例如:
Einstein introduced his formula
\begin{equation}
E = m \cdot c^2 \,, % Note "\,,"
\end{equation}
which is at the same time the most widely known and the least well understood
physical formula.
\ldots from which follows Kirchhoff's current law:
\begin{equation}
\sum_{k=1}^n I_k = 0 \,. % Note "\,."
\end{equation}
\begin{equation}
I_D = I_F - I_R % No break
\end{equation}
is the core of a very different transistor model.
多行公式的標點與標號
多行公式一般只在最後一行結尾時根據須要標點與標號。最新版本的 LaTeX 建議使用 IEEEeqnarray 環境替代 eqnarray 環境書寫多行公式, 這須要在引言區導入 IEEEtranstools 包。例如:
\usepackage[retainorgcmds]{IEEEtrantools}
\begin{IEEEeqnarray*}{rCl}
a &=& b + c \\
&=& d + e \\
&=& f + g \,. \IEEEyesnumber \\
\end{IEEEeqnarray*}
多分支公式的標點與標號
分支是公式的一部分, 咱們只對總體作一個標號, 不對每一個分支進行單獨標號。每一個分支須要單獨進行標點: 前面的分支結束後要用分號";", 最後一個分支結束後根據須要進行標點。此外, 和寫編程語言不一樣, 與 if 分支對應的一般是 otherwise, 而不是 else. LaTeX 中, 分支能夠用 cases 環境書寫。例如:
\begin{equation}
|x| =
\begin{cases}
-x & \text{if } x < 0 \,;\\
x & \text{otherwise} \,. \\
\end{cases}
\end{equation}
優化問題的標點與標號
一般 max/min 和 s.t.(讀做"subject to"而不是"such that") 保持中心對齊, 目標函數項和各約束項保持左對齊。只在目標函數項那一行標號但不標點, 各約束項標點但不標號。例如:
\begin{alignat}{2}
\min_x \quad & f(x) & \\
\mathrm{s.t.} \quad & g_i(x) \le 0, &\quad i = 1, 2, \ldots, m \,, \nonumber \\
& h_j(x) = 0, &\quad j = 1, 2, \ldots, n \,. \nonumber
\end{alignat}
此外, 也有人將優化問題看做一個總體, 對總體做一居中標號。
數學證實
數學證實以"Proof."開始, 以方框符號結尾。amsthm 包提供了證實環境。例如:
\usepackage{amsthm}
\begin{proof}
Trivial.
\end{proof}
致謝
感謝 @ 蔣雨蒙對 siunitx 包的介紹, @ 胡不退對 ref 的建議, @ 風清揚對轉置和優化問題標號的建議.
參考文獻
Oetiker, Tobias, et al. "The not so short introduction to LATEX 2ε." (2001).
機器之心專欄
做者:張皓
做者簡介: 張皓: 南京大學計算機系機器學習與數據挖掘所(LAMDA)研究生, 研究方向爲計算機視覺和機器學習, 特別是視覺識別和深度學習. 我的主頁: http://lamda.nju.edu.cn/zhangh/.