個人 LaTeX 方案實現

個人 LaTeX 方案實現

LaTeX ,是一種基於 TeX 的排版系統,由美國計算機科學家萊斯利·蘭伯特在20世紀80年代初期開發,利用這種格式系統的處理,即便用戶沒有排版和程序設計的知識也能夠充分發揮由 TeX 所提供的強大功能,沒必要一一親自去設計或校對,能在幾天,甚至幾小時內生成不少具備書籍質量的印刷品。對於生成複雜表格和數學公式,這一點表現得尤其突出。所以它很是適用於生成高印刷質量的科技和數學類文檔。這個系統一樣適用於生成從簡單的信件到完整書籍的全部其餘種類的文檔。
————維基百科

1. 前言

  簡單點說:LaTeX 基於 TeX,主要目的是爲了方便排版。在學術界的論文,尤爲是數學、計算機等學科論文都是由 LaTeX 編寫, 由於用它寫數學公式很是漂亮。
  在稍微瞭解一點 LaTeX 後,你會發現 LaTeX 的工做方式相似 web page,都是由源文件(.tex or .html)經由引擎(TeX or browser)渲染產生最終效果(獲得 PDF 文件 或者 生成頁面)。二者極其神似,包括語法規則與工做方式。因此呢,與 HTML 同樣,入門其實很簡單。
0.Latex&HTML.png
  通常的規範寫法中都是在 HTML 文件中寫入 web page 的結構與內容,再由 css 控制頁面生成的樣式。固然你也能夠選擇在 HTML 中直接寫入樣式內容,不過這並不提倡。一樣,在 LaTeX 有着一樣的狀況,你能夠在 tex 源文件中同時寫入內容和樣式,也能夠內容與樣式分離,以網絡上流傳普遍的 清華大學 LaTeX 模板 爲例,以.cls(class)結尾的 thuthesis.cls 即可看做是與 css 起到一樣做用的樣式文件。
  LaTeX 有所謂宏包的概念,\usepackage{foo} 便可使用宏包 foo 中定義的內容。所謂宏包就是一些寫好的內容打包出來以便你們使用而已。這跟 C 語言的 include 是一致的,將文件加載進來進行使用。利用宏包,咱們可使用不少現成的好用的樣式。固然了,若是要編寫一個本身的個性化的宏包也是能夠的,不過須要學習成本。
  初期的話,咱們能夠選擇一個 LaTeX 模板進行改造。不過第一次見到一些模板,可能會對其中不少文件的做用一頭霧水。下面是簡單的介紹,詳細內容可見在 LaTeX 中進行文學編程,固然更多介紹的話能夠自行搜索。shell

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 。現階段先使用 Markdown 已足以知足個人需求,可是當我學習 Pandoc 轉換 Markdown 格式爲 Pdf 格式時,系統提示我須要安裝 pdfLaTeX ,因而我打算將 LaTeX 的學習計劃提早。還有一部分緣由是 Markdown 編寫數學公式時須要用到 LaTeX 語法。
  我在查閱了必定的資料後,決定採用 TeX Live + VS Code + LaTeX Workshop 的方案。一方面,個人主力編輯器是VSCode;另外一方面,劉海洋老師寫的 《 LaTeX 入門》 中推薦的 CTeX 套裝,網評「老舊、易出錯、盜版、過分封裝和不支持跨平臺」,並不推薦像我這樣的小白使用。具體來講:編程

  • CTeX 封裝的 MikTeX 在實現 XeTeX 以及字體庫的時候有一些問題,前者致使運行 XeLaTeX 異常緩慢,後者致使使用一些數學字體的時候會報錯。
  • CTeX 封裝的默認編輯器 WinEdt 是閉源軟件,其實是在使用盜版軟件。
  • CTeX 封裝的默認編輯器 WinEdt 修改了默認編碼爲 GBK, 這將在後續使用過程當中產生不少問題,對初學者來講是不良的。
  • CTeX 封裝的默認編輯器 WinEdt 集成了太多的功能,而且修改了不少 LaTeX 的默認行爲,對於初學者來講,這些未經通告的默認行爲修改對於其對 LaTeX 的理解是不良的。
  • CTEX論壇因故自2018年11月21日起無限期關閉。CTeX 套裝最終版本定格爲 2.9.2.164 版本,已經沒法再更新了,事實上也沒有必要再更新了。
  • CTeX 因爲封裝 MikTeX 而只能運行於 Windows 平臺。
  • CTeX 是由於 CJK 包的字體配置複雜,爲了免去入門用戶的配置成本而推出的。而如今由於 XeTeX 引擎以及 xeCJK 宏包的出現,CJK 包已經成爲過去。而且使用 zhm 能夠與 CJK 結合方便地動態配置字體。所以 CTeX 曾經的優點實際上已經不成爲優點,而且因其引發的各類國內期刊模板的老舊問題正不斷成爲阻礙中國 TeX 社區進步的惱人因素。

2. 軟件的安裝和配置

2.1. TeX Live

  TeX Live 簡稱 TL ,是國際 TeX 用戶組( TUG )維護的一個 TeX 系統。通常來講,是最「正宗」的 TeX 系統,支持不一樣的操做系統平臺,配置全部的編譯環境和各類宏包。對於任何階段的 TeX 用戶,均可以使用 TeX Live , 以保持在跨操做系統、跨用戶的 TeX 文件一致性。json

2.1.1. TeX Live 下載

  TeX Live 有兩種安裝方式。服務器

  • 網絡安裝,安裝包體積小,可是安裝時會不斷從服務器上下載所須要的內容,須要保證網絡暢通。而且,若是網速特別慢的話,使用網絡安裝方式可能要折騰好一下子。
  • 本地安裝,安裝包體積大,可是包括了安裝所須要的全部內容。因此,安裝時不須要聯網。

  因爲 TeX Live 網絡安裝須要一邊下載一邊安裝,國內下載速度較慢,因此推薦直接下載 ISO 文件,可一次性獲取完整的安裝文件,可使安裝過程更爲順暢。附上清華大學的鏡像網絡

2.1.2. TeX Live 安裝

1.下載的文件是 ISO 光盤鏡像文件,通常而言,macOS / Windows 10 / 大部分 Linux 都可以直接雙擊掛載。可是不排除比較舊的 Windows 版本存在,好比 Windows 7 / XP ,那掛載就須要使用虛擬光驅。
2.爲了不用戶權限問題,能夠用管理員模式(右鍵-->以管理員身份運行)運行 install-tl-advanced.bat 文件(注意:文件夾路徑裏面不能有中文,否則打不開。),進入第一個框框後點擊 Advanced 。(注意:安裝後將會佔用 5G 左右的磁盤空間,建議將安裝目錄切換到 D 盤或者其餘空間較大的盤中。)
1.click_advanced.png
3.見到下面的安裝界面。
2.click_Customize.png
4.這裏,爲了控制一下 TeX Live 佔用的內存大小,咱們能夠選擇修改 N. of collections 選項,並根據我的須要,去掉 Texworks (比較老的編輯器,不推薦)以及部分咱們平常不會使用的語言包,設置以下:
3.modify_N._of_collections.png
5.而後點擊「安裝」便可。通過一段漫長的安裝,TeX Live 就安裝完成了。
4.Successful_installation.png

在安裝完以後,能夠調用 commond ,在命令行窗口中分別輸入

tex -v
latex -v
xelatex -v
pdflatex -v

來獲取安裝的 TeX 的環境信息!若是看到的版本信息可以正常輸出,那麼 TeX Live 的安裝就成功啦!

2.2. VS Code

  Visual Studio Code(簡稱 VS Code )是一個由微軟開發,同時支持 Windows 、 Linux 和 macOS 等操做系統且開放源代碼的代碼編輯器,它支持測試,並內置了 Git 版本控制功能,同時也具備開發環境功能,例如代碼補全(相似於 IntelliSense )、代碼片斷和代碼重構等。該編輯器支持用戶個性化配置,例如改變主題顏色、鍵盤快捷方式等各類屬性和參數,同時還在編輯器中內置了擴展程序管理的功能。

2.2.1. VS Code 下載和安裝

  官網的下載和安裝指導其實已經比較完善。在這裏附上下載連接和安裝後的指導。VS code下載和安裝都比較簡單,其關鍵的核心在於如何配置一些高質量的插件以知足本身的需求。

2.3. LaTeX Workshop

  LaTeX Workshop 是 VS Code 的插件,這個插件爲 VS Code 提供了 LaTeX 語言支持。

2.3.1. LaTeX Workshop 下載和安裝

  在 VSCode 的擴展管理中,搜索 LaTeX,第一個結果就是咱們要安裝的插件。

5.search_LaTeX_in_VSCODE.png

2.3.2. LaTeX Workshop 基本配置

  將下面的代碼複製粘貼到 VS Code 的 setting.json 文件中。

  • LaTeX Workshop 默認的編譯工具是 latexmk ,所以我把其修改成中文環境經常使用的 xelatex 。(將 tools 中的 %DOC% 替換成 %DOCFILE% 就能夠支持中文路徑下的文件了)
"latex-workshop.latex.tools": [
    {
        "name": "xelatex",
        "command": "xelatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "%DOCFILE%"
        ]
    },
    {
        "name": "pdflatex",
        "command": "pdflatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%DOCFILE%"
        ]
    },
    {
        "name": "bibtex",
        "command": "bibtex",
        "args": [
            "%DOCFILE%"
        ]
    }
],
  • 用於配置編譯鏈,一樣地放入 setting.json 配置文件內。第一個 recipe 爲默認的編譯工具,如須要使用 bibtex 可在編譯時單擊 VS Code 界面左下角的小勾,單擊「 Build LaTeX project 」,選擇「 xe->bib->xe->xe 」,另外的方法是使用右側欄,或者直接將「 xe->bib->xe->xe 」的 Recipe 放到第一位,就能夠做爲默認 Recipe 編譯了,但由於編譯次數比較多,速度會比較慢。
"latex-workshop.latex.recipes": [
    {
        "name": "xelatex",
        "tools": [
            "xelatex"
        ]
    },
    {
        "name": "xe->bib->xe->xe",
        "tools": [
            "xelatex",
            "bibtex",
            "xelatex",
            "xelatex"
        ]
    }
    {
        "name": "pdflatex",
        "tools":[
            "pdflatex"
        ]
    }
],

  如今就能夠用 VS Code 編輯 LaTeX 文檔並編譯出 PDF 文件了,按 CTRL+ALT+B 編譯,而後按 CTRL+ALT+V 打開 PDF 文件。

2.3.3. 使用 SumatraPDF 預覽編譯好的PDF文件

  SumatraPdf 是一款輕量級的 PDF 閱讀器,類型爲開放軟件,而且有安裝版和便攜版兩個版本。
  VS Code 內置的 PDF 查看器功能比較簡單,並且不太方便,而 Adobe Reader 則相對體積大,打開速度慢。Sumatra PDF 小巧強大,啓動速度快,做爲本方案的 PDF 閱讀器最合適不過,並且還能夠和源碼之間實現定位跳轉,彌補 LaTeX「所見非所得」的劣勢。

2.3.3.1. 下載安裝
2.3.3.2. 基本配置

  要使用 SumatraPDF 預覽編譯好的PDF文件,將下列代碼複製粘貼至 setting.json 配置文件內。「 viewer 」設置閱讀器爲外置閱讀器,「 command 」爲 SumatraPDF.exe 的路徑,根據實際狀況修改。

"latex-workshop.view.pdf.viewer": "external",
"latex-workshop.view.pdf.external.viewer.command":"D:/tools/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.viewer.args": [
    "--unique",
    "%PDF%"
],
2.3.3.3. 配置正向搜索(LaTeX → PDF)

  將下列代碼複製粘貼至 setting.json 配置文件內以配置正向搜索。「 command 」依舊是 SumatraPDF.exe 的存放位置,根據實際狀況修改。

"latex-workshop.view.pdf.external.synctex.command":"D:/tools/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.synctex.args": [
    "-forward-search",
    "%TEX%",
    "%LINE%",
    "%PDF%",
],

  單擊「左側 TeX 工具欄」 → 「 Navigate,select,and edit 」 → 「SyncTeX from cursor」或使用快捷鍵 CTRL+ALT+J 便可正向搜索。

2.3.3.4. 配置反向搜索(PDF → LaTeX)

  打開 Sumatra PDF,進入設置 -> 選項對話框,在「設置反向搜索命令行」處添加如下命令:

"Code.exe" "resources/app/out/cli.js" -g "%f":"%l"

  根據 VS Code 實際的安裝位置將「 Code.exe 」和「 resourcesappoutcli.js 」換成 VS Code 在本身的電腦上的安裝位置,例如:

"D:/tools/Microsoft VS Code/Code.exe""D:/tools/Microsoft VS Code/resources/app/out/cli.js" -g "%f":"%l"

  雙擊 PDF 中的任意一處便可跳轉到 VSCode 中所對應的內容的源代碼處。

最好不要清理 xelatex 生成的 gz 後綴的臨時文件,不然就不能進行正向和反向搜索。

2.3.4. 其餘設置

  因爲 LaTeX 編譯過程會產生一些輔助文件,放在那沒什麼用,看着也糟心,因此第一個參數是指定在PDF文件生成後自動清除輔助文件。第二個參數是指保存是否自動編譯 LaTeX 文件,由於 VSCode 有自動保存功能,因此每次自動保存都會編譯 LaTeX 文件,這樣就會致使電腦每隔一段時間就會自動編譯文檔,沒有必要。

"latex-workshop.latex.autoClean.run": "onBuilt",
"latex-workshop.latex.autoBuild.run": "never",

3.驗證配置方案

  在 VS Code 中新建一個 .tex 文件,將下列代碼複製粘貼到代碼區:

\documentclass{article}
\usepackage{ctex}
\begin{document}
\title{My \LaTeX}
\author{我}
\maketitle
\section {中文}
\songti {這是宋體}
\heiti {這是黑體}
\kaishu {這是楷書}
\fangsong {這是仿宋體}
\yahei {這是雅黑}
\section{勾股定理}
勾股定理能夠用現代的語言描述以下:

直角三角形斜邊的平方等於兩腰的平法和。

能夠用符號語言描述爲:設直角三角形
$ \angle C=90^\circ $則有:
$$
    AB^2 = BC^2 + AC^2
$$
這就是勾股定理。
\end{document}

  先按 CTRL+ALT+B,編譯完後,再按 CRTL+ALT+V(若無效則點擊右上角的圖標),調用 Sumatra PDF 閱讀器查看編譯好的 PDF 文件。在 PDF 適當位置雙擊,便可跳轉至 VSCode 中的 LaTeX 源碼,在源碼處,按 CTRL+ALT+J 便可查看對應 PDF 所對應位置。

本文主要參考了一些網絡資源
1. 從零開始 LaTeX 快速入門
2. 使用VSCode編寫LaTeX
3. 論文排版神器 —— LaTeX 套裝推薦 並根據實際狀況進行了調整。
相關文章
相關標籤/搜索