使用Latex編寫論文(pkuthss模板)
這段時間在寫畢業論文,使用的是Latex編寫,這裡記錄一下期間遇到的各種問題的解決方法。
Latex 和 Word 的對比
Latex 的優勢在於參考文獻的管理比較簡單。畢業論文要求所有參考文獻按照出現順序進行編號,但是我們在改論文的過程中不可避免會出現新增、刪除、調整位置的情況。Word 下面每次手動改參考文獻順序是很痛苦的。雖然有一些第三方工具比如 EndNote 可以幫助解決這個問題,但是……我沒用過。
Latex的劣勢在於格式管理麻煩,尤其是文中頻繁出現公式或轉義字元的情況,總是會被打斷思路。
編譯環境
線上環境可以直接使用 Overleaf。Overleaf的優點在於這是一個線上網站,全平臺可用,並且支援多人協作。但是缺點在於其編譯速度慢,並且亮色背景我不喜歡。Overleaf可以直接匯入網站中的 pkuthss 模板開始寫作。
本地環境的優勢在於編譯速度快,尤其是幾十頁篇幅的文件。另外編輯環境的背景顏色可以自己定製,可以使用喜歡的Dark主題。
本地環境的配置如下:texlive + vscode + Latex Workshop。
- texlive 可以到 tug.org 下載對應平臺的安裝包進行安裝,我使用的是 Windows 平臺的 Easy Install。安裝時間太長,抽空去吃了個午飯。(我其實試過使用 choco 來安裝 texlive,不過安裝之後感覺缺了一些東西??)
- 寫作環境使用的是 VS Code,程式設計師都懂。
- 編譯配置的話 VS Code 安裝 Latex Workshop即可。
本地專案搭建
首先下載 pkuthss 模板,這裡從 GitHub下載。
然後是編譯命令,Overleaf 裡使用的 XeLatex,本地我們也保持一致。
涉及到參考文獻 ref.bib 的編譯,我們按照 pkuthss 中 main.tex 的提示使用 biber。
最終,專案配置 [.vscode/settings.json] 內容編寫如下:
{ "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "%DOCFILE%" ] }, { "name": "biber", "command": "biber", "args": [ "%DOCFILE%" ] } ], "latex-workshop.latex.recipes": [ { "name": "xe->bib->xe->xe", "tools": [ "xelatex", "biber", "xelatex", "xelatex" ] } ] }
模板修改
版本管理
寫一次論文中間可能經過多次修改,如果不做版本管理,得到的可能就是“初稿、修改1、修改2、...、終稿”這樣一堆檔案。這顯然很不程式設計師。
我們直接初始化一個Git專案來管理版本。
由於Git只適合管理文字檔案,這裡我們需要將不合適的內容排除。
我們直接使用Github提供的 Tex.gitignore模板 來填寫 .gitnore 檔案。
可以看到,左側檔案欄裡 *.aux 等一系列編譯中間檔案都變成了灰色,不會進入版本歷史。
插入圖表目錄
有時候圖表比較多,老師會建議插入圖表目錄。
直接使用 \listoffigures
插入圖片目錄的話,顯示出來的圖片是 1.1 xxxx
這種格式,我們希望改為 圖 1.1 xxxx
這種格式。
操作方法是在 main.tex 中 \tableofcontents
(正文目錄) 後面加入這樣一段:
{%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{\figurename~\oldnumberline}%
\renewcommand{\listfigurename}{圖目錄}
\listoffigures%
}
表目錄同=同理,fugure 改成 table 就可以:
{%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{\tablename~\oldnumberline}%
\renewcommand{\listtablename}{表目錄}
\listoftables%
}