[分享] 台大硕博士论文模板/GitHub Actions 集成

楼主: Hsins (翔)   2020-05-08 17:03:24
上次弄模板已经是两年前的事了,一开始只是写给自己和硕班同学使用,所以
不太在意细节,能弄出来就好了…
不过陆陆续续还是发现在 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 也可以编译出文件…
如果有问题或建议,还请不吝指教 > " <
作者: sppmg (sppmg)   2020-05-09 10:02:00
赞!GitHub actions 部份感觉很强。kv 可以考虑用 expl3 做
作者: tzudata (子资料)   2020-05-10 10:30:00
帮推
作者: k010447 (Dragger)   2020-05-10 21:56:00
超实用!感谢大师的提供想当初写论文搞了好久
作者: Ice9 (又到了属于我的季节)   2020-05-19 06:09:00
好人一生平安!
作者: st1009 (前端攻城师)   2020-07-01 12:53:00
LaTeX 新手想请问新细明体怎用?我看网络上别人都直接引用但我用的时候出现他提示我找不到....
作者: sppmg (sppmg)   2020-07-01 20:52:00
说你的环境,xelatex或pdflatex,是否使用样板,提供简易范例
作者: st1009 (前端攻城师)   2020-07-01 21:05:00
我用Overleaf xelatex没有使用样板,不过有从版上台科样板挖一些设定回去用#1T1AJG0G (LaTeX) 就是这篇,我挖了他设定中文的方式,不过他的设定好像没有新细明体#1HTtAF82 (LaTeX) 我参考这篇用\setCJKmainfont{新细明https://imgur.com/UZZlwcA.jpg错误讯息是 "新细明体" cannot be found.
楼主: Hsins (翔)   2020-07-02 07:24:00
XeLaTeX 可以直接使用系统已经安装的或是指定路径下的字体Overleaf 支援的字体清单请参考 https://bit.ly/2YRsX7a里面并没有新细明体,你可以从列表找相近的字体使用,或者把字体档放入专案工作目录下,直接指定档案使用比如放到工作目录下的 fonts 资料夹\setCJKmainfont[Path=./fonts/]{Ming.ttf}
作者: st1009 (前端攻城师)   2020-07-02 09:03:00
谢谢!我试看看
作者: sppmg (sppmg)   2020-07-02 22:08:00
如原po,你选含Ming的像 cw* 或 AR PL * 都可。另外细明体最好用英文 MingLiU,曾听说用中文会找不到(windows下)。新细跟细应该只有差英文字母是否固定间距。
作者: st1009 (前端攻城师)   2020-07-02 22:32:00
我的英文要用time new roman所以这样说好像用细就好了我不懂为何我的字的换行跟样板对不起来,我的字形是直接抓win里面的字形档,边界设定也一样,可是我的绪论会换行的字跟我样板不一样....理论上模板对会一样对吧?https://www.overleaf.com/read/cmtdftbfkptrhttps://reurl.cc/D9rQed上面是我的overleaf和要做的模板,不知道有人可以帮忙嘛Q
作者: sppmg (sppmg)   2020-07-07 19:53:00
(还没看)如果没差很多的话应该正常,因为字符大小不同,一旦 LaTeX 判断需要换行,那行字距会拉开来填满行尾。你第二个根本不是LaTeX生成的啊!XD 档名都 .docx 了!office字距是死的,LaTeX字距是活的,甚至还可能缩字体宽度
作者: st1009 (前端攻城师)   2020-07-07 22:14:00
原始模板是docx现在希望可以做latex版,希望对方不嫌弃...我这样发论文应该不会太冒险吧... 我想审查人员很难看出差别... 为了不害人,如果有过再公开模板上来分享总觉得行距怪怪的,每页莫名多好多行,可是1.5感觉没错...可能还是乖乖开虚拟机用word写了...不然会不急(′_ゝ`)*会不急 -> 来不急
作者: sppmg (sppmg)   2020-07-12 18:06:00
你字体多少
作者: st1009 (前端攻城师)   2020-07-12 18:27:00
12
楼主: Hsins (翔)   2020-07-13 15:14:00
有额外问题的话发文讨论吧,集中在这篇以后的人要找不方便
作者: st1009 (前端攻城师)   2020-07-13 20:48:00
好的抱歉,我先再自己研究一下
作者: shownlin (哈哈阿喔)   2020-08-04 20:29:00
真的很感谢,今年就是用你的模板写论文的y
作者: sarsman (DeNT15T♠)   2020-11-24 17:24:00
感谢,省去很多摸索的时间!

Links booklink

Contact Us: admin [ a t ] ucptt.com