texlive[74968] Master/texmf-dist: bithesis (17apr25)

commits+karl at tug.org commits+karl at tug.org
Thu Apr 17 21:24:48 CEST 2025


Revision: 74968
          https://tug.org/svn/texlive?view=revision&revision=74968
Author:   karl
Date:     2025-04-17 21:24:48 +0200 (Thu, 17 Apr 2025)
Log Message:
-----------
bithesis (17apr25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/bithesis/bithesis.pdf
    trunk/Master/texmf-dist/source/latex/bithesis/bithesis.dtx
    trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls
    trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls
    trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-doc.tex
    trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-graduate.pdf
    trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-undergraduate.pdf

Added: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-doc.tex	2025-04-17 19:24:48 UTC (rev 74968)
@@ -0,0 +1,2201 @@
+\DoNotIndex{\newenvironment,\@bsphack,\@empty,\@esphack,\sfcode}
+\DoNotIndex{\addtocounter,\label,\let,\linewidth,\newcounter}
+\DoNotIndex{\noindent,\normalfont,\par,\parskip,\phantomsection}
+\DoNotIndex{\providecommand,\ProvidesPackage,\refstepcounter}
+\DoNotIndex{\RequirePackage,\setcounter,\setlength,\string,\strut}
+\DoNotIndex{\textbackslash,\texttt,\ttfamily,\usepackage}
+\DoNotIndex{\begin,\end,\begingroup,\endgroup,\par,\\}
+\DoNotIndex{\if,\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi}
+\DoNotIndex{\let,\def,\xdef,\edef,\newcommand,\renewcommand}
+\DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect}
+\DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize}
+\DoNotIndex{\small,\footnotesize,\scriptsize,\tiny}
+\DoNotIndex{\normalfont,\bfseries,\slshape,\sffamily,\interlinepenalty}
+\DoNotIndex{\textbf,\textit,\textsf,\textsc}
+\DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad}
+\DoNotIndex{\centering,\raggedright,\ref}
+\DoNotIndex{\c at secnumdepth,\@startsection,\@setfontsize}
+\DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m at ne}
+\DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass}
+\DoNotIndex{\AtBeginDocument,\AtEndDocument,\AtBeginEnvironment}
+
+\GetFileInfo{\jobname.dtx} %
+
+\def\indexname{索引}
+\IndexPrologue{\section{\indexname}}
+
+\title{\includegraphics[width=0.3\textwidth]{images/icon.png}
+\\[1cm]
+\bfseries 北京理工大学{\LaTeX}学位论文及报告模板 }
+\author{北京理工大学网络开拓者协会 \\ \texttt{webmaster at bitnp.net}} %
+\date{\zihao{-4} \today\quad \color{RubineRed}{\kaishu {\BIThesis}版本\version}}
+\maketitle\thispagestyle{empty}
+
+\def\abstractname{}
+\begin{abstract}\noindent
+  此宏包旨在建立一个简单易用的北京理工大学学位论文 $\LaTeX$ 模板
+ (以及其他模板),包括本科毕业设计与研究生学位论文。
+\end{abstract}
+
+\vspace{5mm}
+
+\begin{center}
+\noindent\rule[0.25\baselineskip]{0.5\textwidth}{0.7pt}
+\end{center}
+
+\def\abstractname{免责声明}
+\begin{abstract}
+\noindent
+\begin{enumerate}
+\item 本模板的发布遵守 \LPPL ,使用前请认真阅读协议内容。
+\item 与\BIThesis 相关的文档内容采用
+ \href{https://github.com/BITNP/BIThesis-wiki/blob/main/LICENSE}{CC0-1.0 协议} 发布。
+\item 任何个人或组织以本模板为基础进行修改、扩展而生成的新的专用模板,
+ 请严格遵守 \LaTeX{} Project Public License 协议。
+ 由于违犯协议而引起的任何纠纷争端均与本模板作者无关。
+\end{enumerate}
+\end{abstract}
+
+\vspace{5mm}
+
+\def\abstractname{简介}
+\begin{abstract}
+\BIThesisLaTeX 是北京理工大学本科生毕业设计与研究生学位论文,
+  以及其他课程报告、实验报告的 {\LaTeX} 模板集合。
+  如果你厌烦了 Word 格式的不人性化、参考文献的难以管理、
+  公式输入的差劲体验……那么欢迎来尝试用专业的学术稿件排版利器 —— {\LaTeX},
+  来排版你的论文。
+  专业高端、学界认可、开源免费,{\LaTeX} 是你论文排版的最佳搭档。
+
+\BIThesisLaTeX 目前支持使用 {\hologo{XeLaTeX}} 进行编译,
+使用以 biber 为后端的 BibLaTeX 进行参考文献的生成,
+符合《信息与文献参考文献著录规则》
+(\href{https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7FA63E9BBA56E60471AEDAEBDE44B14C}{GB/T 7714—2015})
+的标准。
+
+目前,\BIThesisLaTeX 主要设计完成了
+本科生毕业(设计)论文、研究生学位论文、本科生毕业(设计)论文外文翻译、
+全英文专业本科生毕业(设计)论文与通用实验报告的 {\LaTeX} 模板。
+
+\end{abstract}
+\newpage
+
+\tableofcontents
+\clearpage
+\setlength{\parskip}{0.8ex}
+
+\section{常用术语表}
+\label{sec:terms}
+\begin{description}
+  \item[\LaTeX] \LaTeX{} 是一个高质量的文档排版系统
+    ,他是基于 \TeX{} 进一步封装实现的。
+  \item[\LaTeX2e] \LaTeX2e 是 \LaTeX{} 的最新稳定版本,
+    目前大家使用的都是这个版本。
+  \item[\LaTeX3] \LaTeX3 是 \LaTeX{} 的下一代版本,
+    目前还在开发中(近十年了)。
+    \LaTeX3 旨在为宏基编写人员提供一套通用的编程层。
+    目前,\LaTeX3 的功能已经
+    通过 \pkg{expl3} 等宏包在 \LaTeX2e 中提供。
+    目前,|bithesis| 就是通过 \pkg{expl3} 实现的。
+  \item[\LaTeX 引擎] 引擎就是将TeX代码转化为页面描述语言(PDL)的核心部分,
+    就像C语言的编译器一样。比如 \hologo{XeLaTeX}、\hologo{LuaLaTeX} 等。
+  \item[编辑器] TeX的编辑器给用户提供了较为方便的交互工具,
+    将一些编译的过程都做成了按钮,
+    省去了我们需要去命令行一步步编译,且提供了较为方便的编辑环境,
+    如快捷键注释、语法高亮等等功能。常见的编辑器有 TeXstudio 等。
+    另一些编辑器则是通过插件的方式来实现 TeX 的编辑,如 VSCode、Neovim、Vim 等。
+  \item[宏包 (package)] \LaTeX{} 语言本质上是一个宏语言(通过文本替换而层层展开),
+    而宏包就是一些宏的集合。CTAN 中的 bithesis 就是一个宏包。
+  \item[宏集] 宏集是一些宏包的集合,比如 ctex 宏集。
+  \item[CTAN] Comprehensive TeX Archive Network,CTAN 是 TeX 项目的官方网站,
+    也是 TeX 项目的主要资源库。
+    你使用的 \LaTeX{} 发行版中的宏包都是通过 CTAN 来发布的。
+  \item[发行版] 发行版是将引擎,格式,宏包等等打包成一套安装文件的软件,
+    TeX Live、MiKTeX 等。
+  \item[文档类] 文档类指代一类以 |.cls| 结尾的文件,它们定义了文档的基本结构,
+    通常包括文档的标题、作者、日期、页眉、页脚、正文样式等等。
+    你可以通过 \tn{documentclass} 命令来指定文档类。
+    没错,|bithesis| 为你提供的模板功能就是通过数个文档类实现的。
+\end{description}
+
+\section{项目简介}
+\subsection{历史与贡献者们}
+\begin{itemize}
+  \item 在 2017 年之前,网络上已经出现一些北京理工大学学位论文 \LaTeX 模板。
+    它们是“2012大眼小蚂蚁版”和“2016汪卫版”,均以上海交通大学的模板为基础。
+  \item 2017 - 2018 年,计算机学院 2016 级研究生杨雅婷等人受研究生院委托,
+    制作了\href{https://github.com/BIT-thesis/LaTeX-template}{BIT-Thesis}
+    研究生学位论文模板。
+  \item 2019 - 2020 年,\BIThesis 最早由 2016 级的
+    武上博、王赞、唐誉铭、牟思睿和詹熠莎等人维护。
+  \begin{itemize}
+    \item 此时,\BIThesis 仅支持本科生毕业论文的排版。
+    \item 在此期间,\BIThesis 从无到有诞生了,包括使用手册、
+      在线文档和开箱即用的模板。
+    \item 同时,2017 级的赵池等同学完成了一系列 \BIThesisLaTeX
+      的视频教程。
+  \end{itemize}
+  \item 2020 - 2021 年,2017 级的冯开宇、杨思云、郝正亮和顾骁等人
+      接管了维护开发工作。
+  \begin{itemize}
+    \item 在此期间,冯开宇将原来的 .tex 文件制作成了宏包,并发布到 CTAN 上。
+    \item 项目代码也随之被拆分成了 \BIThesisMacroPackage,
+      \BIThesisWiki 和 \BIThesisScaffold。
+    \item 此版本是 V2 版本,代号为 Birthday Cake.
+  \end{itemize}
+  \item 2021 - 2022 年,2021 级(硕士研究生)的冯开宇针对 2021、
+      2022 毕业季收到的反馈对该项目进行维护升级。
+  \begin{itemize}
+    \item 在此期间,冯开宇合入了杨雅婷等人在 2017 年开发的研究生学位论文模板。
+    \item 在项目架构上,BIThesis-scaffold 合入 BIThesis 以便于进一步维护。
+    \item 次年暑假期间,冯开宇用 \pkg{expl3} 重构了\LaTeX 样式代码,
+      向用户提供了简易易用的接口。
+    \item 同时,也增加了本科全英文专业的毕设论文模板样式。
+    \item 此版本是 V3 版本,代号为 Summer Time.
+  \end{itemize}
+  \item 2023 年,冯开宇在此版本上增加了多种新的功能,并修复了一些已知的问题。
+  并推进了官方(教务部、研究生院)对 \BIThesis 的认可。
+  另外,2020级的徐元昌改正了文档、手册、注释中若干错误或过时信息(其中有些源于QQ群),增加了读书报告模板。
+  \item 2024 年,冯开宇和徐元昌推动了对研究生院原官方模板的替换。
+\end{itemize}
+
+\subsection{\BIThesis 是什么?}
+\BIThesis 之名是英文单词 Beijing Institution of Technology(北京理工大学)
+的首字母缩写“BIT” 与“Thesis”结合而成。在纯文本环境下,该名字应写作“BIThesis”。
+同理,其 IPA 发音为 {\fontspec{DoulosSIL} /ˈbiːˈaiˈtiːˈθiː.sis/}。
+
+\BIThesisLaTeX 是由北京理工大学众多学子发起并维护的开源项目。
+该项目旨在建立一套简单易用的北京理工大学 \LaTeX 学位论文模板。
+
+\subsection{为什么要使用 \BIThesis?}
+学位论文通常具有比较严格的格式要求,这是为了方便同行学术交流的起码要求,
+同时也是科学研究严谨性的体现。
+然而,由于市场各种排版软件混杂,使用者水平不一,学生对格式的重视程度不够,
+学生编写标准格式的学位论存在很多问题。
+\BIThesisLaTeX 为符合北京理工大学硕士(博士)学位论文的LaTeX模板。
+通过使用\BIThesisLaTeX 模板,学生可以轻松撰写符合学校格式要求的学位论文,
+避免繁琐的论文格式调整;从而将关注点更多地放在高质量的内容本身。
+
+要使用这个模板协助你完成学位论文的创作,下面的条件必须满足:
+\begin{itemize}
+\item  操作系统字体目录中有中文字体;
+\item  \TeX~系统有~\XeTeX~引擎(一般发行版均已经具备);
+\item  你有使用~\LaTeX~ 的经验,或者愿意为此学习;
+\end{itemize}
+
+\subsubsection{\BIThesisLaTeX 的组成}
+我们将 \BIThesisLaTeX 划分为了两个主要仓库:
+\begin{table}[H]
+\centering
+\begin{tabular}{@{}l l p{6cm} @{}}
+\toprule
+项目                & 项目地址 & 主要目的 \\ \midrule
+BIThesis   &   \href{https://github.com/BITNP/BIThesis}{BITNP/BIThesis}
+  &  主要存储 \BIThesis  宏包以及开箱即用的模板样式 \\
+BIThesis-wiki
+  &   \href{https://github.com/BITNP/BIThesis-wiki}{BITNP/BIThesis-wiki}
+  &  存储 \BIThesisLaTeX 项目在线文档   \\ \bottomrule
+\end{tabular}
+\end{table}
+
+如果你仅想解决「我如何使用 \BIThesisLaTeX 来帮助我完成实验论文?」这个问题,
+那么欢迎你访问我们的\href{https://bithesis.bitnp.net}{在线文档}以获得更多信息。
+
+如果你想深入了解 \BIThesisLaTeX 提供的接口的各种选项,那么请继续阅读。
+
+\subsection{\BIThesis 如何的设计原则是什么?}
+
+\BIThesis 的基本设计原则是:
+\begin{itemize}
+  \item \textbf{保持开箱即用的特性},即用户不需要修改任何代码即可使用 \BIThesisLaTeX 。
+  \item \textbf{保持对官方模板的兼容性},让用户只用关注内容本身。
+  \item \textbf{关注用户体验},提供简单易用的接口,对于有争议的设计,我们会提供多种选择。
+  \item \textbf{模板即软件},「罗马不是一天建成的」,我们会积极地维护 \BIThesisLaTeX 。
+\end{itemize}
+
+为了保证以上原则,我们引入了多种测试机制(如集成测试、回归测试)来保证 \BIThesis 的质量。
+并采用了正规软件开发的流程,如版本控制、代码审查、持续集成等,来保证 \BIThesis 的可维护性。
+
+\subsection{\BIThesis 宏包的组成}
+为了适应用户的不同需求,我们将 \BIThesisMacroPackage
+的主要功能设计安排在两个中文文档类当中,具体的组成见表~\ref{tab:classes}。
+\begin{table}[H]
+  \centering
+  \caption{文档类组成} \label{tab:classes}
+  \begin{tabular}{lll}
+    \toprule
+    文档类  & 文件
+         & 说明
+    \\ \midrule
+    论文   & \hyperref[sec:bithesis]{\cls{bithesis.cls}}
+         & 本科生、研究生的毕业论文及其衍生样式
+    \\
+    实验报告 & \hyperref[sec:bitreport]{\cls{bitreport.cls}}
+         & 本科生开题报告(已废弃)与实验报告样式
+    \\
+    幻灯片  & \cls{bitbeamer.cls}
+         & 对应 ctexbeamer,提供了北理工的 beamer 模板样式
+    \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+
+\subsection{\BIThesisLaTeX 是如何发布的?}
+\label{sec:release}
+
+\BIThesisLaTeX 每一个版本会有三种发布方式:
+
+\begin{itemize}
+  \item  CTAN 发布:
+    \href{https://ctan.org/pkg/bithesis}{CTAN bithesis package}
+  \item  GitHub 发布:
+    \href{https://github.com/BITNP/BIThesis/releases}{GitHub Releases}
+    \footnote{最推荐使用此种方式}
+  \item  Overleaf 发布:
+    \href{https://bithesis.bitnp.net/guide/preface.html#q-bithesis-都包含哪些模板}{Overleaf Templates}
+\end{itemize}
+其中,CTAN 上发布的是 bithesis 宏包,也就是 |*.cls| 组成的文件,
+它们可以通过 \TeX 发行版自带的包管理器 tlmgr 来更新。
+
+GitHub 和 Overleaf 上发布的是 \BIThesisLaTeX 的完整模板,因此想要升级
+到最新版本,你需要重新下载最新模板。然后,选择下列方法的一种来更新:
+
+\begin{itemize}
+  \item 将新模板中的 |*.cls| 文件替换到你原有模板的工作目录中。
+  \item 将旧模板中的写作内容复制到新模板中。
+\end{itemize}
+
+需要注意的是,GitHub 和 Overleaf 的模板中包含了当前版本的 |*.cls| 文件,
+因此不会因为 CTAN 上的更新而导致模板无法编译。(但代价当然是需要手动升级)
+
+GitHub 同时提供了独立的 |*.cls| 文件,可以仅下载 |*.cls| 文件并通过上述
+第一种方法进行更新。
+
+\subsection{版本号与升级}
+
+\BIThesisLaTeX 的版本号遵循 \href{https://semver.org/lang/zh-CN/}{语义化版本},
+也就是说,每个版本号由三个数字组成,分别表示主版本号、次版本号和修订号。
+例如,版本号 |1.2.3| 表示主版本号为 1,次版本号为 2,修订号为 3。
+
+\BIThesisLaTeX 的主版本号会在有重大变化时(且无法前向兼容时)更新,
+例如,模板的结构发生了变化、宏命令的使用方式发生了改变。
+次版本号会在有新功能添加时更新,例如,添加了新的功能和宏命令。
+修订号会在有 bug 修复时更新,例如,修复了某些宏命令的 bug、补充了某些文档。
+
+因此对于用户来说,主版本号的更新是不兼容的,次版本号与修订号的更新是向前兼容的。
+进行兼容性升级时,你只需要将新版本的 |*.cls| 文件替换到你原有模板的工作目录中即可。
+进行不兼容性升级时,你需要将旧模板中的写作内容复制到新模板中(记得要做好备份哦)。
+
+\section{安装}
+
+\subsection{\BIThesis 宏包的安装和更新}
+
+最常见的 \TeX 发行版(\hologo{TeX} Live 和 \hologo{MiKTeX})已收录
+\BIThesisMacroPackage 及其依赖的宏包和宏集。
+
+\begin{itemize}
+\item Windows、Linux用户推荐安装 TeX Live 套装,
+  并更新宏包(Linux系统由于版权问题,未能预装宋体等 Windows 下的字体,需要手动安装;对于 WSL 用户,可参照\href{https://bithesis.bitnp.net/faq/word-font.html}{疑难杂症:如何采用与 Word 相同的中文字体}直接使用 Windows 下的字体)
+\item OSX用户推荐安装 Mac TeX。
+\item 由于CTeX套装所含宏包比较陈旧,可能会导致编译无法通过,故不推荐安装。
+  如果已安装 CTeX,\textbf{建议将其卸载}。
+\end{itemize}
+
+如果安装以上发行版的时间较早,可能你本地的环境中不存在
+\BIThesisMacroPackage 或者不是最新版本的。
+那么你需要通过包管理器来安装/更新 \BIThesisMacroPackage:
+
+\begin{shell}[morekeywords={tlmgr,install}]
+tlmgr install bithesis
+\end{shell}
+
+更新可以通过图形界面进行,或者通过命令行:
+
+\begin{shell}[morekeywords={tlmgr,update}]
+tlmgr update bithesis
+\end{shell}
+
+\textbf{
+  在安装完发行版之后,还需要安装编辑 \LaTeX 所需的编辑器,在这里推荐 TeXstudio。
+}
+
+\textit{更多安装教程请访问我们的
+  \href{https://bithesis.bitnp.net}{wiki 网站},那里收录了使用模板以外的信息。}
+
+\subsubsection{升级模板版本}
+
+由于软件维护是一个持续的过程,我们会不定期地更新 \BIThesisMacroPackage 的版本。
+更新的版本可能会修复一些 bug,也可能会增加新的功能。
+
+因此,首先建议你首先查看最新版本与你当前版本的差异,以便决定是否升级。
+你可以通过 GitHub Releases 或者 ChangeLog 来查看更新内容。
+
+当你决定升级时,请首先备份你的工作目录,然后按照\ref{sec:release}节的描述进行升级。
+
+\section{编译方式}
+
+\subsection{使用 Latexmk(推荐)}
+
+在项目模板中,已经预制好了 latexmk 的配置文件 |.latexmkrc|。
+
+因此只需要在命令行里执行,或者在代码编辑器里配置并运行以下命令即可:
+
+\begin{shell}
+  latexmk
+\end{shell}
+
+\subsubsection{手动四次编译}
+
+\begin{shell}
+  xelatex -no-pdf --interaction=nonstopmode main
+  biber main
+  xelatex -no-pdf --interaction=nonstopmode main
+  xelatex --interaction=nonstopmode main
+\end{shell}
+
+运行bibtex的时候会提示一些错误,可能是~{{\sc Bib}\TeX}~对UTF-8支持不充
+分,一般不影响最终结果。加入~\verb|--interaction=nonstopmode|~参数是不让错误打断编译过程。
+\XeTeX~ 仍存在一些宏包兼容性问题,而这些错误通常不会影响最终的编译结果。
+
+\section{\cls{bithesis.cls} 使用与配置}
+\label{sec:bithesis}
+
+推荐使用\BIThesisRelease (开箱即用)。
+
+\BIThesisRelease 提供了多种最常用的模板,你可以在
+\href{https://github.com/BITNP/BIThesis/releases}{主项目的 Releases} 中找到它们。
+
+使用此文档类的模板有:
+\begin{itemize}
+ \item \BIThesisTemplates{UT}
+ \item \BIThesisTemplates{UTE}
+ \item \BIThesisTemplates{PT}
+ \item \BIThesisTemplates{RR}
+ \item \BIThesisTemplates{GT}
+\end{itemize}
+
+\subsection{最小用例}
+
+\begin{latex}
+\documentclass[type=bachelor]{bithesis}
+\BITSetup{
+  info = {
+    author = FKY,
+    ......
+  }
+}
+\begin{document}
+\end{document}
+\end{latex}
+
+如您所见,在 \LaTeX 中,用户使用的命令通常以「|\|」作为开头,后面依次跟随
+命令名称、若干可选参数和若干必需参数。如:
+
+\begin{latex}
+\MakeCover
+\BITSetup{}
+\FooBar[]{}
+\end{latex}
+
+同理,用户使用的环境通常以 begin 和 end 进行包裹,
+同样可以传入可选参数和必需参数:
+
+\begin{latex}
+\begin{abstract}
+\end{abstract}
+
+\begin{abstract}[addTOC=false]
+\end{abstract}
+
+\begin{foo}{param1}
+\end{foo}
+\end{latex}
+
+需要强调的是:以方框号表示的可选参数,在没有参数传入的时候,是可以忽略的。
+比如以下两个命令等价:
+\begin{latex}
+\FooBar
+\FooBar[]
+\end{latex}
+
+环境同理。
+
+\subsection{模板选项} \label{sec:template-options}
+
+所谓“模板选项”,指需要在引入文档类的时候指定的选项:
+
+\begin{latex}[deletetexcs={\documentclass},morekeywords={\documentclass}]
+\documentclass(*\oarg{模板选项}*){bithesis}
+\end{latex}
+
+\begin{function}{type}
+\begin{bitsyntax}[emph={[1]type}]
+type = (*<(bachelor)|\mbox{bachelor_translation}|\mbox{bachelor_english}|master|doctor>*)
+\end{bitsyntax}
+  选择论文类型,它们分别对应:
+  \begin{itemize}
+    \item \BIThesisTemplates{UT}、\BIThesisTemplates{RR}
+    \item \BIThesisTemplates{PT}
+    \item \BIThesisTemplates{UTE}
+    \item \BIThesisTemplates{GT} 研究生
+    \item \BIThesisTemplates{GT} 博士生
+  \end{itemize}
+\end{function}
+
+\begin{function}[added=2023-03-16]{english}
+\begin{bitsyntax}[emph={[1]english}]
+english = (*<(false)|true>*)
+\end{bitsyntax}
+  开启英文模式。此选项会将论文的标题、摘要、目录、参考文献等部分的
+  中文部分替换为英文部分。适用于英文论文的撰写。
+
+  \begin{note}
+    本选项仅适用于 \BIThesisTemplates{GT} 模板,本科全英文专业的同学
+    请直接使用 \BIThesisTemplates{UTE} 模板。
+  \end{note}
+\end{function}
+
+\begin{function}{blindPeerReview}
+\begin{bitsyntax}[emph={[1]blindPeerReview}]
+blindPeerReview = (*<(false)|true>*)
+\end{bitsyntax}
+
+  此选项用于输出符合盲审要求的论文。所有可能暴露个人信息的页面都将隐藏,
+  比如封面、信息页、原创性声明、个人简介、致谢等等。
+\end{function}
+
+\begin{function}[added=2023-02-02]{quirks}
+\begin{bitsyntax}[emph={[1]quirks}]
+quirks = (*<(false)|true>*)
+\end{bitsyntax}
+
+  此选项用于开启针对北理工官方示例的兼容模式。
+
+  具体包括:
+  \begin{itemize}
+    \item \pkg{biblatex} 中的 |patent| 类型将不再采用国标 GB/T 7714-2015 的格式,
+     而是采用北理工官方示例的格式。
+  \end{itemize}
+
+  之所以需要此选项,是因为北理工官方示例中的格式
+  与国标 GB/T 7714-2015 中的格式不一致;
+  而这部分改动可能引入潜在的兼容性问题。
+  而这些差异其实比较细微,所以我们将其作为一个默认不开启的选项。
+
+  在未来,如果持续有用户反馈问题,亦或是没有边界问题,
+  我们可能会将其中的功能移入默认效果中。
+
+\end{function}
+
+\begin{function}{twoside}
+\begin{bitsyntax}[emph={[1]twoside}]
+twoside = (*<(false)|true>*)
+\end{bitsyntax}
+
+  打开双页排版。对于研究生模板来说,这意味着摘要前的内容都会
+  被插入空白页。这样,在你双面打印的时候,就可以获得单页打印
+  效果的封面。
+
+  \textit{本科生模板一般不需要选择此选项。此选项会受到 |blindPeerReview| 的抑制。}
+\end{function}
+
+\begin{function}{ctex}
+\begin{bitsyntax}[emph={[1]ctex}]
+ctex = (*{传给 ctexbook 的模板选项}*)
+\end{bitsyntax}
+
+  该选项用于传入模板选项至 ctexbook。
+
+  例如:想要同时修改 ctex 的字体参数和标点符号处理格式
+  (更多选项请参考 ctex 手册)。
+
+\begin{latex}[emph={[1]type,master,ctex,fontset,fandol,punct,banjiao,bithesis}]
+\documentclass[type=master,ctex={fontset=fandol,punct=banjiao}]{bithesis}
+\end{latex}
+\end{function}
+
+\begin{function}[added=2023-03-10]{autoFakeBold}
+\begin{bitsyntax}[emph={[1]autoFakeBold}]
+autoFakeBold = (*<(3)|false|{数字}>*)
+\end{bitsyntax}
+
+  该选项用于调整 \cls{xeCJK} 中 |AutoFakeBold| 选项以定义伪粗体的粗细程度。
+
+  默认为 3,一般按照经验来说,2.5–3 比较符合 Word 中的粗体样式。
+
+\end{function}
+
+\subsection{参数设置}
+
+\begin{function}{\BITSetup}
+\begin{bitsyntax}[emph={[1]BITSetup}]
+\BITSetup = {(*\oarg{键值对}*)}
+\end{bitsyntax}
+\end{function}
+
+本模板提供了一系列选项,可由您自行配置。载入文档类之后,以下所有选项均可通过统一的
+命令 \cs{BITSetup} 来设置。
+
+\cs{BITSetup} 的参数是一组由(英文)逗号隔开的选项列表,列表中的选项通常是 \meta{key} =
+\meta{value} 的形式。部分选项的 \meta{value} 可以省略。对于同一项,后面的设置将会覆盖前面的设
+置。在下文的说明中,将用粗体表示默认值。
+
+\cs{BITSetup} 采用 LATEX3 风格的键值设置,支持不同类型以及多种层次的选项设定。键值列
+表中,“=”左右的空格不影响设置;但需注意,参数列表中不可以出现空行。
+与模板选项相同,布尔型的参数可以省略 \meta{选项} = true 中的“= true”。
+另有一些选项包含子选项,如 cover 和 info 等。它们可以按如下两种等价方式来设定:
+
+\begin{latex}[morekeywords={\BITSetup},emph={[1]BITSetup,cover,date,info,title,author}]
+\BITSetup{
+  cover = {
+    date = xxxx年x月,
+  },
+  info = {
+    author = Feng Kaiyu,
+    title = A Thesis Title for Your Paper,
+  }
+}
+\end{latex}
+
+或者
+
+\begin{latex}[morekeywords={\BITSetup},emph={[1]BITSetup,cover,date,info,title,author}]
+\BITSetup{
+  cover / date = xxxx年x月,
+  info / author = Feng Kaiyu,
+  info / title = A Thesis Title for Your Paper,
+}
+\end{latex}
+
+\textbf{请注意:以下选项根据模板的不同,可能会有不同的默认值。
+ 有些模板可能不会使用某些选项。使用与否以及使用方式是根据学校的论文撰写要求实现的。}
+
+\subsubsection{封面选项} \label{sec:cover}
+
+\begin{function}{cover}
+\begin{bitsyntax}[emph={[1]cover}]
+cover = (*\marg{键值列表}*)
+cover/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+  该选项包含许多子项目,用于设置论文格式。具体内容见下。
+\end{function}
+
+\begin{function}{cover/date}
+\begin{bitsyntax}[emph={[1]date}]
+date = (*\marg{任意字符串}*)
+\end{bitsyntax}
+
+  覆盖封面的日期。
+\end{function}
+
+\begin{function}{cover/headerImage}
+\begin{bitsyntax}[emph={[1]headerImage}]
+headerImage = (*\marg{图片路径}*)
+\end{bitsyntax}
+
+  设置封面顶部的“北京理工大学”字样图片。
+\end{function}
+
+\begin{function}{cover/xiheiFont}
+\begin{bitsyntax}[emph={[1]xiheiFont}]
+xiheiFont = (*\marg{字体路径}*)
+\end{bitsyntax}
+
+  配置此选项以在部分模板封面中使用“华文细黑”,保证与 Word 模板中的字体一致。
+
+  在 Windows 和 macOS 中,该字体已经安装;在 Linux 中一般需要用户自行安装(如果你是 WSL 用户,可参照\href{https://bithesis.bitnp.net/faq/word-font.html}{疑难杂症:如何采用与 Word 相同的中文字体}直接使用 Windows 下的字体)。
+\end{function}
+
+\begin{function}{cover/delimiter}
+\begin{bitsyntax}[emph={[1]delimiter}]
+delimiter = (*\marg{任意字符串}*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  设置封面信息中标签和值的分隔符。一般为全角或者半角的冒号。
+\end{function}
+
+\begin{function}{cover/autoWidth}
+\begin{bitsyntax}[emph={[1]autoWidth}]
+autoWidth = (*<(true)|false>*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  自动计算封面中下划线的长度。
+
+  如果关闭了该选项,则建议配合\kvopt{cover/labelMaxWidth}{\meta{长度}}\\
+  和\kvopt{cover/valueMaxWidth}{\meta{长度}}使用,以控制下划线的长度。
+\end{function}
+
+\begin{function}{cover/autoWidthPadding}
+\begin{bitsyntax}[emph={[1]autoWidthPadding}]
+autoWidthPadding = (*<\marg{任意长度}>*)
+\end{bitsyntax}
+
+  自适应下划线长度时,下划线的长度会比标签和值的长度多出一些空白。
+  该选项用于设置这些空白的长度。默认为 0.25em。
+
+  \textit{此选项一般不需要用户自行修改。}
+
+\end{function}
+
+\begin{function}{cover/labelMaxWidth}
+\begin{bitsyntax}[emph={[1]labelMaxWidth}]
+labelMaxWidth = (*\marg{任意长度}*)
+\end{bitsyntax}
+
+  此选项仅当\kvopt{cover/autoWidth}{false}时生效。
+
+  设置封面信息中标签的占位长度。
+\end{function}
+
+\begin{function}{cover/valueMaxWidth}
+\begin{bitsyntax}[emph={[1]valueMaxWidth}]
+valueMaxWidth = (*\marg{任意长度}*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  设置封面信息中值的占位长度。\textbf{同时也会影响下划线的长度。}
+\end{function}
+
+\begin{function}{cover/labelAlign}
+\begin{bitsyntax}[emph={[1]labelAlign}]
+labelAlign = (*<c|l|r>*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  设置封面信息中标签的对齐方式(居中、左对齐、右对齐)。
+\end{function}
+
+\begin{function}{cover/valueAlign}
+\begin{bitsyntax}[emph={[1]valueAlign}]
+valueAlign = (*<c|l|r>*)
+\end{bitsyntax}
+
+  此选项仅当\kvopt{cover/autoWidth}{false}时生效。
+
+  设置封面信息中值的对齐方式(居中、左对齐、右对齐)。
+\end{function}
+
+\begin{function}{cover/underlineThickness}
+\begin{bitsyntax}[emph={[1]underlineThickness}]
+underlineThickness = (*\marg{任意长度}*)
+\end{bitsyntax}
+
+  设置封面信息中下划线的厚度。
+\end{function}
+
+\begin{function}{cover/underlineOffset}
+\begin{bitsyntax}[emph={[1]underlineOffset}]
+underlineOffset = (*(-10pt)|\marg{任意长度}*)
+\end{bitsyntax}
+
+  设置封面信息中下划线的偏移量。
+\end{function}
+
+\begin{function}[added=2023-05-09, updated=2024-08-28]{cover/hideCoverInPeerReview}
+\begin{bitsyntax}[emph={[1]hideCoverInPeerReview}]
+hideCoverInPeerReview = (*false|true*)
+\end{bitsyntax}
+
+  \textit{此选项默认值会按论文类型自动设置,一般已满足要求,不需要用户自行修改。}
+
+  在盲审模式下,是否不渲染封面。
+
+  \begin{itemize}
+    \item 若设为 |true|,盲审模式下直接删除封面。
+    \item 若设为 |false|,盲审模式下保留封面,只是隐去个人信息。
+    \item (默认)若未设置,自动根据论文类型设置。具体来说,本科生设为 |true|,研究生设为 |false|。
+  \end{itemize}
+
+  未启用盲审模式时,此选项无效果。
+\end{function}
+
+\begin{function}[added=2024-03-22]{cover/showSpecialTypeBox}
+\begin{bitsyntax}[emph={[1]showSpecialTypeBox}]
+showSpecialTypeBox = (*(false)|true*)
+\end{bitsyntax}
+
+  展示「学生类型」(研究生模板)的那个信息框。
+  因为美观原因默认关闭,和研究生院确认过这个信息框重要程度比较低。
+\end{function}
+
+\begin{function}[added=2024-07-11]{cover/prefer-zh}
+\begin{bitsyntax}[emph={[1]prefer-zh}]
+prefer-zh = (*(false)|true*)
+\end{bitsyntax}
+
+  是否强制使用中文封面,只适用于\BIThesisTemplates{UTE}。该模板默认封面是英文,而有些学院要求采用中文。
+
+  注意设置 |prefer-zh = true| 不会影响 |const/info/major| 等选项的默认值,请参考英文模板的 README 搭配使用。
+\end{function}
+
+\begin{function}[added=2024-07-11]{cover/reverse-titles}
+\begin{bitsyntax}[emph={[1]reverse-titles}]
+reverse-titles = (*(false)|true*)
+\end{bitsyntax}
+
+  是否调换中英文标题顺序,只适用于本科中文封面。
+  若为 |false|,中文在上,英文在下;若为 |true|,中文在下,英文在上。
+
+  适用于\BIThesisTemplates{UT},此外\BIThesisTemplates{UTE}设置了 |cover/prefer-zh = true| 时也适用。
+  不适用于\BIThesisTemplates{PT}和硕士、博士学位论文。
+\end{function}
+
+\begin{function}[added=2024-09-14]{cover/addTitleZh}
+\begin{bitsyntax}[emph={[1]addTitleZh}]
+addTitleZh = (*(true)|false*)
+\end{bitsyntax}
+
+  是否添加中文标题,只适用于本科英文封面。
+
+  只适用于\BIThesisTemplates{UTE},不适用于其它模板。而且若切换为中文封面(|cover/prefer-zh = true|),此选项也无效。
+\end{function}
+
+\subsubsection{论文基本信息}
+
+\begin{function}{info}
+\begin{bitsyntax}[emph={[1]info}]
+info = (*\marg{键值列表}*)
+info/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于录入论文信息。具体内容见下。
+ 一般以「En」结尾的项目表示对应的英文字段。
+
+ 这其中的很多字段将用于封面信息的渲染,此时,可以使用 |\\| 来换行,以防止单行内容过长。
+\end{function}
+
+\begin{function}{info/title,info/titleEn}
+\begin{bitsyntax}[emph={[1]title,titleEn}]
+title = (*\marg{字符串}*)
+titleEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  论文标题。
+\end{function}
+
+\begin{function}{info/verticalTitle}
+\begin{bitsyntax}[emph={[1]verticalTitle}]
+verticalTitle = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  书籍页竖排标题。此选项默认为空。为空时,会被 \kvopt{info/title}{字符串} 替代。
+
+  如想要使用竖排英文,可以使用 \lstinline|{X }|。
+  其中 X 为英文字符,每个竖排英文间需要空一格。
+  比如,想要竖排「LaTeX」,可以使用:
+
+\begin{latex}[emph={[1]}]
+verticalTitle = {其他文字{L } {a } {T } {e } {X }其他文字}
+\end{latex}
+
+  如果想要使用旋转竖排英文,可以使用
+  \lstinline|\rotatebox[origin=c]{-90}{English text}|。
+
+\begin{latex}[emph={[1]}]
+verticalTitle = {其他文字 \lstinline{\rotatebox[origin=c]{-90}{English text}} 其他文字}
+\end{latex}
+
+\end{function}
+
+\begin{function}{info/school,info/schoolEn}
+\begin{bitsyntax}[emph={[1]school,schoolEn}]
+school = (*\marg{字符串}*)
+schoolEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  学院名称。
+\end{function}
+
+\begin{function}{info/major,info/majorEn}
+\begin{bitsyntax}[emph={[1]major,majorEn}]
+major = (*\marg{字符串}*)
+majorEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  专业名称。
+\end{function}
+
+\begin{function}{info/author,info/authorEn}
+\begin{bitsyntax}[emph={[1]author,authorEn}]
+author = (*\marg{字符串}*)
+authorEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  作者姓名。
+\end{function}
+
+\begin{function}{info/studentId}
+\begin{bitsyntax}[emph={[1]studentId}]
+studentId = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  学号。
+\end{function}
+
+\begin{function}{info/supervisor,info/supervisorEn}
+\begin{bitsyntax}[emph={[1]supervisor,supervisorEn}]
+supervisor = (*\marg{字符串}*)
+supervisorEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  指导教师。
+\end{function}
+
+\begin{function}{info/industrialMentor,info/industrialMentorEn}
+\begin{bitsyntax}[emph={[1]industrialMentor,industrialMentorEn}]
+industrialMentor = (*\marg{字符串}*)
+industrialMentorEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  专业型研究生的行业合作导师。
+\end{function}
+
+\begin{function}{info/externalSupervisor}
+\begin{bitsyntax}[emph={[1]externalSupervisor}]
+externalSupervisor = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  校外指导教师。
+\end{function}
+
+\begin{function}{info/keywords,info/keywordsEn}
+\begin{bitsyntax}[emph={[1]keywords,keywordsEn}]
+keywords = (*\marg{字符串;以全角分号分割}*)
+keywordsEn = (*\marg{字符串;以分号分割}*)
+\end{bitsyntax}
+
+  摘要关键词。
+\end{function}
+
+\begin{function}{info/translationTitle}
+\begin{bitsyntax}[emph={[1]translationTitle}]
+translationTitle = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  文献翻译中,翻译后的论文名称。
+\end{function}
+
+\begin{function}{info/translationOriginTitleEn}
+\begin{bitsyntax}[emph={[1]translationOriginTitleEn}]
+translationOriginTitleEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  文献翻译中,翻译前的论文名称。
+\end{function}
+
+\begin{function}{info/classification}
+\begin{bitsyntax}[emph={[1]classification}]
+classification = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  中图分类号。
+\end{function}
+
+\begin{function}{info/UDC}
+\begin{bitsyntax}[emph={[1]UDC}]
+UDC = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  UDC分类号。
+\end{function}
+
+\begin{function}{info/chairman,info/chairmanEn}
+\begin{bitsyntax}[emph={[1]chairman,chairmanEn}]
+chairman = (*\marg{字符串}*)
+chairmanEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  答辩委员会主席。
+\end{function}
+
+\begin{function}{info/degree,info/degreeEn}
+\begin{bitsyntax}[emph={[1]degree,degreeEn}]
+degree = (*\marg{字符串}*)
+degreeEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  申请学位。
+\end{function}
+
+\begin{function}{info/institute,info/instituteEn}
+\begin{bitsyntax}[emph={[1]institute,instituteEn}]
+institute = (*(北京理工大学)|\marg{字符串}*)
+instituteEn = (*(Beijing~Institute~of~Technology)|\marg{字符串}*)
+\end{bitsyntax}
+
+  学位授予单位。
+\end{function}
+
+\begin{function}{info/defenseDate,info/defenseDateEn}
+\begin{bitsyntax}[emph={[1]defenseDate,defenseDateEn}]
+defenseDate = (*\marg{字符串}*)
+defenseDateEn = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  答辩日期。
+\end{function}
+
+\begin{function}{info/classifiedLevel}
+\begin{bitsyntax}[emph={[1]classifiedLevel}]
+classifiedLevel = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  密级。
+\end{function}
+
+\begin{function}[added=2025-03-31]{info/工程硕博士专项}
+\begin{bitsyntax}[emph={[1]工程硕博士专项}]
+工程硕博士专项 = (*<(false)|true>*)
+\end{bitsyntax}
+
+  学生类型:工程硕博士专项。
+
+  不勾选时默认不显示整个内容,可通过 \hyperref[doc/function//cover/showSpecialTypeBox]{|cover/showSpecialTypeBox| 选项}设置。
+\end{function}
+
+\begin{function}[added=2024-03-22]{info/crossResearch}
+\begin{bitsyntax}[emph={[1]crossResearch}]
+crossResearch = (*<(false)|true>*)
+\end{bitsyntax}
+
+  学生类型:交叉研究方向。
+
+  不勾选时默认不显示整个内容,可通过 \hyperref[doc/function//cover/showSpecialTypeBox]{|cover/showSpecialTypeBox| 选项}设置。
+
+  \textit{此选项一般不需要用户自行修改。}
+\end{function}
+
+\begin{function}[added=2024-03-22]{info/internationalStudentUGP}
+\begin{bitsyntax}[emph={[1]internationalStudentUGP}]
+internationalStudentUGP = (*<(false)|true>*)
+\end{bitsyntax}
+
+  学生类型:政府项目留学生。
+
+  不勾选时默认不显示整个内容,可通过 \hyperref[doc/function//cover/showSpecialTypeBox]{|cover/showSpecialTypeBox| 选项}设置。
+
+  \textit{此选项一般不需要用户自行修改。}
+\end{function}
+
+\subsubsection{样式信息}
+
+\begin{function}{style}
+\begin{bitsyntax}[emph={[1]style}]
+style = (*\marg{键值列表}*)
+style/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于调整样式。具体内容见下。
+\end{function}
+
+\begin{function}{style/head}
+\begin{bitsyntax}[emph={[1]head}]
+head = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  \textit{此选项默认值会按论文类型自动设置,一般已满足要求,不需要用户自行修改。}
+
+  页眉文字。
+
+  外文翻译模板(paper-translation)的默认值含“外文翻译”几字,有的学院要求去掉,这时请自行修改。
+\end{function}
+
+\begin{function}{style/headline}
+\begin{bitsyntax}[emph={[1]headline}]
+headline = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  封面校徽下方、论文标题上方的大标题。只适用于本科生毕业设计(论文)及其衍生物,不适用于硕士、博士学位论文。
+\end{function}
+
+\begin{function}{style/bibliographyIndent}
+\begin{bitsyntax}[emph={[1]bibliographyIndent}]
+bibliographyIndent = (*(true)|false*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  控制参考文献的每一项中,首行之后的行是否缩进。
+
+  之所以提供这个选项,
+  是因为在(2023年以前的本科生) Word 模板中参考文献的格式(错误地)
+  要求首行之后的行不缩进。
+  但是国标要求首行之后的行缩进。
+\end{function}
+
+\begin{function}[added=2023-03-19]{style/pageVerticalAlign}
+\begin{bitsyntax}[emph={[1]pageVerticalAlign}]
+pageVerticalAlign = (*(top)|scattered*)
+\end{bitsyntax}
+设置页面垂直方向的对齐方式。
+\begin{optdesc}
+  \item[top] 顶部对齐。\textit{默认}。页面中的内容保持它的自然高度,
+  每一页的页面底部用空白填满。
+  \item[scattered] 分散对齐。页面高度均匀地填满,使每一页的底部直接对齐。
+\end{optdesc}
+\end{function}
+
+\begin{function}[added=2024-07-09]{style/non-CJK-font-in-headings}
+\begin{bitsyntax}[emph={[1]non-CJK-font-in-headings}]
+non-CJK-font-in-headings = (*(serif)|sans*)
+\end{bitsyntax}
+
+\textit{对于中文模板,此选项一般不需要用户自行修改。}
+
+设置标题中拉丁字母、数字等非汉字部分的字体。
+大致 |serif| 对应 Times New Roman,|sans| 对应 Arial。
+默认为 |serif|。
+
+“标题”除了包含正文标题,还包含摘要页的论文题目、摘要标题,目录、参考文献、附录的标题等。
+
+学校官方规范中,目前描述较模糊;若从正文、封面类推,应为 Times New Roman。
+2024年学校(本科)教务部老师回答其它问题时提到:“所有毕业设计过程文件及论文涉及到的英文和数字用 Times New Roman。”
+当年实际提交时,用 Times New Roman、Arial 甚至字偶间距不正常的黑体都能通过。
+总之,“这不是重点,美观就行”。
+
+若设为 |sans|,请同时参考 |misc/arialFont| 选项。
+\end{function}
+
+\begin{function}[added=2023-03-29]{style/mathFont}
+\begin{bitsyntax}[emph={[1]mathFont}]
+mathFont = (*(cm)|asana|fira|...|xits|none*)
+\end{bitsyntax}
+设置数学字体,具体配置见表~\ref{tab:math-font}。除 |Computer Modern| (默认)字体以外,均使用 \pkg{unicode-math} 宏包调用字体。
+
+\end{function}
+
+\begin{function}[added=2023-05-25]{style/windowsSimSunFakeBold}
+\begin{bitsyntax}[emph={[1]windowsSimSunFakeBold}]
+windowsSimSunFakeBold = (*(false)|true*)
+\end{bitsyntax}
+
+在 Windows 平台下,由于中易宋体没有粗体字重;
+ctex 会默认选择较为美观的黑体代替粗体宋体。
+开启此选项可以开启伪粗体的渲染,从而渲染宋体伪粗体。
+
+\end{function}
+
+\begin{table}[ht]
+\begin{tabular}{cc|cc}
+\toprule
+\textbf{选项名称}                          & \textbf{字体名称}                                & \textbf{选项名称}                  & \textbf{字体名称}                                    \\ \midrule
+cm                                     & Computer Modern                             & \cellcolor[HTML]{EFEFEF}newcm  & \cellcolor[HTML]{EFEFEF}New Computer Modern Math \\
+\cellcolor[HTML]{EFEFEF}asana          & \cellcolor[HTML]{EFEFEF}Asana Math           & stix                           & STIX Math                                        \\
+concrete                               & Concrete Math                                & \cellcolor[HTML]{EFEFEF}stix2  & \cellcolor[HTML]{EFEFEF}STIX Two Math            \\
+\cellcolor[HTML]{EFEFEF}erewhon        & \cellcolor[HTML]{EFEFEF}Erewhon Math         & xcharter                       & XCharter Math                                    \\
+euler                                  & Euler Math                                   & \cellcolor[HTML]{EFEFEF}xits   & \cellcolor[HTML]{EFEFEF}XITS Math                \\
+\cellcolor[HTML]{EFEFEF}fira           & \cellcolor[HTML]{EFEFEF}Fira Math            & bonum                          & TeX Gyre Bonum Math                              \\
+garamond                               & Garamond Math                                & \cellcolor[HTML]{EFEFEF}dejavu & \cellcolor[HTML]{EFEFEF}TeX Gyre DejaVu Math     \\
+\cellcolor[HTML]{EFEFEF}gfsneohellenic & \cellcolor[HTML]{EFEFEF}GFS Neohellenic Math & pagella                        & TeX Gyre Pagella Math                            \\
+kp                                     & KpMath                                       & \cellcolor[HTML]{EFEFEF}schola & \cellcolor[HTML]{EFEFEF}TeX Gyre Schola Math     \\
+\cellcolor[HTML]{EFEFEF}libertinus     & \cellcolor[HTML]{EFEFEF}Libertinus Math      & termes                         & TeX Gyre Termes Math                             \\
+lm                                     & Latin Modern Math                            &                                &                                                  \\ \bottomrule
+\end{tabular}
+\caption{数学字体配置选项与名称说明}
+\label{tab:math-font}
+\end{table}
+
+\begin{function}[added=2023-03-29]{style/unicodeMathOptions}
+\begin{bitsyntax}[emph={[1]unicodeMathOptions}]
+unicodeMathOptions = (*({})|任意选项*)
+\end{bitsyntax}
+
+传递给 \pkg{unicode-math} 的选项。
+
+\end{function}
+
+\begin{function}[added=2023-06-22]{style/hyphen}
+\begin{bitsyntax}[emph={[1]hyphen}]
+hyphen = (*(true)|false*)
+\end{bitsyntax}
+
+是否使用 hyphen 进行英文换行。如果关闭的话,
+英文单词将被拉伸从而保证文本的左右对齐。
+
+\end{function}
+
+\begin{function}[added=2023-10-22,updated=2024-04-22]{style/mathAboveDisplaySkip,style/mathBelowDisplaySkip}
+\begin{bitsyntax}[emph={[1]mathBelowDisplaySkip,mathAboveDisplaySkip}]
+mathBelowDisplaySkip = (*(10pt)|任意长度*)
+mathAboveDisplaySkip = (*(10pt)|任意长度*)
+\end{bitsyntax}
+
+定义数学公式环境(如 \verb|\begin{equation}| )到上下段落间的距离。
+
+默认值设置为 10pt——一个比较美观的宽度。
+如果你更习惯 Word 文档的公式上下文距离,可以设置为一个更小的值(比如 3pt),反之亦然。
+
+\textit{请保证源码中的公式的环境(如}\verb|\begin{equation}|
+  \textit{)与上一段落不要有空行。否则,公式和上文段落之间会有额外的空白。}
+
+\end{function}
+
+\begin{variable}[added=2024-04-04]{style/betterTimesNewRoman}
+\begin{bitsyntax}[emph={[1]betterTimesNewRoman}]
+betterTimesNewRoman = (*(false)|true*)
+\end{bitsyntax}
+
+使用 TeX Gyre Termes 代替 Times New Roman 作为主要字体。
+这个选项适用于以下情况:
+\begin{enumerate}
+  \item  不想或无法在系统中安装 Times New Roman。
+  \item 在 Linux/macOS 下遇到 `\textsc` 无法正常显示的问题。
+\end{enumerate}
+
+由于该字体与 Times New Roman 极为相似,因此不用担心不符合学校规定。
+\end{variable}
+
+\subsubsection{目录选项}
+
+\begin{function}{TOC}
+\begin{bitsyntax}[emph={[1]TOC}]
+TOC = (*\marg{键值列表}*)
+TOC/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于调整其他选项。具体内容见下:
+\end{function}
+
+\begin{function}[added=2024-07-09]{TOC/title}
+\begin{bitsyntax}[emph={[1]title}]
+title = (*目录 | Table~of~Contents | \meta{字符串}*)
+\end{bitsyntax}
+
+  目录的标题。默认会按论文类型自动设置为「目录」、「目\quad{}录」或“Table~of~Contents”。
+
+  有的学院要求改为“Contents”,这时请自行修改。
+\end{function}
+
+\begin{function}{TOC/abstract,TOC/abstractEn}
+\begin{bitsyntax}[emph={[1]abstract,abstractEn}]
+abstract = (*(true)|false*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  是否在目录中索引摘要。
+\end{function}
+
+\begin{function}[added=2024-07-09]{TOC/TOC}
+\begin{bitsyntax}[emph={[1]TOC}]
+TOC = (*(false)|true*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  是否在目录中索引目录本身。
+\end{function}
+
+\begin{function}{TOC/symbols}
+\begin{bitsyntax}[emph={[1]symbols}]
+abstract = (*(true)|false*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  是否在目录中索引主要符号对照表。
+\end{function}
+
+\subsubsection{附录选项}
+
+\begin{function}{appendices}
+\begin{bitsyntax}[emph={[1]appendices}]
+appendices = (*\marg{键值列表}*)
+appendices/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于调整其他选项。具体内容见下:
+\end{function}
+
+\begin{function}{appendices/chapterLevel}
+\begin{bitsyntax}[emph={[1]chapterLevel}]
+chapterLevel = (*<(false)|true>*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  开启后,可以使用以「chapter」为顶层的附录格式:
+
+\begin{latex}[emph={[1]appendices,chapter}]
+\begin{appendices}
+  \chapter{附录A 题目}
+     (*\meta{附录A 内容}*)
+  \chapter{附录B 题目}
+     (*\meta{附录B 内容}*)
+\end{appendices}
+\end{latex}
+
+  默认不开启,使用以「section」为顶层的附录格式。
+
+\end{function}
+
+\begin{function}{appendices/title}
+\begin{bitsyntax}[emph={[1]title}]
+title = (*\meta{字符串}*)
+\end{bitsyntax}
+
+  附录部分的总标题。默认会按论文类型自动设置为「附录」、「附\quad{}录」或“Appendices”。
+
+  仅在 |appendices/chapterLevel| 为 |false| 时有效。
+\end{function}
+
+\begin{function}{appendices/TOCTitle}
+\begin{bitsyntax}[emph={[1]TOCTitle}]
+TOCTitle = (*\meta{字符串}*)
+\end{bitsyntax}
+
+  附录在目录中的名称。默认会按论文类型自动设置为「附录」、「附\quad{}录」或“Appendices”。
+
+  仅在 |appendices/chapterLevel| 为 |false| 时有效。
+\end{function}
+
+\subsubsection{攻读学位期间发表论文与研究成果清单选项}
+
+\begin{function}{publications}
+\begin{bitsyntax}[emph={[1]publications}]
+publications = (*\marg{键值列表}*)
+publications/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于调整其他选项。具体内容见下:
+\end{function}
+
+\begin{function}{publications/sorting}
+\begin{bitsyntax}[emph={[1]sorting}]
+sorting = (*(true)|false*)
+\end{bitsyntax}
+
+学校要求「攻读学位期间发表论文与研究成果清单」中的论文按发表时间排序,
+但实际可能有别的需求,想自定义排序。
+该选项用于控制是否按照发表时间排序。
+
+您大致有以下三种选择。
+
+\begin{itemize}
+  \item 完全按发表时间排序——保留默认的 |true| 即可。(严格来说,这是按年份、姓名、标题排序。)
+
+  \item 完全手动指定顺序——修改为 |false|。这样会按照 |\addpubs| 或 |\addpub| 引用顺序来排。
+
+  \item 在发表时间顺序上微调,把个别的提到最前——保留默认的 |true|,同时在 |*.bib| 文件中给个别项加上 |sortkey| 字段。
+
+    具体例子可参考\href{https://bithesis.bitnp.net/faq/bib-sort.html#sortkey}{疑难杂症:怎么调整「攻读学位期间发表论文与研究成果清单」的顺序},详细解释可参考 \href{https://mirrors.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf}{biblatex-gb7714-2015 宏包手册(中文)}或 \href{https://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf}{biblatex 宏包手册(英文)}。
+\end{itemize}
+
+\textit{注意,如果编译后编号产生错误,
+请使用 |latexmk -c| 或手动清空缓存后再编译。}
+\end{function}
+
+\begin{function}{publications/omit}
+\begin{bitsyntax}[emph={[1]omit}]
+omit = (*(false)|true*)
+\end{bitsyntax}
+
+在盲审模式下,不渲染「攻读学位期间发表论文与研究成果清单」。
+
+\textit{一般不需要用户自行修改。}
+\end{function}
+
+\begin{function}[added=2023-02-18,updated=2024-04-23]{publications/maxbibnames}
+\begin{bitsyntax}[emph={[1]maxbibnames}]
+maxbibnames = (*(10)|\marg{正整数}*)
+\end{bitsyntax}
+
+影响「攻读学位期间发表论文与研究成果清单」中所有名称列表(author、editor 等)的阈值。
+如果名称列表超过了该阈值,即,它包含的姓名数量超过 \marg{正整数},
+那么就会根据 \kvopt{publications/minbibnames}{正整数} 选项的设置进行自动截断。
+
+\end{function}
+
+\begin{function}[added=2023-02-18,updated=2024-04-23]{publications/minbibnames}
+\begin{bitsyntax}[emph={[1]minbibnames}]
+minbibnames = (*(10)|\marg{正整数}*)
+\end{bitsyntax}
+
+影响「攻读学位期间发表论文与研究成果清单」中所有名称列表(author、editor 等)的限制值。
+如果某个列表包含的姓名数量超
+过 |maxbibnames| 个,那么就会自动截断至 |minbibnames| 个姓名。|minbibnames| 的值必须小于或
+等于 |maxbibnames|。
+
+对于用户来说,可以将 |minbibnames| 理解为「姓名列表的最小长度」。
+\textbf{例如,你在全部文献中最低排在第四位,那么可以将 |minbibnames| 和 |maxbibnames| 都设置为 4。}
+
+\end{function}
+
+\subsubsection{其他配置}
+
+\begin{function}{misc}
+\begin{bitsyntax}[emph={[1]misc}]
+misc = (*\marg{键值列表}*)
+misc/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于调整其他选项。具体内容见下:
+\end{function}
+
+\begin{function}{misc/arialFont}
+\begin{bitsyntax}[emph={[1]arialFont}]
+arialFont = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  早期(2022年及以前)\BIThesisTemplates{UTE}需要设置 Arial 字体。
+  在 Windows 和 macOS 中,该字体已经安装;在 Linux 中需要用户自行安装(如果你是 WSL 用户,可参照\href{https://bithesis.bitnp.net/faq/word-font.html}{疑难杂症:如何采用与 Word 相同的中文字体}直接使用 Windows 下的字体)。
+\end{function}
+
+\begin{function}[added=2023-04-22, updated=2024-05-13]{misc/tabularFontSize}
+\begin{bitsyntax}[emph={[1]tabularFontSize}]
+tabularFontSize = (*(5)|其他字号*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  此选项用于调整表格中的字号。默认值为 5 号字。
+
+  如果你需要临时调整表格中的字号,可以使用 |\BITSetup| 命令
+  在局部范围内覆盖此选项(注意使用大括号)。
+
+  此选项影响的“表格”具体包括标准 |tabular|、|tabular*| 环境,以及 |tabularx| 和 |longtable| 宏包提供的环境。
+
+\begin{latex}
+{
+ \BITSetup{ misc / tabularFontSize = -4}
+
+ \begin{table}[hbt]
+   \centering
+   \caption{水系聚氨酯分类} \label{tab:category}
+   \begin{tabular*}{0.9\textwidth}{@{\extracolsep{\fill}}cccc}
+   \toprule
+     类别			&水溶型		&胶体分散型		&乳液型 \\
+   \midrule
+     状态			&溶解$\sim$胶束	&分散		&白浊 \\
+     外观			&水溶型		&胶体分散型		&乳液型 \\
+     粒径$/\mu m$	&$<0.001$		&$0.001-0.1$		&$>0.1$ \\
+     重均分子量	&$1000\sim 10000$	&数千$\sim 20$万 &$>5000$ \\
+   \bottomrule
+   \end{tabular*}
+ \end{table}
+}
+\end{latex}
+\end{function}
+
+\begin{function}[added=2023-04-22,updated=2023-05-09]{misc/autoref/algo, misc/autoref/them, misc/autoref/lem,
+ misc/autoref/prop, misc/autoref/cor, misc/autoref/axi, misc/autoref/defn, misc/autoref/conj,
+ misc/autoref/exmp, misc/autoref/case, misc/autoref/rem,misc/autoref/fig,misc/autoref/tab,misc/autoref/equ}
+\begin{bitsyntax}[emph={[1]tabularFontSize}]
+autoref = {
+  algo = (*(算法)|\marg{字符串}*),
+  them = (*(定理)|\marg{字符串}*),
+  lem = (*(引理)|\marg{字符串}*),
+  prop = (*(命题)|\marg{字符串}*),
+  cor = (*(推论)|\marg{字符串}*),
+  axi = (*(公理)|\marg{字符串}*),
+  defn = (*(定义)|\marg{字符串}*),
+  conj = (*(猜想)|\marg{字符串}*),
+  exmp = (*(例)|\marg{字符串}*),
+  case = (*(情形)|\marg{字符串}*),
+  rem = (*(备注)|\marg{字符串}*),
+  fig = (*(图)|\marg{字符串}*),
+  tab = (*(表)|\marg{字符串}*),
+  equ = (*(式)|\marg{字符串}*),
+}
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  此选项用于定义 |autoref| 命令的输出格式。英文模板中,
+  默认值会自动变成相应的英文格式(如|Figure|)。
+
+  \textit{此选项的默认值实际上是受到 \autoref{sec:const} 中 |const/autoref/xxx| \\
+  (如 \cmd{misc/autoref/algo})选项的影响。}
+
+\end{function}
+
+\begin{function}[added=2023-04-29]{misc/hideLinks}
+\begin{bitsyntax}[emph={[1]hideLinks}]
+hideLinks = (*(true)|false*)
+\end{bitsyntax}
+
+ 此选项用于控制是否隐藏超链接的颜色。(只影响显示效果;即使不隐藏,打印效果也一样。)
+
+ 为了减少歧义,此选项默认值为 |true|,即隐藏超链接的颜色。
+
+ \textit{请在导言区使用此选项。}
+
+ 相关功能由 \pkg{hyperref} 宏包支持,可参阅其手册进一步用 \cs{hypersetup} 定制。
+
+\end{function}
+
+\begin{function}[added=2024-04-09]{misc/floatSeparation}
+\begin{bitsyntax}[emph={[1]floatSeparation}]
+floatSeparation = (*(0)|\marg{实数}*)
+\end{bitsyntax}
+
+ \textit{此选项一般不需要用户自行修改。}
+
+ 此选项用于调整浮动体与正文之间的距离,距离单位为行距,允许小数与负数。默认值为0倍行距,即不调整。
+
+ 默认值已考虑本科生毕业设计对空行的要求。
+
+ \textit{请在导言区使用此选项。}
+
+\end{function}
+
+\begin{function}[added=2024-05-20]{misc/algorithmSeparation}
+\begin{bitsyntax}[emph={[1]algorithmSeparation}]
+algorithmSeparation = (*(12pt plus 4pt minus 4pt)|\marg{长度}*)
+\end{bitsyntax}
+
+ \textit{此选项一般不需要用户自行修改。}
+
+ 此选项用于调整算法与正文之间的距离。距离用\href{https://www.overleaf.com/learn/latex/Lengths_in_LaTeX}{长度}表示,例如 |0.5em| 大致是半个字高。默认值更复杂一些,它表示以12点为基准,允许上下浮动4点。
+
+ (学校既无明文规定,也无实例。)
+
+ 此选项目前只支持 |algorithm2e| 宏包的 |algorithm| 环境。
+
+ \textit{请在导言区使用此选项。}
+
+\end{function}
+
+\begin{function}[added=2024-04-30, updated=2024-05-25]{misc/tabularRowSeparation}
+\begin{bitsyntax}[emph={[1]tabularRowSeparation}]
+tabularRowSeparation = (*(1)|\marg{正实数}*)
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  此选项用于调整表格各行之间的距离,允许小数。默认值为1,相当于不调整。
+
+  学校没有明文规定,不过设为1.25更接近本科Word模板实作,设为1.6更接近硕博Word模板实作。
+
+  此选项影响的“表格”具体包括标准 |tabular|、|tabular*| 环境,以及 |tabularx| 和 |longtable| 宏包提供的环境。
+
+  \textit{请在导言区使用此选项。}
+
+\end{function}
+
+\subsubsection{常量名称覆盖}
+\label{sec:const}
+
+在\BIThesis{} 中,模板定义了很多常量字符串,如页眉文字、章节名称等。
+你可以通过修改这里的选项来覆盖这些常量。
+
+\begin{function}{const}
+\begin{bitsyntax}[emph={[1]const}]
+const = (*\marg{键值列表}*)
+const/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于调整其他选项。具体内容见下:
+\end{function}
+
+\begin{variable}[added=2023-04-22,updated=2023-05-09]{const/autoref/algo,const/autoref/them,
+const/autoref/lem,const/autoref/prop,const/autoref/cor,const/autoref/axi,
+const/autoref/defn,const/autoref/conj,const/autoref/exmp,
+const/autoref/case,const/autoref/rem,
+const/autoref/fig,const/autoref/tab,const/autoref/equ}
+\begin{bitsyntax}[emph={[1]tabularFontSize}]
+autoref = {
+  algo = (*(算法)|\marg{字符串}*),
+  them = (*(定理)|\marg{字符串}*),
+  lem = (*(引理)|\marg{字符串}*),
+  prop = (*(命题)|\marg{字符串}*),
+  cor = (*(推论)|\marg{字符串}*),
+  axi = (*(公理)|\marg{字符串}*),
+  defn = (*(定义)|\marg{字符串}*),
+  conj = (*(猜想)|\marg{字符串}*),
+  exmp = (*(例)|\marg{字符串}*),
+  case = (*(情形)|\marg{字符串}*),
+  rem = (*(备注)|\marg{字符串}*),
+  fig = (*(图)|\marg{字符串}*),
+  tab = (*(表)|\marg{字符串}*),
+  equ = (*(式)|\marg{字符串}*),
+}
+\end{bitsyntax}
+
+  \textit{此选项一般不需要用户自行修改。}
+
+  此选项用于定义 |autoref| 命令的输出格式。英文模板中,
+  默认值会自动变成相应的英文格式(如|Figure|)。
+
+\end{variable}
+
+\begin{variable}[added=2023-05-09]{const/style/substituteSymbol}
+\begin{bitsyntax}[emph={[1]substituteSymbol}]
+substituteSymbol = (*(*)|\marg{字符串}*),
+\end{bitsyntax}
+
+  盲审模式下用于替换个人信息的替换符号。
+\end{variable}
+
+\begin{variable}[added=2023-06-11, updated=2024-07-09]{const/info/degree,const/info/major}
+\begin{bitsyntax}[emph={[1]degree,major}]
+  info = {
+    degree = (*申请学位 | 申请类别 |\marg{字符串}*),
+    major = (*专业 | 学科专业 | 一级学科 | 学位领域 | Degree | \marg{字符串}*),
+  },
+\end{bitsyntax}
+
+  用于定义封面中个人信息条目的各个常量值。默认按论文类型自动设置。
+\end{variable}
+
+\begin{variable}[added=2024-07-09]{const/heading/acknowledgements}
+\begin{bitsyntax}[emph={[1]acknowledgements}]
+  heading = {
+    acknowledgements = (*致谢 | Acknowledgements | \marg{字符串}*),
+  },
+\end{bitsyntax}
+
+  用于定义一些固定章节的标题。默认按论文类型自动设置。
+\end{variable}
+
+\section{正文编写}
+
+请注意,请在\env{document} 之内使用以下命令 。
+
+\subsection{封面及基本信息}
+
+\begin{function}[updated=2025-04-15]{\MakeCover}
+
+  \textit{封面内容会根据模板选项(具体参见节
+    \ref{sec:template-options})中\meta{type=xxx}的值而变化。}
+  \textit{封面的下划线效果会受到参数设置中封面选项
+     (具体见节\ref{sec:cover})的影响。}
+
+  绘制封面。
+
+  在默认配置下,封面中的下划线会自动计算最大宽度。
+  此时,如果用户需要换行,可以通过「|\\|」控制换行。
+
+  当关闭自动计算下划线宽度后,
+  可以通过
+
+  \meta{labelMaxWidth=xxx}
+
+  与
+
+  \meta{valueMaxWidth=xxx}
+
+  来指定下划线的宽度。一般情况下,我们不建议您这样做。
+
+  默认加入PDF书签。如需隐去,可设置 |\MakeCover[bookmarked = false]|。
+\end{function}
+
+\begin{function}{\SecretInfo{}[]}
+  \begin{itemize}
+    \item 参数一为一般模式下显示的信息。
+    \item 参数二(可选)为盲审模式下显示的信息。
+  \end{itemize}
+
+  用于在盲审模式下隐藏个人隐私信息。
+
+  如果传入第二个参数,则会用等量的替换符号(一般是|*|)替换内容。
+  否则,将使用第二个参数替换内容。
+\end{function}
+
+\begin{function}[updated=2025-04-15]{\MakePaperBack}
+
+  绘制书脊,用于\BIThesisTemplates{GT}。
+
+  默认加入PDF书签。如需隐去,可设置 |\MakePaperBack[bookmarked = false]|。
+\end{function}
+
+\begin{function}[updated=2025-04-15]{\MakeTitle}
+
+  绘制中英文信息页,用于\BIThesisTemplates{GT}。
+
+  默认两页均加入PDF书签。如需共同隐去,可设置 |\MakeTitle[bookmarked = false]|。
+\end{function}
+
+\begin{function}[updated=2025-04-15]{\MakeOriginality}
+
+  绘制原创性声明、关于使用授权的声明(本科)或研究成果声明、关于学位论文使用权的说明(硕博)。
+
+  默认加入PDF书签。如需隐去,可设置 |\MakeOriginality[bookmarked = false]|。
+\end{function}
+
+\subsection{前置部分}
+
+\begin{function}{\frontmatter}
+
+  声明前置部分开始。
+
+  此时页码会使用罗马数字进行计数。
+\end{function}
+
+\begin{function}[updated=2023-02-17, label=env.abstract]{abstract}
+\begin{bitsyntax}[emph={[1]abstract}]
+\begin{abstract}
+   (*\meta{中文摘要}*)
+\end{abstract}
+\end{bitsyntax}
+\end{function}
+
+\begin{function}[updated=2023-02-17, label=env.abstractEn]{abstractEn}
+\begin{bitsyntax}[emph={[1]abstractEn}]
+\begin{abstractEn}
+   (*\meta{英文摘要}*)
+\end{abstractEn}
+\end{bitsyntax}
+
+ 摘要。
+
+ 摘要的最后会显示关键词,关键词通过 \cs{BITSetup} 录入。
+
+\end{function}
+
+\begin{function}{\MakeTOC,\listoffigures,\listoftables}
+
+ 绘制目录、插图目录与表格目录。
+\end{function}
+
+\begin{function}{symbols}
+\begin{bitsyntax}[emph={[1]symbols}]
+\begin{symbols}
+   \item[BIT] 北京理工大学的英文缩写
+   \item[\LaTeX] 一个很棒的排版系统
+\end{symbols}
+\end{bitsyntax}
+
+ 主要符号对照表。
+
+ 主要符号对照表类似于一个列表环境,用以添加文章中使用的关键符号与缩略词。
+
+\end{function}
+
+\begin{function}{addTOC}
+\begin{bitsyntax}[emph={[1]addTOC}]
+addTOC = (*<(true)|false>*)
+\end{bitsyntax}
+
+ 主要符号对照表的可选参数。
+
+ 添加主要符号对照表到目录,默认开启。
+\end{function}
+
+\subsection{正文部分}
+
+\begin{function}{\mainmatter}
+
+  声明正文部分开始。
+
+  此时页码会使用阿拉伯数字进行计数。
+\end{function}
+
+\subsubsection{定理类环境}
+\paragraph{默认格式}
+
+\begin{function}[updated=2023-03-05]{algo,them,lem,prop,cor,axi,defn,conj,exmp,case,rem}
+\begin{bitsyntax}[emph={[2]proof}]
+\begin{them}[留数定理]
+  (*\meta{定理内容}*)
+\end{them}
+
+\begin{proof}(*\oarg{小标题}*)
+  (*\meta{证明过程}*)
+\end{proof}
+\end{bitsyntax}
+
+  一系列预定义的数学环境。具体含义见表~\ref{tab:theorem}。
+
+  其中提供了算法环境 |algo|,但模板也适配了一些更专业的宏包,请参考\href{https://bithesis.bitnp.net/faq/algorithm.html}{疑难杂症:如何排版算法(伪代码)}。
+\end{function}
+
+\begin{table}[p]
+\caption{预定义的数学环境}
+\centering
+\subfloat[][plain样式]{
+  \begin{tabular}{@{}ccccccc@{}}
+  \toprule
+  \textbf{名称} & algo & them & lem & prop & cor & axi \\ \midrule
+  \textbf{全称} & algorithm & theorem & lemma & proposition & corollary & axiom \\
+  \textbf{含义} & 算法        & 定理      & 引理    & 命题          & 推论        & 公理    \\
+  \textbf{样式} & \multicolumn{6}{c}{\textbf{定理2.1.} \textit{定理内容……}}       \\ \bottomrule
+  \end{tabular}
+}
+
+\subfloat[][definition样式]{
+  \begin{tabular}{@{}ccccc@{}}
+  \toprule
+  \textbf{名称} & defn & conj & exmp & case \\ \midrule
+  \textbf{全称} & definition & conjecture & example & case \\
+  \textbf{含义} & 定义        & 猜想      & 例    & 情形          \\
+  \textbf{样式} & \multicolumn{4}{c}{\textbf{定义2.1.} 定义内容……}       \\ \bottomrule
+  \end{tabular}
+}
+
+\subfloat[][remark样式]{
+  \begin{tabular}{@{}cc@{}}
+  \toprule
+  \textbf{名称} & rem \\ \midrule
+  \textbf{全称} & remark \\ \midrule
+  \textbf{含义} & 注        \\
+  \textbf{样式} & \multicolumn{1}{c}{\textit{注1.} 内容……}       \\ \bottomrule
+  \end{tabular}
+}
+
+\subfloat[][proof样式]{
+  \begin{tabular}{@{}cc@{}}
+  \toprule
+  \textbf{名称} & proof \\ \midrule
+  \textbf{全称} & proof \\
+  \textbf{含义} & 证明        \\
+  \textbf{样式} & \multicolumn{1}{c}{\textit{证明. } 内容…… 「证毕符号」}       \\ \bottomrule
+  \end{tabular}
+}
+\label{tab:theorem}
+\end{table}
+
+\subsection{后置部分}
+
+\begin{function}{\backmatter}
+
+  声明后置部分开始。
+
+  会取消章节标题的的编号。
+
+\end{function}
+
+\begin{function}[updated=2025-04-15, label=env.conclusion]{conclusion}
+\begin{bitsyntax}[emph={[1]conclusion}]
+\begin{conclusion}
+   (*\meta{结论}*)
+\end{conclusion}
+\end{bitsyntax}
+
+  标题默认按论文类型自动设置。如需更改,可如下设置 |title|。
+
+\begin{latex}[emph={[1]conclusion}]
+\begin{conclusion}[title = 结论与 $\lim_{t \to +\infty}$]
+  结论作为学位论文正文的最后部分单独排写,但不加章号。
+\end{conclusion}
+\end{latex}
+
+\end{function}
+
+\begin{function}[label=env.bibprint]{bibprint}
+\begin{bitsyntax}[emph={[1]bibprint}]
+\begin{bibprint}
+   \printbibliography[heading=none]
+\end{bibprint}
+\end{bitsyntax}
+
+  打印参考文献。
+
+  在使用\BIThesisTemplates{GT}时需要注意,
+  由于研究生学位论文也要求使用国标形式输出「攻读学位期间发表论文与研究成果清单」,
+  因此 bithesis 同样使用 bibtex 管理其文献。
+  而由于 biblatex 的排序是全局的,
+  因此需要使用 \meta{category} 功能来分割出两个不同的类别。
+
+  因此,请使用下列语句输出参考文献:
+
+\begin{latex}[emph={[1]bibprint}]
+\begin{bibprint}
+  \printbibliography[heading=none,notcategory=mypub,resetnumbers=true]
+\end{bibprint}
+\end{latex}
+\end{function}
+
+\begin{function}[label=env.appendices]{appendices}
+\begin{bitsyntax}[emph={[1]appendices}]
+\begin{appendices}
+  \section{附录A题目}
+     (*\meta{附录A内容}*)
+  \section{附录B题目}
+     (*\meta{附录B内容}*)
+\end{appendices}
+\end{bitsyntax}
+
+ 附录。
+\end{function}
+
+\begin{function}[label=env.publications]{publications}
+\begin{bitsyntax}[emph={[1]publications,addpubs,printbibliography}]
+文献较少的时候。
+\begin{publications}
+  \addpubs{\meta{引用内容的key},\meta{引用内容的key2}}
+
+  \printbibliography[heading=none,category=mypub,resetnumbers=true]
+\end{publications}
+
+文献较多,需要分类的时候。
+\begin{publications}
+  \addpubs{\meta{引用内容的key},\meta{引用内容的key2}}
+  \pubsection{文章}
+
+  \printbibliography[heading=none,type=article,category=mypub,resetnumbers=true]{}
+
+  \pubsection{一些书}
+
+  \printbibliography[heading=none,type=book,category=mypub,resetnumbers=true,notkeyword=dummy]{}
+
+  \pubsection{另一些书}
+
+  \printbibliography[heading=none,type=book,category=mypub,keyword=dummy,resetnumbers=true]{}
+\end{publications}
+\end{bitsyntax}
+
+  攻读学位期间发表论文与研究成果清单。
+\end{function}
+
+\begin{function}[added=2022-10-23]{\addpubs,\addpub}
+\begin{bitsyntax}[emph={[1]publications,addpubs,addpub}]
+\begin{publications}
+  \addpub{\meta{单条引用内容的key}}
+  \addpubs{\meta{引用内容的key},\meta{引用内容的key2}}
+\end{publications}
+\end{bitsyntax}
+
+\textbf{请注意,如果你的参考文献同时出现在「攻读学位期间发表论文与研究成果清单」和「参考文献」中,
+请将条目分别添加进入两个 |.bib| 文件中,并修改它们的key以避免重名;切勿重复使用。}
+
+\textit{在「攻读学位期间发表论文与研究成果清单」环境中使用。}
+用于添加个人成果,添加过的成果可以通过 |printbibliography| 打印。
+\end{function}
+
+\begin{function}[added=2022-10-23, updated=2025-01-02]{\pubsection}
+\begin{bitsyntax}[emph={[1]publications,pubsection,printbibliography}]
+\begin{publications}
+  \addpubs{\meta{引用内容的key},\meta{引用内容的key2}}
+
+  \pubsection{分类一}
+  \printbibliography[heading=none,category=mypub,type=book,resetnumbers=true]
+
+  \pubsection{分类二}
+  \printbibliography[heading=none,category=mypub,type=article,resetnumbers=true]
+\end{publications}
+\end{bitsyntax}
+
+\textit{在「攻读学位期间发表论文与研究成果清单」环境中使用。}
+用于添加分类的目录。
+
+|\pubsection| 会编号;若不想编号,请改用 |\pubsection*|。
+\end{function}
+
+\begin{function}[added=2022-10-23]{\Author,\AuthorEn}
+\begin{bitsyntax}[emph={[1]Author}]
+\Author[<n(表示第几作者,默认为 1)>][<覆盖普通模式下内容>][<覆盖盲审模式下内容>]
+\end{bitsyntax}
+
+\textit{通常在「攻读学位期间发表论文与研究成果清单」的 |.bib| 文件中使用。}
+\begin{itemize}
+  \item 普通模式:
+
+  \begin{itemize}
+    \item 默认输出作者姓名。
+
+    (作者姓名由用户在 |info/author| 中配置。)
+
+    \item 如果指定了覆盖普通模式下内容,则输出覆盖内容。
+  \end{itemize}
+
+  \item 盲审模式:
+
+  \begin{itemize}
+    \item 默认输出「第n作者」。
+
+    (具体情况:|\Author| 输出中文,如|第一作者|;|\AuthorEn| 输出英文,如 |First Author|。)
+
+    \item 如果指定了覆盖盲审模式下内容,则输出覆盖内容。
+  \end{itemize}
+\end{itemize}
+
+使用示例:
+\begin{itemize}
+  \item |\Author| 输出作者姓名(普通)或|第n作者|(盲审),具体编号取决于 |.bib| 文件中 |author+an| 字段标注的位置。
+  \item |\Author[][][第一发明人]| 输出作者姓名(普通)或|第一发明人|(盲审)。
+  \item |\AuthorEn[2]| 输出作者姓名(普通)或|Second Author|(盲审)。
+  \item |\Author[][][共同二作]| 输出作者姓名(普通)或|共同二作|(盲审)。
+\end{itemize}
+\end{function}
+
+\begin{function}[label=env.acknowledgements]{acknowledgements}
+\begin{bitsyntax}[emph={[1]acknowledgements}]
+\begin{acknowledgements}
+  (*\meta{致谢内容}*)
+\end{acknowledgements}
+\end{bitsyntax}
+
+  致谢。
+\end{function}
+
+\begin{function}[label=env.resume]{resume}
+\begin{bitsyntax}[emph={[1]resume}]
+\begin{resume}
+  (*\meta{个人简介内容}*)
+\end{resume}
+\end{bitsyntax}
+
+  个人简介。
+\end{function}
+
+\section{常见问题和疑难解答}
+
+请参考\href{https://bithesis.bitnp.net/faq/}{在线文档的「疑难杂症」部分},此处仅略作枚举。
+
+\input{assets/faq.tex}
+
+\section{\cls{bitreport.cls} 使用与配置}
+\label{sec:bitreport}
+
+推荐使用\BIThesisRelease (开箱即用)。
+
+\BIThesisRelease 提供了多种最常用的模板,你可以在
+\href{https://github.com/BITNP/BIThesis/releases}{主项目的 Releases}
+中找到它们。
+
+使用此文档类的模板有:
+\begin{itemize}
+ \item \BIThesisTemplates{UP}
+ \item \BIThesisTemplates{LR}
+\end{itemize}
+
+\subsection{最小用例}
+
+\begin{latex}
+\documentclass[]{bitreport}
+\BITSetup{
+  info = {
+    author = FKY,
+    ......
+  }
+}
+\begin{document}
+\end{document}
+\end{latex}
+
+\subsection{模板选项}
+
+所谓“模板选项”,指需要在引入文档类的时候指定的选项:
+
+\begin{latex}[deletetexcs={\documentclass},morekeywords={\documentclass}]
+\documentclass(*\oarg{模板选项}*){bithesis}
+\end{latex}
+
+% l3doc 的 function 环境会按函数名称自动设置标签,默认与之前 bithesis.cls 的标签重复,故需手动指定标签
+
+\begin{function}[label=bitreport.type]{type}
+\begin{bitsyntax}[emph={[1]type}]
+type = (*<(common)|\mbox{undergraduate_proposal}>*)
+\end{bitsyntax}
+  选择论文类型,它们分别对应:
+  \begin{itemize}
+    \item \BIThesisTemplates{LR}
+    \item \BIThesisTemplates{UP}
+  \end{itemize}
+\end{function}
+
+\begin{function}[label=bitreport.ctex]{ctex}
+\begin{bitsyntax}[emph={[1]ctex}]
+ctex = (*传给 ctexbook 的模板选项*)
+\end{bitsyntax}
+
+  该选项用于传入模板选项至 ctexbook。
+
+  例如:想要同时修改 ctex 的字体参数和标点符号处理格式(更多选项请参考 ctex 手册)。
+
+\begin{latex}[emph={[1]type,common,ctex,fontset,fandol,punct,banjiao,bitreport}]
+\documentclass[type=common,ctex={fontset=fandol,punct=banjiao}]{bitreport}
+\end{latex}
+\end{function}
+
+\subsection{参数设置}
+
+\begin{function}[label=bitreport.BITSetup]{\BITSetup}
+\begin{bitsyntax}[emph={[1]BITSetup}]
+\BITSetup = {(*\oarg{键值对}*)}
+\end{bitsyntax}
+\end{function}
+
+本模板提供了一系列选项,可由您自行配置。载入文档类之后,以下所有选项均可通过统一的
+命令 \cs{BITSetup} 来设置。
+
+\cs{BITSetup} 的参数是一组由(英文)逗号隔开的选项列表,列表中的选项通常是 \meta{key} =
+\meta{value} 的形式。部分选项的 \meta{value} 可以省略。对于同一项,后面的设置将会覆盖前面的设
+置。在下文的说明中,将用粗体表示默认值。
+
+\cs{BITSetup} 采用 LATEX3 风格的键值设置,支持不同类型以及多种层次的选项设定。键值列
+表中,“=”左右的空格不影响设置;但需注意,参数列表中不可以出现空行。
+与模板选项相同,布尔型的参数可以省略 \meta{选项} = true 中的“= true”。
+另有一些选项包含子选项,如 cover 和 info 等。它们可以按如下两种等价方式来设定:
+
+\begin{latex}[morekeywords={\BITSetup},emph={[1]BITSetup,cover,date,info,title,author}]
+\BITSetup{
+  cover = {
+    date = xxxx年x月,
+  },
+  info = {
+    author = Feng Kaiyu,
+    title = A Report Title for Your Experiment,
+  }
+}
+\end{latex}
+
+或者
+
+\begin{latex}[morekeywords={\BITSetup},emph={[1]BITSetup,cover,date,info,title,author}]
+\BITSetup{
+  cover / date = xxxx年x月,
+  info / author = Feng Kaiyu,
+  info / title = A Thesis Title for Your Paper,
+}
+\end{latex}
+
+\subsubsection{封面选项}
+
+\begin{function}[label=bitreport.cover]{cover}
+\begin{bitsyntax}[emph={[1]cover}]
+cover = (*\marg{键值列表}*)
+cover/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+  该选项包含许多子项目,用于设置论文格式。具体内容见下。
+\end{function}
+
+\begin{function}[label=bitreport.cover/date]{cover/date}
+\begin{bitsyntax}[emph={[1]date}]
+date = (*\marg{任意字符串}*)
+\end{bitsyntax}
+
+  覆盖封面的日期。
+\end{function}
+
+\subsubsection{文档基本信息}
+
+\begin{function}[label=bitreport.info]{info}
+\begin{bitsyntax}[emph={[1]info}]
+info = (*\marg{键值列表}*)
+info/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于录入论文信息。具体内容见下。
+\end{function}
+
+\begin{function}[label=bitreport.info/title]{info/title}
+\begin{bitsyntax}[emph={[1]title}]
+title = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  论文或报告标题。
+\end{function}
+
+\begin{function}[label=bitreport.info/school]{info/school}
+\begin{bitsyntax}[emph={[1]school}]
+school = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  学院名称。
+\end{function}
+
+\begin{function}[label=bitreport.info/major]{info/major}
+\begin{bitsyntax}[emph={[1]major}]
+major = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  专业名称。
+\end{function}
+
+\begin{function}[label=bitreport.info/author]{info/author}
+\begin{bitsyntax}[emph={[1]author}]
+author = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  作者姓名。
+\end{function}
+
+\begin{function}[label=bitreport.info/studentId]{info/studentId}
+\begin{bitsyntax}[emph={[1]studentId}]
+studentId = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  学号。
+\end{function}
+
+\begin{function}[label=bitreport.info/supervisor]{info/supervisor}
+\begin{bitsyntax}[emph={[1]supervisor}]
+supervisor = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  指导教师。
+\end{function}
+
+\begin{function}[label=bitreport.info/externalSupervisor]{info/externalSupervisor}
+\begin{bitsyntax}[emph={[1]externalSupervisor}]
+externalSupervisor = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  校外指导教师。
+\end{function}
+
+\begin{function}[label=bitreport.info/class]{info/class}
+\begin{bitsyntax}[emph={[1]class}]
+class = (*\marg{字符串}*)
+\end{bitsyntax}
+
+  班级。
+\end{function}
+
+\subsubsection{其他选项}
+
+\begin{function}[label=bitreport.misc]{misc}
+\begin{bitsyntax}[emph={[1]misc}]
+misc = (*\marg{键值列表}*)
+misc/(*\meta{key}*) = (*\meta{value}*)
+\end{bitsyntax}
+
+ 该选项包含许多子项目,用于额外的控制。具体内容见下。
+\end{function}
+
+\begin{function}[label=bitreport.misc/reviewTable]{misc/reviewTable}
+\begin{bitsyntax}[emph={[1]reviewTable}]
+reviewTable = (*\marg{指向评审表的路径}*)
+\end{bitsyntax}
+
+  用于指定已经填写好的评审表 PDF 文件。
+\end{function}
+
+\section{致谢}
+\begin{itemize}
+  \item 感谢历届贡献者对 BIThesis 的悉心维护。
+  \item 感谢学校及老师们对 BIThesis 的支持。
+  \begin{itemize}
+    \item 感谢北京理工大学教务部、计算机学院对本科模板的支持。
+    \item 感谢北京理工大学研究生院对研究生模板的支持。
+  \end{itemize}
+  \item 感谢众多优秀的开源 $\LaTeX$ 项目,他们为后来者提供了前进的方向。
+  \begin{itemize}
+    \item \href{https://github.com/hushidong/biblatex-gb7714-2015}{biblatex-gb7714-2015}
+      提供了易用的国标引用格式以及细心指导。
+    \item \href{https://github.com/BIT-thesis/LaTeX-template}
+      {北京理工大学硕士(博士)学位论文 $\LaTeX$ 模板} 提供了
+      研究生模板样式的代码参考。
+    \item \href{https://github.com/stone-zeng/fduthesis}
+      {fduthesis(复旦大学学位论文 $\LaTeX$ 模板)} 提供了包编写的最佳实践。
+    \item \href{https://github.com/tuna/thuthesis}
+      {ThuThesis(清华大学学位论文 $\LaTeX$ 模板)} 提供了 dtx 文件的编写参考。
+  \end{itemize}
+\end{itemize}
+
+最后,感谢你的使用。
+
+\section{软件许可证}
+
+\begin{itemize}
+  \item 北京理工大学校徽校名图片的版权归北京理工大学所有。
+  \item \BIThesisLaTeX 宏包以及相关文档类使用 \LPPL 授权。
+  \item \BIThesisLaTeX 文档及其他附属文件通过 CC0-1.0 授权。
+\end{itemize}
+
+\Finale
+\endinput


Property changes on: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-graduate.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-graduate.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-graduate.pdf	2025-04-17 15:04:23 UTC (rev 74967)
+++ trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-graduate.pdf	2025-04-17 19:24:48 UTC (rev 74968)

Property changes on: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-graduate.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-undergraduate.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-undergraduate.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-undergraduate.pdf	2025-04-17 15:04:23 UTC (rev 74967)
+++ trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-undergraduate.pdf	2025-04-17 19:24:48 UTC (rev 74968)

Property changes on: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis-handbook-undergraduate.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/bithesis/bithesis.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/bithesis/bithesis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/bithesis/bithesis.dtx	2025-04-17 15:04:23 UTC (rev 74967)
+++ trunk/Master/texmf-dist/source/latex/bithesis/bithesis.dtx	2025-04-17 19:24:48 UTC (rev 74968)
@@ -21,10 +21,10 @@
 %<thesis>\ProvidesExplClass{bithesis}
 %<report>\ProvidesExplClass{bitreport}
 %<beamer>\ProvidesExplClass{bitbeamer}
-%<cls>{2025-04-08}{3.8.3}{BIT Thesis Templates}
+%<cls>  {2025-04-18} {3.8.4} {BIT Thesis Templates}
 %
 %<*driver>
-\ProvidesFile{bithesis.dtx}[2025/04/08 3.8.3 BIT Thesis Templates]
+\ProvidesFile{bithesis.dtx}[2025/04/18 v3.8.4 BIT Thesis Templates]
 \documentclass[letterpaper]{l3doc}
 \usepackage{dtx-style}
 
@@ -159,11 +159,10 @@
 %
 % \end{macro}
 %
-% \begin{macro}[added=2023-03-16]{\@@_get_const:N}
-% 获取标题、章节、表格、图形等的常量名称。
+% \begin{macro}[added=2023-03-16, updated=2025-04-04]{\@@_get_const:n} 获取标题、章节、表格、图形等的常量名称。
 % 会区别英文模式和中文模式。
 %   \begin{macrocode}
-\cs_new:Npn \@@_get_const:N #1 {
+\cs_new:Npn \@@_get_const:n #1 {
   \@@_if_thesis_english:TF {
     \use:c {c_@@_label_ #1 _en_tl}
   } {
@@ -279,19 +278,19 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\smallgap:}
+% \begin{macro}{\@@_smallgap:}
 % 标签文字之间的间距。
 %    \begin{macrocode}
-\cs_new:Npn \smallgap: {
+\cs_new:Npn \@@_smallgap: {
   \hspace{0.45ex}
 }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\boxempty:}
+% \begin{macro}{\@@_boxempty:}
 % 空的选框。
 %    \begin{macrocode}
-\cs_new:Npn \boxempty:
+\cs_new:Npn \@@_boxempty:
 {
   \makebox[1em][l]
   {
@@ -306,10 +305,10 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\boxcheck:}
+% \begin{macro}{\@@_boxcheck:}
 % 打了勾的选框。
 %    \begin{macrocode}
-\cs_new:Npn \boxcheck:
+\cs_new:Npn \@@_boxcheck:
 {
   \makebox[1em][l]
   {
@@ -324,10 +323,10 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\label_space:}
+% \begin{macro}{\@@_label_space:}
 % 标签与内容之间的空白间距。
 %    \begin{macrocode}
-\cs_new:Npn \label_space: {
+\cs_new:Npn \@@_label_space: {
   \@@_if_bachelor_thesis:T {
     \quad
   }
@@ -429,11 +428,11 @@
   {
     {originality} {研究成果声明},
     {originality_clause} {本人郑重声明:所提交的学位论文是我本人在指导教师的指导下独立完成的研究成果。文中所撰写内容符合以下学术规范(请勾选):
-\par \boxcheck:\hspace{0.5em} 论文综述遵循“适当引用”的规范,全部引用的内容不超过50\%。
-\par \boxcheck:\hspace{0.5em} 论文中的研究数据及结果不存在篡改、剽窃、抄袭、伪造等学术不端行为,并愿意承担因学术不端行为所带来的一切后果和法律责任。
-\par \boxcheck:\hspace{0.5em} 文中依法引用他人的成果,均已做出明确标注或得到许可。
-\par \boxcheck:\hspace{0.5em} 论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。
-\par \boxcheck:\hspace{0.5em} 与本人一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。
+\par \@@_boxcheck:\hspace{0.5em} 论文综述遵循“适当引用”的规范,全部引用的内容不超过50\%。
+\par \@@_boxcheck:\hspace{0.5em} 论文中的研究数据及结果不存在篡改、剽窃、抄袭、伪造等学术不端行为,并愿意承担因学术不端行为所带来的一切后果和法律责任。
+\par \@@_boxcheck:\hspace{0.5em} 文中依法引用他人的成果,均已做出明确标注或得到许可。
+\par \@@_boxcheck:\hspace{0.5em} 论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。
+\par \@@_boxcheck:\hspace{0.5em} 与本人一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。
 \par~特此声明。},
     {authorization} {关于学位论文使用权的说明},
     {authorization_clause} {本人完全了解北京理工大学有关保管、使用学位论文的规定,其中包括:
@@ -459,7 +458,7 @@
     {author} {作\quad 者\quad 姓\quad 名} {Candidate~Name},
     {school} {学\quad 院\quad 名\quad 称} {School~or~Department},
     {supervisor} {指\quad 导\quad 教\quad 师} {Faculty~Mentor},
-    {industrial_mentor} {行\smallgap: 业\smallgap: 合\smallgap: 作\smallgap: 导\smallgap: 师} {Industry~Collaboration~Mentor},
+    {industrial_mentor} {行\@@_smallgap: 业\@@_smallgap: 合\@@_smallgap: 作\@@_smallgap: 导\@@_smallgap: 师} {Industry~Collaboration~Mentor},
     {chairman} {答辩委员会主席} {Chair,~Thesis~Committee},
     % degree、major 的中文与 degreeType 有关,此处以 academic 为准,其余情况通过 \c_@@_auto_tl 处理
     % 英文倒是无关。
@@ -466,10 +465,10 @@
     {degree} {申\quad 请\quad 学\quad 位} {Degree~Applied},
     {major} {一\quad 级\quad 学\quad 科} {Major},
     {institute}
-      {学\smallgap: 位\smallgap: 授\smallgap: 予\smallgap: 单\smallgap: 位}
+      {学\@@_smallgap: 位\@@_smallgap: 授\@@_smallgap: 予\@@_smallgap: 单\@@_smallgap: 位}
       {Degree~by},
     {defense_date}
-      {论\smallgap: 文\smallgap: 答\smallgap: 辩\smallgap: 日\smallgap: 期}
+      {论\@@_smallgap: 文\@@_smallgap: 答\@@_smallgap: 辩\@@_smallgap: 日\@@_smallgap: 期}
       {The~Date~of~Defence},
   } {\@@_define_label_by_thesis_type:nnnn {graduate} #1}
 %    \end{macrocode}
@@ -491,14 +490,14 @@
     {teacher} {任课教师} {Teacher},
     {semester} {上课学期} {Semester},
     {keywords} {关键词:} {Key~Words:~},
-    {toc} {目\label_space: 录} {Table~of~Contents},
-    {abstract} {摘\label_space: 要} {Abstract},
-    {conclusion} {结\label_space: 论} {Conclusions},
+    {toc} {目\@@_label_space: 录} {Table~of~Contents},
+    {abstract} {摘\@@_label_space: 要} {Abstract},
+    {conclusion} {结\@@_label_space: 论} {Conclusions},
     % 附录部分的总标题
-    {appendix} {附\label_space: 录} {Appendices},
-    {ack} {致\label_space: 谢} {Acknowledgements},
-    {figure} {插\label_space: 图} {Illustrations},
-    {table} {表\label_space: 格} {Tables},
+    {appendix} {附\@@_label_space: 录} {Appendices},
+    {ack} {致\@@_label_space: 谢} {Acknowledgements},
+    {figure} {插\@@_label_space: 图} {Illustrations},
+    {table} {表\@@_label_space: 格} {Tables},
     % 附录下各部分编号的前缀
     {appendix_prefix} {附录} {Appendix},
     {reference} {参考文献} {References},
@@ -547,8 +546,9 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \subsubsection{l3keys 接口键值对定义}
+% \subsubsection{BITSetup l3keys 接口键值对定义}
 %
+% \begin{macro}{\c_@@_auto_tl}
 % 定义 |\c_@@_auto_tl|
 % 选项设为它时,表示智能默认值,稍后由 |\@@_resolve_auto_values:| 根据其它信息自动填充。
 % 参考 https://typst.app/docs/reference/foundations/auto/ 的设计。
@@ -555,6 +555,7 @@
 %    \begin{macrocode}
 \tl_const:Nn \c_@@_auto_tl { BIThesis-auto-magic }
 %    \end{macrocode}
+% \end{macro}
 %
 % 定义 |bithesis| 键值对类。
 %    \begin{macrocode}
@@ -777,33 +778,33 @@
 \keys_define:nn { bithesis / const / autoref }
   {
     algo .tl_set:N = \g_@@_const_autoref_algo_tl,
-    algo .initial:n = {\@@_get_const:N {algo}},
+    algo .initial:n = {\@@_get_const:n {algo}},
     them .tl_set:N = \g_@@_const_autoref_them_tl,
-    them .initial:n = {\@@_get_const:N {them}},
+    them .initial:n = {\@@_get_const:n {them}},
     lem .tl_set:N = \g_@@_const_autoref_lem_tl,
-    lem .initial:n = {\@@_get_const:N {lem}},
+    lem .initial:n = {\@@_get_const:n {lem}},
     prop .tl_set:N = \g_@@_const_autoref_prop_tl,
-    prop .initial:n = {\@@_get_const:N {prop}},
+    prop .initial:n = {\@@_get_const:n {prop}},
     cor .tl_set:N = \g_@@_const_autoref_cor_tl,
-    cor .initial:n = {\@@_get_const:N {cor}},
+    cor .initial:n = {\@@_get_const:n {cor}},
     axi .tl_set:N = \g_@@_const_autoref_axi_tl,
-    axi .initial:n = {\@@_get_const:N {axi}},
+    axi .initial:n = {\@@_get_const:n {axi}},
     defn .tl_set:N = \g_@@_const_autoref_defn_tl,
-    defn .initial:n = {\@@_get_const:N {defn}},
+    defn .initial:n = {\@@_get_const:n {defn}},
     conj .tl_set:N = \g_@@_const_autoref_conj_tl,
-    conj .initial:n = {\@@_get_const:N {conj}},
+    conj .initial:n = {\@@_get_const:n {conj}},
     exmp .tl_set:N = \g_@@_const_autoref_exmp_tl,
-    exmp .initial:n = {\@@_get_const:N {exmp}},
+    exmp .initial:n = {\@@_get_const:n {exmp}},
     case .tl_set:N = \g_@@_const_autoref_case_tl,
-    case .initial:n = {\@@_get_const:N {case}},
+    case .initial:n = {\@@_get_const:n {case}},
     rem .tl_set:N = \g_@@_const_autoref_rem_tl,
-    rem .initial:n = {\@@_get_const:N {rem}},
+    rem .initial:n = {\@@_get_const:n {rem}},
     figure .tl_set:N = \g_@@_const_autoref_fig_tl,
-    figure .initial:n =  {\@@_get_const:N {fig}},
+    figure .initial:n =  {\@@_get_const:n {fig}},
     table .tl_set:N = \g_@@_const_autoref_tab_tl,
-    table .initial:n =  {\@@_get_const:N {tab}},
+    table .initial:n =  {\@@_get_const:n {tab}},
     equ .tl_set:N = \g_@@_const_autoref_equ_tl,
-    equ .initial:n = {\@@_get_const:N {equ}},
+    equ .initial:n = {\@@_get_const:n {equ}},
   }
 \keys_define:nn { bithesis / const / style }
   {
@@ -821,7 +822,7 @@
   {
     acknowledgements .tl_set:N = \g_@@_const_heading_acknowledgements_tl,
     acknowledgements .initial:n = {
-      \@@_get_const:N {ack}
+      \@@_get_const:n {ack}
     },
   }
 %    \end{macrocode}
@@ -881,7 +882,7 @@
 {
   title .tl_set:N = \l_@@_toc_title_tl,
   title .initial:n = {
-    \@@_get_const:N {toc}
+    \@@_get_const:n {toc}
   },
   abstract .bool_set:N = \l_@@_add_abstract_to_toc_bool,
   abstract .initial:n = {true},
@@ -927,11 +928,40 @@
   minbibnames .initial:n = {10},
 }
 %    \end{macrocode}
+%
+% \subsubsection{内部 l3keys 接口键值对定义}
+%
+% 除了 |\BITSetup|,有些用户接口也是键值对,在此通过 |bithesis-internal| 实现。
+% 约定它只用于内部解析用户命令传入的参数,不直接面向最终作者,而且每个用户命令都不记忆之前设置的值。
+% 此处只定义数据结构,默认值等逻辑由各命令自行处理。
+%
+% 定义 |bithesis-internal / pre-frontmatter|,用于设置 |\frontmatter| 之前的 |\MakeCover|、|\MakeTitle| 等。
+% 目前这些部分的接口相同,故共用 |pre-frontmatter|。
+%    \begin{macrocode}
+\keys_define:nn { bithesis-internal / pre-frontmatter }
+{
+  % 是否将标题加入PDF书签
+  bookmarked .bool_set:N = \l_@@_internal__pre_frontmatter__bookmarked_bool,
+}
+%    \end{macrocode}
+%
+% 定义 |bithesis-internal / conclusion|,用于设置 |conclusion| 环境。
+%    \begin{macrocode}
+\keys_define:nn { bithesis-internal / conclusion }
+{
+  title .tl_set:N = \l_@@_internal__conclusion__title_tl,
+}
+%    \end{macrocode}
+%
+%
+% \subsubsection{BITSetup l3keys 接口键值对预处理}
+%
 % 在宏加载时,处理 |bithesis/option| 中的值。使得 |bithesis|
 % 宏包的模板选项可以在宏加载时生效。
 %    \begin{macrocode}
 \ProcessKeysOptions { bithesis / option }
 %    \end{macrocode}
+%
 % 确定 |bithesis/option| 中的 |\g_@@_thesis_type_int| 后,根据论文类型自动覆盖某些选项的默认值。
 %    \begin{macrocode}
 \@@_if_graduate:TF {
@@ -941,8 +971,7 @@
 }
 %    \end{macrocode}
 %
-% \subsubsection{l3keys 键值对预处理}
-%
+% \begin{macro}{\@@_resolve_auto_values:}
 % 计算 auto 并替换为标准的值
 %    \begin{macrocode}
 \cs_new:Npn \@@_resolve_auto_values: {
@@ -961,11 +990,12 @@
         \keys_set:nn {bithesis} {const/info/major = 学\quad 位\quad 领\quad 域}
       }
     } {
-      \keys_set:nn {bithesis} {const/info/major = \@@_get_const:N {major}}
+      \keys_set:nn {bithesis} {const/info/major = \@@_get_const:n {major}}
     }
   }
 }
 %    \end{macrocode}
+% \end{macro}
 %
 % \subsubsection{应用模板选项}
 %
@@ -1350,10 +1380,10 @@
 }
 %    \end{macrocode}
 %
-% \begin{macro}{\xihei:n}
+% \begin{macro}{\@@_xihei:n}
 % 定义细黑字体。
 %    \begin{macrocode}
-\cs_new:Npn \xihei:n #1 {
+\cs_new:Npn \@@_xihei:n #1 {
   \xeCJK_family_if_exist:nTF {xihei} {
     \CJKfamily{xihei} #1
   }{
@@ -1363,32 +1393,30 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\l_@@_title_font_cs:n}
+% \begin{macro}{\@@_title_font:}
 % 定义标题字体。
 %    \begin{macrocode}
-\cs_new:Npn \l_@@_title_font_cs:n #1 {
-  \bool_if:NTF \l_@@_arial_as_title_font_bool
-  {
+\cs_new:Npn \@@_title_font: {
+  \bool_if:NTF \l_@@_arial_as_title_font_bool {
     % 即使是英文模板,仍可能出现中文,也需设置中文字体。
-    \heiti\arialfamily #1
+    \heiti\arialfamily
   } {
     % 西文保持原本的 Times New Roman。黑体一般不搭配衬线体,但学校要求如此。
-    \heiti #1
+    \heiti
   }
 }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\l_@@_unnumchapter_style_cs:n}
+% \begin{macro}{\@@_unnumchapter_style:}
 % 定义无序章节的样式。
 %    \begin{macrocode}
-\cs_new:Npn \l_@@_unnumchapter_style_cs:n #1 {
+\cs_new:Npn \@@_unnumchapter_style: {
   % 本科全英文、研究生学位论文需要加粗
-  \int_compare:nNnTF {\g_@@_thesis_type_int} > {2}
-  {
-    \bfseries #1
+  \int_compare:nNnTF {\g_@@_thesis_type_int} > {2} {
+    \bfseries
   } {
-    \mdseries #1
+    \mdseries
   }
 }
 %    \end{macrocode}
@@ -1421,7 +1449,7 @@
 %    \begin{macrocode}
 \ctexset{chapter={
     number = {\arabicHeiti{ \arabic{chapter} }},
-    format = { \l_@@_title_font_cs:n \bfseries \centering \zihao{3}},
+    format = { \@@_title_font: \bfseries \centering \zihao{3}},
     nameformat = {},
     titleformat = {},
     aftername = \hspace{9bp},
@@ -1436,7 +1464,7 @@
 
 \ctexset{section={
     number = {\arabicHeiti{\thechapter.\hspace{1bp}\arabic{section}}},
-    format = {\l_@@_title_font_cs:n \raggedright \bfseries \zihao{4}},
+    format = {\@@_title_font: \raggedright \bfseries \zihao{4}},
     nameformat = {},
     titleformat = {},
     aftername = \hspace{8bp},
@@ -1454,7 +1482,7 @@
         \arabic{subsection}
       }
     },
-    format = {\l_@@_title_font_cs:n \bfseries \raggedright \zihao{-4}},
+    format = {\@@_title_font: \bfseries \raggedright \zihao{-4}},
     nameformat = {},
     titleformat = {},
     aftername = \hspace{7bp},
@@ -1476,7 +1504,7 @@
         \arabic{subsubsection}
       }
     },
-    format={\l_@@_title_font_cs:n \raggedright \zihao{-4}},
+    format={\@@_title_font: \raggedright \zihao{-4}},
     nameformat = {},
     titleformat = {},
     beforeskip=14bp,
@@ -1611,7 +1639,7 @@
       numbering = false,
       beforeskip = 18bp,
       format = {
-        \l_@@_title_font_cs:n \l_@@_unnumchapter_style_cs:n \centering \zihao{3}
+        \@@_title_font: \@@_unnumchapter_style: \centering \zihao{3}
       },
       afterskip = \@@_if_graduate:TF {31bp} {26bp},
     }
@@ -1864,26 +1892,26 @@
 %
 % 调整插图目录与表格目录的标题。
 %    \begin{macrocode}
-\cs_set:Npn \listfigurename {\currentpdfbookmark{\c_@@_label_figure_tl}{ch:figures}\@@_get_const:N {figure}}
-\cs_set:Npn \listtablename {\currentpdfbookmark{\c_@@_label_table_tl}{ch:tables}\@@_get_const:N {table}}
+\cs_set:Npn \listfigurename {\currentpdfbookmark{\c_@@_label_figure_tl}{ch:figures}\@@_get_const:n {figure}}
+\cs_set:Npn \listtablename {\currentpdfbookmark{\c_@@_label_table_tl}{ch:tables}\@@_get_const:n {table}}
 %    \end{macrocode}
 %
 % 预定义用户常用的证明环境。
 %    \begin{macrocode}
 \theoremstyle{plain}
-  \newtheorem{algo}{\@@_get_const:N {algo}}[chapter]
-  \newtheorem{them}{\@@_get_const:N {them}}[chapter]
-  \newtheorem{lem}{\@@_get_const:N {lem}}[chapter]
-  \newtheorem{prop}{\@@_get_const:N {prop}}[chapter]
-  \newtheorem{cor}{\@@_get_const:N {cor}}[chapter]
-  \newtheorem{axi}{\@@_get_const:N {axi}}[chapter]
+  \newtheorem{algo}{\@@_get_const:n {algo}}[chapter]
+  \newtheorem{them}{\@@_get_const:n {them}}[chapter]
+  \newtheorem{lem}{\@@_get_const:n {lem}}[chapter]
+  \newtheorem{prop}{\@@_get_const:n {prop}}[chapter]
+  \newtheorem{cor}{\@@_get_const:n {cor}}[chapter]
+  \newtheorem{axi}{\@@_get_const:n {axi}}[chapter]
 \theoremstyle{definition}
-  \newtheorem{defn}{\@@_get_const:N {defn}}[chapter]
-  \newtheorem{conj}{\@@_get_const:N {conj}}[chapter]
-  \newtheorem{exmp}{\@@_get_const:N {exmp}}[chapter]
-  \newtheorem{case}{\@@_get_const:N {case}}
+  \newtheorem{defn}{\@@_get_const:n {defn}}[chapter]
+  \newtheorem{conj}{\@@_get_const:n {conj}}[chapter]
+  \newtheorem{exmp}{\@@_get_const:n {exmp}}[chapter]
+  \newtheorem{case}{\@@_get_const:n {case}}
 \theoremstyle{remark}
-  \newtheorem{rem}{\@@_get_const:N {rem}}
+  \newtheorem{rem}{\@@_get_const:n {rem}}
   \renewcommand{\qedsymbol}{\ensuremath{\blacksquare}}
 %    \end{macrocode}
 %
@@ -1918,7 +1946,7 @@
 %
 % 参数如下:
 % \begin{itemize}
-%   \item \#1 |{token_list}| 为封面信息条目的名称。
+%   \item \#1 |{token_list}| 为封面信息条目的名称,含分隔符。
 %   \item \#2 |{token_list}| 为封面信息条目的内容。
 % \end{itemize}
 %
@@ -1927,7 +1955,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_render_cover_entry:nn #1#2 {
   \makebox[\l_@@_cover_label_max_width_dim][\l_@@_cover_label_align_tl]{
-    \tl_if_blank:VTF #1 {} {#1\l_@@_cover_delimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1}
   }
   \hspace{1ex}
   \@@_dunderline:nnn{\l_@@_cover_underline_offset_dim}
@@ -1982,8 +2010,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_parse_entry}
-% 解析封面信息条目。
+% \begin{macro}{\@@_parse_entry:nn}
+% 解析封面信息条目,丢弃空项,并添加分隔符。
 %
 % 参数如下:
 % \begin{itemize}
@@ -1992,15 +2020,23 @@
 % \end{itemize}
 % |\\| 会被视为换行符,从而实现信息条目换行的效果。
 %
+% 结果会存储到 |\l_@@_tmp_left_seq| 和 |\l_@@_tmp_right_seq|。
+%
 %    \begin{macrocode}
-\cs_new:Npn \@@_parse_entry #1 #2 {
-  \seq_set_split:Nnx \l_@@_tmp_right_seq {\\} {#2}
+\cs_new:Npn \@@_parse_entry:nn #1 #2 {
   \seq_clear:N \l_@@_tmp_left_seq
-  \seq_map_inline:Nn \l_@@_tmp_right_seq {
-    \seq_put_right:Nn \l_@@_tmp_left_seq {}
+  \seq_clear:N \l_@@_tmp_right_seq
+
+  % 只处理 value 非空的项
+  \tl_set:Nn \l_tmpa_tl {#2}
+  \tl_if_empty:xTF \l_tmpa_tl {} {
+    \seq_set_split:Nnx \l_@@_tmp_right_seq {\\} {#2}
+    \seq_map_inline:Nn \l_@@_tmp_right_seq {
+      \seq_put_right:Nn \l_@@_tmp_left_seq {}
+    }
+    \seq_put_left:Nn \l_@@_tmp_left_seq {#1\l_@@_cover_delimiter_tl}
+    \seq_pop_right:NN \l_@@_tmp_left_seq \g_@@_trashcan_tl
   }
-  \seq_put_left:Nn \l_@@_tmp_left_seq {#1}
-  \seq_pop_right:NN \l_@@_tmp_left_seq \g_@@_trashcan_tl
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2020,7 +2056,7 @@
     % label - value 对。
     % 比如 {label_1} {value \\ 1} 会被转换成
     % { {label_1} {value}, {} {1} }
-    \@@_parse_entry ##1
+    \@@_parse_entry:nn ##1
     % 然后将这些 label - value 对添加到 \l_@@_right_seq
     % 或者 \l_@@_left_sql 中。
     % left 就是 label,right 就是 value。
@@ -2043,9 +2079,7 @@
       {
         \seq_pop_left:NN \l_@@_left_seq \l_@@_tmpa_tl
         \seq_pop_left:NN \l_@@_right_seq \l_@@_tmpb_tl
-        \tl_if_empty:xTF \l_@@_tmpb_tl {} {
-          \@@_render_cover_entry:nn {\l_@@_tmpa_tl} {\l_@@_tmpb_tl}
-        }
+        \@@_render_cover_entry:nn {\l_@@_tmpa_tl} {\l_@@_tmpb_tl}
       }
   \group_end:
 }
@@ -2052,12 +2086,14 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\make_graduate_cover:}
+% \begin{macro}{\@@_make_graduate_cover:}
 % 制作研究生论文模板封面。
 %    \begin{macrocode}
-\cs_new:Npn \make_graduate_cover: {
+\cs_new:Npn \@@_make_graduate_cover: {
   \cleardoublepage
-  \currentpdfbookmark{封面}{frontmatter:cover1}
+  \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{封面}{pre-frontmatter:cover}
+  }
   \begin{titlepage}
     {
       \heiti\zihao{5}
@@ -2069,7 +2105,7 @@
     }
     \centering
     \vspace*{65mm}
-    {\heiti\zihao{-2} \l_@@_value_title_tl}
+    {\heiti\zihao{-2} \l_@@_value_title_tl \par}
     \vskip 60mm
     {
       % 渲染信息。
@@ -2090,7 +2126,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\make_paper_back:}
+% \begin{macro}{\@@_make_paper_back:}
 % 制作书脊。
 %    \begin{macrocode}
 % TODO: 使用统一方式警告
@@ -2099,9 +2135,11 @@
     Failed~to~find~the~file~for~degree~type~in~the~paper~back:~#1.\\
     Please~download~from~https://github.com/BITNP/BIThesis/blob/main/templates/graduate-thesis/ #1.
   }
-\cs_new:Npn \make_paper_back: {
+\cs_new:Npn \@@_make_paper_back: {
   \cleardoublepage
-  \currentpdfbookmark{书脊}{frontmatter:paperback}
+  \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{书脊}{pre-frontmatter:paperback}
+  }
   \begin{titlepage}
     \centering
     % 实现竖排——将水平宽度设得很窄,让文字自动换行,并改小行距
@@ -2141,7 +2179,9 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_make_chinese_title_page: {
   \cleardoublepage
-  \currentpdfbookmark{中文题名页}{frontmatter:titlepage}
+  \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{中文题名页}{pre-frontmatter:titlepage-zh}
+  }
   \begin{titlepage}
       \begin{minipage}[t]{0.48\textwidth}
         % 密级、分类号
@@ -2166,19 +2206,19 @@
 
               {
                 \zihao{4}
-                \bool_if:NTF \l_@@_value_engineering_special_plan_bool {\boxcheck:} {\boxempty:}
+                \bool_if:NTF \l_@@_value_engineering_special_plan_bool {\@@_boxcheck:} {\@@_boxempty:}
               }
               \hspace{1pt}\c_@@_label_engineering_special_plan_tl\\
 
               {
                 \zihao{4}
-                \bool_if:NTF \l_@@_value_cross_research_bool {\boxcheck:} {\boxempty:}
+                \bool_if:NTF \l_@@_value_cross_research_bool {\@@_boxcheck:} {\@@_boxempty:}
               }
               \hspace{1pt}\c_@@_label_cross_research_tl\\
 
               {
                 \zihao{4}
-                \bool_if:NTF \l_@@_value_international_student_ugp_bool {\boxcheck:} {\boxempty:}
+                \bool_if:NTF \l_@@_value_international_student_ugp_bool {\@@_boxcheck:} {\@@_boxempty:}
               }
               \hspace{1pt}\c_@@_label_international_student_ugp_tl
             \end{minipage}
@@ -2193,7 +2233,7 @@
 
       \vskip \stretch{1}
 
-         {\heiti\zihao{-2} \l_@@_value_title_tl}
+      {\heiti\zihao{-2} \l_@@_value_title_tl \par}
 
       \vskip \stretch{1}
 
@@ -2246,7 +2286,9 @@
 % 制作英文封面页。
 %    \begin{macrocode}
 \cs_new:Npn \@@_make_english_title_page: {
-  \currentpdfbookmark{英文题名页}{frontmatter:titlepageen}
+  \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{英文题名页}{pre-frontmatter:titlepage-en}
+  }
   \begin{titlepage}
     \begin{center}
 
@@ -2255,6 +2297,7 @@
     {
       \zihao{-2}
       \textbf{\l_@@_value_title_en_tl}
+      \par
     }
 
     \vskip \stretch{1}
@@ -2336,7 +2379,9 @@
             titleformat = {\heiti\zihao{-2}},
           }
         }
-        \currentpdfbookmark{\c_@@_graduate_label_originality_tl}{frontmatter:originality}
+        \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{\c_@@_graduate_label_originality_tl}{pre-frontmatter:originality}
+        }
         \chapter*{
           \c_@@_graduate_label_originality_tl
         }
@@ -2361,7 +2406,9 @@
             titleformat = {\heiti\zihao{-2}},
           }
         }
-        \currentpdfbookmark{\c_@@_graduate_label_authorization_tl}{frontmatter:originality1}
+        \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{\c_@@_graduate_label_authorization_tl}{pre-frontmatter:originality-authorization}
+        }
         \chapter*{
           \c_@@_graduate_label_authorization_tl
         }
@@ -2458,11 +2505,15 @@
 % \begin{macro}{\MakeCover}
 % 制作封面。
 %    \begin{macrocode}
-\DeclareDocumentCommand \MakeCover {}
+\DeclareDocumentCommand \MakeCover { O{} }
   {
     \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool]
     \group_begin:
 
+    % 解析传入参数
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
     % 封面使用的 thesis-type 可能与整体不同。
     \int_new:N \l_@@_thesis_type_int
     \bool_if:NTF \l_@@_cover_prefer_zh_bool {
@@ -2475,7 +2526,9 @@
     {
       {1}
       {
-        \currentpdfbookmark{封面}{frontmatter:cover}
+        \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{封面}{pre-frontmatter:cover}
+        }
         \begin{titlepage}
           \vspace*{16mm}
 
@@ -2495,7 +2548,7 @@
           % 中文标题
           \tl_set:Nn \l_tmpa_tl {
             \linespread{1.46}\selectfont
-            \zihao{2}\textbf{\xihei:n \l_@@_value_title_tl}\par
+            \zihao{2}\textbf{\@@_xihei:n \l_@@_value_title_tl}\par
           }
           % 英文标题
           \tl_set:Nn \l_tmpb_tl {
@@ -2563,6 +2616,9 @@
       }
       {2}
       {
+        \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{封面}{pre-frontmatter:cover}
+        }
         \begin{titlepage}
           \centering
 
@@ -2602,7 +2658,7 @@
 
           \vspace{\stretch{1}}
 
-          \zihao{2}\textbf{\xihei:n \l_@@_value_title_tl}\par
+          \zihao{2}\textbf{\@@_xihei:n \l_@@_value_title_tl}\par
 
           \vspace{3mm}
 
@@ -2649,6 +2705,9 @@
         \end{titlepage}
       }
       {3} {
+        \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{Cover}{pre-frontmatter:cover}
+        }
         \begin{titlepage}
           \vspace*{16mm}
 
@@ -2665,11 +2724,11 @@
           \vspace{18mm}
 
           \bool_if:NT \l_@@_cover_add_titlezh_bool {
-            \zihao{2}\textbf{\xihei:n \l_@@_value_title_tl}\par
+            \zihao{2}\textbf{\@@_xihei:n \l_@@_value_title_tl}\par
             \vspace{16mm}
           }
 
-          \zihao{2}\textbf{\xihei:n \l_@@_value_title_en_tl}\par
+          \zihao{2}\textbf{\@@_xihei:n \l_@@_value_title_en_tl}\par
 
           \vspace{10mm}
 
@@ -2718,10 +2777,10 @@
         \end{titlepage}
       }
       {4} {
-        \make_graduate_cover:
+        \@@_make_graduate_cover:
       }
       {5} {
-        \make_graduate_cover:
+        \@@_make_graduate_cover:
       }
     }
     \group_end:
@@ -2734,15 +2793,21 @@
 % \begin{macro}{\MakeOriginality}
 % 原创性声明。
 %    \begin{macrocode}
-\NewDocumentCommand \MakeOriginality {}
+\NewDocumentCommand \MakeOriginality { O{} }
   {
     \group_begin:
+    % 解析传入参数
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
     \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool]
       \int_case:nn {\g_@@_thesis_type_int}
       {
         {1}
         {
-          \currentpdfbookmark{声明}{frontmatter:originality}
+          \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+            \currentpdfbookmark{声明}{pre-frontmatter:originality}
+          }
           \pagestyle{BIThesis}
           \pagenumbering{gobble}
 
@@ -2790,7 +2855,9 @@
           \newpage
         }
         {3} {
-          \currentpdfbookmark{Statements}{frontmatter:originality}
+          \bool_if:NT \l_@@_internal__pre_frontmatter__bookmarked_bool {
+            \currentpdfbookmark{Statements}{pre-frontmatter:originality}
+          }
           \pagestyle{BIThesis}
           \pagenumbering{gobble}
 
@@ -2845,9 +2912,9 @@
 % \end{macro}
 %
 % \begin{macro}{\MakePaperBack}
-% 生成书脊。
+% 生成书脊。(研究生)
 %    \begin{macrocode}
-\NewDocumentCommand \MakePaperBack {}
+\NewDocumentCommand \MakePaperBack { O{} }
   {
     % 上下各留出规定的边距,到下一页再恢复。
     % 若标题超长,自然会向上下溢出。
@@ -2860,7 +2927,14 @@
       vmargin = 5cm,
     }
     \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool]
-      \make_paper_back:
+      \group_begin:
+      % 解析传入参数
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
+      \@@_make_paper_back:
+
+      \group_end:
     \end{blindPeerReview}
     \restoregeometry
   }
@@ -2870,11 +2944,18 @@
 % \begin{macro}{\MakeTitle}
 % 生成标题页。(研究生)
 %    \begin{macrocode}
-\NewDocumentCommand \MakeTitle {}
+\NewDocumentCommand \MakeTitle { O{} }
   {
     \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool]
+      \group_begin:
+      % 解析传入参数
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
       \@@_make_chinese_title_page:
       \@@_make_english_title_page:
+
+      \group_end:
     \end{blindPeerReview}
   }
 %    \end{macrocode}
@@ -2895,9 +2976,7 @@
       % 自定义目录样式
       \cs_set:Npn \contentsname {
         \fontsize{16pt}{\baselineskip}
-        \l_@@_unnumchapter_style_cs:n
-          \l_@@_title_font_cs:n
-            {\l_@@_toc_title_tl}
+        { \@@_unnumchapter_style: \@@_title_font: \l_@@_toc_title_tl }
         \vspace{-8pt}
       }
 
@@ -3004,7 +3083,8 @@
         \centering
         \vspace*{-2bp}
 
-        \l_@@_title_font_cs:n {
+        {
+          \@@_title_font:
           \zihao{3}\textbf
           \l_@@_value_title_en_tl\\
         }
@@ -3061,17 +3141,25 @@
 % \begin{environment}{conclusion}
 % 生成结论。需要放在 \cs{macrocode} 之后。
 %    \begin{macrocode}
-\NewDocumentEnvironment {conclusion} {}
+\NewDocumentEnvironment {conclusion} { O{} }
   {
+    \group_begin:
+    % 解析传入参数
+    \keys_set:nn { bithesis-internal / conclusion } {
+      title = \@@_if_thesis_english:TF {
+        \c_@@_label_conclusion_en_tl
+      } {
+        \c_@@_label_conclusion_tl
+      },
+    }
+    \keys_set:nn { bithesis-internal / conclusion } { #1 }
+
     \ctexset{
       section/number = \arabic{section}
     }
 
-    \@@_if_thesis_english:TF {
-      \chapter{\c_@@_label_conclusion_en_tl}
-    } {
-      \chapter{\c_@@_label_conclusion_tl}
-    }
+    \chapter{\l_@@_internal__conclusion__title_tl}
+    \group_end:
   }
   {}
 %    \end{macrocode}
@@ -3444,7 +3532,7 @@
         \l_@@_publications_minbibnames_int
       }
 
-      \chapter{\@@_get_const:N {publications}}
+      \chapter{\@@_get_const:n {publications}}
       #1
     \end{blindPeerReview}
   }
@@ -3467,7 +3555,7 @@
         subsection/number = \arabic{section}. \arabic{subsection},
         subsubsection/number = \arabic{section}. \arabic{subsection}. \arabic{subsubsection},
       }
-      \chapter{\@@_get_const:N{resume}}
+      \chapter{\@@_get_const:n {resume}}
       #1
     \end{blindPeerReview}
   }
@@ -3482,9 +3570,9 @@
 \NewDocumentEnvironment {symbols} {}
   {
     \bool_if:NTF \l_@@_add_symbols_to_toc_bool {
-      \chapter{\@@_get_const:N {symbols}}
+      \chapter{\@@_get_const:n {symbols}}
     } {
-      \chapter*{\@@_get_const:N {symbols}}
+      \chapter*{\@@_get_const:n {symbols}}
       \currentpdfbookmark{\c_@@_label_symbols_tl}{ch:symbols}
     }
     \zihao{-4}
@@ -3689,7 +3777,7 @@
 %
 % 参数如下:
 % \begin{itemize}
-%   \item \#1 |{token_list}| 为封面信息条目的名称。
+%   \item \#1 |{token_list}| 为封面信息条目的名称,含分隔符。
 %   \item \#2 |{token_list}| 为封面信息条目的内容。
 % \end{itemize}
 %
@@ -3698,7 +3786,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_render_cover_entry:nn #1#2 {
   \makebox[\l_@@_cover_label_max_width_dim][\l_@@_cover_label_align_tl]{
-    \tl_if_blank:VTF #1 {} {#1\l_@@_cover_delimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1}
   }
   \hspace{1ex}
   \@@_dunderline:nnn{\l_@@_cover_underline_offset_dim}{\l_@@_cover_underline_thickness_dim}{
@@ -3753,8 +3841,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_parse_entry}
-% 解析封面信息条目。
+% \begin{macro}{\@@_parse_entry:nn}
+% 解析封面信息条目,丢弃空项,并添加分隔符。
 %
 % 参数如下:
 % \begin{itemize}
@@ -3763,15 +3851,23 @@
 % \end{itemize}
 % |\\| 会被视为换行符,从而实现信息条目换行的效果。
 %
+% 结果会存储到 |\l_@@_tmp_left_seq| 和 |\l_@@_tmp_right_seq|。
+%
 %    \begin{macrocode}
-\cs_new:Npn \@@_parse_entry #1 #2 {
-  \seq_set_split:Nnx \l_@@_tmp_right_seq {\\} {#2}
+\cs_new:Npn \@@_parse_entry:nn #1 #2 {
   \seq_clear:N \l_@@_tmp_left_seq
-  \seq_map_inline:Nn \l_@@_tmp_right_seq {
-    \seq_put_right:Nn \l_@@_tmp_left_seq {}
+  \seq_clear:N \l_@@_tmp_right_seq
+
+  % 只处理 value 非空的项
+  \tl_set:Nn \l_tmpa_tl {#2}
+  \tl_if_empty:xTF \l_tmpa_tl {} {
+    \seq_set_split:Nnx \l_@@_tmp_right_seq {\\} {#2}
+    \seq_map_inline:Nn \l_@@_tmp_right_seq {
+      \seq_put_right:Nn \l_@@_tmp_left_seq {}
+    }
+    \seq_put_left:Nn \l_@@_tmp_left_seq {#1\l_@@_cover_delimiter_tl}
+    \seq_pop_right:NN \l_@@_tmp_left_seq \g_@@_trashcan_tl
   }
-  \seq_put_left:Nn \l_@@_tmp_left_seq {#1}
-  \seq_pop_right:NN \l_@@_tmp_left_seq \g_@@_trashcan_tl
 }
 %    \end{macrocode}
 % \end{macro}
@@ -3791,7 +3887,7 @@
     % label - value 对。
     % 比如 {label_1} {value \\ 1} 会被转换成
     % { {label_1} {value}, {} {1} }
-    \@@_parse_entry ##1
+    \@@_parse_entry:nn ##1
     % 然后将这些 label - value 对添加到 \l_@@_right_seq
     % 或者 \l_@@_left_sql 中。
     % left 就是 label,right 就是 value。
@@ -3814,9 +3910,7 @@
       {
         \seq_pop_left:NN \l_@@_left_seq \l_@@_tmpa_tl
         \seq_pop_left:NN \l_@@_right_seq \l_@@_tmpb_tl
-        \tl_if_empty:xTF \l_@@_tmpb_tl {} {
-          \@@_render_cover_entry:nn {\l_@@_tmpa_tl} {\l_@@_tmpb_tl}
-        }
+        \@@_render_cover_entry:nn {\l_@@_tmpa_tl} {\l_@@_tmpb_tl}
       }
   \group_end:
 }
@@ -4098,10 +4192,10 @@
 %    \end{macrocode}
 %
 %
-% \begin{macro}{\CJKhl:nn}
+% \begin{macro}{\@@_CJKhl:nn}
 % 高亮中文字符。
 %    \begin{macrocode}
-\cs_new:Npn \CJKhl:nn #1 #2
+\cs_new:Npn \@@_CJKhl:nn #1 #2
   { \CJKsout*[thickness=2.5ex, format=\color{#1}]{#2} }
 %    \end{macrocode}
 % \end{macro}
@@ -4131,7 +4225,7 @@
 % \subsubsection{定义用户接口}
 %
 %    \begin{macrocode}
-\cs_new_eq:NN \CJKhl \CJKhl:nn
+\cs_new_eq:NN \CJKhl \@@_CJKhl:nn
 %    \end{macrocode}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls	2025-04-17 15:04:23 UTC (rev 74967)
+++ trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls	2025-04-17 19:24:48 UTC (rev 74968)
@@ -27,7 +27,7 @@
 %% 
 \RequirePackage{expl3,l3keys2e}
 \ProvidesExplClass{bitbeamer}
-{2025-04-08}{3.8.3}{BIT Thesis Templates}
+  {2025-04-18} {3.8.4} {BIT Thesis Templates}
 \keys_define:nn { bitbeamer }
   {
     titlegraphic .tl_set:N = \l_bit_titlegraphic_tl,
@@ -46,7 +46,7 @@
 \definecolor{bitgreen}{HTML}{0A8F30}
 \definecolor{bitdarkgreen}{HTML}{005B30}
 \colorlet{beamer at blendedblue}{bitdarkgreen}
-\cs_new:Npn \CJKhl:nn #1 #2
+\cs_new:Npn \__bithesis_CJKhl:nn #1 #2
   { \CJKsout*[thickness=2.5ex, format=\color{#1}]{#2} }
 \tl_if_empty:NF \l_bit_titlegraphic_tl {
   % BIT Logo
@@ -62,7 +62,7 @@
     \end{tikzpicture}
   }
 }
-\cs_new_eq:NN \CJKhl \CJKhl:nn
+\cs_new_eq:NN \CJKhl \__bithesis_CJKhl:nn
 \endinput
 %%
 %% End of file `bitbeamer.cls'.

Modified: trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls	2025-04-17 15:04:23 UTC (rev 74967)
+++ trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls	2025-04-17 19:24:48 UTC (rev 74968)
@@ -27,7 +27,7 @@
 %% 
 \RequirePackage{expl3,l3keys2e}
 \ProvidesExplClass{bithesis}
-{2025-04-08}{3.8.3}{BIT Thesis Templates}
+  {2025-04-18} {3.8.4} {BIT Thesis Templates}
 \int_new:N \g__bithesis_thesis_type_int
 \int_new:N \g__bithesis_head_zihao_int
 \bool_new:N \g__bithesis_twoside_bool
@@ -55,7 +55,7 @@
 \cs_new:Npn \__bithesis_secret_info:n #1 {
   \__bithesis_secret_info:nn {#1} {\tl_map_function:NN {#1} \__bithesis_hide:n }
 }
-\cs_new:Npn \__bithesis_get_const:N #1 {
+\cs_new:Npn \__bithesis_get_const:n #1 {
   \__bithesis_if_thesis_english:TF {
     \use:c {c__bithesis_label_ #1 _en_tl}
   } {
@@ -111,10 +111,10 @@
     \tl_const:cn { c__bithesis_ #1 _label_ #2 _tl } {#3}
     \tl_const:cn { c__bithesis_ #1 _label_ #2 _en_tl } {#4}
   }
-\cs_new:Npn \smallgap: {
+\cs_new:Npn \__bithesis_smallgap: {
   \hspace{0.45ex}
 }
-\cs_new:Npn \boxempty:
+\cs_new:Npn \__bithesis_boxempty:
 {
   \makebox[1em][l]
   {
@@ -126,7 +126,7 @@
     }
   }
 }
-\cs_new:Npn \boxcheck:
+\cs_new:Npn \__bithesis_boxcheck:
 {
   \makebox[1em][l]
   {
@@ -138,7 +138,7 @@
     $\checkmark$
   }
 }
-\cs_new:Npn \label_space: {
+\cs_new:Npn \__bithesis_label_space: {
   \__bithesis_if_bachelor_thesis:T {
     \quad
   }
@@ -215,11 +215,11 @@
   {
     {originality} {研究成果声明},
     {originality_clause} {本人郑重声明:所提交的学位论文是我本人在指导教师的指导下独立完成的研究成果。文中所撰写内容符合以下学术规范(请勾选):
-\par \boxcheck:\hspace{0.5em} 论文综述遵循“适当引用”的规范,全部引用的内容不超过50\%。
-\par \boxcheck:\hspace{0.5em} 论文中的研究数据及结果不存在篡改、剽窃、抄袭、伪造等学术不端行为,并愿意承担因学术不端行为所带来的一切后果和法律责任。
-\par \boxcheck:\hspace{0.5em} 文中依法引用他人的成果,均已做出明确标注或得到许可。
-\par \boxcheck:\hspace{0.5em} 论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。
-\par \boxcheck:\hspace{0.5em} 与本人一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。
+\par \__bithesis_boxcheck:\hspace{0.5em} 论文综述遵循“适当引用”的规范,全部引用的内容不超过50\%。
+\par \__bithesis_boxcheck:\hspace{0.5em} 论文中的研究数据及结果不存在篡改、剽窃、抄袭、伪造等学术不端行为,并愿意承担因学术不端行为所带来的一切后果和法律责任。
+\par \__bithesis_boxcheck:\hspace{0.5em} 文中依法引用他人的成果,均已做出明确标注或得到许可。
+\par \__bithesis_boxcheck:\hspace{0.5em} 论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。
+\par \__bithesis_boxcheck:\hspace{0.5em} 与本人一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。
 \par~特此声明。},
     {authorization} {关于学位论文使用权的说明},
     {authorization_clause} {本人完全了解北京理工大学有关保管、使用学位论文的规定,其中包括:
@@ -239,7 +239,7 @@
     {author} {作\quad 者\quad 姓\quad 名} {Candidate~Name},
     {school} {学\quad 院\quad 名\quad 称} {School~or~Department},
     {supervisor} {指\quad 导\quad 教\quad 师} {Faculty~Mentor},
-    {industrial_mentor} {行\smallgap: 业\smallgap: 合\smallgap: 作\smallgap: 导\smallgap: 师} {Industry~Collaboration~Mentor},
+    {industrial_mentor} {行\__bithesis_smallgap: 业\__bithesis_smallgap: 合\__bithesis_smallgap: 作\__bithesis_smallgap: 导\__bithesis_smallgap: 师} {Industry~Collaboration~Mentor},
     {chairman} {答辩委员会主席} {Chair,~Thesis~Committee},
     % degree、major 的中文与 degreeType 有关,此处以 academic 为准,其余情况通过 \c__bithesis_auto_tl 处理
     % 英文倒是无关。
@@ -246,10 +246,10 @@
     {degree} {申\quad 请\quad 学\quad 位} {Degree~Applied},
     {major} {一\quad 级\quad 学\quad 科} {Major},
     {institute}
-      {学\smallgap: 位\smallgap: 授\smallgap: 予\smallgap: 单\smallgap: 位}
+      {学\__bithesis_smallgap: 位\__bithesis_smallgap: 授\__bithesis_smallgap: 予\__bithesis_smallgap: 单\__bithesis_smallgap: 位}
       {Degree~by},
     {defense_date}
-      {论\smallgap: 文\smallgap: 答\smallgap: 辩\smallgap: 日\smallgap: 期}
+      {论\__bithesis_smallgap: 文\__bithesis_smallgap: 答\__bithesis_smallgap: 辩\__bithesis_smallgap: 日\__bithesis_smallgap: 期}
       {The~Date~of~Defence},
   } {\__bithesis_define_label_by_thesis_type:nnnn {graduate} #1}
 \clist_map_inline:nn
@@ -265,14 +265,14 @@
     {teacher} {任课教师} {Teacher},
     {semester} {上课学期} {Semester},
     {keywords} {关键词:} {Key~Words:~},
-    {toc} {目\label_space: 录} {Table~of~Contents},
-    {abstract} {摘\label_space: 要} {Abstract},
-    {conclusion} {结\label_space: 论} {Conclusions},
+    {toc} {目\__bithesis_label_space: 录} {Table~of~Contents},
+    {abstract} {摘\__bithesis_label_space: 要} {Abstract},
+    {conclusion} {结\__bithesis_label_space: 论} {Conclusions},
     % 附录部分的总标题
-    {appendix} {附\label_space: 录} {Appendices},
-    {ack} {致\label_space: 谢} {Acknowledgements},
-    {figure} {插\label_space: 图} {Illustrations},
-    {table} {表\label_space: 格} {Tables},
+    {appendix} {附\__bithesis_label_space: 录} {Appendices},
+    {ack} {致\__bithesis_label_space: 谢} {Acknowledgements},
+    {figure} {插\__bithesis_label_space: 图} {Illustrations},
+    {table} {表\__bithesis_label_space: 格} {Tables},
     % 附录下各部分编号的前缀
     {appendix_prefix} {附录} {Appendix},
     {reference} {参考文献} {References},
@@ -512,33 +512,33 @@
 \keys_define:nn { bithesis / const / autoref }
   {
     algo .tl_set:N = \g__bithesis_const_autoref_algo_tl,
-    algo .initial:n = {\__bithesis_get_const:N {algo}},
+    algo .initial:n = {\__bithesis_get_const:n {algo}},
     them .tl_set:N = \g__bithesis_const_autoref_them_tl,
-    them .initial:n = {\__bithesis_get_const:N {them}},
+    them .initial:n = {\__bithesis_get_const:n {them}},
     lem .tl_set:N = \g__bithesis_const_autoref_lem_tl,
-    lem .initial:n = {\__bithesis_get_const:N {lem}},
+    lem .initial:n = {\__bithesis_get_const:n {lem}},
     prop .tl_set:N = \g__bithesis_const_autoref_prop_tl,
-    prop .initial:n = {\__bithesis_get_const:N {prop}},
+    prop .initial:n = {\__bithesis_get_const:n {prop}},
     cor .tl_set:N = \g__bithesis_const_autoref_cor_tl,
-    cor .initial:n = {\__bithesis_get_const:N {cor}},
+    cor .initial:n = {\__bithesis_get_const:n {cor}},
     axi .tl_set:N = \g__bithesis_const_autoref_axi_tl,
-    axi .initial:n = {\__bithesis_get_const:N {axi}},
+    axi .initial:n = {\__bithesis_get_const:n {axi}},
     defn .tl_set:N = \g__bithesis_const_autoref_defn_tl,
-    defn .initial:n = {\__bithesis_get_const:N {defn}},
+    defn .initial:n = {\__bithesis_get_const:n {defn}},
     conj .tl_set:N = \g__bithesis_const_autoref_conj_tl,
-    conj .initial:n = {\__bithesis_get_const:N {conj}},
+    conj .initial:n = {\__bithesis_get_const:n {conj}},
     exmp .tl_set:N = \g__bithesis_const_autoref_exmp_tl,
-    exmp .initial:n = {\__bithesis_get_const:N {exmp}},
+    exmp .initial:n = {\__bithesis_get_const:n {exmp}},
     case .tl_set:N = \g__bithesis_const_autoref_case_tl,
-    case .initial:n = {\__bithesis_get_const:N {case}},
+    case .initial:n = {\__bithesis_get_const:n {case}},
     rem .tl_set:N = \g__bithesis_const_autoref_rem_tl,
-    rem .initial:n = {\__bithesis_get_const:N {rem}},
+    rem .initial:n = {\__bithesis_get_const:n {rem}},
     figure .tl_set:N = \g__bithesis_const_autoref_fig_tl,
-    figure .initial:n =  {\__bithesis_get_const:N {fig}},
+    figure .initial:n =  {\__bithesis_get_const:n {fig}},
     table .tl_set:N = \g__bithesis_const_autoref_tab_tl,
-    table .initial:n =  {\__bithesis_get_const:N {tab}},
+    table .initial:n =  {\__bithesis_get_const:n {tab}},
     equ .tl_set:N = \g__bithesis_const_autoref_equ_tl,
-    equ .initial:n = {\__bithesis_get_const:N {equ}},
+    equ .initial:n = {\__bithesis_get_const:n {equ}},
   }
 \keys_define:nn { bithesis / const / style }
   {
@@ -556,7 +556,7 @@
   {
     acknowledgements .tl_set:N = \g__bithesis_const_heading_acknowledgements_tl,
     acknowledgements .initial:n = {
-      \__bithesis_get_const:N {ack}
+      \__bithesis_get_const:n {ack}
     },
   }
 \keys_define:nn { bithesis / style }
@@ -608,7 +608,7 @@
 {
   title .tl_set:N = \l__bithesis_toc_title_tl,
   title .initial:n = {
-    \__bithesis_get_const:N {toc}
+    \__bithesis_get_const:n {toc}
   },
   abstract .bool_set:N = \l__bithesis_add_abstract_to_toc_bool,
   abstract .initial:n = {true},
@@ -645,6 +645,15 @@
   minbibnames .int_set:N = \l__bithesis_publications_minbibnames_int,
   minbibnames .initial:n = {10},
 }
+\keys_define:nn { bithesis-internal / pre-frontmatter }
+{
+  % 是否将标题加入PDF书签
+  bookmarked .bool_set:N = \l__bithesis_internal__pre_frontmatter__bookmarked_bool,
+}
+\keys_define:nn { bithesis-internal / conclusion }
+{
+  title .tl_set:N = \l__bithesis_internal__conclusion__title_tl,
+}
 \ProcessKeysOptions { bithesis / option }
 \__bithesis_if_graduate:TF {
   \keys_set:nn {bithesis} {cover/hideCoverInPeerReview = false}
@@ -667,7 +676,7 @@
         \keys_set:nn {bithesis} {const/info/major = 学\quad 位\quad 领\quad 域}
       }
     } {
-      \keys_set:nn {bithesis} {const/info/major = \__bithesis_get_const:N {major}}
+      \keys_set:nn {bithesis} {const/info/major = \__bithesis_get_const:n {major}}
     }
   }
 }
@@ -946,7 +955,7 @@
     }
   }
 }
-\cs_new:Npn \xihei:n #1 {
+\cs_new:Npn \__bithesis_xihei:n #1 {
   \xeCJK_family_if_exist:nTF {xihei} {
     \CJKfamily{xihei} #1
   }{
@@ -953,23 +962,21 @@
     \heiti #1
   }
 }
-\cs_new:Npn \l__bithesis_title_font_cs:n #1 {
-  \bool_if:NTF \l__bithesis_arial_as_title_font_bool
-  {
+\cs_new:Npn \__bithesis_title_font: {
+  \bool_if:NTF \l__bithesis_arial_as_title_font_bool {
     % 即使是英文模板,仍可能出现中文,也需设置中文字体。
-    \heiti\arialfamily #1
+    \heiti\arialfamily
   } {
     % 西文保持原本的 Times New Roman。黑体一般不搭配衬线体,但学校要求如此。
-    \heiti #1
+    \heiti
   }
 }
-\cs_new:Npn \l__bithesis_unnumchapter_style_cs:n #1 {
+\cs_new:Npn \__bithesis_unnumchapter_style: {
   % 本科全英文、研究生学位论文需要加粗
-  \int_compare:nNnTF {\g__bithesis_thesis_type_int} > {2}
-  {
-    \bfseries #1
+  \int_compare:nNnTF {\g__bithesis_thesis_type_int} > {2} {
+    \bfseries
   } {
-    \mdseries #1
+    \mdseries
   }
 }
 \cs_set:Npn \arabicHeiti #1 {#1}
@@ -987,7 +994,7 @@
 }
 \ctexset{chapter={
     number = {\arabicHeiti{ \arabic{chapter} }},
-    format = { \l__bithesis_title_font_cs:n \bfseries \centering \zihao{3}},
+    format = { \__bithesis_title_font: \bfseries \centering \zihao{3}},
     nameformat = {},
     titleformat = {},
     aftername = \hspace{9bp},
@@ -1002,7 +1009,7 @@
 
 \ctexset{section={
     number = {\arabicHeiti{\thechapter.\hspace{1bp}\arabic{section}}},
-    format = {\l__bithesis_title_font_cs:n \raggedright \bfseries \zihao{4}},
+    format = {\__bithesis_title_font: \raggedright \bfseries \zihao{4}},
     nameformat = {},
     titleformat = {},
     aftername = \hspace{8bp},
@@ -1020,7 +1027,7 @@
         \arabic{subsection}
       }
     },
-    format = {\l__bithesis_title_font_cs:n \bfseries \raggedright \zihao{-4}},
+    format = {\__bithesis_title_font: \bfseries \raggedright \zihao{-4}},
     nameformat = {},
     titleformat = {},
     aftername = \hspace{7bp},
@@ -1042,7 +1049,7 @@
         \arabic{subsubsection}
       }
     },
-    format={\l__bithesis_title_font_cs:n \raggedright \zihao{-4}},
+    format={\__bithesis_title_font: \raggedright \zihao{-4}},
     nameformat = {},
     titleformat = {},
     beforeskip=14bp,
@@ -1152,7 +1159,7 @@
       numbering = false,
       beforeskip = 18bp,
       format = {
-        \l__bithesis_title_font_cs:n \l__bithesis_unnumchapter_style_cs:n \centering \zihao{3}
+        \__bithesis_title_font: \__bithesis_unnumchapter_style: \centering \zihao{3}
       },
       afterskip = \__bithesis_if_graduate:TF {31bp} {26bp},
     }
@@ -1328,22 +1335,22 @@
     tabsize=2
 }
 \lstset{style=examplestyle}
-\cs_set:Npn \listfigurename {\currentpdfbookmark{\c__bithesis_label_figure_tl}{ch:figures}\__bithesis_get_const:N {figure}}
-\cs_set:Npn \listtablename {\currentpdfbookmark{\c__bithesis_label_table_tl}{ch:tables}\__bithesis_get_const:N {table}}
+\cs_set:Npn \listfigurename {\currentpdfbookmark{\c__bithesis_label_figure_tl}{ch:figures}\__bithesis_get_const:n {figure}}
+\cs_set:Npn \listtablename {\currentpdfbookmark{\c__bithesis_label_table_tl}{ch:tables}\__bithesis_get_const:n {table}}
 \theoremstyle{plain}
-  \newtheorem{algo}{\__bithesis_get_const:N {algo}}[chapter]
-  \newtheorem{them}{\__bithesis_get_const:N {them}}[chapter]
-  \newtheorem{lem}{\__bithesis_get_const:N {lem}}[chapter]
-  \newtheorem{prop}{\__bithesis_get_const:N {prop}}[chapter]
-  \newtheorem{cor}{\__bithesis_get_const:N {cor}}[chapter]
-  \newtheorem{axi}{\__bithesis_get_const:N {axi}}[chapter]
+  \newtheorem{algo}{\__bithesis_get_const:n {algo}}[chapter]
+  \newtheorem{them}{\__bithesis_get_const:n {them}}[chapter]
+  \newtheorem{lem}{\__bithesis_get_const:n {lem}}[chapter]
+  \newtheorem{prop}{\__bithesis_get_const:n {prop}}[chapter]
+  \newtheorem{cor}{\__bithesis_get_const:n {cor}}[chapter]
+  \newtheorem{axi}{\__bithesis_get_const:n {axi}}[chapter]
 \theoremstyle{definition}
-  \newtheorem{defn}{\__bithesis_get_const:N {defn}}[chapter]
-  \newtheorem{conj}{\__bithesis_get_const:N {conj}}[chapter]
-  \newtheorem{exmp}{\__bithesis_get_const:N {exmp}}[chapter]
-  \newtheorem{case}{\__bithesis_get_const:N {case}}
+  \newtheorem{defn}{\__bithesis_get_const:n {defn}}[chapter]
+  \newtheorem{conj}{\__bithesis_get_const:n {conj}}[chapter]
+  \newtheorem{exmp}{\__bithesis_get_const:n {exmp}}[chapter]
+  \newtheorem{case}{\__bithesis_get_const:n {case}}
 \theoremstyle{remark}
-  \newtheorem{rem}{\__bithesis_get_const:N {rem}}
+  \newtheorem{rem}{\__bithesis_get_const:n {rem}}
   \renewcommand{\qedsymbol}{\ensuremath{\blacksquare}}
 \cs_new:Npn \__bithesis_dunderline:nnn #1#2#3 {
   {\setbox0=\hbox{#3}\ooalign{\copy0\cr\rule[\dimexpr#1-#2\relax]{\wd0}{#2}}}
@@ -1359,7 +1366,7 @@
   \ooalign{\copy0\cr\rule[\dimexpr#1-#2\relax]{\wd0}{#2}}}}
 \cs_new:Npn \__bithesis_render_cover_entry:nn #1#2 {
   \makebox[\l__bithesis_cover_label_max_width_dim][\l__bithesis_cover_label_align_tl]{
-    \tl_if_blank:VTF #1 {} {#1\l__bithesis_cover_delimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1}
   }
   \hspace{1ex}
   \__bithesis_dunderline:nnn{\l__bithesis_cover_underline_offset_dim}
@@ -1386,14 +1393,20 @@
         }
     \group_end:
   }
-\cs_new:Npn \__bithesis_parse_entry #1 #2 {
-  \seq_set_split:Nnx \l__bithesis_tmp_right_seq {\\} {#2}
+\cs_new:Npn \__bithesis_parse_entry:nn #1 #2 {
   \seq_clear:N \l__bithesis_tmp_left_seq
-  \seq_map_inline:Nn \l__bithesis_tmp_right_seq {
-    \seq_put_right:Nn \l__bithesis_tmp_left_seq {}
+  \seq_clear:N \l__bithesis_tmp_right_seq
+
+  % 只处理 value 非空的项
+  \tl_set:Nn \l_tmpa_tl {#2}
+  \tl_if_empty:xTF \l_tmpa_tl {} {
+    \seq_set_split:Nnx \l__bithesis_tmp_right_seq {\\} {#2}
+    \seq_map_inline:Nn \l__bithesis_tmp_right_seq {
+      \seq_put_right:Nn \l__bithesis_tmp_left_seq {}
+    }
+    \seq_put_left:Nn \l__bithesis_tmp_left_seq {#1\l__bithesis_cover_delimiter_tl}
+    \seq_pop_right:NN \l__bithesis_tmp_left_seq \g__bithesis_trashcan_tl
   }
-  \seq_put_left:Nn \l__bithesis_tmp_left_seq {#1}
-  \seq_pop_right:NN \l__bithesis_tmp_left_seq \g__bithesis_trashcan_tl
 }
 \cs_new:Npn \__bithesis_render_cover_entry:n #1 {
   % 左边是标签,右边是值。
@@ -1407,7 +1420,7 @@
     % label - value 对。
     % 比如 {label_1} {value \\ 1} 会被转换成
     % { {label_1} {value}, {} {1} }
-    \__bithesis_parse_entry ##1
+    \__bithesis_parse_entry:nn ##1
     % 然后将这些 label - value 对添加到 \l__bithesis_right_seq
     % 或者 \l__bithesis_left_sql 中。
     % left 就是 label,right 就是 value。
@@ -1429,15 +1442,15 @@
       {
         \seq_pop_left:NN \l__bithesis_left_seq \l__bithesis_tmpa_tl
         \seq_pop_left:NN \l__bithesis_right_seq \l__bithesis_tmpb_tl
-        \tl_if_empty:xTF \l__bithesis_tmpb_tl {} {
-          \__bithesis_render_cover_entry:nn {\l__bithesis_tmpa_tl} {\l__bithesis_tmpb_tl}
-        }
+        \__bithesis_render_cover_entry:nn {\l__bithesis_tmpa_tl} {\l__bithesis_tmpb_tl}
       }
   \group_end:
 }
-\cs_new:Npn \make_graduate_cover: {
+\cs_new:Npn \__bithesis_make_graduate_cover: {
   \cleardoublepage
-  \currentpdfbookmark{封面}{frontmatter:cover1}
+  \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{封面}{pre-frontmatter:cover}
+  }
   \begin{titlepage}
     {
       \heiti\zihao{5}
@@ -1449,7 +1462,7 @@
     }
     \centering
     \vspace*{65mm}
-    {\heiti\zihao{-2} \l__bithesis_value_title_tl}
+    {\heiti\zihao{-2} \l__bithesis_value_title_tl \par}
     \vskip 60mm
     {
       % 渲染信息。
@@ -1472,9 +1485,11 @@
     Failed~to~find~the~file~for~degree~type~in~the~paper~back:~#1.\\
     Please~download~from~https://github.com/BITNP/BIThesis/blob/main/templates/graduate-thesis/ #1.
   }
-\cs_new:Npn \make_paper_back: {
+\cs_new:Npn \__bithesis_make_paper_back: {
   \cleardoublepage
-  \currentpdfbookmark{书脊}{frontmatter:paperback}
+  \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{书脊}{pre-frontmatter:paperback}
+  }
   \begin{titlepage}
     \centering
     % 实现竖排——将水平宽度设得很窄,让文字自动换行,并改小行距
@@ -1508,7 +1523,9 @@
 }
 \cs_new:Npn \__bithesis_make_chinese_title_page: {
   \cleardoublepage
-  \currentpdfbookmark{中文题名页}{frontmatter:titlepage}
+  \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{中文题名页}{pre-frontmatter:titlepage-zh}
+  }
   \begin{titlepage}
       \begin{minipage}[t]{0.48\textwidth}
         % 密级、分类号
@@ -1533,19 +1550,19 @@
 
               {
                 \zihao{4}
-                \bool_if:NTF \l__bithesis_value_engineering_special_plan_bool {\boxcheck:} {\boxempty:}
+                \bool_if:NTF \l__bithesis_value_engineering_special_plan_bool {\__bithesis_boxcheck:} {\__bithesis_boxempty:}
               }
               \hspace{1pt}\c__bithesis_label_engineering_special_plan_tl\\
 
               {
                 \zihao{4}
-                \bool_if:NTF \l__bithesis_value_cross_research_bool {\boxcheck:} {\boxempty:}
+                \bool_if:NTF \l__bithesis_value_cross_research_bool {\__bithesis_boxcheck:} {\__bithesis_boxempty:}
               }
               \hspace{1pt}\c__bithesis_label_cross_research_tl\\
 
               {
                 \zihao{4}
-                \bool_if:NTF \l__bithesis_value_international_student_ugp_bool {\boxcheck:} {\boxempty:}
+                \bool_if:NTF \l__bithesis_value_international_student_ugp_bool {\__bithesis_boxcheck:} {\__bithesis_boxempty:}
               }
               \hspace{1pt}\c__bithesis_label_international_student_ugp_tl
             \end{minipage}
@@ -1560,7 +1577,7 @@
 
       \vskip \stretch{1}
 
-         {\heiti\zihao{-2} \l__bithesis_value_title_tl}
+      {\heiti\zihao{-2} \l__bithesis_value_title_tl \par}
 
       \vskip \stretch{1}
 
@@ -1607,7 +1624,9 @@
   \end{titlepage}
 }
 \cs_new:Npn \__bithesis_make_english_title_page: {
-  \currentpdfbookmark{英文题名页}{frontmatter:titlepageen}
+  \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+    \currentpdfbookmark{英文题名页}{pre-frontmatter:titlepage-en}
+  }
   \begin{titlepage}
     \begin{center}
 
@@ -1616,6 +1635,7 @@
     {
       \zihao{-2}
       \textbf{\l__bithesis_value_title_en_tl}
+      \par
     }
 
     \vskip \stretch{1}
@@ -1685,7 +1705,9 @@
             titleformat = {\heiti\zihao{-2}},
           }
         }
-        \currentpdfbookmark{\c__bithesis_graduate_label_originality_tl}{frontmatter:originality}
+        \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{\c__bithesis_graduate_label_originality_tl}{pre-frontmatter:originality}
+        }
         \chapter*{
           \c__bithesis_graduate_label_originality_tl
         }
@@ -1710,7 +1732,9 @@
             titleformat = {\heiti\zihao{-2}},
           }
         }
-        \currentpdfbookmark{\c__bithesis_graduate_label_authorization_tl}{frontmatter:originality1}
+        \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{\c__bithesis_graduate_label_authorization_tl}{pre-frontmatter:originality-authorization}
+        }
         \chapter*{
           \c__bithesis_graduate_label_authorization_tl
         }
@@ -1762,11 +1786,15 @@
       \__bithesis_secret_info:n {#1}
     }
   }
-\DeclareDocumentCommand \MakeCover {}
+\DeclareDocumentCommand \MakeCover { O{} }
   {
     \begin{blindPeerReview}[\l__bithesis_cover_hide_cover_in_peer_review_bool]
     \group_begin:
 
+    % 解析传入参数
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
     % 封面使用的 thesis-type 可能与整体不同。
     \int_new:N \l__bithesis_thesis_type_int
     \bool_if:NTF \l__bithesis_cover_prefer_zh_bool {
@@ -1779,7 +1807,9 @@
     {
       {1}
       {
-        \currentpdfbookmark{封面}{frontmatter:cover}
+        \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{封面}{pre-frontmatter:cover}
+        }
         \begin{titlepage}
           \vspace*{16mm}
 
@@ -1799,7 +1829,7 @@
           % 中文标题
           \tl_set:Nn \l_tmpa_tl {
             \linespread{1.46}\selectfont
-            \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par
+            \zihao{2}\textbf{\__bithesis_xihei:n \l__bithesis_value_title_tl}\par
           }
           % 英文标题
           \tl_set:Nn \l_tmpb_tl {
@@ -1866,6 +1896,9 @@
       }
       {2}
       {
+        \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{封面}{pre-frontmatter:cover}
+        }
         \begin{titlepage}
           \centering
 
@@ -1905,7 +1938,7 @@
 
           \vspace{\stretch{1}}
 
-          \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par
+          \zihao{2}\textbf{\__bithesis_xihei:n \l__bithesis_value_title_tl}\par
 
           \vspace{3mm}
 
@@ -1952,6 +1985,9 @@
         \end{titlepage}
       }
       {3} {
+        \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+          \currentpdfbookmark{Cover}{pre-frontmatter:cover}
+        }
         \begin{titlepage}
           \vspace*{16mm}
 
@@ -1968,11 +2004,11 @@
           \vspace{18mm}
 
           \bool_if:NT \l__bithesis_cover_add_titlezh_bool {
-            \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par
+            \zihao{2}\textbf{\__bithesis_xihei:n \l__bithesis_value_title_tl}\par
             \vspace{16mm}
           }
 
-          \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_en_tl}\par
+          \zihao{2}\textbf{\__bithesis_xihei:n \l__bithesis_value_title_en_tl}\par
 
           \vspace{10mm}
 
@@ -2020,24 +2056,30 @@
         \end{titlepage}
       }
       {4} {
-        \make_graduate_cover:
+        \__bithesis_make_graduate_cover:
       }
       {5} {
-        \make_graduate_cover:
+        \__bithesis_make_graduate_cover:
       }
     }
     \group_end:
     \end{blindPeerReview}
   }
-\NewDocumentCommand \MakeOriginality {}
+\NewDocumentCommand \MakeOriginality { O{} }
   {
     \group_begin:
+    % 解析传入参数
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+    \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
     \begin{blindPeerReview}[\l__bithesis_cover_hide_cover_in_peer_review_bool]
       \int_case:nn {\g__bithesis_thesis_type_int}
       {
         {1}
         {
-          \currentpdfbookmark{声明}{frontmatter:originality}
+          \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+            \currentpdfbookmark{声明}{pre-frontmatter:originality}
+          }
           \pagestyle{BIThesis}
           \pagenumbering{gobble}
 
@@ -2085,7 +2127,9 @@
           \newpage
         }
         {3} {
-          \currentpdfbookmark{Statements}{frontmatter:originality}
+          \bool_if:NT \l__bithesis_internal__pre_frontmatter__bookmarked_bool {
+            \currentpdfbookmark{Statements}{pre-frontmatter:originality}
+          }
           \pagestyle{BIThesis}
           \pagenumbering{gobble}
 
@@ -2136,7 +2180,7 @@
     \end{blindPeerReview}
     \group_end:
   }
-\NewDocumentCommand \MakePaperBack {}
+\NewDocumentCommand \MakePaperBack { O{} }
   {
     % 上下各留出规定的边距,到下一页再恢复。
     % 若标题超长,自然会向上下溢出。
@@ -2149,15 +2193,29 @@
       vmargin = 5cm,
     }
     \begin{blindPeerReview}[\l__bithesis_cover_hide_cover_in_peer_review_bool]
-      \make_paper_back:
+      \group_begin:
+      % 解析传入参数
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
+      \__bithesis_make_paper_back:
+
+      \group_end:
     \end{blindPeerReview}
     \restoregeometry
   }
-\NewDocumentCommand \MakeTitle {}
+\NewDocumentCommand \MakeTitle { O{} }
   {
     \begin{blindPeerReview}[\l__bithesis_cover_hide_cover_in_peer_review_bool]
+      \group_begin:
+      % 解析传入参数
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { bookmarked = true }
+      \keys_set:nn { bithesis-internal / pre-frontmatter } { #1 }
+
       \__bithesis_make_chinese_title_page:
       \__bithesis_make_english_title_page:
+
+      \group_end:
     \end{blindPeerReview}
   }
 \DeclareDocumentCommand \MakeTOC {}
@@ -2172,9 +2230,7 @@
       % 自定义目录样式
       \cs_set:Npn \contentsname {
         \fontsize{16pt}{\baselineskip}
-        \l__bithesis_unnumchapter_style_cs:n
-          \l__bithesis_title_font_cs:n
-            {\l__bithesis_toc_title_tl}
+        { \__bithesis_unnumchapter_style: \__bithesis_title_font: \l__bithesis_toc_title_tl }
         \vspace{-8pt}
       }
 
@@ -2269,7 +2325,8 @@
         \centering
         \vspace*{-2bp}
 
-        \l__bithesis_title_font_cs:n {
+        {
+          \__bithesis_title_font:
           \zihao{3}\textbf
           \l__bithesis_value_title_en_tl\\
         }
@@ -2320,17 +2377,25 @@
     \newpage
   }
 
-\NewDocumentEnvironment {conclusion} {}
+\NewDocumentEnvironment {conclusion} { O{} }
   {
+    \group_begin:
+    % 解析传入参数
+    \keys_set:nn { bithesis-internal / conclusion } {
+      title = \__bithesis_if_thesis_english:TF {
+        \c__bithesis_label_conclusion_en_tl
+      } {
+        \c__bithesis_label_conclusion_tl
+      },
+    }
+    \keys_set:nn { bithesis-internal / conclusion } { #1 }
+
     \ctexset{
       section/number = \arabic{section}
     }
 
-    \__bithesis_if_thesis_english:TF {
-      \chapter{\c__bithesis_label_conclusion_en_tl}
-    } {
-      \chapter{\c__bithesis_label_conclusion_tl}
-    }
+    \chapter{\l__bithesis_internal__conclusion__title_tl}
+    \group_end:
   }
   {}
 \NewDocumentEnvironment {bibprint} {}
@@ -2659,7 +2724,7 @@
         \l__bithesis_publications_minbibnames_int
       }
 
-      \chapter{\__bithesis_get_const:N {publications}}
+      \chapter{\__bithesis_get_const:n {publications}}
       #1
     \end{blindPeerReview}
   }
@@ -2676,7 +2741,7 @@
         subsection/number = \arabic{section}. \arabic{subsection},
         subsubsection/number = \arabic{section}. \arabic{subsection}. \arabic{subsubsection},
       }
-      \chapter{\__bithesis_get_const:N{resume}}
+      \chapter{\__bithesis_get_const:n {resume}}
       #1
     \end{blindPeerReview}
   }
@@ -2686,9 +2751,9 @@
 \NewDocumentEnvironment {symbols} {}
   {
     \bool_if:NTF \l__bithesis_add_symbols_to_toc_bool {
-      \chapter{\__bithesis_get_const:N {symbols}}
+      \chapter{\__bithesis_get_const:n {symbols}}
     } {
-      \chapter*{\__bithesis_get_const:N {symbols}}
+      \chapter*{\__bithesis_get_const:n {symbols}}
       \currentpdfbookmark{\c__bithesis_label_symbols_tl}{ch:symbols}
     }
     \zihao{-4}

Modified: trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls	2025-04-17 15:04:23 UTC (rev 74967)
+++ trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls	2025-04-17 19:24:48 UTC (rev 74968)
@@ -27,7 +27,7 @@
 %% 
 \RequirePackage{expl3,l3keys2e}
 \ProvidesExplClass{bitreport}
-{2025-04-08}{3.8.3}{BIT Thesis Templates}
+  {2025-04-18} {3.8.4} {BIT Thesis Templates}
 \int_new:N \g__bithesis_report_type_int
 \clist_const:Nn \c__bithesis_report_type_clist
     { common, undergraduate_proposal}
@@ -108,7 +108,7 @@
 }
 \cs_new:Npn \__bithesis_render_cover_entry:nn #1#2 {
   \makebox[\l__bithesis_cover_label_max_width_dim][\l__bithesis_cover_label_align_tl]{
-    \tl_if_blank:VTF #1 {} {#1\l__bithesis_cover_delimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1}
   }
   \hspace{1ex}
   \__bithesis_dunderline:nnn{\l__bithesis_cover_underline_offset_dim}{\l__bithesis_cover_underline_thickness_dim}{
@@ -134,14 +134,20 @@
         }
     \group_end:
   }
-\cs_new:Npn \__bithesis_parse_entry #1 #2 {
-  \seq_set_split:Nnx \l__bithesis_tmp_right_seq {\\} {#2}
+\cs_new:Npn \__bithesis_parse_entry:nn #1 #2 {
   \seq_clear:N \l__bithesis_tmp_left_seq
-  \seq_map_inline:Nn \l__bithesis_tmp_right_seq {
-    \seq_put_right:Nn \l__bithesis_tmp_left_seq {}
+  \seq_clear:N \l__bithesis_tmp_right_seq
+
+  % 只处理 value 非空的项
+  \tl_set:Nn \l_tmpa_tl {#2}
+  \tl_if_empty:xTF \l_tmpa_tl {} {
+    \seq_set_split:Nnx \l__bithesis_tmp_right_seq {\\} {#2}
+    \seq_map_inline:Nn \l__bithesis_tmp_right_seq {
+      \seq_put_right:Nn \l__bithesis_tmp_left_seq {}
+    }
+    \seq_put_left:Nn \l__bithesis_tmp_left_seq {#1\l__bithesis_cover_delimiter_tl}
+    \seq_pop_right:NN \l__bithesis_tmp_left_seq \g__bithesis_trashcan_tl
   }
-  \seq_put_left:Nn \l__bithesis_tmp_left_seq {#1}
-  \seq_pop_right:NN \l__bithesis_tmp_left_seq \g__bithesis_trashcan_tl
 }
 \cs_new:Npn \__bithesis_render_cover_entry:n #1 {
   % 左边是标签,右边是值。
@@ -155,7 +161,7 @@
     % label - value 对。
     % 比如 {label_1} {value \\ 1} 会被转换成
     % { {label_1} {value}, {} {1} }
-    \__bithesis_parse_entry ##1
+    \__bithesis_parse_entry:nn ##1
     % 然后将这些 label - value 对添加到 \l__bithesis_right_seq
     % 或者 \l__bithesis_left_sql 中。
     % left 就是 label,right 就是 value。
@@ -177,9 +183,7 @@
       {
         \seq_pop_left:NN \l__bithesis_left_seq \l__bithesis_tmpa_tl
         \seq_pop_left:NN \l__bithesis_right_seq \l__bithesis_tmpb_tl
-        \tl_if_empty:xTF \l__bithesis_tmpb_tl {} {
-          \__bithesis_render_cover_entry:nn {\l__bithesis_tmpa_tl} {\l__bithesis_tmpb_tl}
-        }
+        \__bithesis_render_cover_entry:nn {\l__bithesis_tmpa_tl} {\l__bithesis_tmpb_tl}
       }
   \group_end:
 }



More information about the tex-live-commits mailing list.