上次弄模板已经是两年前的事了,一开始只是写给自己和硕班同学使用,所以
不太在意细节,能弄出来就好了…
不过陆陆续续还是发现在 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 也可以编译出文件…
如果有问题或建议,还请不吝指教 > " <