此项目提供用于排版西南财经大学毕业论文的 LaTeX 模板类, 旨在帮助西南财经大学的毕业生高效地完成毕业论文的写作。 模板提供各种方便的命令,自动化地排版论文的各个部分, 使毕业论文轻易地满足学校的格式要求。 为了支持更好的字体效果,模板基于 XeLaTeX 编写, 并且放弃对 CTeX 的依赖,使模板更加稳定。
本项目建立在王稳同学的模板上, 在此鸣谢王稳同学! 希望此项目能继续发展,解决同学们毕业论文写作中的困难。 盼望同学们在使用此模板的过程中,提出宝贵的意见。 更盼望同学们积极为本开源项目做贡献。 贡献包括但不仅限于以下几点:
- 使用本模板的过程中,如果有问题,尽量在 issue 中提问;
- 如果有时间的话,在本项目中的 wiki 分享使用本模板的经验;
- 如果有时间的话,帮助回答其他同学在 issue 中的提问;
- 如果有改进建议的话,请在 issue 中提出;
- 如果有改进的方案和实现时,请用 pull request 提交。
此项目托管于 github.com: https://github.com/sierxue/ThesisSWUFE.git
如果 github.com 速度慢的话,可以使用 dev.tencent.com 上的镜像项目: https://git.dev.tencent.com/ganx/ThesisSWUFE.git
首选: github 下载. 如果下载速度慢的话,可以用 腾讯下载.
- 使用模板需要系统安装任意一种 TeX 环境, 如TeXLive、 MacTeX 和MiKTeX (都自动带有 XeLaTeX 引擎,但是不推荐 CTeX)。
- 使用模板需要安装有宋体 SimSun, 黑体 SimHei, 华文中宋 STZhongsong, 以及
Times New Roman 英文字体。
如果系统没有安装这些字体,可以把这些字体的文件放置在项目的根目录。
这些字体文件分别是:
simsun.ttc
,simhei.ttf
,STZHONGS.TTF
,times.ttf
,timesbd.ttf
,timesbi.ttf
,timesi.ttf
.
模板采用 LaTeX 类的形式封装,
导入模板只需要把 thesis-swufe.cls 文件放在文档所在目录,
在文档开头使用\documentclass{thesis-swufe}
命令
将文档的类设置成 thesis-swufe 即可。
使用 BibTeX 录入参考文献还需要thesis-swufe.bst
风格定义文件。
模板类有 bachelor、master、promaster、doctor 和 engdoctor 四个学位选项,
对应本科、硕士、专业硕士和博士的毕业论文,默认选项为master
。
文档内容的书写参考范例example-singlefile.tex
。
英语使用者可以启用english
选项,模版会按照英语论文的格式排版。
编译文档请使用 XeLaTeX 引擎。 模版提供 latexmk 设置文件用于自动编译。 将命令行工作目录切换到项目文件夹下,执行
latexmk example-singlefile.tex
命令即可自动调用相关程序进行编译,处理各种文件依赖并自动预览。
执行latexmk -c
命令清理所有缓存文件。
编译多文件结构的文档将文件名替换成example-multifile.tex
即可。
使用 TeXstudio、Texmaker 或 WinEdt 等编辑环境请将编译引擎设置成 latexmk,
如果在 Windows 平台下使用 MiKTeX 还需要安装
Perl 语言解释器。
手动编译的话执行
xelatex example-singlefile.tex
命令即可,若文档内部有交叉引用或录入参考文献则需要编译两次。
使用 BibTeX 录入参考文献需要先运行一次 xelatex,运行一次 bibtex,
再运行两次 xelatex。
使用 BibTeX 录入攻读学位期间的研究成果的情况下
还需要额外运行一次bibtex accomplish.aux
。
所以完整地编译包含两个 BibTeX 文献列表
(一个是参考文献,一个是攻读学位期间的研究成果)的文档需要按顺序运行以下命令:
xelatex example-singlefile.tex
bibtex example-singlefile.aux
bibtex accomplish.aux
xelatex example-singlefile.tex
xelatex example-singlefile.tex
论文封面和扉页由\makecover
命令添加,可以显示论文题目,作者,指导老师等。
模版不会生成英文扉页和独创性声明,
这两页包括中文封面最后正式提交时会由文印中心统一提供,
无论自己排版的封面是否符合格式要求。已经包含的封面也不会影响任何前期的审核。
如果想使自定义的封面,可以用\bindpdfcover
命令添加已经做好的 PDF 格式的封面,
如\bindpdfcover{cover.pdf}
。
中英文摘要应包含在chineseabstract
和englishabstract
环境中,
对应的关键字使用\chinesekeyword
和\englishkeyword
命令添加,
并包含在相应的环境中。
模板自动设置页眉和页脚,其中中文摘要标题中间空一格,页眉不空格。
依照学校的格式说明,模板自动根据摘要结束所在的页数决定是否再空一页。
论文目录由命令\thesistableofcontents
添加,并且自动处理标题,
页眉以及缩进等问题。依照学校的格式说明,
模板自动根据目录结束所在的页数决定是否再空一页。
绪论是毕业论文的第一章,由于格式特殊(其实主要是页眉中间没有空格)
由单独一个命令\thesischapterexordium
开始。
论文主体的写作参考一般的 LaTeX 教程 (如中文版的lshort), 可以自由添加章节,章节内添加所需要的内容,分小节,插入公式、表格和图片。
数学环境的字体加粗可以使用\mathbf
或者\bm
命令,使用斜体粗体的符号。
由于 Times New Roman 字体的拉丁字母字形修长,偶尔会出现字符粘连的情况。
这种情况下可以使用占位符波浪号调整距离,如$f^{~l}$
和$\hat{f~}$
。
致谢部分由命令\thesisacknowledgement
开始,实际上是开始了一个无编号的章节。
使用 BibTeX 录入参考文献由\thesisloadbibliography
命令导入*.bib
文件数据库,
参考文献风格自动设置为thesis-swufe
。当参考文献数目超过100时,
可以使用large
选项调整编号的宽度,
如\thesisloadbibliography[large]{reference}
。
在这个命令之前使用\nocite{*}
命令会在文档中列出数据库中的所有条目,
无论是否引用,其他情况下只列出引用过的条目。
有些编辑器会识别\bibliography
命令导入的数据库文件,并提供更好的编辑支持,
所以模板也支持原生的\bibliography
命令导入文献列表,
只需要导入之前指定参考文献风格(\bibliographystyle{thesis-swufe}
)即可。
参考文献的在文中的引用分两种:
在原文中作句法成分的为直接引用,使用\cite
命令,否则为\citing
命令,
在文中文献编号显示为上标。
模版的文献条目处理兼容 IEEE Xplore 和 ScienceDirect 的引用格式,
还有其他主流的数据库。
获得参考文献条目信息只需要在对应的文章页面点击下载引用的按钮
(在 IEEE Xplore 中按钮在 PDF 下载旁边一个向下的箭头;在 ScienceDirect 中为文章标题上面的 Export 链接),
选择 BibTeX 格式,将文本复制到 bib 文件即可。
当引用中文文献,而文献作者超过三位时,后面的作者想使用“等”字省略,
可以在文章条目添加语言选项language = {zh}
。
模版会自动按照中文的习惯处理作者信息。
手动录入参考文献使用thesisbibliography
环境,
在环境中使用\bibitem
命令添加文献条目。
附录部分由命令\thesisappendix
开始,之后每一章都会被当作是一个附录,
使用大写拉丁字母编号。
如果只需要单独一个附录则使用\thesissingleappendix
命令,
在后面添加小节,附录本身没有编号。
使用 BibTeX 录入研究成果由\thesisloadaccomplish
命令导入*.bib
文献列表,
与参考文献的方法相同。
文献列表风格自动设置为thesis-swufe
。此命令没有可选参数,
自动在文档中列出数据库中的所有条目。
手动添加使用\bibitem
命令将文章条目列在thesisaccomplish
环境下,
方法与参考文献相同。
如果本科毕业论文要求翻译一篇外文资料,
资料原文应由命令\thesistranslationoriginal
开始,
资料译文由命\thesistranslationchinese
开始。
为了书写方便可以继续分小节,但是这部分中的小节不会在目录中显示。
如果本科毕业论文不要求翻译一篇外文资料,注释掉这两个命令。
缺省情况下,这两个命令是注释掉了的。
插入图片使用figure
环境,自动调整图片前后的间距。
插入表格使用table
环境,自动调整表格前后的间距和默认的字体大小。
图片文件可以统一放在./pic
目录下。
具体插入图片和表格的代码参考范例example-singlefile.tex
。
数学定理请使用模板提供的 定义(definition)、公理(axiom)、证明(proof)、定理(theorem)、 推论(corollary)、命题(proposition)、引理(lemma)和例子(example)环境。
算法描述使用algorithm
环境,模板类自动加载algorithm2e
宏包,
详细的用法请参考algorithm2e 宏包文档。
枚举使用标准的enumerate
、itemize
以及description
环境。
脚注使用标准的\footnote
命令插入。
模版提供一些有用的命令方便论文写作,其中包含一些常见的汉语字符:
命令名称 | 字符 | Unicode 编号 |
---|---|---|
\chinesecolon | : | FF1A |
\chinesespace | 3000 | |
\chineseperiod | 。 | 3002 |
\chinesequestion | ? | FF1F |
\chineseexclamation | ! | FF01 |
\chinesecomma | , | FF0C |
\chinesesemicolon | ; | FF1B |
\chineseleftparenthesis | ( | FF08 |
\chineserightparenthesis | ) | FF09 |
另外\blankpage
命令可以强制生成一页空白。
模板提供的样例(example-singlefile.tex
)将所有内容写在同一个文档里,
使用者认为必要可以将各个章节写在不同的子文件内,使用\input
命令统一包含。
模版提供另一个多文件的范例(example-multifile.tex
),
执行相应的命令即可自动编译:
latexmk example-multifile.tex
其中每个文件对应独立的章
(参见chapter/template.tex
)、摘要、致谢等(见misc/
)。
分割的文件使用\input
命令包含到主文档内(参见example-multifile.tex
)。
所有需要使用的宏包在主文件中导入,编译方法保持不变。
图目录、表目录和缩略词表分别对应\thesisfigurelist
,
\thesistablelist
,\thesisglossarylist
命令,这些列表不会出现在目录里。
缩略词表使用glossaries
宏包实现。
定义缩略词使用\newglossaryentry{<label>}{<description>}
命令,例如:
\newglossaryentry{Linux}
{
name=Linux,
description={is a generic term referring to the family of Unix-like
computer operating systems that use the Linux kernel},
plural=Linuces
}
或者\newacronym[description=<chinese>]{<label>}{<abbrv>}{<full>}
命令,
例如:
\newacronym[description=逻辑卷管理器]{lvm}{LVM}{Logical Volume Manager}
只有在正文使用命令恰当引用的缩略词才会在缩略词表中列出。
正文中引用缩略词时,
使用glossaries
宏包提供的\gls
、\Gls
(首字母大写)
或\glspl
(复数形式)等命令引用缩略词的<label>
。
具体使用方法参考
[glossaries 宏包文档]
(https://www.ctan.org/tex-archive/macros/latex/contrib/glossaries/)。
若想在缩略词表中列出所有定义过的条目,无论在正文中是否引用,
可以在\thesisglossarylist
使用\glsaddall
命令。
手动编译包含有缩略词表的文档,
执行xelatex
编译命令后需要执行makeglossaries example-singlefile
(注意没有 .tex 后缀)创建缩略词索引,再执行xelatex
命令完成编译。
所以手动编译一个包含参考文献、研究成果、缩略词表的完整文档命令为:
xelatex example-singlefile.tex
bibtex example-singlefile.aux
bibtex accomplish.aux
makeglossaries example-singlefile
xelatex example-singlefile.tex
xelatex example-singlefile.tex
推荐使用 latexmk 命令进行编译,自动处理以上的问题。