上次弄模板已經是兩年前的事了,一開始只是寫給自己和碩班同學使用,所以
不太在意細節,能弄出來就好了…
不過陸陸續續還是發現在 GitHub 上有使用者會默默地給那個專案 Star 或者
Fork 下來自己改,於是趁著前陣子勞動節連假稍微大修了一下(幾乎跟一開
始長得不太一樣了…):
- 專案倉庫:https://bit.ly/2YFf3VU
- Overleaf:https://bit.ly/2YJ9bLl
初次使用時,先到 ntusetup.tex 下面進行論文相關資訊的設定,至於模板的
選項和主要進入點則是 main.tex 檔案。這次的修改將資料夾結構切得比較清
楚一點,以便 GitHub Actions 的集成,將各個檔案切開之後也比較能夠讓新
手快速進入狀況,並將精力投入在寫作上而不是模板的設定上:
```
├── back
│ ├── appendix-*.tex // 附錄
│ ├── references.bib // 參考文獻
│ └── ...
├── contents
│ ├── chapter-*.tex // 論文內容
│ └── ...
├── figures
│ └── ...
├── front
│ ├── abstract.tex // 摘要
│ ├── acknowledgement.tex // 致謝
│ └── denotation.tex // 符號列表
├── main.tex // 主文件
└── ntusetup.tex // 模板設定
```
在文檔選項的部分,可以在 main.tex 的 \documentclass 中進行設定,這次
修改很大一部分參考了對岸清華大學的模板,使用 kvsetkeys, kvoptions 套
件進行鍵值(key-value)對的處理,比起傳統透過 \DeclareOption 來設定
選項的方式,能夠更方便地處理預設值。
這份模板基於 report 文檔,所以能夠使用他的相關選項,比如雙面印刷時可
以設置 twoside 和 openright 來自動地插入空白頁,使得新章節起頭都在奇
數頁。除此之外,目前提供的可選項有(擺在第一位的是預設值):
```
% 碩士論文 or 博士論文
degree = master | doctor
% 中文內容 or 英文內容
language = chinese | english
% 字體設定
% - default : 使用標楷體與 Times New Romans (不含粗體)
% - template: 使用 Kaiti 與 Times New Romans (含粗體)
% - system : 有點雞肋,尚未實作,打算根據不同系統選字體 > " <
% - overleaf: 使用 Overleaf 提供的楷體與 Times New Romans
fontset = default | template | system | overleaf
% 是否插入浮水印
watermark = true | false
% 是否插入 DOI 數位標識
doi = true | false
```
相信對很多人來說,尤其是剛剛入門 LaTeX 的初學者,經常會出問題的就是
編譯環境的建置與安裝,不同系統(macOS, Windows, Linux)搭配不同的發
行版本(MacTeX, MikTeX, cwTeX, cTex, TexLive)又有好幾種編譯環境(
pdflatex, xelatex, lualatex...),讓人望之卻步。
所以 Overleaf/ShareLaTeX 的出現無疑是一線曙光,然而免費版本的並不具
備有版本追蹤和回溯功能。由於之前接觸 Docker 技術一段時間,又一直在搗
搞 CI/CD 環境建置,所以我用 GitHub Actions 服務搭配這個模板創建了一
個簡單的自動化編譯與佈署方案:
- https://bit.ly/3bcl6ny
可以直接點選 "Use this template" 以模板方式打開這個倉庫,創建自己的
專案,接著只需要在自己的電腦上使用自己喜歡的編輯器進行寫作,當推送上
去時會觸發工作流(workflow)進行編譯與推送,編譯完成會將最新編譯完成
的版本放到 Release 頁面並記錄時間,這樣一來便可以透過 git 管理你的論
文代碼版本,並且不需要在自己的電腦上安裝 LaTeX 也可以編譯出文件…
如果有問題或建議,還請不吝指教 > " <