简介:面向西北工业大学硕士和博士研究生学位论文撰写的LaTeX模板,可有效解决Word排版中公式调整繁琐、目录生成不便、图片编排混乱的问题,适合正在准备毕业论文的研究生,也适合从Word转向LaTeX的科研人员。压缩包共50个文件,大小约4.14MB,主要包括模板核心源文件(cls/dtx)、参考文献样式(bst)、字体文件(ttf)、示例PDF与PNG预览图,以及md格式使用说明;其中md文档提供快速上手指引,bst文件内置符合标准的引用格式,ttf字体保证中文显示效果,结构完整清晰。已有247人学习下载。模板支持硕士与博士需求一键切换,公式排版和图片插入规范,目录自动生成,让作者更关注内容而非格式;针对编译生成PDF较慢的情况,可与Overleaf在线协同,按章节编译再配合本地LaTeX,提升撰写效率。配套文件齐全,适合有一定LaTeX基础、希望提升毕业论文排版效率的研究生直接使用。
1. 下载渠道、TeX发行版选择与首次编译的完整闭环
1.1 模板去哪找、怎么确认是官方版
我第一次接触西北工业大学LATEX论文模板,是研二下学期准备开题报告的时候。导师丢给我一句"学校官网有模板,自己下",结果我在搜索引擎里翻了半天,出来的全是第三方博客的转存链接、网盘分享,还有各种打着"西工大论文模板"旗号的GitHub仓库。这里先给后来人提个醒:认准学校研究生院官网或信息中心发布的版本,不要从不明来源下载zip包,因为你根本不知道里面被塞了什么东西,宏包被改过、字体文件缺失、甚至带上恶意脚本都不是没可能。
下载下来的压缩包通常名字长这样:NWPU_Thesis_XXXX.tar.gz或者nwpu-latex-template-master.zip,解压之后第一件事不是急着编译,而是先看两个东西:一是README或者说明.txt,二是根目录下的main.tex文件头部的注释。官方模板一般会在注释里写明适用学位类别、需要的最低TeX版本、编译引擎(大概率是XeLaTeX),以及已知问题。这个习惯我在后边吃了大亏,所以放到前面说——拿到模板先读文档,别一上来就编译,很多坑其实文档里早就写着。
1.2 发行版选择:TeX Live、MacTeX与Overleaf怎么选
工欲善其事,必先利其器。装LaTeX环境,市面主流选择就三个:Windows/Linux上装TeX Live,macOS上装MacTeX(其实也是TeX Live套壳),或者干脆用Overleaf这种在线编辑平台。
我在实验室的Windows机器上装的是TeX Live,因为学校模板对宏包版本的依赖比较敏感,texlive尽量装完整版(install-tl-windows.bat里选scheme-full)。你可能会嫌完整版占硬盘——确实,装完七八个G,但比起中途缺宏包再补装的痛苦,这点空间花得值。国内下载别去官网硬拉,速度感人,用清华镜像或者中科大镜像,具体地址网上随便一搜就有,这里不赘述。
Mac用户直接用MacTeX,安装包更像是"双击安装完就能用"的友好型。不过要注意一点:如果你用VSCode写LaTeX,需要装LaTeX Workshop插件,然后设置里把编译工具链指到xelatex,而不是默认的pdflatex。原因很简单:西工大模板是中文论文,pdflatex对中文支持极差,必须用XeLaTeX或LuaLaTeX。
如果你不想折腾本机环境,或者需要和导师、同学协作改同一份论文(尤其是开题那段时间一天改三版),我推荐Overleaf。直接在Overleaf里搜索或上传模板zip包,选XeLaTeX编译器,五分钟后就能看到PDF预览。我记得Overleaf免费版就够个人用,唯一的痛点是中国大陆访问有时不稳定,另外最终提交盲审前最好用本地TeX Live完整编译一遍,确保和线上环境产物一致。
1.3 首次编译必看:xelatex、编译两遍与VSCode配置
拿到模板第一次编译,绝大多数人会遇到三种情况:报错、报错、还是报错。别慌,九成错误都来自编译引擎选错、缺少字体、缺少宏包这三类。
先说编译引擎。VSCode的LaTeX Workshop插件的默认工具链是latexmk,它会自动判断用哪个引擎,但如果模板的主文件是main.tex、里面的\documentclass写的是nwpu-thesis之类的自定义类,最稳妥的办法是手动配置一个工具链:
{ "latex-workshop.latex.recipes": [ { "name": "xelatex->bibtex->xelatex x2", "tools": ["xelatex", "bibtex", "xelatex", "xelatex"] } ], "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": ["-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"] }, { "name": "bibtex", "command": "bibtex", "args": ["%DOCFILE%"] } ], "latex-workshop.view.pdf.viewer": "tab" }为什么需要 xelatex -> bibtex -> xelatex -> xelatex 这个顺序?因为参考文献引用要跑两遍甚至三遍才能真正稳定下来:第一遍生成了.aux辅助文件,bibtex读取它去生成.bbl参考文献列表,第三遍第四遍再把引用编号和文献列表对上。你会发现目录、页码、交叉引用不更新,基本都是"编译遍数不够"造成的。
字体则是另一个经典错误来源。西工大模板对中文字体有硬性要求,通常需要宋体(SimSun)、黑体(SimHei)、楷体(KaiTi),如果你用的是Windows,系统自带这些字体,一般没问题。但Mac和Linux上默认没有,模板里可能通过fontset参数自动处理,或者需要你手动指定字体。我在Ubuntu上踩过一次,解决方案是安装fonts-noto-cjk,然后在导言区加上类似:
\usepackage[fontset=fandol]{ctex}这样CTeX宏包会用自带的Fandol字体替代系统字体,编译能过,但最终看效果可能会和Windows下略有出入。盲审前务必拿Windows系统、用学校官方推荐的字体环境编译一遍最终版,这句话非常重要。
2. 模板目录拆解:搞清楚哪些文件可以动、哪些必须保持原样
2.1 main.tex与各章节文件的组织逻辑
西工大的LATEX论文模板目录结构通常长下面这样:
. ├── main.tex ├── nwpu-thesis.cls ├── nwpu-thesis.cfg ├── figures/ ├── chapters/ │ ├── 0_abstract.tex │ ├── 1_introduction.tex │ ├── 2_related_work.tex │ ├── ... │ └── 9_acknowledgements.tex ├── ref.bib ├── gbt7714-2005.bst └── logo/这个结构设计其实挺合理的。main.tex相当于总装车间,导言区里设置学位类型、标题、作者、导师、日期这些全局信息,正文部分通过\include{chapters/xxx}把各章内容引进来。nwpu-thesis.cls是文档类文件,定义了标题页、页眉页脚、章节格式、目录样式等所有版式细节——这个文件你基本不要动,改一个参数可能连锁反应到后面几十页的排版。
chapters目录下每个文件只管一章内容,这是最有价值的地方:你可以单独编译其中一章(通过注释掉main.tex中其他\include),加快调试速度,而不必每次从头到尾编译整本论文。我当时写第二章相关工作,每改一小段就全量编译一次,十分钟的编译时间硬生生耗掉一下午;后来发现可以只保留一章重新编译,速度瞬间快了几倍——这个技巧对论文后期高频修改阶段尤其重要。
2.2 参考文献引擎与bst样式
参考文献这块是模板里最容易出BUG的地方。西工大模板一般用BibTeX配合gbt7714-2005.bst实现国标参考文献格式——这个bst文件决定了文献的排序方式、作者名的简写规则、期刊名是否加粗等细节。如果你照抄别人的ref.bib进模板,结果发现编译出来的参考文献风格和学校要求完全两样,大概率是bs样式的入口设置错了。
正确姿势是在main.tex里如此配置:
\usepackage[numbers,sort&compress]{natbib} \bibliographystyle{gbt7714-2005} \bibliography{ref}注意natbib宏包的sort&compress选项,它负责把[2,3,4]这样的连续引用压缩成[2-4],这是学校格式要求里的隐藏细节——不压缩会被答辩秘书挑毛病,压缩了你得知道开关在哪。
另外一点血泪教训:ref.bib里每一条文献的title字段里的英文专有名词,BibTeX会自动把首字母大写的单词强制改成小写,导致LaTeX变成latex、Transformer变成transformer。解决办法是把必须保留大小写的部分用花括号包起来:
title = {{LaTeX} 入门指南},这个坑我是在盲审前查文献格式时发现的,一页里七八个标题都不对,当时冷汗都下来了。所以每次改完Bib文件,必须抽检最终PDF里文献题目的首字母大小写是否正常。
2.3 学位信息、声明页与logo资源
模板里的logo目录放的是学校校徽等图片资源,这些属于"别去动它"系列,但你可能需要留意一个问题:版权与分辨率。有缺德第三方网站把模板里的logo替换成了模糊版本或者旧版校徽,打印出来效果很差。如果你下载的模板里logo文件分辨率明显偏低,或者图片格式是.jpg而非透明底的.png,我建议你去官网对照一下原版压缩包的md5或文件大小,宁可从官网重新下载也不要凑合。
学位信息通常在main.tex顶部集中配置,模板里一般是这样的形式:
\title{基于深度学习的XXXX} \author{张三} \studentid{2023XXXXXX} \schoolname{计算机学院} \major{计算机科学与技术} \supervisor{李四\ 教授} \date{2027年6月}这些命令虽然看着直白,但你填完之后需要检查两处:一是中英文封面信息是否同步更新(有的模板英文封面是单独一页,需要填\entitle、\enauthor等),二是有没有多余的空白页或者封面页脚页码异常。我第一次填充完信息发现中文封面占了整整一页半,后来发现模板要求论文题目长度超过一定字数时要自动换行——别手动在标题里加\\换行符,模板会自己处理,手动加了反而会出现奇怪的排版溢出。
3. 从本科到硕士:模板在不同论文类型里的真实用法
3.1 本科毕业论文与硕士论文的参数差异
很多人不知道,西工大LaTeX模板内部对不同学位类型是有分支设置的。在nwpu-thesis.cls里通常会通过类选项区分,比如:
\documentclass[master]{nwpu-thesis}把master改成bachelor就是本科论文版式,改成doctor就是博士论文版式。这个选项的差异远不止封面上"硕士学位论文"几个字,它还影响页面页边距、章节间距、图表标题字号,甚至目录缩进层级——硕士论文和博士论文对目录要求到三级标题,本科有的学院到二级就够了。如果导师有明确格式要求,先去cls文件里搜对应的分支定义,确认当前模板版本有没有同步更新。
这里有件事我吃过亏:同一份模板,本科用bachelor编译出来的章节字号明显比硕士版小一号。当时我还以为是加载宏包冲突,查了一晚上,最后才发现只是documentclass选项抄的时候漏改了一个词。所以每次从别人那拿到模板,第一眼先确认学位选项写的是什么,别想当然。
3.2 开题报告和中期报告怎么套用
开题报告和中期检查这类材料,很多学院并不强制要求LaTeX,Word写写交上去也行。但如果你已经熟练用LaTeX了,完全可以在同一份模板上改出一个简化版来用:把封面、摘要、目录这些保留,然后正文不按\chapter分章,改用\section级别组织内容,再删掉参考文献相关段落(开题需要的参考文献直接在正文里列一个手打的列表)。
不过我得提醒一句:开题报告用完整学位论文模板有点杀鸡用牛刀,而且如果你提交的是系统里上传PDF,只要封面关键信息对得上、内容排版清爽,学校这边一般不会太较真。我身边有同学开题报告都是用的简化版模板,反而比导出的Word版更受导师喜欢——原因倒不是排版多精美,而是公式和图表引用的交叉引用是自动的,改编号不用手动维护。
3.3 图表、公式与算法伪代码的学院派写法
论文正文里最耗精力的其实不是写文字,而是图表、公式、算法这三类对象的排版规范。西工大模板对这些都有严格约束,但模板不会替你排版,你得在它的框框内做好配合。
表格:三线表是理工科论文的标准样式,模板一般提供了booktabs宏包,写作时不要用\hline一整条粗线,应该用\toprule、\midrule、\bottomrule分别画表头上下线和底线。如果你的表格太长需要跨页,用longtable宏包,并给表头加上\endfirsthead这样的命令确保跨页后仍带表头。
公式:模板要求的编号一般是章号-序号形式(如(4.2)),这个模板的theorem、equation计数器通常已经改好了,你只需要顺手用\label和\ref交叉引用。公式后面记得加标点符号——中文论文里公式结尾的句号用\text{。}表示,英文论文里则用,或。,这个小细节被很多同学忽略,盲审专家一眼就看出来了。
算法伪代码:用algorithm和algpseudocode宏包,模板一般不会显式定义需要的宏包,需要你自己在导言区加上。我写过的最舒服的伪代码环境是:
\usepackage{algorithm} \usepackage{algpseudocode}然后按照算法环境的标准写法,注意\For、\While、\If这些带结束语的命令不需要手动敲\EndFor,因为algpseudocode会自动补全。这里有个隐藏技能:如果你去掉\usepackage[noend]{algpseudocode},伪代码末尾就不显示end for这些关键字,视觉上更贴近学术论文样式,很多顶刊喜欢这种紧凑风格。
4. 编译报错与版式错乱的典型场景排查
4.1 中文环境失败:字体缺失、编码问题与断行异常
中文LaTeX报错和英文报错完全是两套语言体系。最常见的错误是LaTeX Error: File 'ctex.sty' not found,这说明你的TeX Live没装ctex宏包或者装的是精简版。解决方案简单粗暴:
tlmgr install ctex如果用的是完整版TeX Live还报这个错,检查一下是不是把xelatex误用成了latex或pdflatex——这个低级错误带来的"缺文件"提示非常具有迷惑性,我见过有人为此重装了三次Tex Live。
编码问题也很常见。老版本模板的文件是GBK编码,新版普遍是UTF-8。如果你打开chapters下的tex文件,中文显示成乱码,不是文件坏了,是你编辑器的编码设置不对。VSCode右下角点一下编码方式,改成UTF-8重新加载即可。注意不要轻易去"转码"文件本身,因为模板里的.cls和.cfg文件可能是特定编码的,统一用UTF-8反而导致编译错误。
中文断行异常的表现是:某一段落突然出现很大的词间距(英文对齐后中文被强行拉长),或者段尾最后一个字跑到下一行行首。这通常是缺少合适的中文断词点造成的,比如长单词、网址、LaTeX命令名。解决办法是在断行点插入\-(软连字符)或者\allowbreak。更省心的做法是导言区加入:
\usepackage{xeCJK} \xeCJKsetup{CheckFullRight=true}这个选项能避免中文和西文之间出现过大的间距差异,比手动调整舒服太多。
4.2 表格溢出、图片乱飘与浮动体失控
表格溢出是论文成品阶段最闹心的问题之一。一个表里的某列文本太长,整个表格被顶出页边距,编译不报错,但视觉上像个荷包蛋一样挂在页面边缘。我的排查顺序是这样的:先看那一列是不是内容长度集中在某几个词的连续字符串(比如URL),如果是,在该列类型里改为p{3cm}固定宽度,让它能自动换行;如果还是不够,考虑旋转表格(sidewaystable)或者把字号缩到\small。这里注意不要把整篇字号都缩小,只针对单张表操作,不然会被判"版式不符合要求"。
图片乱飘则是另一个常见问题。LaTeX的浮动体(float)机制决定了它会在"当前排版位置放不下"时自动把图片推到下一节或下一页——这不是bug,是这个引擎的运行逻辑。想控制图片位置没那么难,给figure环境加参数:
\begin{figure}[htbp] \centering \includegraphics[width=0.8\linewidth]{figures/xxx.png} \caption{实验对比结果} \label{fig:comparison} \end{figure}[htbp]表示此处优先(here)、顶部(top)、底部(bottom)、独立一页(page)四者依次尝试。如果你希望"插在文中绝对位置",可以用float宏包的[H]参数,但这会削弱排版灵活性,在大论文里可能造成大片留白,我一般只在双栏短论文里用[H]。西工大学位论文是单栏排版,用[htbp]配合调整图标尺寸和位置就足够了。
4.3 特殊符号需求:左矢右矢与弧符号的解决方案
写量子物理、信号处理相关内容的时候,你会遇到左矢<和右矢>的问题。在纯LaTeX里直接敲<和>出来的是小于号和大于号,而学术语境里需要的狄拉克符号是尖括号\langle和\rangle。标准写法是:
\left\langle \psi \right\rangle用braket宏包更省事,它定义了\bra{A}、\ket{B}、\braket{A|B}以及自动伸缩大小的\Braket{A|B}:
\usepackage{braket} % 代码里写 $\ket{\psi_1}$这个宏包对左矢右矢支持非常完备,并且会自动处理竖线分隔符的大小。如果你只是偶尔用一次,不想引入整个宏包,那直接写\langle\psi|\phi\rangle也行,但注意外层的\left和\right要成对出现,否则编译器会抱怨分界符不匹配。
弧符号(上方弧线,比如表示线段AB的弧)也是一个高频率搜索需求。LaTeX里默认没有直接的"弧"符号,常见的解决方案是用yhmath宏包的\wideparen:
\usepackage{yhmath} $\wideparen{AB}$它会自动拉长上弧线来覆盖整个内容,效果比较接近教材里的表示。如果你的环境和yhmath冲突(比如和一些特殊字体宏包不兼容),备选方案是\overparen(来自mathabx),或者用\stackrel{\frown}{\mathrm{AB}}。实际测试下来,\wideparen最稳。这类冷门符号在模板默认宏包清单里几乎不可能存在,所以务必自己导入宏包,并在改Bib、加宏包后重新编译两遍确认没有宏包冲突。
4.4 行内公式挤压行距问题
写行内公式($...$)的时候,公式里的分式\frac{a}{b}或者求和上下标,会把当前行的行高撑大,导致同一段文字行距忽大忽小。模板里如果开了\usepackage{setspace}和固定行距(比如1.25倍行距),这类挤压感会特别明显。
有几种处理手段:
一种是用\displaystyle强制行内公式使用展示字号,但这只会让公式更大、更挤压行距,适合短公式;另一种更实用的做法是降低行内公式内部结构的纵向高度,比如把分式写成a/b形式,或者用sfrac宏包的\sfrac{a}{b}。把求和上下限改为侧边下标:
$\sum_{i=1}^{n}$ % 改成 $\sum\nolimits_{i=1}^{n}$这样做之后,行距基本不会被撑乱。还有一点容易被忽略:如果模板\baselineskip设置比较严格,即使公式改好了,某些特殊字符(比如括号内带根号)仍可能造成轻微的段间间距异常。这时直接用\setlength{\abovedisplayskip}{3pt}微调显示公式的上下间距,人眼看着舒服即可,不必死守默认值。
5. 写作效率提升:让模板服务于内容而不是折磨人
5.1 在线协作与本地同步怎么选
论文写作周期长,一般会经历"初稿->导师意见->修改->重投/盲审->终稿"的多个版本。我对接导师的习惯是:初稿阶段用Overleaf的分享链接,导师可以直接在线批注,或者我把PDF导出发过去,纸质批注版再手工录入。等进入盲审阶段,我就把工作流切回本地TeX Live+VSCode,因为本地编译速度快,多轮修改后能更高效地出PDF。
有一点必须提:Overleaf和本地同步时,别直接用网盘同步整个tex目录。aux、log、out这些编译中间文件高频变化,网盘同步几乎必然产生冲突版本。我在写第二章的时候,一边在实验室电脑用Overleaf,一边在宿舍用本地TeX Live,两边同时改同一个文件,结果某个版本的参考文献.bbl文件坏了,花了大半天才定位出问题。后来养成习惯:每次开工前先把Overleaf上的主文件手动导出,覆盖到本地,编译前先清理中间文件(运行latexmk -C),然后才全量编译。
5.2 自定义宏与代码片段:少写重复公式
一篇论文里经常出现大量形式相近的公式,比如卷积、循环神经网络的各种门控结构。我不会每次都完整敲一遍\frac{...}{...}或\hat{...},而是在导言区定义自己的宏:
\newcommand{\D}{\mathrm{d}} \newcommand{\R}{\mathbb{R}} \newcommand{\gates}{\left(\sigma\left(W \cdot [h_{t-1}, x_t]\right)\right)}这样正文里只需要写$\D x$、$\R^n$,既统一了风格,也避免了手滑打错符号。定义宏的时候注意别和模板已有宏冲突,尤其是单字母宏(比如\R有没有被占用),可以用\def或\newcommand检查是否重复定义。VSCode里还可以建snippets,输入eqn就自动补全\begin{equation}...\end{equation}模板,输入fig自动生成figure环境的骨架,这个小投入在后期写实验部分时能省下大把时间。
5.3 最后提交前的三轮检查清单
盲审/终稿提交前,我给自己定了三轮检查,每一轮只盯一类问题:
第一轮查内容完整性:检查\ref和\cite有没有未解析的??。这里是LaTeX的经典陷阱——如果编译次数不够,所有交叉引用都会显示为问号,所以你至少要跑两遍xelatex(有Bib跑三遍)才能看到正确编号。方法是在VSCode LaTeX Workshop的recipe里一次性配置好,不要手动一遍遍敲命令。
第二轮查版式细节:逐页翻阅PDF,重点看四类问题:封面信息是否居中、下划线是否对齐;目录页码是否与正文实际页码一致;页眉是否随章节自动更新;图表是否和引用位置靠近。实际操作时我会打开PDF双页视图,用PDF阅读器的高亮工具在异常位置做标记,等全部过完一遍后回到LaTeX源文件统一修改,而不是改一处编译一次。
第三轮查文本细节:用快捷键全局搜索下面这些高频错误——\cite{???}、\ref{???}、TODO、占位,以及全角/半角标点混用。中文论文里,逗号句号统一用全角(中文输入法默认状态),英文单词与中文之间要加空格(或者用\xeCJK的自动间距),这些是视觉观感的关键。如果你时间紧,至少把「目录页中对齐」和「参考文献格式」这两处过一遍——这是学校教学办的老师最常检查、也最容易因为粗心出错的地方。
模板说到底只是一套工具,真正的核心还是你的研究内容。但一个用得顺手的模板,能把"排版焦虑"从写作过程中剥离出去,让你专心盯住问题本身。我在答辩前最后一晚,用这套流程把全文从目录到参考文献过了一遍,前后花了不到四十分钟,心里就有底了——因为我知道版式不会在最后一刻给我搞惊喜。希望这篇文章能帮你少走几步弯路,尤其是在编译环境、字体、参考文献引擎这三座大山上,省下的时间拿去多读几篇文献、润色几句摘要,比什么都值。
本文还有配套的精品资源,点击获取