# CSUThesis Latex 模板
![CSUThesis Github Release](https://img.shields.io/github/v/release/disc0ver-csu/csu-thesis?label=github%20release)
[![Overleaf](https://img.shields.io/badge/overleaf-v1.0.5-green.svg)](https://www.overleaf.com/latex/templates/csuthesis-v0-dot-1-3dev/hcsjpbsfvcdx)
![Release Date](https://img.shields.io/github/release-date/disc0ver-csu/csu-thesis?color=yellow&label=github%20release%20date)
[![](https://img.shields.io/badge/language-TeX-orange.svg)](https://github.com/disc0ver-csu/csu-thesis)
[![QQGroup](https://img.shields.io/badge/QQGroup-1102036265-blue.svg)]()
## 模板说明
本模板是中南大学论文 Latex 模板 **CSUThesis**,即 **C**entral **S**outh **U**niversity **Thesis** LaTeX Template.
学校的指导文件仅提供大致的格式描述与 word 示例,并没有提供官方的 LaTeX 模板,本项目意在维护一个学位论文的非官方标准(De facto standard),创建符合指导文件要求的 LaTeX 模板,供所有本科生研究生使用。
## 获取模板
### 下载至本地
![CSUThesis Github Release](https://img.shields.io/github/v/release/disc0ver-csu/csu-thesis?label=github%20release)
由于目前模板更新频繁,我们强烈建议您使用**稳定的发布版本**,同时请确保**您已经阅读了示例文档**。
下载途径:
目前仅提供克隆完整 Github 仓库和获取打包的稳定发布版本两个途径
- Github Repository:
```shell
git clone https://github.com/disc0ver-csu/csu-thesis.git
```
如果 clone 速度过慢,我们建议您使用代理并添加`--depth`参数。
```shell
git clone https://github.com/disc0ver-csu/csu-thesis.git --depth=1
```
- Github Releases:
[Release 页面](https://github.com/disc0ver-csu/csu-thesis/releases)
### Overleaf
[![Overleaf](https://img.shields.io/badge/overleaf-v1.0.5-green.svg)](https://www.overleaf.com/latex/templates/csuthesis-v1-dot-0-5/dkgwknrbqjzq)
随着v1.0.5发布,我们正式提供了 Overleaf 模板,链接见[Overleaf Gallery](https://github.com/disc0ver-csu/csu-thesis)。~~这次真的不是愚人节玩笑~~。习惯在 Overleaf 上进行写作的同学可以从上面的模板链接创建自己的项目。
:warning: 目前 Overleaf 上虽然已是正式版本,英文字体使用默认设置,中文字体适配上传了`simhei.tff`,`simsun.ttc`等中易字体(即Word中熟悉的黑体与宋体),但不确定是否还存在其他 Linux 系统适配的问题。另外由于学校写作指导文件要求的部分商用字体(比如 Times New Romance)不可在 Linux 上使用,我们采取的方案是进行相近字体的替换。所以即便你的写作过程是在Overleaf上完成的,我们仍**建议**您在 Windows 操作系统上编译最终版论文。
## 环境配置
如果希望在本地使用本模板,除了获取模板文件以外,您还需要自行配置 TeX 排版系统环境。我们常说的 TeX 并不是一个单独的程序,而是一套由排版引擎,编译程序,各类宏包与说明文档等构成的复杂排版系统,被称为 [Tex document production system](https://www.tug.org/)。为了方便用户使用,软件开发者们开发了 TeX 的发行版,提供了整套系统以及便捷的配置方式。
我们**推荐**使用[Tex Live](https://www.tug.org/texlive/)和[MiKTeX](https://miktex.org/)的最新版,因为这两种发行版,对 GNU/Linux,macOS 以及 Windows 都提供了较好的支持。需要说明的是,我们**不建议**使用[CTeX 套装](http://www.ctex.org/CTeX),该套装对 Windows 环境下 MikTeX 基础上增加了中文的支持,但是 2012 年后不再更新,已经相对过时,故不推荐使用(一些使用过 CTeX 的同学在配置环境时会出现冲突导致编译失败)。
下图是一些常见的 TeX 发行版以及支持的操作系统
| TeX 发行版 | GNU/Linux | macOS | Windows |
| :--------- | :----------------- | :----------------- | :----------------- |
| TeX Live | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| MiKTeX | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| MacTeX | :x: | :heavy_check_mark: | :x: |
| CTeX | :x: | :x: | :heavy_check_mark: |
## 模板使用
在`content` 目录下撰写文章内容,之后使用如下方式编译生成 pdf 格式文件。我们希望模板使用者有基本的 latex 撰写经验以及命令行使用能力,模板也配置了一些相关工具来帮助编译。
### GUI 界面
如果你使用的开发环境是 Visual Studio Code + (Tex Live | MiKTex),我们在 `.vscode` 目录中提供了对应的 LaTeX 插件的配置。需要你在 Visual Studio Code 中安装 [LateX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop) 插件,然后将 `.vscode` 目录中 `setting.json` 文件中的配置,拷贝添加至用户配置( `Ctrl+p` 然后点击 `设置 (json)` )中,该配置全局有效,类似教程可参考[配置 VSCode 作为 LaTeX 编辑器](http://eddyblog.oss-cn-shenzhen.aliyuncs.com/LaTeX/csu_thesis_1.gif)。
完成配置后,在任意的 `.tex` 文件下执行倒数第二个 recipe,即 `▷ Recipe: xelatex -> biber -> xelatex` 即可编译你的论文。
![csu_thesis_1.gif](http://eddyblog.oss-cn-shenzhen.aliyuncs.com/LaTeX/csu_thesis_1.gif)
如果你需要令配置文件仅对本项目生效,可以 `setting.json` 将重命名为 `settings.json` ,再在 Visual Studio Code 中按 `ctrl + p`,输入 `reload win`,回车,重载 Visual Studio Code 即可。
**注意**,第一次编译时需要下载大量宏包,请不要担心,耐心等待一段时间。编译过程正式开始时,Visual Studio Code 的底部将会出现一个字符绘制的进度条。如果等待时间过长,请考虑配置 Tex Live | MiKTeX 的软件源,或者配置代理服务器。
### 命令行
- Windows 用户
你可以在项目目录使用`latexmk`进行编译,推荐`latexmk`是因为参考文献等带来的交叉引用问题需要多次编译(使用`xelatex`和`biber`),而`latexmk`可以帮助我们免除此苦恼。相关配置在`latexmkrc`中。你可以按如下方式使用该工具。
```shell
latexmk # 编译生成 csuthesis_main.pdf
latexmk csuthesis_main.tex # 给出完整参数,编译生成 csuthesis_main.pdf
latexmk -c # 删除除 pdf 文件外的生成文件
latexmk -C # 删除包含 pdf 文件在内的所有生成文件
```
你也可以直接使用`xelatex`和`biber`来进行编译,一般而言这是不必要的,但是如果你改动了模板参数想要进行测试,或者希望编译生成没有参考文献的文件,这种方式可以提供更多帮助。
```shell
xelatex -interaction=nonstopmode -file-line-error csuthesis_main.tex # 编译生成无目录与参考文献的文件
biber csuthesis_main # 编译参考文献
xelatex -interaction=nonstopmode -file-line-error csuthesis_main.tex # 再次编译
```
- Linux 和 macOS 用户
由于写作指导所要求的 Times New Roman 等字体在 Linux 下并不可用,虽然模板会替换字体为对应环境下其他字体,我们**强烈建议模板使用者在 Windows 系统环境下进行最终版本文章的编译**。
你可以使用模板提供的`Makefile`工具进行编译:
```shell
make all # 编译生成 csuthesis_main.pdf
make clean # 删除除 pdf 文件外的生成文件
make cleanall # 删除包含 pdf 文件在内的所有生成文件
make wordcount # 字数统计
```
当然你也可以使用`l