Newer
Older
UprightFont = NotoSansCJKsc-Regular,
BoldFont = NotoSansCJKsc-Bold,
ItalicFont = NotoSansCJKsc-Regular,
BoldItalicFont = NotoSansCJKsc-Bold,
ItalicFeatures = FakeSlant,
BoldItalicFeatures = FakeSlant
] { Noto~Sans~CJK~SC }
\setCJKmonofont { Noto~Sans~Mono~CJK~SC }
\setCJKfamilyfont { zhsong } { Noto~Serif~CJK~SC }
\setCJKfamilyfont { zhhei } { Noto~Sans~CJK~SC }
\setCJKfamilyfont { zhfs } { FZFangSong-Z02 }
\setCJKfamilyfont { zhkai } { FZKai-Z03 }
[AutoFakeBold=2.17]
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_source:}
% \changes{v0.14}{2021/12/20}{增加 Adobe Source Han 作为思源字体。}
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
% Source Han 思源字体。
% \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_source:
{
\setCJKmainfont
[
UprightFont = SourceHanSerifSC-Regular,
BoldFont = SourceHanSerifSC-Bold,
ItalicFont = SourceHanSerifSC-Regular,
BoldItalicFont = SourceHanSerifSC-Bold,
ItalicFeatures = FakeSlant,
BoldItalicFeatures = FakeSlant
] { Source~Han~Serif~SC }
\setCJKsansfont
[
UprightFont = SourceHanSansSC-Regular,
BoldFont = SourceHanSansSC-Bold,
ItalicFont = SourceHanSansSC-Regular,
BoldItalicFont = SourceHanSansSC-Bold,
ItalicFeatures = FakeSlant,
BoldItalicFeatures = FakeSlant
] { Source~Han~Sans~SC }
\setCJKmonofont { FZFangSong-Z02 }
\setCJKfamilyfont { zhsong } { Source~Han~Serif~SC }
\setCJKfamilyfont { zhhei } { Source~Han~Sans~SC }
\setCJKfamilyfont { zhfs } { FZFangSong-Z02 }
\setCJKfamilyfont { zhkai } { FZKai-Z03 }
[AutoFakeBold=2.17]
% \subsubsection{定义数学字库}
%
% \begin{macro}{\@@_load_math_font:}
% 设置数学字体 (XITS, 或者 \href{https://www.stixfonts.org}{STIX}, 与 Times New Roman 最为相近)
% 通用数学字体。
% \begin{macrocode}
\cs_new_protected:Npn \@@_load_math_font:
{
% \setmathfont{STIXTwoMath-Regular}[Extension = .otf]
\setmathfont{XITSMath-Regular}[
BoldFont = XITSMath-Bold,
Extension = .otf]
\setmathfont{NewCMMath-Regular.otf}[range={cal,bb,frak}]
\setmathfont{NewCMMath-Regular.otf}[version=bold,range={bfcal}]
}
% \end{macrocode}
% \end{macro}
%
%
\use:c { @@_load_latin_font_ \g_@@_latin_font_tl : }
\use:c { @@_load_cjk_font_ \g_@@_cjk_font_tl : }
% \changes{v0.10}{2021/09/28}{修正了数学字体。}
% \begin{macrocode}
\NewDocumentCommand \songti { } { \CJKfamily { zhsong } }
\NewDocumentCommand \heiti { } { \CJKfamily { zhhei } }
\NewDocumentCommand \fangsong { } { \CJKfamily { zhfs } }
\NewDocumentCommand \kaishu { } { \CJKfamily { zhkai } }
% \end{macrocode}
% 重定义字号命令。
% \begin{macrocode}
\RenewDocumentCommand \large { } { \zihao { 4 } }
% 载入设置的字体。此处设置与文档类一同载入,否则在导言区后载入字体可能导致一部分覆盖字体的命令失效。
% \BeforeBeginEnvironment { document } { \@@_load_font: }
\@@_load_font:
% 草稿模式下显示页面文字范围边界以及页眉、页脚线。
% \begin{macrocode}
\bool_if:NT \g_@@_draft_bool { \geometry { showframe } }
% \end{macrocode}
%
% 重定义 \pkg{fancyhdr} 的 \opt{plain} 样式,即本科生正文和部分特殊页面使用的的页眉页脚样式。页眉无内容;页脚为居中的页码,使用五号新罗马体数字。
\RenewDocumentCommand \headrulewidth { } { 0 pt }
\RenewDocumentCommand \footrulewidth { } { 0 pt }
}
% \begin{macro}{\@@_set_heading_g:}
% 以 \opt{plain} 样式为基础,单独设置研究生模板的页眉内容。在 \cs{fancyhead} 的可选参数中,\opt{E} 和 \opt{O} 分别表示在偶数页(even)
% 和奇数页(odd), 而 \opt{L}、\opt{R} 和 \opt{C} 则分别表示左
% (left)、右(right)和中间(center)。按照通常的排版规则,
% 在双面模式下,偶数页的中间页眉文字在左,奇数页则在右。单面模式下,
% 左右页眉都要显示。
\bool_if:NTF \g_@@_twoside_bool
{
\fancyhead [ EL ] { \small \kaishu \leftmark }
\fancyhead [ OR ] { \small \kaishu \rightmark }
}
{
\fancyhead [ L ] { \small \kaishu \leftmark }
\fancyhead [ R ] { \small \kaishu \rightmark }
}
% \begin{macro}{\frontmatter}
% 重定义 \cs{frontmatter},清空页眉页脚以及页码设置。
% \changes{v0.12}{2021/12/03}{修复了摘要页字体格式泄漏到正文的问题。}
% \changes{v0.12}{2021/12/03}{修复了页眉上长标题重叠的问题。}
% \begin{macrocode}
\RenewDocumentCommand \mainmatter { }
{
\cleardoublepage
\pagestyle { plain }
\int_compare:nF { \l_@@_info_degree_int == 1 }
{ \@@_set_heading_g: }
\tl_const:Nn \c_@@_sec_format_tl { \large \normalfont \sffamily }
% \begin{macro}{\njuchapter}
% 含有目录和 PDF 标签的无编号章。
% \begin{macrocode}
\NewDocumentCommand \njuchapter { m }
{
\chapter* { #1 }
\addcontentsline { toc } { chapter } { \c_@@_sec_format_tl #1 }
\@mkboth { #1 } { #1 }
}
% \end{macrocode}
% \end{macro}
%
chapter / beforeskip = 10 pt,
chapter / afterskip = 60 pt,
chapter / format = \c_@@_sec_format_tl \centering,
section / format = \c_@@_sec_format_tl,
subsection / format = \c_@@_sec_format_tl,
subsubsection / format = \c_@@_sec_format_tl,
% \changes{v0.13}{2021/12/09}{删除 \pkg{tocloft},改用 \pkg{ctex} 内置的目录设置。}
chapter / tocline = \c_@@_sec_format_tl \CTEXnumberline { #1 } #2
{
\group_begin:
\keys_set:nn { ctex } { chapter/format = \centering \zihao { 3 } \bf }
\njuchapter { #1 }
\group_end:
\@starttoc { #2 }
}
% \begin{macro}{\tableofcontents,\listoffigures,\listoftables}
% 重定义目录命令,修改标题格式并插入书签。
\RenewDocumentCommand \tableofcontents { }
{ \@@_modify_toc_title:nn { \contentsname } { toc } }
\RenewDocumentCommand \listoffigures { }
{ \@@_modify_toc_title:nn { \listfigurename } { lof } }
\RenewDocumentCommand \listoftables { }
{ \@@_modify_toc_title:nn { \listtablename } { lot } }
\keys_define:nn { nju / bib }
{
% \end{macrocode}
% \begin{macro}{bib/style}
% 参考文献样式。分为顺序编码制 \opt{numeric}(\opt{gb7714-2015} 样式)和著者-出版年制 \opt{author-year}(\opt{gb7714-2015ay} 样式)。用户选取的样式会被加入选项列表中,以待传进 \pkg{biblatex} 宏包。
% \begin{macrocode}
style .choice:,
style / numeric .code:n =
{ \clist_set:Nn \l_@@_tmp_clist { style = gb7714-2015 } },
style / author-year .code:n =
{ \clist_set:Nn \l_@@_tmp_clist { style = gb7714-2015ay } },
style .initial:n = numeric,
% \end{macrocode}
% \end{macro}
% \begin{macro}{bib/resource}
% 参考文献数据源。
% \begin{macrocode}
resource .clist_set:N = \l_@@_bib_resource_clist
% \end{macro}
%
% \begin{macro}{\addbibresource}
% 为了吸收用户在导言区设置的选项,\pkg{biblatex} 宏包被设置在导言区末尾才会载入。此处单独定义了可以在导言区使用的 \cs{addbibresource} 命令,用于兼容传统的添加参考文献数据源的方法。
% \begin{macrocode}
\NewDocumentCommand \addbibresource { m }
% 载入 \pkg{biblatex} 宏包前,必须禁用自行定义的 \cs{addbibresource} 命令,并传入用户设置的选项。
% \begin{macrocode}
\cs_new_protected:Npn \@@_biblatex_pre_setup:
{
\clist_put_right:Nn \l_@@_tmp_clist { backend = biber }
\exp_args:NV \PassOptionsToPackage \l_@@_tmp_clist { biblatex }
% \begin{macrocode}
\cs_new_protected:Npn \@@_biblatex_post_setup:
{
% \end{macrocode}
% \changes{v0.12}{2021/12/06}{设置输出参考文献的默认选项。}
% 修改参考文献的头部样式,自动添加目录条目。
% \begin{macrocode}
\defbibheading { njubib } [ \bibname ] { \njuchapter { ##1 } }
\DeclarePrintbibliographyDefaults { heading = njubib }
% \end{macrocode}
\clist_map_inline:Nn \l_@@_bib_resource_clist
{ \addbibresource { ##1 } }
\AtEveryBibitem
{
\clist_map_inline:nn
{ abstract, issn, isbn, archivePrefix, arxivId, pmid, eprint }
{ \clearfield { ##1 } }
% \ifentrytype{online} { }
% {
% \ifentrytype{misc} { }
% \clearfield{urldate} { \clearfield{url} }
% }
% 使用 \pkg{etoolbox} 提供的 \tn{BeforeBeginEnvironment},在 \env{document} 环境开始的钩子前载入 \pkg{biblatex} 并进行相关设置。
%\hook_gset_rule:nnnn { begindocument/before } { . } { < } { xeCJK }
%\hook_gput_code:nnn { env/document/begin } { . }
\BeforeBeginEnvironment { document }
\pdfstringdefDisableCommands
{ \cs_set_eq:NN \\ \prg_do_nothing: }
\hypersetup
{
bookmarksnumbered = true,
psdextra = true,
unicode = true,
% \end{macrocode}
% 填写 PDF 元信息。
% \begin{macrocode}
pdfauthor = \l_@@_info_author_tl,
pdfkeywords = \l_@@_info_keywords_clist,
pdfcreator = \c_@@_name_pdf_creator_tl
}
}
% 用于修改 \pkg{cleverref} 的标签名称的辅助函数。
% \begin{macrocode}
\cs_new_protected:Npn \@@_cref_name:n #1
{
\clist_map_inline:nn { #1 }
\crefname { ##1 }
{ \@@_name:n { ##1 } } { \@@_name:n { ##1 _en } }
}
\crefformat { equation } { 公式~#2#1#3~ }
\crefformat { chapter } { 第#2#1#3章 }
\crefformat { section } { 第~#2#1#3~节 }
\crefformat { subsection } { 第~#2#1#3~小节 }
\crefformat { subsubsection } { 第~#2#1#3~小节 }
% \end{macrocode}
%
% 修改 \pkg{cleverref} 的标签名称。
% \begin{macrocode}
\@@_cref_name:n { figure, table, appendix, proof }
%
% 设置默认图片扩展名,允许在不键入扩展名时自动进行补全。
% \begin{macrocode}
% \changes{v0.12}{2021/12/06}{删除了可能导致冲突的 \pkg{floatrow}。}
\DeclareCaptionStyle{njucap}
{
font = small,
labelfont = bf,
labelsep = quad,
justification = centering
}
\captionsetup [ figure ] { style = njucap }
\captionsetup [ table ] { style = njucap }
% \changes{v0.12}{2021/12/07}{删除了 \pkg{enumitem} 的部分列表环境设置。}
% \begin{macro}{\@@_new_theorem:N}
% 用于定义普通定理环境的辅助函数。
% \begin{arguments}
% \item 定理名称列表,|clist| 型变量
% \end{arguments}
% 除证明以外的环境都不需要证毕符号,在此清空其设置。
% \begin{macrocode}
\cs_new_protected:Npn \@@_new_theorem:N #1
\theoremsymbol { }
\clist_map_inline:Nn #1
{ \newtheorem { ##1 } { \@@_name:n { ##1 } } }
}
% \end{macrocode}
% \end{macro}
%
% 定义证明环境。证毕符号使用 \tn{mdlgwhtsquare} 绘制,对应于 |U+25A1| 字符\footnote{\url{https://tex.stackexchange.com/questions/567135/how-get-box-like-symbol-with-xelatex}}。
% \begin{macrocode}
\theoremsymbol { \ensuremath { \mdwhtsquare } }
\newtheorem* { proof } { \c_@@_name_proof_tl }
% \end{macrocode}
%
% 定义普通定理环境。
% \end{macrocode}
% 从 |\\| 进行分割,存入 |clist|。
% \begin{macrocode}
\seq_set_split:NnV \l_@@_tmp_seq { \\ } { #1 }
\clist_set_from_seq:NN \l_@@_tmp_clist \l_@@_tmp_seq
% \begin{macrocode}
\@@_put_inempty_seg:nnn { #1 } { 1 } { 15 }
\@@_put_inempty_seg:nnn { #1 } { 16 } { 15 }
\@@_put_inempty_seg:nnn { #1 } { 31 } { 15 }
% \begin{macro}{\@@_multiline_title:nnn}
% 生成多行标题。
% \begin{arguments}
% \item 内容格式
% \item 名称盒子宽度,|dim| 型变量
% \item 内容盒子宽度,|dim| 型变量
% \end{arguments}
\@@_spread_box:nnn { #2 } { \kaishu } { \c_@@_name_title_tl }
\@@_hskip:
% \item 名称盒子宽度,|dim| 型变量
% \item 内容盒子宽度,|dim| 型变量
% \end{arguments}
\@@_spread_box:nnn { #2 } { \kaishu } { \@@_name:n { #1 } }
% \item 名称盒子宽度,|dim| 型变量
% \item 内容盒子宽度,|dim| 型变量
% \end{arguments}
\@@_spread_box:nnn { #3 } { \kaishu } { \@@_name:n { #1 } }
\@@_spread_box:nnn { #3 } { \kaishu } { \@@_name:n { #2 } }
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
% \begin{macro}{\@@_cover_supv_entry:nnn}
% 生成两项导师信息条目,仅用于本科生封面。
% \begin{arguments}
% \item 条目名称
% \item 长内容盒子宽度,|dim| 型变量
% \item 短内容盒子宽度,|dim| 型变量
% \end{arguments}
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_supv_entry:nnn #1#2#3
{
\@@_spread_box:nnn { #2 } { \kaishu } { \@@_name:n { #1 } }
\@@_hskip:
\@@_ulined_center_box:nn { #3 }
{ \clist_item:cn { l_@@_info_ #1 _clist } { 1 } }
\skip_horizontal:n { 0.5 em }
\@@_spread_box:nnn { #2 } { \kaishu } { \c_@@_name_supv_ttl_tl }
\@@_hskip:
\@@_ulined_center_box:nn { #3 }
{ \clist_item:cn { l_@@_info_ #1 _clist } { 2 } }
\@@_vskip:
}
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
\keys_define:nn { nju / style }
{
% \end{macrocode}
% \begin{macro}{style/emblem-img}
% \changes{v0.14}{2021/12/23}{提供选择外置校徽图片的接口。}
% 校徽图片路径。
% \begin{macrocode}
emblem-img .tl_set:N = \l_@@_emblem_img_tl,
% \end{macrocode}
% \end{macro}
% \begin{macro}{style/name-img}
% \changes{v0.14}{2021/12/23}{提供选择外置校名图片的接口。}
% 校名图片路径。
% \begin{macrocode}
name-img .tl_set:N = \l_@@_name_img_tl
}
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
\ctex_at_end_preamble:n
{
% \end{macrocode}
% \begin{macro}{\njuemblem,\njuname}
% 如果用户在定义了图片的路径,则覆盖 \pkg{njuvisual} 提供的绘制命令。
% \begin{macrocode}
\tl_if_empty:NF \l_@@_emblem_img_tl
{
\RenewDocumentCommand \njuemblem { o m m }
{ \includegraphics [ width = #2, height = #3 ]
{ \l_@@_emblem_img_tl } }
}
\tl_if_empty:NF \l_@@_name_img_tl
{
\RenewDocumentCommand \njuname { o m m }
{ \includegraphics [ width = #2, height = #3 ]
{ \l_@@_name_img_tl } }
}
% \end{macrocode}
% \end{macro}
\exp_last_unbraced:NV
\@@_date:www \l_@@_info_sm_date_raw_tl \q_stop
}
% \end{macrocode}
% 英文提交日期以及答辩日期仅用于研究生封面。
% \begin{macrocode}
\int_compare:nF { \l_@@_info_degree_int == 1 }
{
% \begin{macro}{\@@_cover_title_ug:}
% 本科生封面标题。
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_title_ug:
% \begin{macro}{\@@_cover_info_ug:nnn}
% 本科生封面信息栏。
% \item 名称盒子宽度,|dim| 型变量
% \item 长内容盒子宽度,|dim| 型变量
% \item 短内容盒子宽度,|dim| 型变量
\@@_cover_entry:nnn { dept } { #1 } { #2 }
\@@_cover_entry:nnn { major } { #1 } { #2 }
\@@_multiline_title:nnn { \bf } { #1 } { #2 }
\@@_cover_entry:nnn { author } { #1 } { #2 }
\@@_cover_supv_entry:nnn { supv } { #1 } { #3 }
\bool_if:NT \l_@@_second_supv_bool
{ \@@_cover_supv_entry:nnn { supv_ii } { #1 } { #3 } }
\@@_cover_entry:nnn { sm_date } { #1 } { #2 }
\@@_spread_box:nnn { 9em } { } { \l_@@_info_type_tl } \@@_vskip:
\c_@@_name_degree_l_tl \l_@@_info_degree_tl \c_@@_name_degree_r_tl
% \begin{macro}{\@@_cover_info_g:nn}
% 研究生封面信息栏。
% \begin{arguments}
% \item 名称盒子宽度,|dim| 型变量
% \item 内容盒子宽度,|dim| 型变量
% \end{arguments}
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_info_g:nn #1#2
\begin{minipage} [ c ] { #1 + #2 + 0.3 em }
\raggedleft
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_back_g:
\@@_spread_box:nnn { 6.2 em } { \kaishu } { \c_@@_name_id_tl }
{ : \@@_quad: } \l_@@_info_id_tl
\@@_vskip:
\@@_spread_box:nnn { 6.2 em } { \kaishu } { \c_@@_name_df_date_tl }
{ : \@@_quad: } \l_@@_info_df_date_tl
\@@_vskip:
\@@_spread_box:nnn { 6.2 em } { \kaishu } { \c_@@_name_supv_full_tl }
{ : \@@_quad: } \skip_horizontal:n { 8 em } \c_@@_name_sign_tl
% \end{macrocode}
% 标题。
% \begin{macrocode}
\parbox { \textwidth }
{ \centering \bf \sffamily \zihao { 2 } \l_@@_info_title_en_tl }
\skip_vertical:n { 1 cm }
% \end{macrocode}
% 作者。
% \begin{macrocode}
\group_begin: \zihao { 4 } { by } \group_end: \@@_vskip:
\bf \sffamily \zihao { 4 } \l_@@_info_author_en_tl
\group_end: \skip_vertical:n { 1 cm }
% \end{macrocode}
% 导师。
% \begin{macrocode}
\group_begin: \zihao { 4 } { Supervised~ by } \group_end: \@@_vskip:
\group_begin:
\sffamily \zihao { 4 } \l_@@_info_supv_full_en_tl
\group_end: \vfill
% \end{macrocode}
% 学位信息。
% \begin{macrocode}
\c_@@_cover_en_text_tl \@@_vskip:
\textsc { \clist_item:Nn \c_@@_name_degree_en_clist
\l_@@_info_major_en_tl \skip_vertical:n { 1 cm }
% \end{macrocode}
% 校徽。
% \begin{macrocode}
\njuemblem [ black ] { ! } { 2.5 cm } \@@_vskip:
\l_@@_info_dept_en_tl \\ \c_@@_name_nju_en_tl
\skip_vertical:n { 1 cm }
% \end{macrocode}
% 提交日期。
% \begin{macrocode}
\l_@@_info_sm_date_en_tl
\@@_spread_box:nnn { 3.2 em } { } { \c_@@_name_clc_tl } \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \l_@@_info_clc_tl } \hfill
\@@_spread_box:nnn { 3.2 em } { } { \c_@@_name_seclv_tl } \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \l_@@_info_seclv_tl } \\
\@@_spread_box:nnn { 3.2 em } { } { \c_@@_name_udc_tl } \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \l_@@_info_udc_tl } \hfill \null
% \begin{macro}{\@@_cover_title_nl:}
% 国家图书馆封面标题。
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_title_nl:
{
\noindent \kaishu \zihao { -0 } \skip_vertical:n { -1 cm }
\@@_spread_box:nnn { 6 em } { } { \c_@@_name_title_tl }
\@@_vskip: \zihao { 1 }
\@@_split_title:n { \l_@@_info_title_tl }
\@@_multiline_box:nnnn { \l_@@_tmp_int } \l_@@_tmp_clist { 3 } { 15 em }
\@@_ulined_center_box:nn { 4.5 em } { \l__nju_info_author_tl }
\@@_vskip: \zihao{4} { ( } \c_@@_name_author_tl { ) }
}
% \end{macrocode}
% \end{macro}
\tl_set:Nn \l_@@_info_supv_tl
{ \clist_item:Nn \l_@@_info_supv_clist { 1 } }
\tl_set:Nn \l_@@_info_supv_ttl_tl
{ \clist_item:Nn \l_@@_info_supv_clist { 2 } }
\@@_uline_entry:nnnn \l_@@_tmp_dim { supv_info } { supv } { } \\
\@@_ulined_center_box:nn { \textwidth } { \@@_info:n { supv_ttl }
\@@_quad: \@@_info:n { supv_cont } } \\
\@@_uline_bientry:nnnn \l_@@_tmp_dim { degree } { degree } { }
\@@_uline_bientry:nnnn \l_@@_tmp_dim { major_nl } { major } { } \\
\@@_uline_bientry:nnnn \l_@@_tmp_dim { sm_date } { sm_date } { }
\@@_uline_bientry:nnnn \l_@@_tmp_dim { df_date } { df_date } { } \\
\@@_full_uline:Nn \l_@@_tmp_dim { \c_@@_name_confer_tl }
\@@_uline:n { \l_@@_tmp_dim }
% \begin{macro}{\@@_cover_bottom_nl:}
% 国家图书馆封面底部信息。
\@@_name:n { chairman } \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \@@_info:n { chairman } } \\
\@@_name:n { reviewer } \@@_hskip:
%
% \begin{macro}{\@@_make_cover_ug:}
% \changes{v0.13}{2021/12/10}{使用 \hologo{LaTeX3} 语法重构本科生封面。}
% 生成本科生封面。
% \end{macrocode}
% 校徽、校名。
% \begin{macrocode}
\null \skip_horizontal:n { -1 cm }
\group_begin: \zihao { -1 } \@@_cover_title_ug: \group_end:
\skip_vertical:n { 1.5 cm } \vfil
% \end{macrocode}
% 信息栏。
% \begin{macrocode}
\zihao{3} \@@_cover_info_ug:nnn { 4.2 em } { 16 em } { 5.5 em } \vfil
% \begin{macro}{\@@_make_cover_g:}
% \changes{v0.13}{2021/12/11}{使用 \hologo{LaTeX3} 语法重构研究生封面。}
% 生成研究生封面。
\null \skip_vertical:n { 1 cm }
\njuemblem [ black ] { ! } { 1.9 cm } \skip_vertical:n { 0.5 cm }
\njuname [ black ] { 4.4 cm } { ! } \@@_vskip:
% \end{macrocode}
% 英文封面。
% \begin{macrocode}
\newpage
\noindent \null \skip_vertical:n { 2 cm }
\begin{center}
% \begin{macro}{\@@_make_cover_nl:}
% \changes{v0.13}{2021/12/12}{使用 \hologo{LaTeX3} 语法重构国家图书馆封面。}
% 生成研究生的国家图书馆封面。
\pdfbookmark [ 0 ] { 国家图书馆封面 } { nlcover }
\noindent \null
% \end{macrocode}
% 顶部,包括密级、分类号、UDC。
% \begin{macrocode}
\begin{center}
\zihao{ -4 } \skip_vertical:n { -2 cm }
\@@_cover_top_nl:
\end{center}
% \end{macrocode}
% 标题。
% \begin{macrocode}
% \end{macrocode}
% 中部信息栏。
% \begin{macrocode}
\kaishu \zihao { 4 } \noindent \@@_cover_info_nl:
\group_end:
% \end{macrocode}
% 底部答辩信息。
% \begin{macrocode}
\begin{flushright}
\@@_cover_bottom_nl:
\end{flushright}
\begin{center}
\kaishu \zihao{3} \@@_qquad: 年 \@@_quad: 月 \@@_quad: 日
\chapter* { \c_@@_name_nju_tl \c_@@_name_orig_decl_tl }
\thispagestyle { empty }
\c_@@_orig_decl_text_tl
\vfil
\begin{flushright}
\clist_set:Nn \l_@@_tmp_clist { orig_sign, id, orig_date }
\int_compare:nF { \l_@@_info_degree_int == 1 }
{ \clist_remove_all:Nn \l_@@_tmp_clist { id } }