XeLaTeX 版本的哈工大硕博毕业论文模版(此版本废弃,不再维护,新模板hithesis https://github.com/dustincys/hithesis 括本硕博,对老版本的缺陷进行了彻底的修改)
该版本是基于PlutoThesis 2013版本(google code 项目中只有2012版本)的基础上添加XeLaTeX支持而来.
在“学术桥-LaTeX交流群(群号:38872389, hithesis 群号259959600)”中留下2013年谭广军毕业版本,是按照日期命名的版本号(也许是因为谷歌代码登陆不了?O(∩_∩)O哈哈~)。
所以为了纪念谭大师兄所做的卓越贡献,所有版本均以时间命名。
XeLaTeX的字体缺省为winfonts,定义在如下文件(Linux):
/usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
默认有宋、黑、楷、仿宋四种字体。 Linux由于没有winfonts,首先需要安装Windows字体,然后再手动载入载体以免出现如“找不到[SIMKAI.TTF]"之类。
总而言之,如果是win7或以后的高版本Windows系统,系统默认就设置好了字体。 如果Windows XP替换KaiTi为KaiTi_GB2312,FangSong为FangSong_GB2312。 如果是Linux或Mac需要手动设置字体,大致过程如下: 一共分3步:
模板中就是手动载入的字体。
如果出现如图所示,在参考文献的页面下方出现较大空白,那么有一个阈值可以调节。
在setup/package.tex
文件中第26~28行
\AtBeginDocument{%
\apptocmd\thebibliography{\interlinepenalty=-5000 }{}{}% 设置参考文献的空白的阈值
}
修改\interlinepenalty
这个阈值。
根据郭大侠(HIT郭靖)的所提的意见和修改方法,添加了完美的可复制支持。 且郭大侠亲自证实可以使用pdf查重!
注:截至现在已经有N多人使用PDF查重。
这意味着什么? 这意味着word死忠可以哭晕在厕所了……
使用版本管理毕业论文的刀客,可以优雅地欣赏如下两个场景了:
word死忠的文件夹模式一:
毕业论文第1章.doc
毕业论文第2章.doc
毕业论文第3章.doc
毕业论文第4章.doc
毕业论文第5章.doc
毕业论文完整版.doc
毕业论文完整版改.doc
毕业论文完整版再改.doc
毕业论文完整版再再改.doc
毕业论文完整版再也不改.doc
毕业论文完整版再也不再改.doc
毕业论文完整版死都不改.doc
毕业论文完整版不死还得改.doc
……
word死忠的文件夹模式二:
毕业论文第1章.doc
毕业论文第2章.doc
毕业论文第3章.doc
毕业论文第4章.doc
毕业论文第5章.doc
毕业论文完整版年月日.doc
毕业论文完整版年月日+1.doc
毕业论文完整版年月日+2.doc
毕业论文完整版年月日+3.doc
毕业论文完整版年月日+4.doc
……
使用latexmk编译,latexmk是一只全自动LaTeX文档生成器,呆萌的操作,傲娇的效果,还没来得及安装的朋友请猛戳链接迅速下载安装!
只需执行:
latexmk -xelatex main
Overleaf 这种运行在网页上的TeX的优点是不需要编译,直接得到pdf结果,但Overleaf有两个不足: 1, 编辑器太菜,只是普通的记事本级别;2,无法良好支持中文。
vim/Emacs 的很多TeX插件都支持latexmk,如vim的vimtex, Latex-studio 等。 Emacs和vim都支持异步,回调功能,配合latexmk使用,是最佳的编写LaTeX环境。
latexmk具有类似Overleaf的功能,只需要运行一次如下命令,latexmk会自动检测TeX文件的修改状况,自动编译。
latexmk -pvc -xelatex main
即不在规范中明确说明的论文格式,主要包括:标点符号中西混用、公式乱排,以及脚注格式、封皮格式、目录、算法混乱。
其中,算法排版在江湖上主要有如下几个门派类别:
江湖门派:
社会计算
导言中:
\usepackage[boxed,linesnumbered,algochapter]{algorithm2e}
正文中:
\begin{algorithm}
\AlgoBiCaption{这是一个简短的算法中文图题}{This is the English caption of the algorithm}
\KwIn{training samples, {$(d_i, d_j)_q$; $\mathbf{q}_i, \mathbf{q}_j \in C$,
$q\in \mathbf{Q}$} }
\KwOut{parameter setting $\lambda^T$}%
\For{$t$=1 to $T$}
{
$\lambda^{t+1}_n = \lambda^t_n + \eta (f_n(q, c, d_i) - f_n(q, c, d_j))$
}
\end{algorithm}
江湖门派:
自然语言
导言中:
\usepackage[algoruled,linesnumbered,algochapter]{algorithm2e}
正文中:
\begin{algorithm}
\AlgoBiCaption{这是一个简短的算法中文图题}{This is the English caption of the algorithm}
\KwIn{training samples, {$(d_i, d_j)_q$; $\mathbf{q}_i, \mathbf{q}_j \in C$,
$q\in \mathbf{Q}$} }
\KwOut{parameter setting $\lambda^T$}%
\For{$t$=1 to $T$}
{
$\lambda^{t+1}_n = \lambda^t_n + \eta (f_n(q, c, d_i) - f_n(q, c, d_j))$
}
\end{algorithm}
江湖门派:
生物信息、网络安全
导言中:
\usepackage[plainruled,linesnumbered,algochapter]{algorithm2e}
正文中:
\foocaption{\textbf{Function}: Sampling}
\begin{algorithm}
\AlgoBiCaption{这是一个简短的算法中文图题}{This is the English caption of the algorithm}
\KwIn{training samples, {$(d_i, d_j)_q$; $\mathbf{q}_i, \mathbf{q}_j \in C$,
$q\in \mathbf{Q}$} }
\KwOut{parameter setting $\lambda^T$}%
\For{$t$=1 to $T$}
{
$\lambda^{t+1}_n = \lambda^t_n + \eta (f_n(q, c, d_i) - f_n(q, c, d_j))$
}
\end{algorithm}
由于维护者(就是本书呆)已成为高龄不毕业博士,课题繁忙,实在无空余时间无偿解决一些用户要求(例如后文介绍的算法格式各实验室要求不一致)。
另外,各位刀客和大侠如要解囊相助,请微信扫码~~
当前master分支为临时可用的XeLaTeX模板。 kiss分支是用来逐渐实现PlutoThesis又傻又简单(Keep It Stupid & Simple, KISS)的伟大又宏伟目标而设。 有感兴趣加入共同开发和维护的同学可以加合作者。
该模板目录结构和各自文件大致功能
├── appendix (论文后面的附表,这里需要编写)
│ ├── acknowledgements.tex
│ ├── appa.tex
│ ├── authorization.tex
│ ├── publications.tex
│ └── resume.tex
├── body (论文的正文部分,正文写在这里需要编写)
│ ├── conclusion.tex
│ ├── equations.tex
│ ├── figures.tex
│ ├── introduction.tex
│ ├── others.tex
│ ├── simpleequation.tex
│ ├── simplefigure.tex
│ ├── simplereference.tex
│ ├── simpletable.tex
│ └── tables.tex
├── clean.bat (用于清理编译过程中的中间文件,使目录干净点)
├── cover.tex (这是论文中封面,摘要部分,这里需要编写)
├── figures (存放论文的图片的文件夹)
│ ├── golfer.eps
│ ├── latex.eps
│ ├── list.eps
│ ├── pdf.eps
│ └── word.eps
├── GBT7714-2005NLang-HIT.bst (参考文献样式文件)
├── main.pdf (最终生成的论文)
├── main.tex (论文的主文件,有需要的时候要适当修改调整这个文件)
├── Makefile (自动编译文件,这个文件里面定义了编译方式)
├── MakefileAYU (自动编译文件,这个文件里面定义了编译方式)
├── readme.md
├── reference.bib (用于存放参考文献,BibTeX格式,需要编写)
├── setup (论文的设置部分)
│ ├── Definition.tex
│ ├── format.tex
│ ├── package.tex
│ └── type.tex
├── tex.snippets (是snippet 模板,用来给vim编辑器用)
├── XeLaTeX支持说明(第1章开始).pdf
└── 模板更新记录.txt
XeLaTeX对中文的支持非常完美,要不怎么叫做“邪恶LaTeX”呢? 其实主要就是因为对字体的支持,目前主流的LaTeX使用字体的方法有两种:
第一种方式繁琐,逐渐被xeCJK替代。 另外说,XeLaTeX对图片格式,标题汉化什么的支持更好。
时过境迁,沧海桑田。 Google code项目已经停滞2年,也许诸位先驱都已毕业? 当年诸位先驱开发模班的时代是CJK的时代,而如今CJK逐渐被xeCJK所取代, 当年的命令作废的作废,冲突的冲突。 新版本的texlive无法编译陈旧的源文件了。