天天看點

LaTeX入門

LaTeX概覽

摘自維基百科:

LaTeX, 是一種基于TEX的排版系統,由美國電腦學家萊斯利·蘭伯特在20世紀80年代初期開發,利用這種格式,即使使用者沒有排版和程式設計的知識也可以充分發揮由TEX所提供的強大功能,能在幾天,甚至幾小時内生成很多具有書籍品質的印刷品。對于生成複雜表格和數學公式,這一點表現得尤為突出。是以它非常适用于生成高印刷品質的科技和數學類文檔。這個系統同樣适用于生成從簡單的信件到完整書籍的所有其他種類的文檔。

簡單點說:LaTeX 基于 TeX,主要目的是為了友善排版。在學術界的論文,尤其是數學、計算機等學科論文都是由 LaTeX 編寫, 因為用它寫數學公式非常漂亮。

我的一點了解:

在稍微了解一點 LaTeX 後,你會發現 LaTeX 的工作方式類似 web page,都是由源檔案(.tex or .html)經由引擎(TeX or browser)渲染産生最終效果(得到 PDF 檔案 或者 生成頁面)。兩者極其神似,包括文法規則與工作方式。是以呢,與 HTML 一樣,入門其實很簡單。

一般的規範寫法中都是在 HTML 檔案中寫入 web page 的結構與内容,再由 css 控制頁面生成的樣式。當然你也可以選擇在 HTML 中直接寫入樣式内容,不過這并不提倡。同樣,在 LaTeX 有着同樣的情況,你可以在 tex 源檔案中同時寫入内容和樣式,也可以内容與樣式分離,以網絡上流傳廣泛的 清華大學 LaTeX 模闆為例,以.cls(class)結尾的 thuthesis.cls 便可看作是與 css 起到同樣作用的樣式檔案。

LaTeX 有所謂宏包的概念,\usepackage{foo} 即可使用宏包 foo 中定義的内容。所謂宏包就是一些寫好的内容打包出來以便大家使用而已。這跟 C 語言的 include 是一緻的,将檔案加載進來進行使用。利用宏包,我們可以使用很多現成的好用的樣式。當然了,如果要編寫一個自己的個性化的宏包也是可以的,不過需要學習成本。

初期的話,我們可以選擇一個 LaTeX 模闆進行改造。不過第一次見到一些模闆,可能會對其中很多檔案的作用一頭霧水. 下面是簡單的介紹,詳細内容可見在 LaTeX 中進行文學程式設計,當然更多介紹的話可以自行搜尋。

LaTeX模闆常見檔案類型 功能簡要介紹

.dtx Documented LaTeX sources,宏包重要部分

.ins installation,控制 TeX 從 .dtx 檔案裡釋放宏封包件

.cfg config, 配置檔案,可由上面兩個檔案生成

.sty style files,使用\usepackage{...}指令進行加載

.cls classes files,類檔案,使用\documentclass{...}指令進行加載

.aux auxiliary, 輔助檔案,不影響正常使用

.bst BibTeX style file,用來控制參考文獻樣式

class 與 style 似乎十分相像,它們在功能上的确很相似,但是也有差別。這裡 是關于 .cls 與 .sty 檔案的差別.

額外推薦閱讀材料: 來自北京大學李東風老師的 LaTeX 排版心得.

安裝配置LaTeX

LaTeX 配置環境很簡單,隻需 2 步:

根據平台選擇一個 TeX 發行版 進行安裝,建議選擇最全功能最多的版本。

TeX 發行版的概念相當于 Linux 及其發行版,Linux 核心雖然隻有一個,但是有很多基于核心的不同特色的 Linux 發行版,Ubuntu,Fedora 等等不勝枚舉。

OS TeX Distribution

Windows CTeX

Mac MacTeX

Windows, Linux TeXLive

Windows 使用者推薦 TeXlive,不推薦 CTeX。我一開始安裝的是 CTeX,在 TeXstudio 裡面時常有一些莫名其妙的錯誤,比如明明定義了一個指令,在 log 裡面還是會顯示 error:undefined control sequence,換了 TeXlive 就沒有那些莫名其妙的錯誤了。

不過 TeXlive 線上安裝太慢了,安裝包太大,兩三個 G,這裡是百度雲連結 2015 TeXlive 離線安裝包, 提取密碼2cj2,解壓縮後運作 install-tl-windows.bat 即可。Mac使用者推薦使用 MacTeX.

選擇一個合适的 LaTeX 編輯器。

在安裝好LaTeX環境以後,通常都會有一個自帶的編輯器,比如 CTex 的WinEdt, MacTeX的TeXShop, 不過功能并不強大,好比 Windows 記事本,隻有一些基本的文本編輯功能。

在這裡推薦一個我覺得還不錯的LaTeX編輯器:TeXstudio。我試過 WinEdt,TeXnicle,不過都比不上 TeXstudio。在 WinEdt 下面無法編譯的檔案,居然可以在 TeXstudio 中編譯生成最終效果 (雖然 log 裡面顯示 error,但的确産生了效果)。總之,用 TeXstudio 就對了, 而且它是用 qt 寫的,還跨平台。

TeXmacs 有興趣的也可以了解一下,王垠也在部落格中推薦過。

開始第一個 LaTeX 文檔

打開 TeXstudio,建立一個 TeX 檔案,寫入以下内容:

\documentclass{article}

\begin{document}

Here comes \LaTeX!

\end{document}

點選 F5(預設快捷鍵)compile and view,即可看到效果。

至此,一個極簡易的 LaTeX 文檔已經完成。以後要做的事情不過是多用多查,熟能生巧。此外記得找本 LaTeX 的書籍看一下,一來對于更為精細的知識做一個了解,二來可以作為工具書查詢。我經常查的是 «LaTeX入門與提高 第二版»。

LaTeX數學公式

學習 LaTeX 的一大初衷便是為了寫漂亮的數學公式。而于我個人而言,數學公式的練習始于 markdown,很多 markdown 編輯器是支援 LaTeX 數學公式的,比如 haroopad。

以下内容直接在支援數學公式的 markdown 編輯器中即可操作,而且是即時顯示效果,對新手很有幫助。如果使用 haroopad,請在 偏好設定 中 啟用數學表達式。

學會寫 LaTeX 公式,隻需要了解 4 個概念:

數學公式環境。

LaTeX 的數學模式有兩種:行内模式(inline)和行間模式(display)。前者在正文的行文中,插入數學公式;後者獨立排列單獨成行。

在行文中,使用 \$ ... \$ 可以插入行内公式,使用 \$\$ ... \$\$ 可以插入行間公式,如果需要對行間公式進行編号,可以使用 equation 環境.

控制序列。

凡是鍵盤不能夠直接表示的符号或者起着特定作用的皆有指令,類似轉義,叫做控制序列(control sequence)。比如求和符号$\sum$對應的指令為 \sum.

上下标。

_{...}表示下标,^{...}表示上标。它預設隻作用于之後的一個字元,如果想對連續的幾個字元起作用,請将這些字元用花括号{}括起來, 也就是下面分組的概念。

分組。

很簡單,就是用{...}将内容包含起來視作整體,比如上下标很長的時候。遇到什麼時候得到的效果不是預期,那麼很可能你需要加個分組,也就是添個大括号{...}.

LaTeX指令 預覽效果

\$ x_i \$ $x_i$

\$ x^2 \$ $x^2$

\$ x^ {y^z}\$ $x^{y^z}$

\$ \int_a^b f(x)\$ $\int_a^bf(x)$

\$ \frac ab \$ $\frac ab$

有了這幾個概念以後,再動手寫幾個就大概懂了。無論多麼複雜的公式都是有一個個簡單的東西構成。推薦一個網站:MathJax basic tutorial .

LaTeX 中文支援

不同環境具體操作有所不同,造成這種不同的主要是各平台下的字型不同。下面介紹 Windows 與 Mac 平台。

Windows平台比較簡單, 引入 CJK 宏包并應用 CJK 環境即可。

\documentclass[11pt]{article} %百分号表示注釋

\usepackage{CJK} %引入CJK宏包

\begin{document} %begin與end成對出現

\begin{CJK}{UTF8}{song} %應用CJK環境

你好

\end{CJK}

LaTeX将

\begin{...}

content

\end{...}

稱為 ... 環境。在對應環境中 content 産生對應效果。

還有一個更友善的方式,直接使用ctexart模闆:

\documentclass[UTF8]{ctexart}

或者使用 ctex 宏包:

\usepackage{ctex}

如果 Mac 下直接使用 ctex 有問題的話, 可以使用 xeCJK ,不過可能需要稍微多幾個操作,除了引入xeCJK宏包,還要設定字型名稱。測試系統為osx 10.11.3, 關于設定字型名稱,spotlight 輸入 font 打開 Mac 的字型冊,從字型中選擇一個,将其名稱填入,如華文楷體的名稱為 STKaiti 。 如果沒有顯示字型名稱,請 command + I 或在顯示–>顯示字型資訊即可。

LaTeX 資源推薦

Detexify LaTeX handwritten symbol recognition.

通過手寫識别 LaTeX 符号,識别率很高。尤其是當看到一個符号卻不知道其 LaTeX 指令的時候它很有用。隻要畫出記憶中符号的樣子,就會自動出現各種可能想要的表示方法。

LaTeX公式編輯器

對于尚不熟悉的人書寫 LaTeX 公式提供一點便利。

線上LaTeX編輯器shareLaTeX

好處就是不用本地搭建環境,有中文界面,直接線上操作。還有很多 LaTeX 模闆可供選擇。

LaTeX數學符号

LaTeX具有十分強大的數學符号編輯功能

1.LaTeX文法有兩種控制符可以用來控制生成數學公式

$……$ 生成的數學公式與文字并列

……

 生成的數學公式獨占一行

通過$…$控制符來生成數學行内公式:

例子:

語句:$y=\sum_{b}^{a}x^2$_

運作生成之後:y=∑abx2

通過

控制符來生成數學塊公式:

語句:

y=∑bax2

運作生成之後:

2.有了前面兩種數學公式的控制語句之後我們就可以開始在裡面編輯數學公式了

我們可以把數學公式的編輯分為文法(結構)和元素(内容)兩部分

一個字元或字元串可以稱為元素,由中括号{}括起來的語句也可以稱為元素

舉個栗子:

公式:$\sum_{b}^{a}{x_i}$ 

運作生成之後:∑abxi

在這個例子中\sum_{}^{}{}就是一個文法産生∑□□□這樣的結構,x_i中的_也可以看成是一個産生下标的文法x□

而b、a、{x_i}就可以看成是元素

有了文法和元素的概念之後就可以通過查文檔或者百度的方法獲得各種各樣的數學符号了

需要注意的一點:因為控制語句$ _ { }等在公式表達中用來控制語句的結構,是以如果我們要在公式中使用這些符号就需要用到轉義字元來表示

比如要得到1{a+b},就在公式中就需要用到\{和\}來表示前後中括号,$\frac{1}{\{a+b\}}$

同樣如果要表示\就需要這樣寫:\\

更多的數學符号表示可以參考網上一份總結:http://www.mohu.org/info/symbols/symbols.htm

四:論文格式控制

論文格式的指令控制文法和類似于HTML的标簽式語言

下面列舉一些常用的排版格式控制語句: 

1.整體格式控制

\ begin{XXX}…..\end{XXX} 表示一個段落,XXX填document表示整篇文章,abstract表示摘要。。。

\newpage 新起一頁

\setcounter{page}{1} 設定頁碼計數器從目前頁面開始之後每頁自動加上頁碼

\section{XXX} 段落,XXX為段落标題

\subsection{XXX} 子段落

2.語句編輯

\indent……. 縮進

\noindent 不縮進(如果本身就沒有縮進就不用加)

\\ 換行,不另起一段

\par 換行,另起一段(首行縮進)

\bf 加粗

{…} 語句塊,和之前latex數學符号中的作用類似

$…$ 行内數學公式

數學公式塊

\url 加入超連結(一般用于參考文獻那裡)

3.插入圖檔

\centerline{\includegraphics[height=X.Xcm]{圖檔名.字尾名}} 插入圖檔設定圖檔高度(大小),要插入的圖檔放在figures檔案夾裡面

\centerline{XXXX} 圖檔下方文字标注

4.插入表格

\ begin{table}…\end{table} 插入表格塊控制語句

\ begin{tabular}{{p{3cm}|p{3cm}|p{3cm}|p{3cm}}… \end{tabular} 控制表格每一列的寬度

\centering 居中

\hline 表格每一行的的橫線

& 表示表格一行中的

\\ 表格中一行的結束

\rowcolor[gray]{0.9} 設定一行的顔色

上面的控制語句需要在文檔開頭添加上相對應的包(package):

\usepackage{palatino} 字型

\usepackage{graphicx} 圖檔

\usepackage{tabularx} 表格

在使用的編輯文檔過程中如果遇到不會的問題可以百度尋找相應的教程。數學公式可以采用MathType和latex進行關聯使用。