山东大学毕业论文LaTeX模板:编译、排版与格式调整指南

发布时间:2026/9/20 8:42:07
山东大学毕业论文LaTeX模板:编译、排版与格式调整指南 简介山东大学毕业论文LaTeX模板面向该校需要撰写本科或研究生毕业论文的学生也适用于计算机、电子信息等相关专业课程设计或大作业排版。模板基于sduthesis项目提供主文件、分章节正文文件及参考文献、图表等模块内置符合学校格式规范的样式解决字体、页眉页脚、目录结构等常见排版问题。资源共15个文件以tex源文件为主8个辅以bib参考文献、sh编译脚本、README使用说明、LICENSE许可及示例图片等整体压缩包仅505KB轻量易用。内容涵盖模板使用说明、编译方法、格式规范调整技巧目录按模块划分清晰读者可快速定位到对应部分进行修改。目前已有48人学习下载适合需要规范排版且希望省去手动调整格式的毕业生或课设作者。1. 山东大学毕业论文 LaTeX 模板的入手姿势装好 TeX Live 后直接编译山东大学毕业论文 LaTeX 模板第一次大概率会报几十行红色错误问题通常不在模板而在编译顺序。名为 sduthesis 的这套工程把毕业设计、课程设计、大作业所需的使用说明、编译方法、格式规范调整拆进了 README.md、sdumain.tex、setup/ 和 clean.sh 里。它解决的并不是“LaTeX 怎么安装”这类入门问题而是“如何在一套可控的模板上完成学位论文排版、格式修正和匿名送审”。需要提交学位论文的本科生以及要把课程报告写成规范文档的研究生都能从这套模板的配置里省下大量调字号、对目录的时间。2. sduthesis 的目录结构与 XeLaTeX 编译链路2.1 模板骨架sdumain.tex 与 body.tex 的入口关系解压压缩包后先看 README.md。我拿到的这份模板目录比较规整入口文件是 sdumain.tex而不是 body.tex。sduthesis/ ├── README.md ├── LICENSE ├── clean.sh ├── sdumain.tex # 主文档包含 documentclass 和绪论 ├── body.tex # 正文章节被 sdumain.tex 引入 ├── setup/ # 页面、字体、宏包格式配置 ├── references/ # BibTeX 文献库 ├── preface/ # 摘要、声明等前置部分 ├── appendix/ # 附录内容 └── figures/ # 插图目录各文件职责见表。文件/目录作用sdumain.texLaTeX 编译入口定义文档类、调用宏包组织全文顺序body.tex存放正文各章通常按章拆成多个\input文件setup/页面尺寸、页眉页脚、字体、标题格式等调整文件references/存放 .bib 参考文献库配合 BibTeX 使用preface/摘要、Abstract、声明、致谢等前置内容appendix/附录通常在提交前才打开figures/论文插图统一放这里方便相对路径引用clean.sh清理中间文件保持目录干净主文档 sdumain.tex 负责把前置、正文、参考文献和附录串成一份完整论文。body.tex 里只写\chapter和正文段落不写\documentclass也不写\end{document}。这样设计的好处是内容与格式分离写正文时不用管页面设置改格式时不用一页页翻内容。很多初次接触的人直接去编译 body.tex随后看到Missing \begin{document}或Not in outer par mode就是没理解这个入口关系。我一般会把 body.tex 再拆成多个文件例如 body-intro.tex、body-method.tex、body-experiment.tex然后在 sdumain.tex 里用\include导入方便单章调试。2.2 编译链路xelatex、bibtex 与 clean.sh 的分工这套模板必须用 XeLaTeX 编译不能用 pdfLaTeX原因在中文支持XeLaTeX 配合 ctex 宏包可以直接使用系统中文字体并能正确处理 Unicode 字符。完整编译流程不是一次就能完成交叉引用、目录和参考文献都需要多轮编译。常见做法是执行四步xelatex -interactionnonstopmode sdumain.tex bibtex sdumain xelatex -interactionnonstopmode sdumain.tex xelatex -interactionnonstopmode sdumain.tex第一条 xelatex 生成 .aux 辅助文件并把正文内容写入 .logbibtex 读取 .aux 中的\citation和\bibdata从 references/ 中的 .bib 文件抽取文献生成 .bbl后面的两条 xelatex 分别用于更新交叉引用和目录页码保证\ref和\cite的编号稳定。-interactionnonstopmode表示遇到错误不暂停等待键盘输入适合批处理和脚本自动化。如果参考文献出现[??]或目录缺页通常就是第三步和第四步没执行完整。模板里自带的 clean.sh 用于清理编译中间产物。它的核心内容是删除 .aux、.log、.out、.bbl、.blg、.toc、.lof、.lot、.synctex.gz 等文件。这些文件不影响最终 PDF但会在 git 提交时制造大量冲突也会干扰下一次编译结果。我一般会把 clean.sh 改造成参数化脚本传 clear 只删中间文件传 dist 连 PDF 一起删这样在提交前不会误删生成物。如果你用 VSCode 写 LaTeXLaTeX Workshop 里可以配一个 xelatex - bibtex - xelatex - xelatex 的 recipe把 clean.sh 挂到清理任务上比手动敲命令稳得多。3. LaTeX 编译参数、安装环境与数学公式排版3.1 TeX Live 安装与字体检查要跑通这份模板本地至少需要一个支持 XeLaTeX 的发行版Windows / Linux 用 TeX LivemacOS 用 MacTeX。最常见的安装失败原因是图省事装精简版缺少 ctex、geometry、fontspec 等宏包。我的建议是安装完整版耗时虽长但后续不用频繁执行tlmgr install。使用清华镜像安装 TeX Live 是常见做法选择 install-tl 后把镜像地址指到清华源即可。安装完成后先确认中文字体可用fc-list | grep -i SimSun fc-list | grep -i Songti fc-list | grep -i SimHeiWindows 上 SimSun、SimHei 一般都有macOS 上对应的中文字体名更接近 Songti SC、Heiti SCLinux 下如果没有需要单独安装 fonts-noto-cjk 或 simsun 字体包。模板在 setup/ 中的字体设置如果找不到对应名称编译时会报The font ... cannot be found此时不要急着改模板先用 fc-list 确认系统里到底有哪些字体再回 setup/ 里微调字体名。这一步做完LaTeX 安装教程里大量类似报错就会消失。3.2 页面尺寸、字号与行距的格式参数论文格式的差异主要体现在页面和字号。这份模板把页面设置放在 setup/ 中而不是散落在正文里。下面是一段典型的调整代码\documentclass[12pt,a4paper,twoside,openany]{ctexbook} \usepackage{geometry} \geometry{top2.8cm, bottom2.5cm, left3.0cm, right2.5cm} \linespread{1.5} \setlength{\parindent}{2em}12pt对应小四号字是大多数本科毕业论文的正文字号a4paper明确纸张大小twoside开启双面排版会使奇数页和偶数页页边距镜像对称理科论文常用提交电子版时如果学院要求单面版把twoside改成oneside即可。openany表示章标题不用必须从奇数页开始能减少空白页。\linespread{1.5}是行距倍数但 1.5 倍并不等于固定值 20 磅学校如果规定“行距 20 磅”需要换成\setlength{\baselineskip}{20pt}再配合\selectfont才能精确匹配。字号与常见规范对应关系见下表。中文名称LaTeX 点号实际磅值使用位置三号\zihao{3}16pt章标题小三\zihao{-3}15pt节标题四号\zihao{4}14pt小节标题小四\zihao{-4}12pt正文ctexbook 文档类提供\zihao命令比硬写\fontsize更符合中文排版习惯。需要按学院格式调整时优先去 setup/ 里找\ctexset配置例如\ctexset{chapter {format \zihao{3}\bfseries}}这样能保持标题和正文格式一致而不是在正文里逐行加粗。3.3 数学公式、希腊字母与矩阵的快速写法理工科论文绕不开数学公式。模板中公式字体由 unicode-math 或 amsmath 决定常用写法如下$\alpha, \beta, \gamma$ % 希腊字母 $a \times b \div c d$ % 乘除号 $\widehat{AB}$ 表示弧$\overrightarrow{AB}$ 表示向量 \[ M_{m \times n} \begin{bmatrix} a_{11} a_{12} \\ a_{21} a_{22} \end{bmatrix} \]希腊字母的输入规则是\alpha、\beta、\gamma大写形式对应\Gamma、\Delta等。弧符号通常写作\widehat{}或\overarc{}后者需要引入 arcs 宏包。矩阵用\begin{bmatrix}环境分隔列\\分隔行m \times n表示维度。这里有一个很容易踩的坑从 Mathtype 复制公式时默认会带上 MathType 自带的字体控制命令粘贴到 LaTeX 后往往出现\MathType之类未定义命令。常见处理方案是在 Mathtype 的转换设置里把公式转成标准 TeX 语法再粘贴到模板中不然公式中的字体与论文其他部分不一致。4. 格式规范调整参考文献、图表编号与匿名版4.1 参考文献BibTeX 数据与 GB/T 7714 格式参考文献是格式审核里最容易被扣分的地方。模板的 references/ 目录用来放 .bib 文件而不是在正文里直接手写\begin{thebibliography}。建议在 sdumain.tex 中这样设置\usepackage{gbt7714} \bibliographystyle{gbt7714} \bibliography{references/thesis}gbt7714 是符合国标格式的参考文献样式能自动处理“等”字和英文作者名缩写。references/thesis.bib 里的一条典型中文文献如下article{wang2023, author {王某某 and 李某某}, title {基于轻量化网络的目标检测方法研究}, journal {计算机学报}, year {2023}, volume {46}, number {5}, pages {123--145} }作者之间用and连接姓在前名在后页码中的破折号用两个-BibTeX 会自动渲染成 en-dash。避免直接在 .bib 里使用全角冒号和中文逗号否则参考文献表可能多出多余的空格。文献类型在 GB/T 7714 中有明确字母标识调整参考文献表时对照下表类型标识说明期刊[J]期刊文章专著[M]书籍论文集[C]会议论文集学位论文[D]硕博论文标准[S]国家标准/行业标准电子资源[EB/OL]网页或在线文档写完新文献后需要重新执行一遍 xelatex - bibtex - xelatex - xelatex而不是只编译一次。如果正文中引用但没有在 .bib 中录入日志里会出现Citation ... undefined这类问题在提交前要用 grep 查一次。4.2 图表编号、浮动体和交叉引用图表编号如果手动写“图 3-1”插入新图后所有后续编号都要改所以模板里推荐用自动编号加交叉引用。图片的典型写法如下\begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{figures/architecture.pdf} \caption{系统整体架构图} \label{fig:arch} \end{figure}参数htbp表示 LaTeX 可以按 just here、顶部、底部、独立页的顺序调整浮动体位置实际位置由排版引擎决定不必强求图出现在文字正下方。\caption生成图题\label给这个图一个引用标签正文中用如图~\ref{fig:arch} 所示即可引用编号。这里~是不断行空格避免“图”和编号被拆到两行。同样的机制也适用于表格只要把\caption放在 tabular 上方即可。表格方面模板中一般推荐三线表即上下粗线、表头下方一条细线。可以用\toprule、\midrule、\bottomrule实现避免出现整张表全是竖线的情况。图表路径统一放在 figures/ 下编译时用相对路径比写绝对路径更利于在不同机器上复现。如果图片是 Visio 导出的建议导出为 PDF 或 EPS不要直接用截图因为位图在缩放后清晰度会明显下降。4.3 匿名送审版本隐藏作者信息的开关毕业设计送审时经常要求去掉作者姓名、学号和致谢手动删一遍容易改回去。模板的 setup/ 中可以用一个条件编译开关控制匿名版本。在 sdumain.tex 的导言区加上\newif\ifblind %\blindtrue % 去掉行首注释开启盲审 \ifblind \author{匿名} \title{论文题目} \newcommand{\stuname}{匿名} \else \author{张三} \title{论文题目} \newcommand{\stuname}{张三} \fi需要提交盲审版时把\blindtrue前的注释去掉编译后封面作者自动变成“匿名”不需要盲审时注释回来。用同一套源文件维护两个版本比复制一份新目录更可靠。致谢部分可以单独放在 preface/ 中盲审时在 sdumain.tex 里把对应\input注释掉即可。还可以借助 clean.sh 在生成盲审版前自动备份原 PDF避免反复切换编译参数时把最终文件覆盖掉。5. 用检查脚本验证 PDF 是否满足毕设要求5.1 日志、字体嵌入和提交前检查临近提交时会发现人工翻 PDF 检查远不如直接用日志和工具来得快。我习惯在模板根目录放一个 check.sh内容如下#!/usr/bin/env bash set -e latexmk -xelatex -interactionnonstopmode sdumain.tex grep -n Warning.*undefined sdumain.log || true grep -n Overfull sdumain.log | head -20 pdffonts sdumain.pdf第一行用 latexmk 自动完成 xelatex 和 bibtex 的多次编译省去手动重复执行第二行检查是否有 undefined 交叉引用或未定义的文献第三行列出所有超出边界的行像Overfull \hbox这类警告虽然不致命但在双面打印时经常把公式或长英文单词挤出版心。pdffonts来自 poppler 工具包用来查看 PDF 内嵌字体状态。如果 pdffonts 输出中的某个字体没有Embedded subset标识说明字体没有正确嵌入打印时很容易出现乱码或字形替换。遇到这种情况优先回到模板的字体配置检查是否使用了\setCJKmainfont指定具体字体而不是依赖系统默认项。跑完 check.sh 后再单独查看所有引用是否显示成??如果出现??说明编译轮次还不够或目录缓存残留执行一遍 clean.sh 后重跑。最后把 sdumain.pdf 与 README.md 里的使用说明放在同一目录确认 PDF 文件大小不超过学院限制提交时直接用这个产物。本文还有配套的精品资源点击获取