論文格式排版你真的做對了嗎? 常用格式及其LaTeX書寫方法介紹
引言
論文格式排版是你的文章留給審稿人的第一印象. 一篇排版糟糕的文章很難會使審稿人相信這篇文章提出了卓有建樹的思想. 當論文提供模板時我們可以按照模板進行排版, 而對於模板沒有涵蓋的地方甚至沒有模板可用時, 我們有必要了解大家約定俗成的排版格式. 本文簡要介紹了論文書寫過程中常用的格式規範及其LaTeX書寫方法.
基本符號
中文排版
不論中英文, 科技文章通常均使用英文半形標點. 中文文章的行內公式和兩邊正文之間要有空格. 例如:
通過計算協方差矩陣 $Sigma$ 我們可以ldots
此外, 推薦使用XeLaTeX編譯器編譯中文文章. XeLaTeX對中文支持較好, 比如它可以自動在行內公式和兩邊正文之間加空格, 無需人為指定.
句點
LaTeX中對句點"."有一個特殊的規定: 當句點跟在非大寫字母后時, LaTeX認為這個句點結束了這句話. 而在LaTeX中, 一句話和一句話之間的空格要略大於詞和詞之間的空格. 當你的句子確實是以大寫字母結束時, 需要用@, 例如:
Carrots contain Vitamin A@. Have you seen a rabbit wearing glasses?
另一方面, 有些縮略語以句點結束, 這時需要強制產生一個正常大小的空格, 例如:
The numbers 1, 2, 3, etc. are called natural numbers.
括弧/引用號
英文文章中括弧, 以及引用符號(如[1], [2]等)要與前一個詞留有空格, 而中文文章通常則不同. 例如:
Principal component analysis (PCA) is a statistical procedure that ldots
引號
和Word這種所見即所得的排版軟體不同, LaTeX用不同的符號分別表示左引號和右引號. 左引號用`表示(鍵盤左上角, Tab鍵上面), 右引號用"表示(平時輸引號的那個鍵). 雙引號用過輸入兩個引號來得到. 例如:
`machine", ``learning"".
連字元
不同長度的"-"表示不同含義. 一個"-"長度的連字元用於詞中; 兩個"-"長度的連字元常用於指定數值範圍; 三個"-"長度的連字元是破折號; 數學中的負數要用數學環境下的-得到. 例如:
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}$.
組合數
和國內通常用 表示組合數不同, 國際上通常用括弧表示組合數, 讀作"n choose k". 在LaTeX中組合數可以用inom命令打出. 例如:
$inom{n}{k}$.
集合
集合中的分割可以用豎線"|", 也可以用冒號":". 分割符與左右要有空格. 例如
${x mid x ge 0}$. % Note "mid" instead of "|"
同理, 條件概率中間的分割豎線與左右也要有空格.
當出現很高的符號時, 這時需要使用igm或Bigm, 例如:
$left{x igm| frac{1}{x} > 0
ight}$.
此外mid還可以用來表示整除, 不能整除用
mid表示.
空集
空集寫法如下, 需要在引言區導入amssymb包:
usepackage{amssymb}$varnothing$.
省略號
省略號分兩種. 列舉一系列元素中的省略用ldots; 數學運算表達式中的省略用cdots. 即省略號高度要和左右符號的高度一致. 而在普通文本中的省略號一律用ldots. 例如:
$x_1, x_2, ldots, x_n$, $x_1 + x_2 + cdots + x_n$.
優化問題
通常, 優化問題解得的最優值用star表示, 而不是"*". 優化問題的變數要寫到"arg min"或"arg max"整體的下方. 例如:
egin{equation} x^star = mathop{argmin}_x (x-1)^2 ,.end{equation}
二元關係
表示二元關係的符號要與左右兩側留有空格, 例如:
$a mathrel{R} b$.
函數映射
函數映射通常有其固定的寫法, 例如:
$fcolon A mapsto B$.
矩陣與向量
矩陣和向量要用粗體表示. 有人習慣於用直立粗體表示矩陣, 用斜體粗體表示向量. 使用m需要在引言區導入bm包. 例如:
usepackage{bm}$f{A}, f{Omega}, m{x}, m{mu}$.
如果讓大小寫字母都變為斜體粗體, 可以用oldsymbol命令. 例如:
$oldsymbol{A}, oldsymbol{Omega}, oldsymbol{x}, oldsymbol{mu}$.
此外向量也可以用箭頭標註. 例如
$vec x, vec mu$.
矩陣和向量可以用中括弧"[]"或小括弧"()"表示, 目前國際上用中括弧表示更常見, 這是因為用小括弧表示矩陣和向量容易和表示代數運算優先順序的小括弧相混淆. 在LaTeX中可以用bmatrix環境書寫矩陣. 例如:
egin{equation} egin{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不是變數, 應當以直立體出現. 例如
$oldsymbol x^{mathrm{T}}$.
此外, 也有人用intercal, op, 或mathsf{T}來表示轉置.
函數名
函數名不是變數, 故應當以直立體出現. LaTeX內置支持一些常用的函數名, 例如:
$sin(x), exp(x)$.
當我們需要自己定義函數名時, 在在引言區使用DeclareMathOperator命令聲明需要定義的函數名. 例如:
DeclareMathOperator{sign}{sign}$sign(x)$.
公式標點與標號
標號基礎
重要的公式需要標號. 包含在equation環境中的環境會被自動標號, 如果你不需要標號, 可以用equation*環境或將公式放於[和]之間. 例如:
egin{equation} % Equation with numbering e^{ipi} = -1 end{equation}egin{equation*} % Equation without numbering a^2 + b^2 = c^2end{equation*}[ % Equation without numbering a^2 + b^2 = c^2]
標點基礎
公式後的標點是很多人忽視的地方. 並不是所有公式後都要或不要加標點, 公式(包括行內公式和行間公式)是句子的一部分, 因此, 我們需要根據公式在句子中所處的位置來判斷在公式後加什麼標點. 行間公式中公式和標點之間要空格. 例如:
Einstein introduced his formulaegin{equation} E = m cdot c^2 ,, % Note ",," end{equation}which is at the same time the most widely known and the least well understoodphysical formula.ldots from which follows Kirchhoff"s current law:egin{equation} sum_{k=1}^n I_k = 0 ,. % Note ",."end{equation}egin{equation} I_D = I_F - I_R % No breakend{equation}is the core of a very different transistor model.
多行公式的標點與標號
多行公式通常只在最後一行結尾時根據需要標點與標號. 最新版本的LaTeX建議使用IEEEeqnarray環境替代eqnarray環境書寫多行公式, 這需要在引言區導入IEEEtranstools包. 例如:
usepackage[retainorgcmds]{IEEEtrantools}egin{IEEEeqnarray*}{rCl} a &=& b + c \ &=& d + e \ &=& f + g ,. IEEEyesnumber end{IEEEeqnarray*}
多分支公式的標點與標號
分支是公式的一部分, 我們只對整體做一個標號, 不對每個分支進行單獨標號. 每個分支需要單獨進行標點: 前面的分支結束後要用分號";", 最後一個分支結束後根據需要進行標點. 此外, 和寫編程語言不同, 與if分支對應的通常是otherwise, 而不是else. LaTeX中, 分支可以用dcases環境書寫, 需要在引言區導入mathtools包. 例如:
usepackage{mathtools}egin{equation} |x| = egin{dcases} -x & ext{if } x < 0 ,;\ x & ext{otherwise} ,. \ end{dcases}end{equation}
公式組的標點與標號
如果各公式組成一個整體, 通常我們用大括弧把所有公式括起來, 並對整體做一個標號, 前面的公式用逗號結尾, 最後一個公式根據需要進行標點. 例如,
usepackage{mathtools}egin{equation} egin{dcases} g(x) le 0 ,, \ h(x) = 0 ,. \ end{dcases}end{equation}
如果各公式只是在一起羅列, 而不是作為一個整體, 那麼我們對各公式分別進行標號. 例如,
egin{gather} sin^2 x + cos^2 x = 1 ,, \ an x = frac{sin x}{cos x} ,.end{gather}
優化問題的標點與標號
通常max/min和s.t.(讀作"subject to"而不是"such that")保持中心對齊, 目標函數項和各約束項保持左對齊. 只在目標函數項那一行標號但不標點, 各約束項標點但不標號. 例如:
egin{alignat}{2} min_x quad & f(x) & \ mathrm{s.t.} quad & g_i(x) le 0, &quad i = 1, 2, ldots, m ,,
onumber \ & h_j(x) = 0, &quad j = 1, 2, ldots, n ,.
onumberend{alignat}
此外, 也有人將優化問題看作一個整體, 對整體作一居中標號.
數學證明
數學證明以"Proof."開始, 以方框符號結尾. amsthm包提供了證明環境. 例如:
usepackage{amsthm}egin{proof} Trivial.end{proof}
參考文獻
參考文獻可以用BibTex管理, 例如:
ibliographystyle{alpha}ibliography{main}
致謝
感謝@蔣雨蒙對siunitx包的介紹, @大灰灰老師對dcases環境的介紹, @碩鼠醬對ltxprimer的介紹, @胡不退對ref的建議, @風清揚對轉置和優化問題標號的建議, @team bright對高符號下mid使用的提醒. 由於本人才疏學淺, 不當之處在所難免, 敬請各位讀者批評指正.
參考文獻
- Krishnan, E. "Latex tutorials-a primer." (2003).
- Oetiker, Tobias, et al. "The not so short introduction to LATEX 2ε." (2001).
推薦閱讀:
※如何閱讀論文?——「三十天讀論文計劃」踐行心得
※我寫論文,引用了知乎的內容,請問這算有效的引用文獻么?
※論文中到底能不能出現「筆者」,「本文」一類的代詞?
※Mac上寫論文,只用虛擬機win的word。mac上的endnote無法導入虛擬機word,如何解決?