Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/tl_packages
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ float
adjustbox # indirect
alphalph # indirect
awesomebox
cleveref
csquotes # indirect
csvsimple # indirect
framed
Expand Down
43 changes: 40 additions & 3 deletions bithesis.dtx
Original file line number Diff line number Diff line change
Expand Up @@ -1749,9 +1749,8 @@
\setlength{\abovecaptionskip}{11pt}

% 调整表格 caption 和表格本体间的距离。
\@@_if_thesis_english:TF {
% 英文模板缺乏规定,只调整中文模板
} {
% 英文模板缺乏规定,只调整中文模板
\@@_if_thesis_english:F {
% 本来默认有一定空隙,现改为紧贴,这样更接近Word模板实作。
\captionsetup[table]{skip=5pt}
}
Expand Down Expand Up @@ -1894,12 +1893,50 @@
% equation
\cs_set:Npn \theequation {\thechapter\g_@@_label_divide_char_tl\arabic{equation}}

% 适配 cleveref 宏包
% 在 AtBeginDocument 之外,保证最终作者可以覆写
\ctex_at_end_package:nn {cleveref} {
% cleveref 支持同一处引用多个标签,英文涉及单复数两个值;
% 而 BITSetup 主要为中文设计,接口只允许一个值,无法简单套用到英文。
% 再考虑到我校缺乏英文规范,我们干脆只给中文适配,英文沿用 cleveref 默认,最终作者有需要可以覆写。
\@@_if_thesis_english:F {
% “第……”格式在编号后有字,autoref 无法可靠设置,BITSetup 也难以预留接口
\crefformat{chapter}{第~#2#1#3~章}
\crefformat{section}{第~#2#1#3~节}
\crefformat{subsection}{第~#2#1#3~小节}
\crefformat{subsubsection}{第~#2#1#3~小节}
% 普通格式沿用 autoref 设置
\crefname{figure}{\figureautorefname}{\figureautorefname}
\crefname{table}{\tableautorefname}{\tableautorefname}
\crefname{listing}{\c_@@_label_code_tl}{\c_@@_label_code_tl}
\crefname{algorithm}{\l_@@_misc_autoref_algo_tl}{\l_@@_misc_autoref_algo_tl}
\crefname{algo}{\l_@@_misc_autoref_algo_tl}{\l_@@_misc_autoref_algo_tl}
\crefname{them}{\themautorefname}{\themautorefname}
\crefname{lem}{\lemautorefname}{\lemautorefname}
\crefname{prop}{\propautorefname}{\propautorefname}
\crefname{cor}{\corautorefname}{\corautorefname}
\crefname{axi}{\axiautorefname}{\axiautorefname}
\crefname{defn}{\defnautorefname}{\defnautorefname}
\crefname{conj}{\conjautorefname}{\conjautorefname}
\crefname{exmp}{\exmpautorefname}{\exmpautorefname}
\crefname{case}{\caseautorefname}{\caseautorefname}
\crefname{rem}{\remautorefname}{\remautorefname}
% 同一处引用多个公式较为常见,专门适配
% #2、#3 标识的链接范围不可包含括号,否则影响标点挤压。
\crefformat{equation}{\equationautorefname(#2#1#3)}
\crefrangeformat{equation}{\equationautorefname(#3#1#4)至(#5#2#6)}
\crefmultiformat{equation}{\equationautorefname(#2#1#3)}{和(#2#1#3)}{、(#2#1#3)}{和(#2#1#3)}
}
}

% code snippet
\AtBeginDocument{
\cs_gset:Npn \thelstlisting {\thechapter\g_@@_label_divide_char_tl\arabic{lstlisting}}
\cs_gset:Npn \lstlistingname {\c_@@_label_code_tl}

% 定义算法标题
% 针对模板的 algo 环境
\tl_set:Nn \algoautorefname {\l_@@_misc_autoref_algo_tl}
% 针对 algorithm 宏包
\tl_set:Nn \ALG@name {\l_@@_misc_autoref_algo_tl}
% 针对 algorithm2e 宏包
Expand Down
6 changes: 3 additions & 3 deletions handbook/chapters/ch0-quick-start.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ \chapter{快速使用指南}
\textbf{本章将通过多个小节,介绍如何快速
成功编译出一份符合学校要求的毕业论文。}

其中,\autoref{sec:local-compile}介绍在本地电脑上编译生成 PDF;
\autoref{sec:overleaf-compile}介绍在 Overleaf(浏览器)上编译生成 PDF。这两种方法相互独立,你可以根据喜好自行选择其中一种。
其中,\cref{sec:local-compile}介绍在本地电脑上编译生成 PDF;
\cref{sec:overleaf-compile}介绍在 Overleaf(浏览器)上编译生成 PDF。这两种方法相互独立,你可以根据喜好自行选择其中一种。

\section{方法一:在本地电脑上编译生成 PDF}
\label{sec:local-compile}
Expand Down Expand Up @@ -94,7 +94,7 @@ \section{方法二:在 Overleaf(浏览器)上编译生成 PDF}
\vspace{\fill}
\subsection{注册 Overleaf 账号}

访问 \href{https://cn.overleaf.com}{overleaf.com}(如\autoref{fig:overleaf-register}所示),点击右上角的 ``Register'' 按钮,注册账号并登录。
访问 \href{https://cn.overleaf.com}{overleaf.com}(如\cref{fig:overleaf-register}所示),点击右上角的 ``Register'' 按钮,注册账号并登录。

\begin{figure}[H]
\begin{center}
Expand Down
12 changes: 6 additions & 6 deletions handbook/chapters/ch1-intro.tex
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ \section{为何需要这么多步骤,我该如何开始?}
\section{在自己的电脑上编写论文}

\textit{
\autoref{sec:local-compile}介绍了如何安装 TeX Live(一些工具)和 TeXstudio(文本文件编辑器)。
若您已正常得到PDF,可直接跳到\autoref{sec:using-bithesis}编写论文。
\cref{sec:local-compile}介绍了如何安装 TeX Live(一些工具)和 TeXstudio(文本文件编辑器)。
若您已正常得到PDF,可直接跳到\cref{sec:using-bithesis}编写论文。
}

在这里,我们将在自己的电脑上配置安装撰写 \LaTeX{} 的相关工具。首先,我们搞定
Expand All @@ -67,8 +67,8 @@ \section{在自己的电脑上编写论文}

\textit{
到此,我们其实就可以直接使用本模板,在自己的电脑上进行论文的编写了。如果想再了解
有关在线编辑平台 Overleaf 的相关内容,请继续阅读\autoref{sec:online-overleaf};
否则,大家可以直接跳转到\autoref{sec:using-bithesis},了解模板的使用方法。
有关在线编辑平台 Overleaf 的相关内容,请继续阅读\cref{sec:online-overleaf};
否则,大家可以直接跳转到\cref{sec:using-bithesis},了解模板的使用方法。
}

\section{本地编译与在线平台,我该使用哪一个?}
Expand Down Expand Up @@ -96,15 +96,15 @@ \section{本地编译与在线平台,我该使用哪一个?}
\section{如何将自己电脑上的论文转到 Overleaf}

\textit{
\autoref{sec:overleaf-compile}介绍了如何从 \href{https://bithesis.bitnp.net}{BIThesis.bitnp.net} 新建项目,那样通常更简单;不过若您已在本地用了模板,想转到 Overleaf,请参考此节。
\cref{sec:overleaf-compile}介绍了如何从 \href{https://bithesis.bitnp.net}{BIThesis.bitnp.net} 新建项目,那样通常更简单;不过若您已在本地用了模板,想转到 Overleaf,请参考此节。
}

\begin{enumerate}
\item 按网页提示上传文件到 Overleaf,注意\textbf{避免嵌套文件夹}。

(原因:嵌套文件夹可能导致无法统计字数;不过不影响编译。)

参考\autoref{fig:overleaf-recompile},文件 \texttt{main.tex}、文件夹 \texttt{chapters/} 等在根目录,而没有嵌套在 \isGraduateTF{\texttt{graduate-thesis/}}{\texttt{undergraduate-thesis/}} 文件夹中。若您已嵌套,可到左侧文件列表单击再拖动来移动文件。
参考\cref{fig:overleaf-recompile},文件 \texttt{main.tex}、文件夹 \texttt{chapters/} 等在根目录,而没有嵌套在 \isGraduateTF{\texttt{graduate-thesis/}}{\texttt{undergraduate-thesis/}} 文件夹中。若您已嵌套,可到左侧文件列表单击再拖动来移动文件。

详细操作如下。访问 \href{https://cn.overleaf.com/project}{overleaf.com/project},单击左上角\texttt{New Project},然后有下面两种方法。

Expand Down
2 changes: 1 addition & 1 deletion handbook/chapters/ch2-template-usage.tex
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ \subsubsection{公式和图表引用}

交叉引用的前提是需要在定义章节、公式和图表的时候都对其进行命名标签
(即\label{sec:labelName} 命令),在实际使用过程中通过标签进行引用。根据引用
的特点可以将应用分成\autoref{tab:setSection}中所示三类。
的特点可以将应用分成\cref{tab:setSection} 中所示三类。

\begin{table}[htb]
\centering
Expand Down
30 changes: 15 additions & 15 deletions handbook/chapters/ch3-latex-syntax.tex
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ \subsection{公式及术语表}

为方便,可用 \href{https://www.latexlive.com/}{latexlive.com} 等网站\textbf{在线编辑}公式,或用 \href{https://mathpix.com/snipping-tool}{Mathpix Snipping Tool} 等\textbf{从图片转换}。一般的\LaTeX{}编辑器如 TeXstudio 也都会提供语法补全。

{\bf{实例1:}} 以下是L-B非稳态流动升力模型,公式引用为\autoref{eqn:LBmodel}。该公式的术语列表见\autoref{tab:LB-parameters}。
{\bf{实例1:}} 以下是L-B非稳态流动升力模型,公式引用为\cref{eqn:LBmodel}。该公式的术语列表见\cref{tab:LB-parameters}。
\begin{equation}
\label{eqn:LBmodel}
C_{L} = C_{L0} + C_{L \alpha} \left( \frac{1+\sqrt{X}}{2} \right) \alpha
Expand Down Expand Up @@ -81,7 +81,7 @@ \subsection{定理环境}
卷绕数是一个整数,它描述了曲线$\gamma$绕过点$a_k$的次数。如果$\gamma$依逆时针方向绕着$a_k$移动,卷绕数就是一个正数,
如果$\gamma$根本不绕过$a_k$,卷绕数就是零。

\autoref{thm:res}的证明。
\cref{thm:res} 的证明。

\begin{proof}
首先,由……
Expand Down Expand Up @@ -124,7 +124,7 @@ \subsection{支持的图片格式}

在学位论文中,插图地使用简单地分为两类:单列图片和多列图片。图片的格式包含*.jpg、*.eps、*.pdf,既可以是位图也可以是矢量图,在插入图片时可以定义其高度和宽度。

最基本的图片插入示例可见\autoref{fig:diagram},其代码如\autoref{demo-figure1}所示。
最基本的图片插入示例可见\cref{fig:diagram},其代码如\cref{raw:demo-figure1} 所示。

其中\verb+\centering+表示图片居中,\verb+\includegraphics[…]{…}+导入图片并指定图片大小,\verb+\caption{}+指定图片标题,而\verb+\label{…}+为图片加上引用标签。

Expand All @@ -134,15 +134,15 @@ \subsection{支持的图片格式}
\caption{单张图片插入的基本示例}\label{fig:diagram}
\end{figure}

\begin{lstlisting}[language={[LaTeX]TeX}, caption={示例插图代码}, label=demo-figure1]
\begin{lstlisting}[language={[LaTeX]TeX}, caption={示例插图代码}, label=raw:demo-figure1]
\begin{figure}
\centering
\includegraphics[width=0.75\textwidth]{example-image}
\caption{单张图片插入的基本示例}\label{fig:diagram}
\end{figure}
\end{lstlisting}

插入两幅图片的例子如\autoref{fig:png-jpg}所示。
插入两幅图片的例子如\cref{fig:png-jpg} 所示。
这两个水平并列放置的图共享一个“图标题”(table caption),没有各自的小标题。

\begin{figure}
Expand Down Expand Up @@ -170,7 +170,7 @@ \subsection{支持的图片格式}
\subsection{长标题的换行}
\label{sec:longcaption}

\autoref{fig:longcaptionbad}和\autoref{fig:longcaptiongood}的标题都比较长。对比可发现\autoref{fig:longcaptiongood}的标题换行效果更好一些,
\cref{fig:longcaptionbad} 和\cref{fig:longcaptiongood} 的标题都比较长。对比可发现\cref{fig:longcaptiongood} 的标题换行效果更好一些,
它使用了minipage环境来限制整个浮动体的宽度。

不过在实际使用中,你可以根据排版的整体效果来自行决定。
Expand Down Expand Up @@ -216,11 +216,11 @@ \section{表格的例子}

表格的定义和引用就不多做介绍,表格内容包含在 \verb+\begin{table}+ 和 \verb+\end{table}+ 之间。这里给出一些表格的例子。

\textbf{\href{https://www.tablesgenerator.com/}{Tables Generator}可以用于在线生成表格}
\textbf{\href{https://www.tablesgenerator.com/}{Tables Generator} 可以用于在线生成表格}

先以模板示例中第一章的\autoref{tab:category}为例,插入代码为\autoref{demo-table1}所示。
先以模板示例中第一章的\cref{tab:category} 为例,插入代码为\cref{raw:demo-table1} 所示。

\begin{lstlisting}[language={[LaTeX]TeX}, caption={示例插表代码}, label=demo-table1]
\begin{lstlisting}[language={[LaTeX]TeX}, caption={示例插表代码}, label=raw:demo-table1]
\begin{table}
\centering
\caption{水系聚氨酯分类} \label{tab:category}
Expand Down Expand Up @@ -252,7 +252,7 @@ \section{表格的例子}
\end{tabular*}
\end{table}

另举一个两列的表格例子(\autoref{tab:LB-parameters}以及\autoref{demo-table2})。
另举一个两列的表格例子(\cref{tab:LB-parameters} 以及\cref{raw:demo-table2})。

\begin{table} % no placement specified: defaults to here, top, bottom, page
\centering
Expand All @@ -273,7 +273,7 @@ \section{表格的例子}
\end{center}
\end{table}

\begin{lstlisting}[language={[LaTeX]TeX}, caption={插入\autoref{tab:LB-parameters}}, label=demo-table2]
\begin{lstlisting}[language={[LaTeX]TeX}, caption={插入\cref{tab:LB-parameters}}, label=raw:demo-table2]
\begin{table}
\centering
\begin{center}
Expand All @@ -293,7 +293,7 @@ \section{表格的例子}
\end{table}
\end{lstlisting}

再给出一些表格的例子,如\autoref{tab:firstone}、\autoref{demo-table3}所示。
再给出一些表格的例子,如\cref{tab:firstone}、\cref{raw:demo-table3} 所示。

\begin{table}
\centering
Expand All @@ -310,7 +310,7 @@ \section{表格的例子}
\end{tabular}
\end{table}

\begin{lstlisting}[language={[LaTeX]TeX}, caption={三线表格}, label=demo-table3]
\begin{lstlisting}[language={[LaTeX]TeX}, caption={三线表格}, label=raw:demo-table3]
\begin{table}
\centering
\caption{一个标准的三线表格}
Expand Down Expand Up @@ -345,9 +345,9 @@ \subsection{将参考文献的内容与表现分离}
.bib数据库中的参考文献条目可以手动编写,也可以在Google的学术搜索中找到。
各大数据库也支持将参考文献信息导出为.bib,省时省力。
以Google学术搜索为例:在搜索结果中,单击“引用 → BibTeX”链接,
浏览器会打开新的标签页,出现类似\autoref{googlescholar}所示的内容。
浏览器会打开新的标签页,出现类似\cref{raw:googlescholar} 所示的内容。

\begin{lstlisting}[caption={从Google Scholar找到的,但并不规范的.bib条目}, label=googlescholar, float, escapeinside="", numbers=none]
\begin{lstlisting}[caption={从Google Scholar找到的,但并不规范的.bib条目}, label=raw:googlescholar, float, escapeinside="", numbers=none]
@article{张玲2000信用风险评估方法发展趋势,
title={信用风险评估方法发展趋势},
author={张玲 and 张佳林},
Expand Down
12 changes: 5 additions & 7 deletions handbook/main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,11 @@

\addbibresource{reference/main.bib}

\usepackage{hyperref}
% https://bithesis.bitnp.net/faq/autoref-name.html
\def\figureautorefname~#1\null{图~#1~\null}
\def\chapterautorefname~#1\null{第~#1~章\null}
\def\sectionautorefname~#1\null{第~#1~节\null}
\def\subsectionautorefname~#1\null{第~#1~节\null}
\def\equationautorefname~#1\null{式~(#1)~\null}
\usepackage{cleveref}
% https://bithesis.bitnp.net/faq/cleveref.html#customize
\crefformat{equation}{式~#2(#1)#3}
\crefrangeformat{equation}{式~#3(#1)#4 至~#5(#2)#6}
\crefmultiformat{equation}{式~#2(#1)#3}{和~#2(#1)#3}{、#2(#1)#3}{和~#2(#1)#3}

\ExplSyntaxOn

Expand Down
Loading