texlive[72491] Master/texmf-dist: bithesis (7oct24)

commits+mseven at tug.org commits+mseven at tug.org
Tue Oct 8 03:31:04 CEST 2024


Revision: 72491
          https://tug.org/svn/texlive?view=revision&revision=72491
Author:   mseven
Date:     2024-10-08 03:31:03 +0200 (Tue, 08 Oct 2024)
Log Message:
-----------
bithesis (7oct24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/bithesis/README.md
    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

Modified: trunk/Master/texmf-dist/doc/latex/bithesis/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bithesis/README.md	2024-10-08 01:22:18 UTC (rev 72490)
+++ trunk/Master/texmf-dist/doc/latex/bithesis/README.md	2024-10-08 01:31:03 UTC (rev 72491)
@@ -10,7 +10,7 @@
 [![Latexmk](https://badgen.net/badge/compiler/latexmk/blue)](https://mg.readthedocs.io/latexmk.html)
 [![License](https://badgen.net/github/license/BITNP/BIThesis?color=008080&labelColor=2b2b2b)](./LICENSE)
 
-BIThesis is an unofficial LaTeX template set for your 
+BIThesis is an unofficial LaTeX template set for your
 **undergraduate, master, or doctoral thesis** as well as other academic writing here at BIT.
 
 This project is supported by the _[Dept. of Undergraduate Academic Affairs, BIT](https://jwb.bit.edu.cn/)_ and the _[School of Computer Science and Technology, BIT](https://cs.bit.edu.cn/)_. See [Acknowledgements - Official Sponsors](https://bithesis.bitnp.net/guide/acknowledgements.html#%E5%AE%98%E6%96%B9%E8%B5%9E%E5%8A%A9-official-sponsors).
@@ -40,4 +40,3 @@
 ## Contributors
 
 For more information, please see: [GitHub Contributors](https://github.com/BITNP/BIThesis/graphs/contributors) and [Acknowledgements](https://bithesis.bitnp.net/guide/acknowledgements.html).
-

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	2024-10-08 01:22:18 UTC (rev 72490)
+++ trunk/Master/texmf-dist/source/latex/bithesis/bithesis.dtx	2024-10-08 01:31:03 UTC (rev 72491)
@@ -21,10 +21,10 @@
 %<thesis>\ProvidesExplClass{bithesis}
 %<report>\ProvidesExplClass{bitreport}
 %<beamer>\ProvidesExplClass{bitbeamer}
-%<cls>{2024-05-30}{3.7.9}{BIT Thesis Templates}
+%<cls>{2024-10-07}{3.8.0}{BIT Thesis Templates}
 %
 %<*driver>
-\ProvidesFile{bithesis.dtx}[2024/05/30 3.7.9 BIT Thesis Templates]
+\ProvidesFile{bithesis.dtx}[2024/10/07 3.8.0 BIT Thesis Templates]
 \documentclass[letterpaper]{l3doc}
 \usepackage{dtx-style}
 
@@ -66,7 +66,7 @@
 %
 % 定义全局变量。
 % \begin{variable}{\g_@@_thesis_type_int}
-% 论文类型,取值从 1 开始,分别对应: 
+% 论文类型,取值从 1 开始,分别对应:
 %  \begin{enumerate}
 %      \item 本科生毕业设计(论文)
 %      \item 本科生毕业设计(论文)外文翻译
@@ -160,7 +160,7 @@
 %
 % \end{macro}
 %
-% \begin{macro}[added=2023-03-16]{\@@_get_const:}
+% \begin{macro}[added=2023-03-16]{\@@_get_const:N}
 % 获取标题、章节、表格、图形等的常量名称。
 % 会区别英文模式和中文模式。
 %   \begin{macrocode}
@@ -216,7 +216,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_if_thesis_int_type:nTF #1#2#3 {\int_compare:nNnTF {\g_@@_thesis_type_int} = {#1} {#2} {#3}}
 \cs_new:Npn \@@_if_thesis_int_type:nT #1#2 {\@@_if_thesis_int_type:nTF {#1} {#2} {}}
-\cs_new:Npn \__bithesis_if_thesis_int_type:nF #1#2 {\__bithesis_if_thesis_int_type:nTF {#1} {} {#2}}
+\cs_new:Npn \@@_if_thesis_int_type:nF #1#2 {\@@_if_thesis_int_type:nTF {#1} {} {#2}}
 %    \end{macrocode}
 % \end{macro}
 
@@ -260,7 +260,7 @@
 \cs_new_protected:Npn \@@_define_label:nn #1#2
   { \tl_const:cn { c_@@_label_ #1 _tl } {#2} }
 
-\cs_new_protected:Npn \@@_define_label_by_thesis_type:nnn #1#2#3 
+\cs_new_protected:Npn \@@_define_label_by_thesis_type:nnn #1#2#3
   {
     \tl_const:cn { c_@@_ #1 _label_ #2 _tl } {#3}
   }
@@ -370,9 +370,9 @@
     \circled{2}~学校可以采用影印、缩印或其它复制手段复制并保存本毕业设计(论文);
     \circled{3}~学校可允许本毕业设计(论文)被查阅或借阅;\circled{4}~学校可以学术交流为目的,
     复制赠送和交换本毕业设计(论文);\circled{5}~学校可以公布本毕业设计(论文)的全部或部分内容。},
-    {originality_author_signature} 
+    {originality_author_signature}
       {本人签名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{13mm}年\hspace{8mm}月\hspace{8mm}日},
-    {originality_supervisor_signature} 
+    {originality_supervisor_signature}
       {指导老师签名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{13mm}年\hspace{8mm}月\hspace{8mm}日},
   } {\@@_define_label_by_thesis_type:nnn {bachelor} #1}
 %    \end{macrocode}
@@ -388,7 +388,7 @@
         本人郑重声明:所呈交的毕业设计(论文),
         是本人在指导老师的指导下独立进行研究所取得的成果。除文中已经注明引用的内容外,
         本文不包含任何其他个人或集体已经发表或撰写过的研究成果。
-        对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。特此申明。\par 
+        对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。特此申明。\par
         \arialfamily I,\dunderline[-1pt]{1pt}{\makebox[18mm]{}},~solemnly~
         declare:~the~submitted~graduation~design~(thesis),~
         is~the~research~achievement~completed~independently~by~myself~
@@ -441,9 +441,9 @@
 \par~\circled{3}~学校可允许学位论文被查阅或借阅;
 \par~\circled{4}~学校可以学术交流为目的,复制赠送和交换学位论文;
 \par~\circled{5}~学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。},
-    {originality_author_signature} 
+    {originality_author_signature}
       {签\qquad 名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{30mm}\quad},
-    {originality_supervisor_signature} 
+    {originality_supervisor_signature}
       {导师签名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{30mm}\quad},
   } {\@@_define_label_by_thesis_type:nnn {graduate} #1}
 %    \end{macrocode}
@@ -458,7 +458,7 @@
     {school} {学\quad 院\quad 名\quad 称} {School~or~Department},
     {supervisor} {指\quad 导\quad 教\quad 师} {Faculty~Mentor},
     {chairman} {答辩委员会主席} {Chair,~Thesis~Committee},
-    {degree} 
+    {degree}
       {申\quad 请\quad 学\quad 位}
       {Degree~Applied},
     {major} {学\quad 科\hspace{0.8ex} / \hspace{0.8ex}  类\quad 别} {Major},
@@ -475,7 +475,7 @@
 % \begin{variable}{\c_@@_label_xxx_tl,\c_@@_label_xxx_en_tl}
 % 常用的中英常量。
 %    \begin{macrocode}
-\clist_map_inline:nn 
+\clist_map_inline:nn
   {
     {school} {学\qquad 院} {School},
     {major} {专\qquad 业} {Degree},
@@ -491,14 +491,16 @@
     {toc} {目\label_space: 录} {Table~of~Contents},
     {abstract} {摘\label_space: 要} {Abstract},
     {conclusion} {结\label_space: 论} {Conclusions},
+    % 附录部分的总标题
     {appendix} {附\label_space: 录} {Appendices},
-    {ack} {致\label_space: 谢} {Acknowledgement},
+    {ack} {致\label_space: 谢} {Acknowledgements},
     {figure} {插\label_space: 图} {Illustrations},
     {table} {表\label_space: 格} {Tables},
+    % 附录下各部分编号的前缀
     {appendix_prefix} {附录} {Appendix},
     {reference} {参考文献} {References},
     {university} {北京理工大学} {Beijing~Institute~of~Technology},
-    {publications} {攻读学位期间发表论文与研究成果清单} 
+    {publications} {攻读学位期间发表论文与研究成果清单}
       {Publications~During~Studies},
     % TODO: Not so sure about the translation.
     {resume} {作者简介} {Author~Biography},
@@ -527,8 +529,8 @@
 %    \begin{macrocode}
 \clist_const:Nn \c_@@_bachelor_thesis_header_clist
   {
-    北京理工大学本科生毕业设计(论文), 
-    北京理工大学本科生毕业设计(论文)外文翻译, 
+    北京理工大学本科生毕业设计(论文),
+    北京理工大学本科生毕业设计(论文)外文翻译,
     Beijing~Institute~of~Technology~Bachelor's~Thesis,
     北京理工大学硕士学位论文,
     北京理工大学博士学位论文,
@@ -568,8 +570,8 @@
   type .value_required:n = true,
   type .choices:Vn =
     \c_@@_thesis_type_clist
-    { 
-      \int_set_eq:NN \g_@@_thesis_type_int \l_keys_choice_int 
+    {
+      \int_set_eq:NN \g_@@_thesis_type_int \l_keys_choice_int
       \int_case:nn {\l_keys_choice_int} {
         % 本科全英文也是英文模板。
         {3} {\@@_set_english_mode:}
@@ -598,7 +600,7 @@
     xiheiFont .tl_set:N = \l_@@_cover_xihei_font_path_tl,
     xiheiFont .default:n = {STXihei},
     %% cover entry
-    dilimiter .tl_set:N = \l_@@_cover_dilimiter_tl,
+    delimiter .tl_set:N = \l_@@_cover_delimiter_tl,
     labelAlign .tl_set:N = \l_@@_cover_label_align_tl,
     labelAlign .initial:n = {r},
     valueAlign .tl_set:N = \l_@@_cover_value_align_tl,
@@ -614,10 +616,20 @@
     underlineOffset .dim_set:N = \l_@@_cover_underline_offset_dim,
     underlineOffset .initial:n = { -10pt },
     hideCoverInPeerReview .bool_set:N = \l_@@_cover_hide_cover_in_peer_review_bool,
+    % 此处暂且填充默认值为`false`,待确定`\g_@@_thesis_type_int`后再根据论文类型覆盖默认值
     hideCoverInPeerReview .initial:n = {false},
     % 研究生的「特殊类型」
     showSpecialTypeBox .bool_set:N = \l_@@_cover_show_special_type_box_bool,
-    showSpecialTypeBox .initial:n = {false}
+    showSpecialTypeBox .initial:n = {false},
+    % 本科英文模板也可以使用中文封面
+    prefer-zh .bool_set:N = \l_@@_cover_prefer_zh_bool,
+    prefer-zh .initial:n = {false},
+    % 本科英文模板使用中文封面时可能需要调换中英文标题顺序
+    reverse-titles .bool_set:N = \l_@@_cover_reverse_titles_bool,
+    reverse-titles .initial:n = {false},
+    % 本科英文模板可加入中文标题
+    addTitleZh .bool_set:N = \l_@@_cover_add_titlezh_bool,
+    addTitleZh .initial:n = {true},
   }
 %    \end{macrocode}
 %
@@ -743,7 +755,7 @@
     tabularRowSeparation .initial:n = {1},
   }
 %    \end{macrocode}
-%    
+%
 % 定义 |bithesis/const| 键值对类。
 %    \begin{macrocode}
 \keys_define:nn { bithesis / const }
@@ -751,6 +763,7 @@
     autoref .meta:nn = { bithesis / const / autoref } { #1 },
     style .meta:nn = { bithesis / const / style } { #1 },
     info .meta:nn = { bithesis / const / info } { #1 },
+    heading .meta:nn = { bithesis / const / heading } { #1 },
   }
 \keys_define:nn { bithesis / const / autoref }
   {
@@ -803,6 +816,13 @@
       }
     },
   }
+\keys_define:nn { bithesis / const / heading }
+  {
+    acknowledgements .tl_set:N = \g_@@_const_heading_acknowledgements_tl,
+    acknowledgements .initial:n = {
+      \@@_get_const:N {ack}
+    },
+  }
 %    \end{macrocode}
 %
 % 定义 |bithesis/style| 键值对类。
@@ -825,6 +845,10 @@
       { \flushbottom }
   },
   pageVerticalAlign .initial:n = {top},
+  non-CJK-font-in-headings .choice:,
+  non-CJK-font-in-headings / serif .code:n = { \bool_set_false:N \l_@@_arial_as_title_font_bool },
+  non-CJK-font-in-headings / sans .code:n = { \bool_set_true:N \l_@@_arial_as_title_font_bool },
+  non-CJK-font-in-headings .initial:n = {serif},
   % 数学字体配置
   mathFont .choices:nn = {
     asana, bonum, cm, concrete, dejavu, erewhon, euler,
@@ -854,10 +878,16 @@
 %    \begin{macrocode}
 \keys_define:nn { bithesis / TOC }
 {
+  title .tl_set:N = \l_@@_toc_title_tl,
+  title .initial:n = {
+    \@@_get_const:N {toc}
+  },
   abstract .bool_set:N = \l_@@_add_abstract_to_toc_bool,
   abstract .initial:n = {true},
   abstractEn .bool_set:N = \l_@@_add_abstract_en_to_toc_bool,
   abstractEn .initial:n = {true},
+  TOC .bool_set:N = \l_@@_add_toc_to_toc_bool,
+  TOC .initial:n = {false},
   symbols .bool_set:N = \l_@@_add_symbols_to_toc_bool,
   symbols .initial:n = {true},
 }
@@ -879,7 +909,7 @@
 {
   % mode .choice:,
   % mode .value_required:n = true,
-  % mode .choices:Vn = 
+  % mode .choices:Vn =
   %   \c_@@_publication_modes_clist
   %   {
   %     \int_new:N \l_@@_publication_mode_int
@@ -896,11 +926,19 @@
   minbibnames .initial:n = {10},
 }
 %    \end{macrocode}
-% 在宏加载时,处理 |bithesis/option| 中的值。使得 |bithesis| 
+% 在宏加载时,处理 |bithesis/option| 中的值。使得 |bithesis|
 % 宏包的模板选项可以在宏加载时生效。
 %    \begin{macrocode}
 \ProcessKeysOptions { bithesis / option }
 %    \end{macrocode}
+% 确定 |bithesis/option| 中的 |\g_@@_thesis_type_int| 后,根据论文类型自动覆盖某些选项的默认值。
+%    \begin{macrocode}
+\@@_if_graduate:TF {
+  \keys_set:nn {bithesis} {cover/hideCoverInPeerReview = false}
+} {
+  \keys_set:nn {bithesis} {cover/hideCoverInPeerReview = true}
+}
+%    \end{macrocode}
 %
 % \subsubsection{处理模板选项}
 %
@@ -952,6 +990,9 @@
 \RequirePackage{geometry}
 \RequirePackage[table,xcdraw]{xcolor}
 \RequirePackage{xeCJK}
+% 恢复数学行距(restoremathleading),同时避免改变正文行距。
+% (ctex 默认 linespread 1.3 × LaTeX 默认倍数 1.2 = 1.56)
+\RequirePackage[bodytextleadingratio=1.56]{zhlineskip}
 \RequirePackage{titletoc}
 \RequirePackage{graphicx}
 \RequirePackage{fancyhdr}
@@ -980,12 +1021,12 @@
 % 抑制 \pkg{hyperref} 中对 |\hskip| 的 warning 信息。
 %    \begin{macrocode}
 \pdfstringdefDisableCommands{%
-  \let\quad\empty  
+  \let\quad\empty
 }
 %    \end{macrocode}
 %
 % 设置页眉字号,页边距。
-% 
+%
 % 需要注意的是,根据 \pkg{geometry} 的规则,
 % |headsep| 和 |footskip| 分别受到 |top| 与 |bottom| 的影响。
 % 所以你能看到在计算 |headsep| 与 |footskip| 时,我们
@@ -1040,7 +1081,7 @@
 %    \end{macrocode}
 %
 %  \subsubsection{定义字体相关选项}
-%  
+%
 % 设置 Times New Roman 字体。
 % 根据学校规范要求,默认情况下也使用 Times New Roman 字体。
 %    \begin{macrocode}
@@ -1073,7 +1114,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_load_unicode_math_pkg:}
 % 加载\pkg{unicode-math}宏包。
 %    \begin{macrocode}
@@ -1133,7 +1174,7 @@
 \cs_new:Npn \@@_load_math_font_cm: { }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_load_math_font_none:}
 % 数学字体配置 |none|。
 %    \begin{macrocode}
@@ -1173,28 +1214,27 @@
     {
       \hypersetup { hidelinks }
     } {
-      \definecolor{blue}{RGB}{10,10,110} 
+      \definecolor{blue}{RGB}{10,10,110}
       \hypersetup{
         colorlinks=true,
       }
     }
-  
-  \@@_if_thesis_english:TF {
+
+  \bool_if:NTF \l_@@_arial_as_title_font_bool {
+    % 手动指定时要加载 Arial
+    \newfontfamily\arialfamily{Arial}
+  } {
+    % 即使未指定,本科全英文专业模板的声明也需要 Arial
     \@@_if_thesis_int_type:nT {3} {
-      % 对于本科全英文专业模板
-      % Font Arial is needed.
       \newfontfamily\arialfamily{Arial}
     }
-
-  } {
-    % 对于其他的中文模板,
-    % 需要加载细黑体。
-    \tl_if_blank:VTF \l_@@_cover_xihei_font_path_tl {} 
-    {
-      \setCJKfamilyfont{xihei}[AutoFakeBold,AutoFakeSlant]
-        {\l_@@_cover_xihei_font_path_tl}
-    }
   }
+  % 无论中英文,封面都可能需要细黑体。
+  \tl_if_blank:VTF \l_@@_cover_xihei_font_path_tl {}
+  {
+    \setCJKfamilyfont{xihei}[AutoFakeBold,AutoFakeSlant]
+      {\l_@@_cover_xihei_font_path_tl}
+  }
 
   % 对于本科全英文专业模板,需要自定义日期格式。
   \@@_if_thesis_int_type:nT {3} {
@@ -1219,7 +1259,7 @@
   }
 
   % 修改 biblatex 中「专利」(patent)部分的著录格式。
-  % 主要根据北理工自定义的规范,参考 biblatex 和 
+  % 主要根据北理工自定义的规范,参考 biblatex 和
   % biblatex-gb7714-2015 的实现修改而成。
   %
   % 默认不开启,因为此修改可能会产生其他边界问题。
@@ -1295,7 +1335,7 @@
   }
 }
 %    \end{macrocode}
-% 
+%
 % \begin{macro}{\xihei:n}
 % 定义细黑字体。
 %    \begin{macrocode}
@@ -1308,21 +1348,23 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\l_@@_title_font_cs:n}
 % 定义标题字体。
 %    \begin{macrocode}
 \cs_new:Npn \l_@@_title_font_cs:n #1 {
-  \int_compare:nNnTF {\g_@@_thesis_type_int} = {3}
+  \bool_if:NTF \l_@@_arial_as_title_font_bool
   {
-    \arialfamily #1
+    % 即使是英文模板,仍可能出现中文,也需设置中文字体。
+    \heiti\arialfamily #1
   } {
+    % 西文保持原本的 Times New Roman。黑体一般不搭配衬线体,但学校要求如此。
     \heiti #1
   }
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\l_@@_unnumchapter_style_cs:n}
 % 定义无序章节的样式。
 %    \begin{macrocode}
@@ -1344,7 +1386,7 @@
 \cs_set:Npn \arabicHeiti #1 {#1}
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % 定义 \pkg{fancyhdr} 的页眉页脚。
 %    \begin{macrocode}
 \fancypagestyle{BIThesis}{
@@ -1470,7 +1512,7 @@
     {\tablename~\thecontentslabel\quad}{\hspace*{-1.5cm}}
     {\hspace{.5em}\titlerule*{.}\contentspage}
 %    \end{macrocode}
-% 
+%
 %  \subsubsection{定义样式相关函数}
 %
 % \begin{macro}{\frontmatter}
@@ -1477,13 +1519,7 @@
 % 定义前置内容的页面样式。
 %    \begin{macrocode}
 \RenewDocumentCommand \frontmatter {} {
-  \int_compare:nNnTF {\g_@@_thesis_type_int} = {3}
-  {
-    % 本科全英文专业论文,页码使用小罗马数字。
-    \pagenumbering{roman}
-  } {
-    \pagenumbering{Roman}
-  }
+  \pagenumbering{Roman}
   % 这部分的章节标题不进行编号。
   \ctexset{
     chapter = {
@@ -1492,9 +1528,9 @@
   }
   \linespread{1.53}\selectfont
   \pagestyle{BIThesis}
-  
+
   % 调整表格内容字号(默认五号)和各行之间的距离。
-  % 
+  %
   % 由于这种方式会影响所有的表格,
   % 所以我们尽可能延迟这种影响。
   %
@@ -1507,7 +1543,7 @@
   % 为保证各种表格效果一致,要先手动重置setspace宏包漏掉的longtable;
   \AtBeginEnvironment {longtable} {\singlespacing}
   % 之后再统一设置。
-  \clist_map_inline:nn 
+  \clist_map_inline:nn
     {tabular, tabular*, tabularx, longtable}
     {
       \AtBeginEnvironment {##1} {
@@ -1522,7 +1558,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\mainmatter}
 % 主体内容的页面样式。
 %    \begin{macrocode}
@@ -1547,7 +1583,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\backmatter}
 % 后置内容的页面样式。
 %    \begin{macrocode}
@@ -1569,7 +1605,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % 定义标题的前后间距。
 %    \begin{macrocode}
 \setlength{\abovecaptionskip}{11pt}
@@ -1580,7 +1616,7 @@
     % 为了满足 “前后一行空白的问题”,需要删除 caption 下方的间距。
     % 详见 `caption` 宏包手册和
     % https://github.com/CTeX-org/forum/issues/86
-    % 
+    %
     % 这里实际的 skip 在 15pt 左右,但是全部移除会导致当图片置于页面顶部时,
     % 图片与上方的间距过小,因此这里只移除 5pt。
     % 当然,这样会导致文本间的图片的 caption 下方的间距微微大于一行。
@@ -1601,7 +1637,7 @@
   \setlength{\belowcaptionskip}{9pt}
 }
 %    \end{macrocode}
-% 
+%
 % 定义分隔字符。
 %    \begin{macrocode}
 \@@_if_graduate:TF {
@@ -1622,7 +1658,7 @@
   \captionsetup[algorithm]{font=small,labelsep=space}
 }
 %    \end{macrocode}
-% 
+%
 % \begin{macro}{\thefigure,\thetable,\theequation,\thelstlisting,\lstlistingname}
 % 定义各种计数器的格式。
 %    \begin{macrocode}
@@ -1639,21 +1675,21 @@
 \AtBeginDocument{
   \cs_gset:Npn \thelstlisting {\thechapter\g_@@_label_divide_char_tl\arabic{lstlisting}}
   \cs_gset:Npn \lstlistingname {\c_@@_label_code_tl}
-  
+
   % 算法变成「章节号-序号」
   % 为了减少修改,我们只适配按章编号的情况。
   % 针对 algorithm 宏包
   \@ifpackagewith{algorithm}{chapter}{
     \cs_gset:Npn \thealgorithm
-    {\thechapter\g__bithesis_label_divide_char_tl\arabic{algorithm}}
+    {\thechapter\g_@@_label_divide_char_tl\arabic{algorithm}}
   }{}
   % 针对 algorithm2e 宏包
   \@ifpackagewith{algorithm2e}{algochapter}{
     % 名字中的“cf”是指其作者 Christophe Fiorio。
     \cs_gset:Npn \thealgocf
-    {\thechapter\g__bithesis_label_divide_char_tl\arabic{algocf}}
+    {\thechapter\g_@@_label_divide_char_tl\arabic{algocf}}
   }{}
-  
+
   % 默认的情况下,保留公式和上下文的一定间距。(会比 Word 稍宽一些)
   \setlength{\abovedisplayskip}{\l_@@_style_math_above_display_skip_dim}
   \setlength{\abovedisplayshortskip}{\l_@@_style_math_above_display_skip_dim}
@@ -1676,7 +1712,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % 调整底层 TeX 排版引擎参数以保证所有段落能够很好地以两端对齐的方式呈现。
 % 是的,这是祖传代码。
 % 在英文模式下禁用,因为这段代码会禁用 hyphenation.
@@ -1715,13 +1751,13 @@
 }
 \lstset{style=examplestyle}
 %    \end{macrocode}
-% 
+%
 % 调整插图目录与表格目录的标题。
 %    \begin{macrocode}
-\cs_set:Npn \listfigurename {\currentpdfbookmark{\c__bithesis_label_figure_tl}{ch:figures}\@@_get_const:N {figure}}
-\cs_set:Npn \listtablename {\currentpdfbookmark{\c__bithesis_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}
@@ -1740,10 +1776,10 @@
   \newtheorem{rem}{\@@_get_const:N {rem}}
   \renewcommand{\qedsymbol}{\ensuremath{\blacksquare}}
 %    \end{macrocode}
-% 
+%
 % \begin{macro}{\@@_dunderline:nnn,\@@_dunderline:nn,\@@_dunderline:n}
 % 用于渲染下划线。
-% 
+%
 % 参数如下:
 % \begin{itemize}
 %   \item \#1 位置,可选值为 \texttt{c}enter、\texttt{l}eft、\texttt{r}ight。
@@ -1781,7 +1817,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_dilimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1\l_@@_cover_delimiter_tl}
   }
   \hspace{1ex}
   \@@_dunderline:nnn{\l_@@_cover_underline_offset_dim}
@@ -1791,7 +1827,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{|@@_get_text_width:Nn,\@@_get_text_width:NV}
 % 计算 \#2 所占用的宽度,将结果存储在 \#1 中。
 %
@@ -1809,7 +1845,7 @@
 \cs_generate_variant:Nn \@@_get_text_width:Nn { NV }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_get_max_text_width:NN}
 % 从 \#2 中获取最大的文本宽度,然后设置到 \#1 中。
 %
@@ -1876,7 +1912,7 @@
     % 比如 {label_1} {value \\ 1} 会被转换成
     % { {label_1} {value}, {} {1} }
     \@@_parse_entry ##1
-    % 然后将这些 label - value 对添加到 \l_@@_right_seq 
+    % 然后将这些 label - value 对添加到 \l_@@_right_seq
     % 或者 \l_@@_left_sql 中。
     % left 就是 label,right 就是 value。
     \seq_concat:NNN \l_@@_right_seq \l_@@_right_seq \l_@@_tmp_right_seq
@@ -1888,8 +1924,8 @@
     \@@_get_max_text_width:NN \l_@@_cover_label_max_width_dim \l_@@_left_seq
     \@@_get_max_text_width:NN \l_@@_cover_value_max_width_dim \l_@@_right_seq
   }
-  
 
+
   % 最后,根据宽度渲染 label 和 value 对。
   \group_begin:
     \bool_until_do:nn { \seq_if_empty_p:N \l_@@_left_seq }
@@ -1904,7 +1940,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\make_graduate_cover:}
 % 制作研究生论文模板封面。
 %    \begin{macrocode}
@@ -1948,7 +1984,7 @@
       \centering
       {
         \heiti\zihao{3}
-        \tl_if_blank:VTF \l_@@_value_vertical_title_tl 
+        \tl_if_blank:VTF \l_@@_value_vertical_title_tl
           {\l_@@_value_title_tl}{\l_@@_value_vertical_title_tl}
       }
       \par
@@ -2024,8 +2060,8 @@
       {
         \renewcommand{\baselinestretch}{2}
 
-        \tl_if_empty:NT \l_@@_cover_dilimiter_tl {
-          \tl_set:Nn \l_@@_cover_dilimiter_tl {\qquad}
+        \tl_if_empty:NT \l_@@_cover_delimiter_tl {
+          \tl_set:Nn \l_@@_cover_delimiter_tl {\qquad}
         }
         \tl_set:Nn \l_@@_cover_underline_offset_dim {-5pt}
 
@@ -2034,10 +2070,10 @@
         \bool_if:NF \l_@@_cover_auto_width_bool {
           \dim_compare:nNnT {\l_@@_cover_label_max_width_dim} = {0pt} {
             \dim_set:Nn \l_@@_cover_label_max_width_dim {45mm}
-          } 
+          }
           \dim_compare:nNnT {\l_@@_cover_value_max_width_dim} = {0pt} {
             \dim_set:Nn \l_@@_cover_value_max_width_dim {60mm}
-          } 
+          }
         }
 
         % 渲染信息。
@@ -2080,8 +2116,8 @@
     \vskip \stretch{1}
 
     {
-      \tl_if_empty:NT \l_@@_cover_dilimiter_tl {
-        \tl_set:Nn \l_@@_cover_dilimiter_tl {:~}
+      \tl_if_empty:NT \l_@@_cover_delimiter_tl {
+        \tl_set:Nn \l_@@_cover_delimiter_tl {:~}
       }
 
       \tl_set:Nn \l_@@_cover_label_align_tl {l}
@@ -2092,10 +2128,10 @@
       \bool_if:NF \l_@@_cover_auto_width_bool {
         \dim_compare:nNnT {\l_@@_cover_label_max_width_dim} = {0pt} {
           \dim_set:Nn \l_@@_cover_label_max_width_dim {55mm}
-        } 
+        }
         \dim_compare:nNnT {\l_@@_cover_value_max_width_dim} = {0pt} {
           \dim_set:Nn \l_@@_cover_value_max_width_dim {85mm}
-        } 
+        }
       }
 
       % 渲染信息。
@@ -2279,7 +2315,15 @@
     \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool]
     \group_begin:
 
-    \int_case:nn {\g_@@_thesis_type_int}
+    % 封面使用的 thesis-type 可能与整体不同。
+    \int_new:N \l_@@_thesis_type_int
+    \bool_if:NTF \l_@@_cover_prefer_zh_bool {
+      \int_set:Nn \l_@@_thesis_type_int {1}
+    } {
+      \int_set:Nn \l_@@_thesis_type_int \g_@@_thesis_type_int
+    }
+
+    \int_case:nn {\l_@@_thesis_type_int}
     {
       {1}
       {
@@ -2297,32 +2341,43 @@
 
           \zihao{-0}\textbf{\ziju{0.12}\songti{\l_@@_style_headline_tl}}\par
 
-          \vspace{16mm}
+          \vspace{0.5em plus 1fill}
 
-          \zihao{2}\textbf{\xihei:n \l_@@_value_title_tl}\par
+          \group_begin:
+          % 中文标题
+          \tl_set:Nn \l_tmpa_tl {
+            \linespread{1.46}\selectfont
+            \zihao{2}\textbf{\xihei:n \l_@@_value_title_tl}\par
+          }
+          % 英文标题
+          \tl_set:Nn \l_tmpb_tl {
+            \linespread{1.65}\selectfont
+            \zihao{3}\textbf{\l_@@_value_title_en_tl}\par
+          }
 
-          \vspace{3mm}
+          \bool_if:NTF \l_@@_cover_reverse_titles_bool {
+            \l_tmpb_tl \vspace{3mm} \l_tmpa_tl
+          } {
+            \l_tmpa_tl \vspace{3mm} \l_tmpb_tl
+          }
+          \group_end:
 
-          \begin{spacing}{1.2}
-            \zihao{3}\selectfont{\textbf{\l_@@_value_title_en_tl}}\par
-          \end{spacing}
+          \vspace{0em plus 1fill}
 
-          \vspace{15mm}
 
-
           \begin{spacing}{1.8}
             \begin{center}
-            \tl_if_empty:NT \l_@@_cover_dilimiter_tl {
-              \tl_set:Nn \l_@@_cover_dilimiter_tl {:}
+            \tl_if_empty:NT \l_@@_cover_delimiter_tl {
+              \tl_set:Nn \l_@@_cover_delimiter_tl {:}
             }
             % if not auto width, try override width
             \bool_if:NF \l_@@_cover_auto_width_bool {
               \dim_compare:nNnT {\l_@@_cover_label_max_width_dim} = {0pt} {
                 \dim_set:Nn \l_@@_cover_label_max_width_dim {35mm}
-              } 
+              }
               \dim_compare:nNnT {\l_@@_cover_value_max_width_dim} = {0pt} {
                 \dim_set:Nn \l_@@_cover_value_max_width_dim {78mm}
-              } 
+              }
             }
 
             \clist_set:Nn \l_@@_input_clist {
@@ -2341,14 +2396,16 @@
             \zihao{3}
 
             \@@_render_cover_entry:n \l_@@_input_clist
-            
+
             \end{center}
           \end{spacing}
 
-          \vspace*{\fill}
+          \vspace*{1.5em plus 1.5fill}
           \centering
           \zihao{3}\ziju{0.5}\songti{
             \tl_if_empty:NTF \l_@@_cover_date_tl {
+              % 英文模板中 ctex 不会预设日期格式,但仍要保证中文封面的日期按中文习惯
+              \ctexset{today=small}
               \today
             } {
               \l_@@_cover_date_tl
@@ -2375,8 +2432,8 @@
           {
 
           \begin{spacing}{1.8}
-            
-            \tl_set:Nn \l_@@_cover_dilimiter_tl {\textbf{:}}
+
+            \tl_set:Nn \l_@@_cover_delimiter_tl {\textbf{:}}
             \bool_set_false:N \l_@@_cover_auto_width_bool
             \dim_set:Nn \l_@@_cover_label_max_width_dim {35mm}
             \dim_set:Nn \l_@@_cover_value_max_width_dim {115mm}
@@ -2408,8 +2465,8 @@
           \vspace{\stretch{0.67}}
 
           \begin{spacing}{1.8}
-            \tl_if_empty:NT \l_@@_cover_dilimiter_tl {
-              \tl_set:Nn \l_@@_cover_dilimiter_tl {:}
+            \tl_if_empty:NT \l_@@_cover_delimiter_tl {
+              \tl_set:Nn \l_@@_cover_delimiter_tl {:}
             }
 
             % 如果不是自动计算宽度,且用户没有自定义宽度,
@@ -2417,10 +2474,10 @@
             \bool_if:NF \l_@@_cover_auto_width_bool {
               \dim_compare:nNnT {\l_@@_cover_label_max_width_dim} = {0pt} {
                 \dim_set:Nn \l_@@_cover_label_max_width_dim {35mm}
-              } 
+              }
               \dim_compare:nNnT {\l_@@_cover_value_max_width_dim} = {0pt} {
                 \dim_set:Nn \l_@@_cover_value_max_width_dim {78mm}
-              } 
+              }
             }
 
             \zihao{3}
@@ -2437,7 +2494,7 @@
             }
 
             \@@_render_cover_entry:n \l_@@_input_clist
-            
+
           \end{spacing}
 
           \vspace{\stretch{0.67}}
@@ -2459,6 +2516,11 @@
 
           \vspace{18mm}
 
+          \bool_if:NT \l_@@_cover_add_titlezh_bool {
+            \zihao{2}\textbf{\xihei:n \l_@@_value_title_tl}\par
+            \vspace{16mm}
+          }
+
           \zihao{2}\textbf{\xihei:n \l_@@_value_title_en_tl}\par
 
           \vspace{10mm}
@@ -2466,8 +2528,8 @@
 
           \begin{spacing}{1.8}
             \begin{center}
-            \tl_if_empty:NT \l_@@_cover_dilimiter_tl {
-              \tl_set:Nn \l_@@_cover_dilimiter_tl {:}
+            \tl_if_empty:NT \l_@@_cover_delimiter_tl {
+              \tl_set:Nn \l_@@_cover_delimiter_tl {:}
             }
 
             % if not auto width, try override width
@@ -2474,10 +2536,10 @@
             \bool_if:NF \l_@@_cover_auto_width_bool {
               \dim_compare:nNnT {\l_@@_cover_label_max_width_dim} = {0pt} {
                 \dim_set:Nn \l_@@_cover_label_max_width_dim {20mm}
-              } 
+              }
               \dim_compare:nNnT {\l_@@_cover_value_max_width_dim} = {0pt} {
                 \dim_set:Nn \l_@@_cover_value_max_width_dim {105mm}
-              } 
+              }
             }
 
             \zihao{4}
@@ -2484,7 +2546,7 @@
 
             \clist_set:Nn \l_@@_input_clist {
               {\c_@@_label_school_en_tl} {\l_@@_value_school_tl},
-              {\c_@@_label_major_en_tl} {\l_@@_value_major_tl},
+              {\g_@@_const_info_major_tl} {\l_@@_value_major_tl},
               {\c_@@_label_author_en_tl} {\l_@@_value_author_tl},
               {\c_@@_label_student_id_en_tl} {\l_@@_value_student_id_tl},
               {\c_@@_label_supervisor_en_tl} {\l_@@_value_supervisor_tl},
@@ -2524,13 +2586,13 @@
 % \begin{macro}{\MakeOriginality}
 % 原创性声明。
 %    \begin{macrocode}
-\NewDocumentCommand \MakeOriginality {} 
+\NewDocumentCommand \MakeOriginality {}
   {
     \group_begin:
     \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool]
       \int_case:nn {\g_@@_thesis_type_int}
       {
-        {1} 
+        {1}
         {
           \currentpdfbookmark{声明}{frontmatter:originality}
           \pagestyle{BIThesis}
@@ -2580,7 +2642,10 @@
           \newpage
         }
         {3} {
-          \linespread{1.26}\selectfont
+          \currentpdfbookmark{Statements}{frontmatter:originality}
+          \pagestyle{BIThesis}
+          \pagenumbering{gobble}
+
           % 原创性声明部分
           \begin{center}
             \vspace*{-2bp}
@@ -2591,7 +2656,7 @@
             }
           \end{center}~\par
 
-          % 本部分字号为小三
+          % 本部分字号为小四
           \zihao{-4}
           \c_@@_bachelor_english_label_originality_clause_tl
 
@@ -2599,7 +2664,7 @@
 
           Student~(Signature):~\dunderline[-1pt]{1pt}{\makebox[18mm]{}}~Date:\par
 
-          \vspace{6mm}
+          \vspace{\stretch{1}}
 
           % 使用授权声明部分
           \begin{center}
@@ -2679,12 +2744,6 @@
         \renewcommand{\baselinestretch}{1.56}
       }
 
-      \@@_if_thesis_english:TF {
-        \tl_set:Nn \l_@@_toc_title_tl {\c_@@_label_toc_en_tl}
-      } {
-        \tl_set:Nn \l_@@_toc_title_tl {\c_@@_label_toc_tl}
-      }
-
       % 自定义目录样式
       \cs_set:Npn \contentsname {
         \fontsize{16pt}{\baselineskip}
@@ -2694,19 +2753,19 @@
         \vspace{-8pt}
       }
 
-      % 添加目录书签
-      \__bithesis_if_thesis_int_type:nF {3} {
-        \currentpdfbookmark{\c__bithesis_label_toc_tl}{ch:toc}
+      \bool_if:NTF \l_@@_add_toc_to_toc_bool {
+        % 添加「目录」本身到目录中,同时自动添加书签
+        % 此处必须有`\phantomsection`,不然 hyperref 会把链接指向之前摘要的标题。
+        \phantomsection
+        \addcontentsline{toc}{chapter}{\c_@@_label_toc_en_tl}
+      } {
+        % 手动添加目录书签
+        \currentpdfbookmark{\l_@@_toc_title_tl}{ch:toc}
       }
 
       % 制作目录
       \tableofcontents
 
-      % 在本科生全英文模板中,添加「目录」本身到目录中。
-      \__bithesis_if_thesis_int_type:nT {3} {
-        \addcontentsline{toc}{chapter}{\c__bithesis_label_toc_en_tl}
-      }
-
       % 单独成页
       \clearpage
     }
@@ -2744,17 +2803,9 @@
     }
 
     \@@_if_bachelor_thesis:T {
-      \int_compare:nNnTF {\g_@@_thesis_type_int} = {3}
-      {
-        \ctexset{
-          chapter/titleformat = {\heiti}
-        }
+      \ctexset{
+        chapter/titleformat = {\textmd}
       }
-      {
-        \ctexset{
-          chapter/titleformat = {\textmd}
-        }
-      }
     }
 
     {
@@ -2798,39 +2849,25 @@
         \centering
         \vspace*{-2bp}
 
-        \@@_if_thesis_int_type:nTF {3} {
-          \arialfamily\zihao{-2}\textbf
+        \l_@@_title_font_cs:n {
+          \zihao{3}\textbf
           \l_@@_value_title_en_tl\\
-        } {
-          \heiti\zihao{3}\textbf
-          \l_@@_value_title_en_tl\\
         }
       \end{spacing}
       \vspace*{10mm}
     }
-    
+
     \ctexset{
       chapter/numbering = false,
     }
 
     \@@_if_bachelor_thesis:TF {
-      \int_compare:nNnTF {\g_@@_thesis_type_int} = {3}
-      {
-        \ctexset{
-          chapter = {
-            titleformat = {\heiti\zihao{3}\centering\textbf},
-          }
-        }
-      } {
-        \ctexset{
-          chapter = {
-            titleformat = {\heiti\zihao{-3}\centering\textmd},
-          }
-        }
+      \ctexset{
+        chapter/titleformat = {\zihao{-3}\textmd}
       }
     } {
       \ctexset {
-        chapter/titleformat = {\heiti\zihao{3}\centering\textbf} 
+        chapter/titleformat = {\heiti\zihao{3}\centering\textbf}
       }
     }
 
@@ -2945,13 +2982,13 @@
     }
 
     \bool_if:NTF \l_@@_appendices_chapter_level_bool {
-      % 附录章节级别
-      
+      % 使用以「chapter」为顶层的附录格式
+
       % 仅设置 \setcounter{chapter}{0} 时,pdf 目录会索引到正文章节。
       % 因此,需要使用 \appendix 重置计数器,并将附录后面的
       % 几个章节视为特殊的附录页。
       \appendix
-      
+
       \ctexset{
         chapter/numbering = true,
         chapter/name = {},
@@ -2964,7 +3001,7 @@
         \Alph{chapter}
       }
     } {
-      % 附录节(section)级别
+      % 使用以「section」为顶层的附录格式
 
       % 因为不需要用到 chapter counter, 所以直接加一即可。
       \stepcounter{chapter}
@@ -3021,11 +3058,7 @@
         subsubsection/number = \arabic{section}. \arabic{subsection}. \arabic{subsubsection},
       }
 
-      \@@_if_thesis_english:TF {
-        \chapter{\c_@@_label_ack_en_tl}
-      } {
-        \chapter{\c_@@_label_ack_tl}
-      }
+      \chapter{\g_@@_const_heading_acknowledgements_tl}
       \@@_if_graduate:TF {\fangsong}{}
       #1
     \end{blindPeerReview}
@@ -3323,7 +3356,7 @@
 % \subsubsection{全局变量与临时变量}
 %
 % \begin{variable}{\g_@@_thesis_type_int}
-% 论文类型,取值从 1 开始,分别对应: 
+% 论文类型,取值从 1 开始,分别对应:
 %  \begin{enumerate}
 %      \item 课程实验报告
 %      \item (计算机学院)本科生毕业(设计)开题报告(已废弃)
@@ -3332,7 +3365,7 @@
 \int_new:N \g_@@_report_type_int
 %    \end{macrocode}
 % \end{variable}
-% 
+%
 % \begin{variable}{\c_@@_report_type_clist}
 % 定义报告类型的列表。
 %    \begin{macrocode}
@@ -3340,7 +3373,7 @@
     { common, undergraduate_proposal}
 %    \end{macrocode}
 % \end{variable}
-% 
+%
 % \begin{variable}{\l_@@_right_seq,\l_@@_left_seq}
 % 临时变量。
 %    \begin{macrocode}
@@ -3348,12 +3381,12 @@
 \seq_new:N \l_@@_left_seq
 %    \end{macrocode}
 % \end{variable}
-% 
+%
 % 手动开启伪粗体、伪斜体。
 %    \begin{macrocode}
 \PassOptionsToPackage{AutoFakeBold,AutoFakeSlant}{xeCJK}
 %    \end{macrocode}
-% 
+%
 % \subsubsection{l3keys 接口键值对定义}
 %
 % 定义 |bitreport| 模板类的键值对。
@@ -3366,7 +3399,7 @@
     misc .meta:nn = { bitreport / misc } {#1}
   }
 %    \end{macrocode}
-% 
+%
 % 定义 |bitreport/option| 模板类的键值对。
 %    \begin{macrocode}
 \keys_define:nn { bitreport / option }
@@ -3375,14 +3408,14 @@
     type .value_required:n = true,
     type .choices:Vn =
       \c_@@_report_type_clist
-      { 
-        \int_set_eq:NN \g_@@_report_type_int \l_keys_choice_int 
+      {
+        \int_set_eq:NN \g_@@_report_type_int \l_keys_choice_int
       },
     type .initial:n = common,
     ctex .tl_set:N = \l_@@_options_to_ctex_tl,
   }
 %    \end{macrocode}
-% 
+%
 % 定义 |bitreport/cover| 模板类的键值对。
 %    \begin{macrocode}
 \keys_define:nn { bitreport / cover }
@@ -3390,7 +3423,7 @@
     imagePath .tl_set:N = \l_bit_coverimagepath_tl,
     date .tl_set:N = \l_@@_cover_date_tl,
     %% cover entry
-    dilimiter .tl_set:N = \l_@@_cover_dilimiter_tl,
+    delimiter .tl_set:N = \l_@@_cover_delimiter_tl,
     labelAlign .tl_set:N = \l_@@_cover_label_align_tl,
     labelAlign .initial:n = {r},
     valueAlign .tl_set:N = \l_@@_cover_value_align_tl,
@@ -3407,7 +3440,7 @@
     underlineOffset .initial:n = { -10pt },
   }
 %    \end{macrocode}
-% 
+%
 % 定义 |bitreport/info| 模板类的键值对。
 %    \begin{macrocode}
 \keys_define:nn { bitreport / info }
@@ -3422,7 +3455,7 @@
     studentId .tl_set:N = \l_@@_value_student_id_tl,
   }
 %    \end{macrocode}
-% 
+%
 % 定义 |bitreport/misc| 模板类的键值对。
 %    \begin{macrocode}
 \keys_define:nn { bitreport / misc }
@@ -3430,7 +3463,7 @@
     reviewTable .tl_set:N = \l_bit_reviewtable_tl,
   }
 %    \end{macrocode}
-% 
+%
 % 将 |bithesis/option/ctex| 中的值传递给 ctexbook 模板类。
 %    \begin{macrocode}
 \DeclareOption*{
@@ -3437,13 +3470,13 @@
   \PassOptionsToClass{\l_@@_options_to_ctex_tl}{ctexart}
 }
 %    \end{macrocode}
-% 
+%
 % 加载 ctexbook 模板类。
 %    \begin{macrocode}
 \ProcessOptions\relax
 \LoadClass[zihao=-4]{ctexart}
 %    \end{macrocode}
-% 
+%
 % \subsubsection{定义模板类样式}
 % 加载所需的宏包。
 %    \begin{macrocode}
@@ -3454,13 +3487,13 @@
 \RequirePackage{booktabs}
 \RequirePackage{pdfpages}
 %    \end{macrocode}
-% 
-% 在宏加载时,处理 |bitreport/option| 中的值。使得 |bitreport| 
+%
+% 在宏加载时,处理 |bitreport/option| 中的值。使得 |bitreport|
 % 宏包的模板选项可以在宏加载时生效。
 %    \begin{macrocode}
 \ProcessKeysOptions { bitreport / option }
 %    \end{macrocode}
-% 
+%
 % \subsubsection{辅助函数与常量}
 %
 % \begin{macro}{\tl_if_empty:xTF,\seq_set_split:Nnx}
@@ -3470,10 +3503,10 @@
 \cs_generate_variant:Nn \seq_set_split:Nnn {Nnx}
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_dunderline:nnn}
 % 用于渲染下划线。
-% 
+%
 % 参数如下:
 % \begin{itemize}
 %   \item \#1 位置,可选值为 \texttt{c}enter、\texttt{l}eft、\texttt{r}ight。
@@ -3486,7 +3519,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{|@@_render_cover_entry:nn}
 % 用于渲染封面的辅助函数。
 %
@@ -3501,7 +3534,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_dilimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1\l_@@_cover_delimiter_tl}
   }
   \hspace{1ex}
   \@@_dunderline:nnn{\l_@@_cover_underline_offset_dim}{\l_@@_cover_underline_thickness_dim}{
@@ -3510,7 +3543,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{|@@_get_text_width:Nn,\@@_get_text_width:NV}
 % 计算 \#2 所占用的宽度,将结果存储在 \#1 中。
 %
@@ -3529,7 +3562,7 @@
 \cs_generate_variant:Nn \@@_get_text_width:Nn { NV }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_get_max_text_width:NN}
 % 从 \#2 中获取最大的文本宽度,然后设置到 \#1 中。
 %
@@ -3556,7 +3589,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_parse_entry}
 % 解析封面信息条目。
 %
@@ -3579,7 +3612,7 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
+%
 % \begin{macro}{\@@_render_cover_entry}
 % 渲染封面信息项。此函数为主函数。
 %    \begin{macrocode}
@@ -3596,7 +3629,7 @@
     % 比如 {label_1} {value \\ 1} 会被转换成
     % { {label_1} {value}, {} {1} }
     \@@_parse_entry ##1
-    % 然后将这些 label - value 对添加到 \l_@@_right_seq 
+    % 然后将这些 label - value 对添加到 \l_@@_right_seq
     % 或者 \l_@@_left_sql 中。
     % left 就是 label,right 就是 value。
     \seq_concat:NNN \l_@@_right_seq \l_@@_right_seq \l_@@_tmp_right_seq
@@ -3608,8 +3641,8 @@
     \@@_get_max_text_width:NN \l_@@_cover_label_max_width_dim \l_@@_left_seq
     \@@_get_max_text_width:NN \l_@@_cover_value_max_width_dim \l_@@_right_seq
   }
-  
 
+
   % 最后,根据宽度渲染 label 和 value 对。
   \group_begin:
     \bool_until_do:nn { \seq_if_empty_p:N \l_@@_left_seq }
@@ -3626,7 +3659,7 @@
 % \end{macro}
 %
 % \subsubsection{定义用户接口}
-% 
+%
 % \begin{macro}{\BITSetup}
 % 提供用户配置的接口。
 %    \begin{macrocode}
@@ -3736,7 +3769,7 @@
 % \begin{macro}{\MakeReviewTable}
 % 渲染评阅表。
 %    \begin{macrocode}
-\DeclareDocumentCommand \MakeReviewTable {} 
+\DeclareDocumentCommand \MakeReviewTable {}
   {
     \group_begin:
       \begin{titlepage}
@@ -3751,35 +3784,35 @@
 %    \begin{macrocode}
 \DeclareCaptionFont{kaiticaption}{\kaishu \normalsize}
 %    \end{macrocode}
-% 
+%
 % 设置图片的 caption 格式
 %    \begin{macrocode}
 \renewcommand{\thefigure}{\thesection-\arabic{figure}}
 \captionsetup[figure]{font=small,labelsep=space,skip=10bp,labelfont=bf,font=kaiticaption}
 %    \end{macrocode}
-% 
+%
 % 设置表格的 caption 格式
 %    \begin{macrocode}
 \renewcommand{\thetable}{\thesection-\arabic{table}}
 \captionsetup[table]{font=small,labelsep=space,skip=10bp,labelfont=bf,font=kaiticaption}
 %    \end{macrocode}
-% 
+%
 % 输出大写数字日期
 %    \begin{macrocode}
 \ctexset{today=big}
 %    \end{macrocode}
-% 
+%
 % 将西文字体设置为 Times New Roman
 %    \begin{macrocode}
 \setromanfont{Times~New~Roman}
 %    \end{macrocode}
-% 
+%
 % 设置文档标题深度
 %    \begin{macrocode}
 \setcounter{tocdepth}{3}
 \setcounter{secnumdepth}{3}
 %    \end{macrocode}
-% 
+%
 % 设置一级标题、二级标题格式。
 %    \begin{macrocode}
 % 一级标题:小三,宋体,加粗,段前段后各半行。
@@ -3804,7 +3837,7 @@
   }
 }
 %    \end{macrocode}
-% 
+%
 % 页眉和页脚(页码)的格式设定。
 %    \begin{macrocode}
 \fancyhf{}
@@ -3826,13 +3859,13 @@
 \renewcommand{\headrulewidth}{1pt}
 \renewcommand{\footrulewidth}{0pt}
 %    \end{macrocode}
-% 
+%
 % 正文开始
 %    \begin{macrocode}
 \pagestyle{fancy}
 \setcounter{page}{1}
 %    \end{macrocode}
-% 
+%
 %    \begin{macrocode}
 % 正文 22 磅的行距,段前段后间距为 0
 % \setlength{\parskip}{0em}
@@ -3861,13 +3894,13 @@
     framelogo .tl_set:N = \l_bit_framelogo_tl,
   }
 %    \end{macrocode}
-% 
-% 在宏加载时,处理 |bitbeamer| 中的值。使得 |bitbeamer| 
+%
+% 在宏加载时,处理 |bitbeamer| 中的值。使得 |bitbeamer|
 % 宏包的模板选项可以在宏加载时生效。
 %    \begin{macrocode}
 \ProcessKeysOptions { bitbeamer }
 %    \end{macrocode}
-% 
+%
 % Pass every option not explicitly defined to `ctexbeamer`.
 %    \begin{macrocode}
 \DeclareOption*{
@@ -3874,7 +3907,7 @@
   \PassOptionsToClass{\CurrentOption}{ctexbeamer}
 }
 %    \end{macrocode}
-% 
+%
 % Executes the code for each option.
 % Load.
 %    \begin{macrocode}
@@ -3881,7 +3914,7 @@
 \ProcessOptions\relax
 \LoadClass{ctexbeamer}
 %    \end{macrocode}
-% 
+%
 % \subsubsection{定义模板类样式}
 %
 % 加载所需的宏包。
@@ -3898,8 +3931,8 @@
 \definecolor{bitdarkgreen}{HTML}{005B30}
 \colorlet{beamer at blendedblue}{bitdarkgreen}
 %    \end{macrocode}
-% 
 %
+%
 % \begin{macro}{\CJKhl:nn}
 % 高亮中文字符。
 %    \begin{macrocode}
@@ -3907,8 +3940,8 @@
   { \CJKsout*[thickness=2.5ex, format=\color{#1}]{#2} }
 %    \end{macrocode}
 % \end{macro}
-% 
-% Set header if logo path is provided. 
+%
+% Set header if logo path is provided.
 %    \begin{macrocode}
 \tl_if_empty:NF \l_bit_titlegraphic_tl {
   % BIT Logo
@@ -3917,19 +3950,19 @@
   }
 }
 %    \end{macrocode}
-% 
+%
 % Set title logo if logo path is provided.
 %    \begin{macrocode}
 \tl_if_empty:NF \l_bit_framelogo_tl {
   \addtobeamertemplate{frametitle}{}{%
     \begin{tikzpicture}[remember~picture,overlay]
-      \node[anchor=north~east,yshift=2pt] at (current~page.north~east) 
+      \node[anchor=north~east,yshift=2pt] at (current~page.north~east)
         {\includegraphics[height=0.8cm]{\tl_use:N \l_bit_framelogo_tl}};
     \end{tikzpicture}
   }
 }
 %    \end{macrocode}
-% 
+%
 % \subsubsection{定义用户接口}
 %
 %    \begin{macrocode}
@@ -4274,4 +4307,3 @@
 %  TeX-master: t
 %  End:
 % \fi
-

Modified: trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls	2024-10-08 01:22:18 UTC (rev 72490)
+++ trunk/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls	2024-10-08 01:31:03 UTC (rev 72491)
@@ -27,7 +27,7 @@
 %% 
 \RequirePackage{expl3,l3keys2e}
 \ProvidesExplClass{bitbeamer}
-{2024-05-30}{3.7.9}{BIT Thesis Templates}
+{2024-10-07}{3.8.0}{BIT Thesis Templates}
 \keys_define:nn { bitbeamer }
   {
     titlegraphic .tl_set:N = \l_bit_titlegraphic_tl,

Modified: trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls	2024-10-08 01:22:18 UTC (rev 72490)
+++ trunk/Master/texmf-dist/tex/latex/bithesis/bithesis.cls	2024-10-08 01:31:03 UTC (rev 72491)
@@ -27,7 +27,7 @@
 %% 
 \RequirePackage{expl3,l3keys2e}
 \ProvidesExplClass{bithesis}
-{2024-05-30}{3.7.9}{BIT Thesis Templates}
+{2024-10-07}{3.8.0}{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
@@ -264,10 +264,12 @@
     {toc} {目\label_space: 录} {Table~of~Contents},
     {abstract} {摘\label_space: 要} {Abstract},
     {conclusion} {结\label_space: 论} {Conclusions},
+    % 附录部分的总标题
     {appendix} {附\label_space: 录} {Appendices},
-    {ack} {致\label_space: 谢} {Acknowledgement},
+    {ack} {致\label_space: 谢} {Acknowledgements},
     {figure} {插\label_space: 图} {Illustrations},
     {table} {表\label_space: 格} {Tables},
+    % 附录下各部分编号的前缀
     {appendix_prefix} {附录} {Appendix},
     {reference} {参考文献} {References},
     {university} {北京理工大学} {Beijing~Institute~of~Technology},
@@ -350,7 +352,7 @@
     xiheiFont .tl_set:N = \l__bithesis_cover_xihei_font_path_tl,
     xiheiFont .default:n = {STXihei},
     %% cover entry
-    dilimiter .tl_set:N = \l__bithesis_cover_dilimiter_tl,
+    delimiter .tl_set:N = \l__bithesis_cover_delimiter_tl,
     labelAlign .tl_set:N = \l__bithesis_cover_label_align_tl,
     labelAlign .initial:n = {r},
     valueAlign .tl_set:N = \l__bithesis_cover_value_align_tl,
@@ -366,10 +368,20 @@
     underlineOffset .dim_set:N = \l__bithesis_cover_underline_offset_dim,
     underlineOffset .initial:n = { -10pt },
     hideCoverInPeerReview .bool_set:N = \l__bithesis_cover_hide_cover_in_peer_review_bool,
+    % 此处暂且填充默认值为`false`,待确定`\g__bithesis_thesis_type_int`后再根据论文类型覆盖默认值
     hideCoverInPeerReview .initial:n = {false},
     % 研究生的「特殊类型」
     showSpecialTypeBox .bool_set:N = \l__bithesis_cover_show_special_type_box_bool,
-    showSpecialTypeBox .initial:n = {false}
+    showSpecialTypeBox .initial:n = {false},
+    % 本科英文模板也可以使用中文封面
+    prefer-zh .bool_set:N = \l__bithesis_cover_prefer_zh_bool,
+    prefer-zh .initial:n = {false},
+    % 本科英文模板使用中文封面时可能需要调换中英文标题顺序
+    reverse-titles .bool_set:N = \l__bithesis_cover_reverse_titles_bool,
+    reverse-titles .initial:n = {false},
+    % 本科英文模板可加入中文标题
+    addTitleZh .bool_set:N = \l__bithesis_cover_add_titlezh_bool,
+    addTitleZh .initial:n = {true},
   }
 \keys_define:nn { bithesis / info }
   {
@@ -491,6 +503,7 @@
     autoref .meta:nn = { bithesis / const / autoref } { #1 },
     style .meta:nn = { bithesis / const / style } { #1 },
     info .meta:nn = { bithesis / const / info } { #1 },
+    heading .meta:nn = { bithesis / const / heading } { #1 },
   }
 \keys_define:nn { bithesis / const / autoref }
   {
@@ -543,6 +556,13 @@
       }
     },
   }
+\keys_define:nn { bithesis / const / heading }
+  {
+    acknowledgements .tl_set:N = \g__bithesis_const_heading_acknowledgements_tl,
+    acknowledgements .initial:n = {
+      \__bithesis_get_const:N {ack}
+    },
+  }
 \keys_define:nn { bithesis / style }
 {
   head .tl_set:N = \l__bithesis_style_head_tl,
@@ -561,6 +581,10 @@
       { \flushbottom }
   },
   pageVerticalAlign .initial:n = {top},
+  non-CJK-font-in-headings .choice:,
+  non-CJK-font-in-headings / serif .code:n = { \bool_set_false:N \l__bithesis_arial_as_title_font_bool },
+  non-CJK-font-in-headings / sans .code:n = { \bool_set_true:N \l__bithesis_arial_as_title_font_bool },
+  non-CJK-font-in-headings .initial:n = {serif},
   % 数学字体配置
   mathFont .choices:nn = {
     asana, bonum, cm, concrete, dejavu, erewhon, euler,
@@ -586,10 +610,16 @@
 }
 \keys_define:nn { bithesis / TOC }
 {
+  title .tl_set:N = \l__bithesis_toc_title_tl,
+  title .initial:n = {
+    \__bithesis_get_const:N {toc}
+  },
   abstract .bool_set:N = \l__bithesis_add_abstract_to_toc_bool,
   abstract .initial:n = {true},
   abstractEn .bool_set:N = \l__bithesis_add_abstract_en_to_toc_bool,
   abstractEn .initial:n = {true},
+  TOC .bool_set:N = \l__bithesis_add_toc_to_toc_bool,
+  TOC .initial:n = {false},
   symbols .bool_set:N = \l__bithesis_add_symbols_to_toc_bool,
   symbols .initial:n = {true},
 }
@@ -620,6 +650,11 @@
   minbibnames .initial:n = {10},
 }
 \ProcessKeysOptions { bithesis / option }
+\__bithesis_if_graduate:TF {
+  \keys_set:nn {bithesis} {cover/hideCoverInPeerReview = false}
+} {
+  \keys_set:nn {bithesis} {cover/hideCoverInPeerReview = true}
+}
 \__bithesis_if_thesis_english:T {
   \PassOptionsToClass{scheme=plain}{ctexbook}
 }
@@ -639,6 +674,7 @@
 \RequirePackage{geometry}
 \RequirePackage[table,xcdraw]{xcolor}
 \RequirePackage{xeCJK}
+\RequirePackage[bodytextleadingratio=1.56]{zhlineskip}
 \RequirePackage{titletoc}
 \RequirePackage{graphicx}
 \RequirePackage{fancyhdr}
@@ -793,22 +829,21 @@
       }
     }
 
-  \__bithesis_if_thesis_english:TF {
+  \bool_if:NTF \l__bithesis_arial_as_title_font_bool {
+    % 手动指定时要加载 Arial
+    \newfontfamily\arialfamily{Arial}
+  } {
+    % 即使未指定,本科全英文专业模板的声明也需要 Arial
     \__bithesis_if_thesis_int_type:nT {3} {
-      % 对于本科全英文专业模板
-      % Font Arial is needed.
       \newfontfamily\arialfamily{Arial}
     }
-
-  } {
-    % 对于其他的中文模板,
-    % 需要加载细黑体。
-    \tl_if_blank:VTF \l__bithesis_cover_xihei_font_path_tl {}
-    {
-      \setCJKfamilyfont{xihei}[AutoFakeBold,AutoFakeSlant]
-        {\l__bithesis_cover_xihei_font_path_tl}
-    }
   }
+  % 无论中英文,封面都可能需要细黑体。
+  \tl_if_blank:VTF \l__bithesis_cover_xihei_font_path_tl {}
+  {
+    \setCJKfamilyfont{xihei}[AutoFakeBold,AutoFakeSlant]
+      {\l__bithesis_cover_xihei_font_path_tl}
+  }
 
   % 对于本科全英文专业模板,需要自定义日期格式。
   \__bithesis_if_thesis_int_type:nT {3} {
@@ -916,10 +951,12 @@
   }
 }
 \cs_new:Npn \l__bithesis_title_font_cs:n #1 {
-  \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3}
+  \bool_if:NTF \l__bithesis_arial_as_title_font_bool
   {
-    \arialfamily #1
+    % 即使是英文模板,仍可能出现中文,也需设置中文字体。
+    \heiti\arialfamily #1
   } {
+    % 西文保持原本的 Times New Roman。黑体一般不搭配衬线体,但学校要求如此。
     \heiti #1
   }
 }
@@ -1046,13 +1083,7 @@
     {\tablename~\thecontentslabel\quad}{\hspace*{-1.5cm}}
     {\hspace{.5em}\titlerule*{.}\contentspage}
 \RenewDocumentCommand \frontmatter {} {
-  \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3}
-  {
-    % 本科全英文专业论文,页码使用小罗马数字。
-    \pagenumbering{roman}
-  } {
-    \pagenumbering{Roman}
-  }
+  \pagenumbering{Roman}
   % 这部分的章节标题不进行编号。
   \ctexset{
     chapter = {
@@ -1273,7 +1304,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_dilimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1\l__bithesis_cover_delimiter_tl}
   }
   \hspace{1ex}
   \__bithesis_dunderline:nnn{\l__bithesis_cover_underline_offset_dim}
@@ -1452,8 +1483,8 @@
       {
         \renewcommand{\baselinestretch}{2}
 
-        \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl {
-          \tl_set:Nn \l__bithesis_cover_dilimiter_tl {\qquad}
+        \tl_if_empty:NT \l__bithesis_cover_delimiter_tl {
+          \tl_set:Nn \l__bithesis_cover_delimiter_tl {\qquad}
         }
         \tl_set:Nn \l__bithesis_cover_underline_offset_dim {-5pt}
 
@@ -1502,8 +1533,8 @@
     \vskip \stretch{1}
 
     {
-      \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl {
-        \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:~}
+      \tl_if_empty:NT \l__bithesis_cover_delimiter_tl {
+        \tl_set:Nn \l__bithesis_cover_delimiter_tl {:~}
       }
 
       \tl_set:Nn \l__bithesis_cover_label_align_tl {l}
@@ -1644,7 +1675,15 @@
     \begin{blindPeerReview}[\l__bithesis_cover_hide_cover_in_peer_review_bool]
     \group_begin:
 
-    \int_case:nn {\g__bithesis_thesis_type_int}
+    % 封面使用的 thesis-type 可能与整体不同。
+    \int_new:N \l__bithesis_thesis_type_int
+    \bool_if:NTF \l__bithesis_cover_prefer_zh_bool {
+      \int_set:Nn \l__bithesis_thesis_type_int {1}
+    } {
+      \int_set:Nn \l__bithesis_thesis_type_int \g__bithesis_thesis_type_int
+    }
+
+    \int_case:nn {\l__bithesis_thesis_type_int}
     {
       {1}
       {
@@ -1662,22 +1701,33 @@
 
           \zihao{-0}\textbf{\ziju{0.12}\songti{\l__bithesis_style_headline_tl}}\par
 
-          \vspace{16mm}
+          \vspace{0.5em plus 1fill}
 
-          \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par
+          \group_begin:
+          % 中文标题
+          \tl_set:Nn \l_tmpa_tl {
+            \linespread{1.46}\selectfont
+            \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par
+          }
+          % 英文标题
+          \tl_set:Nn \l_tmpb_tl {
+            \linespread{1.65}\selectfont
+            \zihao{3}\textbf{\l__bithesis_value_title_en_tl}\par
+          }
 
-          \vspace{3mm}
+          \bool_if:NTF \l__bithesis_cover_reverse_titles_bool {
+            \l_tmpb_tl \vspace{3mm} \l_tmpa_tl
+          } {
+            \l_tmpa_tl \vspace{3mm} \l_tmpb_tl
+          }
+          \group_end:
 
-          \begin{spacing}{1.2}
-            \zihao{3}\selectfont{\textbf{\l__bithesis_value_title_en_tl}}\par
-          \end{spacing}
+          \vspace{0em plus 1fill}
 
-          \vspace{15mm}
-
           \begin{spacing}{1.8}
             \begin{center}
-            \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl {
-              \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:}
+            \tl_if_empty:NT \l__bithesis_cover_delimiter_tl {
+              \tl_set:Nn \l__bithesis_cover_delimiter_tl {:}
             }
             % if not auto width, try override width
             \bool_if:NF \l__bithesis_cover_auto_width_bool {
@@ -1709,10 +1759,12 @@
             \end{center}
           \end{spacing}
 
-          \vspace*{\fill}
+          \vspace*{1.5em plus 1.5fill}
           \centering
           \zihao{3}\ziju{0.5}\songti{
             \tl_if_empty:NTF \l__bithesis_cover_date_tl {
+              % 英文模板中 ctex 不会预设日期格式,但仍要保证中文封面的日期按中文习惯
+              \ctexset{today=small}
               \today
             } {
               \l__bithesis_cover_date_tl
@@ -1740,7 +1792,7 @@
 
           \begin{spacing}{1.8}
 
-            \tl_set:Nn \l__bithesis_cover_dilimiter_tl {\textbf{:}}
+            \tl_set:Nn \l__bithesis_cover_delimiter_tl {\textbf{:}}
             \bool_set_false:N \l__bithesis_cover_auto_width_bool
             \dim_set:Nn \l__bithesis_cover_label_max_width_dim {35mm}
             \dim_set:Nn \l__bithesis_cover_value_max_width_dim {115mm}
@@ -1772,8 +1824,8 @@
           \vspace{\stretch{0.67}}
 
           \begin{spacing}{1.8}
-            \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl {
-              \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:}
+            \tl_if_empty:NT \l__bithesis_cover_delimiter_tl {
+              \tl_set:Nn \l__bithesis_cover_delimiter_tl {:}
             }
 
             % 如果不是自动计算宽度,且用户没有自定义宽度,
@@ -1823,6 +1875,11 @@
 
           \vspace{18mm}
 
+          \bool_if:NT \l__bithesis_cover_add_titlezh_bool {
+            \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par
+            \vspace{16mm}
+          }
+
           \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_en_tl}\par
 
           \vspace{10mm}
@@ -1829,8 +1886,8 @@
 
           \begin{spacing}{1.8}
             \begin{center}
-            \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl {
-              \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:}
+            \tl_if_empty:NT \l__bithesis_cover_delimiter_tl {
+              \tl_set:Nn \l__bithesis_cover_delimiter_tl {:}
             }
 
             % if not auto width, try override width
@@ -1847,7 +1904,7 @@
 
             \clist_set:Nn \l__bithesis_input_clist {
               {\c__bithesis_label_school_en_tl} {\l__bithesis_value_school_tl},
-              {\c__bithesis_label_major_en_tl} {\l__bithesis_value_major_tl},
+              {\g__bithesis_const_info_major_tl} {\l__bithesis_value_major_tl},
               {\c__bithesis_label_author_en_tl} {\l__bithesis_value_author_tl},
               {\c__bithesis_label_student_id_en_tl} {\l__bithesis_value_student_id_tl},
               {\c__bithesis_label_supervisor_en_tl} {\l__bithesis_value_supervisor_tl},
@@ -1936,7 +1993,10 @@
           \newpage
         }
         {3} {
-          \linespread{1.26}\selectfont
+          \currentpdfbookmark{Statements}{frontmatter:originality}
+          \pagestyle{BIThesis}
+          \pagenumbering{gobble}
+
           % 原创性声明部分
           \begin{center}
             \vspace*{-2bp}
@@ -1947,7 +2007,7 @@
             }
           \end{center}~\par
 
-          % 本部分字号为小三
+          % 本部分字号为小四
           \zihao{-4}
           \c__bithesis_bachelor_english_label_originality_clause_tl
 
@@ -1955,7 +2015,7 @@
 
           Student~(Signature):~\dunderline[-1pt]{1pt}{\makebox[18mm]{}}~Date:\par
 
-          \vspace{6mm}
+          \vspace{\stretch{1}}
 
           % 使用授权声明部分
           \begin{center}
@@ -2017,12 +2077,6 @@
         \renewcommand{\baselinestretch}{1.56}
       }
 
-      \__bithesis_if_thesis_english:TF {
-        \tl_set:Nn \l__bithesis_toc_title_tl {\c__bithesis_label_toc_en_tl}
-      } {
-        \tl_set:Nn \l__bithesis_toc_title_tl {\c__bithesis_label_toc_tl}
-      }
-
       % 自定义目录样式
       \cs_set:Npn \contentsname {
         \fontsize{16pt}{\baselineskip}
@@ -2032,19 +2086,19 @@
         \vspace{-8pt}
       }
 
-      % 添加目录书签
-      \__bithesis_if_thesis_int_type:nF {3} {
-        \currentpdfbookmark{\c__bithesis_label_toc_tl}{ch:toc}
+      \bool_if:NTF \l__bithesis_add_toc_to_toc_bool {
+        % 添加「目录」本身到目录中,同时自动添加书签
+        % 此处必须有`\phantomsection`,不然 hyperref 会把链接指向之前摘要的标题。
+        \phantomsection
+        \addcontentsline{toc}{chapter}{\c__bithesis_label_toc_en_tl}
+      } {
+        % 手动添加目录书签
+        \currentpdfbookmark{\l__bithesis_toc_title_tl}{ch:toc}
       }
 
       % 制作目录
       \tableofcontents
 
-      % 在本科生全英文模板中,添加「目录」本身到目录中。
-      \__bithesis_if_thesis_int_type:nT {3} {
-        \addcontentsline{toc}{chapter}{\c__bithesis_label_toc_en_tl}
-      }
-
       % 单独成页
       \clearpage
     }
@@ -2076,17 +2130,9 @@
     }
 
     \__bithesis_if_bachelor_thesis:T {
-      \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3}
-      {
-        \ctexset{
-          chapter/titleformat = {\heiti}
-        }
+      \ctexset{
+        chapter/titleformat = {\textmd}
       }
-      {
-        \ctexset{
-          chapter/titleformat = {\textmd}
-        }
-      }
     }
 
     {
@@ -2124,12 +2170,9 @@
         \centering
         \vspace*{-2bp}
 
-        \__bithesis_if_thesis_int_type:nTF {3} {
-          \arialfamily\zihao{-2}\textbf
+        \l__bithesis_title_font_cs:n {
+          \zihao{3}\textbf
           \l__bithesis_value_title_en_tl\\
-        } {
-          \heiti\zihao{3}\textbf
-          \l__bithesis_value_title_en_tl\\
         }
       \end{spacing}
       \vspace*{10mm}
@@ -2140,19 +2183,8 @@
     }
 
     \__bithesis_if_bachelor_thesis:TF {
-      \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3}
-      {
-        \ctexset{
-          chapter = {
-            titleformat = {\heiti\zihao{3}\centering\textbf},
-          }
-        }
-      } {
-        \ctexset{
-          chapter = {
-            titleformat = {\heiti\zihao{-3}\centering\textmd},
-          }
-        }
+      \ctexset{
+        chapter/titleformat = {\zihao{-3}\textmd}
       }
     } {
       \ctexset {
@@ -2253,7 +2285,7 @@
     }
 
     \bool_if:NTF \l__bithesis_appendices_chapter_level_bool {
-      % 附录章节级别
+      % 使用以「chapter」为顶层的附录格式
 
       % 仅设置 \setcounter{chapter}{0} 时,pdf 目录会索引到正文章节。
       % 因此,需要使用 \appendix 重置计数器,并将附录后面的
@@ -2272,7 +2304,7 @@
         \Alph{chapter}
       }
     } {
-      % 附录节(section)级别
+      % 使用以「section」为顶层的附录格式
 
       % 因为不需要用到 chapter counter, 所以直接加一即可。
       \stepcounter{chapter}
@@ -2323,11 +2355,7 @@
         subsubsection/number = \arabic{section}. \arabic{subsection}. \arabic{subsubsection},
       }
 
-      \__bithesis_if_thesis_english:TF {
-        \chapter{\c__bithesis_label_ack_en_tl}
-      } {
-        \chapter{\c__bithesis_label_ack_tl}
-      }
+      \chapter{\g__bithesis_const_heading_acknowledgements_tl}
       \__bithesis_if_graduate:TF {\fangsong}{}
       #1
     \end{blindPeerReview}

Modified: trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls	2024-10-08 01:22:18 UTC (rev 72490)
+++ trunk/Master/texmf-dist/tex/latex/bithesis/bitreport.cls	2024-10-08 01:31:03 UTC (rev 72491)
@@ -27,7 +27,7 @@
 %% 
 \RequirePackage{expl3,l3keys2e}
 \ProvidesExplClass{bitreport}
-{2024-05-30}{3.7.9}{BIT Thesis Templates}
+{2024-10-07}{3.8.0}{BIT Thesis Templates}
 \int_new:N \g__bithesis_report_type_int
 \clist_const:Nn \c__bithesis_report_type_clist
     { common, undergraduate_proposal}
@@ -58,7 +58,7 @@
     imagePath .tl_set:N = \l_bit_coverimagepath_tl,
     date .tl_set:N = \l__bithesis_cover_date_tl,
     %% cover entry
-    dilimiter .tl_set:N = \l__bithesis_cover_dilimiter_tl,
+    delimiter .tl_set:N = \l__bithesis_cover_delimiter_tl,
     labelAlign .tl_set:N = \l__bithesis_cover_label_align_tl,
     labelAlign .initial:n = {r},
     valueAlign .tl_set:N = \l__bithesis_cover_value_align_tl,
@@ -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_dilimiter_tl}
+    \tl_if_blank:VTF #1 {} {#1\l__bithesis_cover_delimiter_tl}
   }
   \hspace{1ex}
   \__bithesis_dunderline:nnn{\l__bithesis_cover_underline_offset_dim}{\l__bithesis_cover_underline_thickness_dim}{



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