此项目为非官方的华北电力大学学位论文的Latex模板(文档类),能够方便,自动化的完成论文的写作,并且满足学校(北京及保定校部)的相关要求。本模板是基于王稳编写的电子科技大学毕业论文模板修改并完善的。
如果对模板有相关问题,请直接在github上提交issue,如果发现bug,欢迎提交pull request。
This project is an unofficial Latex template (document class) for North China Electric Power University degree thesis, which can facilitate the thesis collaboration conveniently and automatically, and meet the relevant requirements of the school. This template is modified and improved based on the University of Electronic Science and Technology template.
If you have any questions about the template, please submit an issue directly on github. If you find a bug, please submit a pull request.
- 由于学校要求文件的冲突,以及开发者的愚蠢(我)导致此次更新前的模板有较大的使用问题,此次更新修复了较多问题,请务必使用更新后的模板。
- 此次更新对非本科模板没有进行修改。
- 此次更新修复了章节标题、目录格式、页眉、空白页、参考文献、封面日期等众多问题,同时更新了演示文件。
- 此后放弃对于硕士、博士部分的更新,原因有3
- 学校、教务处、老师对于LaTeX知之甚少(凭借个人经历主观推测)。
- 教务处格式要求混乱、陈旧、部分要求冲突。
- 无知导致的唯Word论。
- 本项目不是官方模板,并且只能生成PDF文件,如果想要获得DOC文档只能进行二次转换。
- 本项目未受到任何形式的任何资助。
- 本项目目前只能完成学士学位论文的排版。
- 本项目参考了北京校部与保定校部的相关要求,除了封面风格差别较大,其他地方基本一致。
- 本项目主要针对有一定LaTeX文档编写基础的使用者,但也欢迎新手使用。
- 建议安装以下提示的相关环境、软件,放弃老旧的软件。
使用模板需要系统安装一种TeX环境,如TeXLive(不推荐CTeX),安装有 SimSun 和 SimHei 字体(其实就是宋体和黑体)以及 Times New Roman 英文字体。在 MacOS 系统下编译会自动识别操作系统,使用 Songti SC 和 STHeiti 字体,但需要启用--shell-escape
编译选项。Linux如果出现字体问题,需要下载放在与主tex文件同一路径下。
模板采用LaTeX类的形式封装,导入模板只需要把NCEPU-thesis.cls
文件放在文档所在目录,在文档开头使用\documentclass{NCEPU-thesis}
命令将文档的类设置成NCEPU-thesis
即可。
模板类目前完成了bachelor即学士学位的论文,还有其他选项但并未完成。默认选项为bachelor
。文档内容的书写参考范例main_singlefile.tex
。
文件夹
- Figures: 放置正文使用的图片
- Main_Spine: 多文档结构时放置正文章节
- Main_MISC: 多文档结构时放置其他章节如摘要,致谢,附录等
- Reference: 放置参考文献数据库文件(.bib)
- Thesis_Materials: 放置模板相关资源,校方规定,参考文献样式等
文件
- clear.bat/sh: 清理临时文件脚本
- latexmkrc: latexmk配置
- main_multifile.tex: 多文档结构时主文件
- main_singlefile.tex: 主文件
- NCEPU-thesis.cls: 文档类
- README.md: 本文档
编译文档请使用XeLaTeX引擎。模版提供latexmk设置文件用于自动编译。将命令行工作目录切换到项目文件夹下,执行
latexmk main.tex
命令即可自动调用相关程序进行编译,处理各种文件依赖并自动预览。执行latexmk -c
命令清理所有缓存文件。
编译 文件结构的文档将文件名替换成main_multifile.tex
即可。使用TeXstudio、Texmaker或WinEdt等编辑环境请将编译引擎设置成latexmk,如果在Windows平台下使用MiKTeX还需要安装Perl语言解释器。
手动编译的话执行
xelatex main_singlefile.tex
命令即可,若文档内部有交叉引用或录入参考文献则需要编译两次。
当需要将整个文档进行双面打印时,需要在文档类参数中选择twoside
,此时若章节(包括封面、摘要)在奇数页结束时,会自动添加空白页以使下一章从偶数页开始。
当不需要添加空白页时,将参数设置为oneside
即可。
论文封面和扉页由\makecoverbd
或着\makecoverpk
命令添加两个校部风格的封面,可以显示论文题目,作者,指导老师等。但正式提交论文时教务处会统一提供封面和扉页,无论自己排版的封面是否符合格式要求。已经包含的封面也不会影响任何前期的审核。独创性声明可以由\originalitydeclaration
命令生成。
如果想使用自己定义的封面,可以用\bindpdfcover
命令添加已经做好的PDF格式的封面,如\bindpdfcover{cover.pdf}
。
中英文摘要应包含在chineseabstract
和englishabstract
环境中,对应的关键字使用\chinesekeyword
和\englishkeyword
命令添加,并包含在相应的环境中。模板自动设置页眉和页脚。
论文目录由命令\thesistableofcontents
添加,并且自动处理标题,页眉以及缩进等问题。
论文主体的写作参考一般的LaTeX教程(如中文版的lshort),可以自由添加章节,章节内添加所需要的内容,分小节,插入公式、表格和图片。
数学环境的字体加粗可以使用\mathbf
或者\bm
命令,使用斜体粗体的符号。由于 Times New Roman 字体的拉丁字母字形修长,偶尔会出现字符粘连的情况。这种情况下可以使用占位符波浪号调整距离,如$f^{~l}$
和$\hat{f~}$
。
模板已经将Figures/
路径加入考虑,可以直接将图片放在其下,容易整理,工程也看起来清爽。
致谢部分由命令\thesisacknowledgement
开始,实际上是开始了一个无编号的章节。
使用BibTeX录入参考文献由\bibliography
命令导入Reference/*.bib
文件数据库,参考文献风格依照标准设置为GBT7714-2015
。
在这个命令之前使用\nocite{*}
命令会在文档中列出数据库中的所有条目,无论是否引用,其他情况下只列出引用过的条目。有些编辑器会识别\bibliography
命令导入的数据库文件,并提供更好的编辑支持,所以模板也支持原生的\bibliography
命令导入文献列表,只需要导入之前指定参考文献风格(\bibliographystyle
)即可。
参考文献的在文中的引用分两种:在原文中作句法成分的为直接引用,使用\cite
命令,否则为\citing
命令,在文中文献编号显示为上标。模版的文献条目处理兼容 IEEE Xplore 和 ScienceDirect 的引用格式,还有其他主流的数据库。获得参考文献条目信息只需要在对应的文章页面点击下载引用的按钮(在 IEEE Xplore 中按钮在PDF下载旁边一个向下的箭头;在 ScienceDirect 中为文章标题上面的 Export 链接),选择BibTeX格式,将文本复制到 bib 文件即可。
当引用中文文献,而文献作者超过三位时,后面的作者想使用“等”字省略,可以在文章条目添加语言选项language = {zh}
。模版会自动按照中文的习惯处理作者信息。
附录部分由命令\thesisappendix
开始,之后每一章都会被当作是一个附录,使用大写拉丁字母编号。如果只需要单独一个附录则使用\thesissingleappendix
命令,在后面添加小节,附录本身没有编号。
本科毕业论文要求翻译一篇外文资料,资料原文应由命令\thesistranslationoriginal
开始,资料译文由命\thesistranslationchinese
开始。为了书写方便可以继续分小节,但是这部分中的小节不会在目录中显示。
插入图片使用figure
环境,自动调整图片前后的间距,添加子图则使用\subfloat
命令。若子图过多需要跨页则在间断处插入\floatcontinue
命令。插入表格使用table
环境,自动调整表格前后的间距和默认的字体大小。
图片文件可以统一放在./Figure
目录下。具体插入图片和表格的代码参考范例main_singlefile.tex
。
数学定理请使用模板提供的定义(definition)、公理(axiom)、证明(proof)、定理(theorem)、推论(corollary)、命题(proposition)、引理(lemma)和例子(example)环境。
算法描述使用algorithm
环境,具体写法请参考范例main_singlefile.tex
或Main_Spine\c3.tex
。模板类自动加载algorithm2e
宏包,详细的用法请参考algorithm2e宏包文档。
枚举使用标准的enumerate
、itemize
以及description
环境。脚注使用标准的\footnote
命令插入。
本项目提供了一个清除临时文件的shell脚本,可以清除临时文件。
模版提供一些有用的命令方便论文写作,其中包含一些常见的中文字符:
命令名称 | 字符 | Unicode 编号 |
---|---|---|
\chinesecolon | : | FF1A |
\chinesespace | 3000 | |
\chineseperiod | 。 | 3002 |
\chinesequestion | ? | FF1F |
\chineseexclamation | ! | FF01 |
\chinesecomma | , | FF0C |
\chinesesemicolon | ; | FF1B |
\chineseleftparenthesis | ( | FF08 |
\chineserightparenthesis | ) | FF09 |
另外\blankpage
命令可以强制生成一页空白。
模板提供的样例(main_singlefile.tex
)将所有内容写在同一个文档里,使用者认为必要可以将各个章节写在不同的子文件内,使用\input
命令统一包含。
模版提供另一个多文件的范例(main_multifile.tex
),执行相应的命令即可自动编译:
latexmk main_multifile.tex
其中每个文件对应独立的章、摘要、致谢等。分割的文件使用\input
命令包含到主文档内(参见main_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宏包文档。
若想在缩略词表中列出所有定义过的条目,无论在正文中是否引用,可以在\thesisglossarylist
之前使用\glsaddall
命令。
手动编译包含有缩略词表的文档,执行xelatex
编译命令后需要执行makeglossaries main
(注意没有.tex后缀)创建缩略词索引,再执行xelatex
命令完成编译。所以手动编译一个包含参考文献、研究成果、缩略词表的完整文档命令为:
xelatex main_singlefile.tex
bibtex main_singlefile.aux
bibtex accomplish.aux
makeglossaries main_singlefile
xelatex main_singlefile.tex
xelatex main_singlefile.tex
推荐使用latexmk命令进行编译,自动处理以上的问题。