從零開始 LaTeX 快速入門

轉載自http://liuchengxu.org/blog-cn/posts/quick-latex/

此篇爲寫給一些想快速入門 LaTeX 的朋友. 爲什麼叫從零開始? 因爲我就是從零開始學會的 LaTeX。本人學識與能力有限,以下內容如有紕漏或錯誤,歡迎來信糾正。

我幾乎沒有看到有將 LaTeX 與網頁的渲染進行比較學習,這也可以算作是遷移學習,只要稍微懂得一點網頁的知識都可以瞭解 LaTeX 的運作方式。本文並不十分正統,僅當快速學習的經驗分享。

LaTeX 始終是個排版工具,快速使用並且活學活用纔是硬道理。筆者從第一次使用 LaTeX 從完成幾十頁畢業論文的 LaTeX 大工程(文末有提供我的畢業論文 LaTeX 源文件),期間不過兩三個月而已, 而除去內容上的準備,在 LaTeX 調整樣式上也不過幾周時間。所以要相信只要得法, 其實 LaTeX 很簡單,不要因爲有一些 LaTeX 學習曲線很陡的說法而心生畏懼。

LaTeX概覽

摘自維基百科:

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

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

我的一點理解:

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

sketch

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

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

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

LaTeX模板常見文件類型功能簡要介紹
.dtxDocumented LaTeX sources,宏包重要部分
.insinstallation,控制 TeX 從 .dtx 文件裏釋放宏包文件
.cfgconfig, 配置文件,可由上面兩個文件生成
.stystyle files,使用\usepackage{...}命令進行加載
.clsclasses files,類文件,使用\documentclass{...}命令進行加載
.auxauxiliary, 輔助文件,不影響正常使用
.bstBibTeX style file,用來控制參考文獻樣式

class 與 style 似乎十分相像,它們在功能上的確很相似,但是也有區別。這裏 是關於 .cls 與 .sty 文件的區別.

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

安裝配置LaTeX

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

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

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

    OSTeX Distribution
    WindowsCTeX
    MacMacTeX
    Windows, LinuxTeXLive

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

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

  2. 選擇一個合適的 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,即可看到效果。

TeXstudio

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

LaTeX數學公式

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

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

學會寫 LaTeX 公式,只需要瞭解 4 個概念:

  1. 數學公式環境。

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

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

  2. 控制序列。

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

  3. 上下標。

    _{...}表示下標,^{...}表示上標。它默認只作用於之後的一個字符,如果想對連續的幾個字符起作用,請將這些字符用花括號{}括起來, 也就是下面分組的概念。

  4. 分組。

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

LaTeX命令預覽效果
$ x_i $xixi
$ x^2 $x2x2
$ x^ {y^z}$xyzxyz
$ \int_a^b f(x)$baf(x)∫abf(x)
$ \frac ab $abab

有了這幾個概念以後,再動手寫幾個就大概懂了。無論多麼複雜的公式都是有一個個簡單的東西構成。推薦一個網站: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}
\end{document}

LaTeX將

\begin{...}
content
\end{...}

稱爲 ... 環境。在對應環境中 content 產生對應效果。

winedt

還有一個更方便的方式,直接使用ctexart模板:

\documentclass[UTF8]{ctexart}

或者使用 ctex 宏包:

\usepackage{ctex}

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

font

mac-chinese

LaTeX 資源推薦

  • Detexify LaTeX handwritten symbol recognition.

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

  • LaTeX公式編輯器

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

  • 在線LaTeX編輯器shareLaTeX

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

對於 LaTeX 初學者的建議

起初,我想通過將清華大學的 LaTeX 模板改造爲我的本科院校給出的 word 模板樣式,不過最後這條路沒有走到底。反思其原因是一直想寫個宏包出來,即從 thuthesis.cls 到 szuthesis.cls,最好能夠一次性做出一個模板出來。但是始終由於各種原因沒有時間給我去折騰,太多錯誤無法解決。最後我選擇基於 ctexart 的基本樣式進行修改,在 tex 源文件混雜了樣式內容,從源代碼的角度看雖然不漂亮,但是對於完成本科論文綽綽有餘了。在 tex 源文件裏修改 ctexart 的各種樣式實在是容易上手的多。

初學者輕易不要嘗試修改現有的模板樣式文件,除非你知道如何寫一個宏包。完成樣式即可,不用在乎源代碼是否優雅。

下面修改樣式的過程的一些經驗:

  • 查看宏包說明

    比如我裝的 TeXLive 2015 在 C://texlive 目錄下,打開 C://texlive/2015/doc.html,你就會發現各種文檔。請仔細閱讀一遍ctex.pdf會很有用。

  • 查看宏包手冊

    打開 cmd, 輸入 texdoc 你想要查詢的宏包名 , 比如 texdoc caption,就會打開 caption 宏包手冊。誠然可以網上查找解決辦法,但是如果有空的話必然是查看官方手冊更靠譜更全面.

額外推薦

我的本科論文 LaTeX 源文件已經放到了 GitHub 上,對於初次使用 LaTeX 寫論文的人應當具有一定的借鑑意義,在源文件中我做出了諸多註解。此外, 論文關於推薦系統,如果有人做相關方向也可看一下。

如果您已經懂得了基礎操作,不妨看一下我在 CSDN 記錄的一些 LaTeX 使用注意點,裏面積累了我在 LaTeX 使用過程中的很多經驗:LaTeX實戰經驗:新手須知 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章