Newer
Older
\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}
%
\group_begin:
\clist_remove_all:Nn \g_@@_theorem_type_clist { proof }
\@@_new_theorem:N \g_@@_theorem_type_clist
\group_end:
% \changes{v0.16}{2022/03/01}{将封面部件分离到 \file{.def} 文件。}
% \begin{macro}{cover/ug/emblem-img}
% 本科生封面校徽图片实例。
\@@_declare_element:nn { cover / ug / emblem-img }
{
content = \njuemblem [ black ] { ! } { 3.35 cm },
bottom-skip = 1 cm,
align = l
}
% \end{macrocode}
%
% \begin{macro}{cover/ug/name-img}
% 本科生封面校名图片实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / ug / name-img }
{
content = \njuname [ black ] { ! } { 3 cm },
bottom-skip = 1 cm
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/ug/title}
% 本科生封面标题实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / ug / title }
format = \zihao { -1 },
bottom-skip = 0 pt plus 1.5 fill
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/ug/info}
% 本科生封面信息栏实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / ug / info }
\@@_cover_info_ug:nnn { 4.2 em } { 16 em } { 5.5 em },
% \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 }
% \end{macrocode}
% \end{macro}
%
% \paragraph{研究生}
%
% \subparagraph{正面} 包括校名、校徽、标题、信息栏。
%
% \begin{macro}{cover/g/emblem-img}
% 研究生封面校徽图片实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / g / emblem-img }
{
content = \njuemblem [ black ] { ! } { 1.9 cm },
bottom-skip = 1 cm
}
% \end{macrocode}
%
% \begin{macro}{cover/g/name-img}
% 研究生封面校名图片实例。
\@@_declare_element:nn { cover / g / name-img }
content = \njuname [ black ] { 4.4 cm } { ! },
\@@_declare_element:nn { cover / g / type }
format = \zihao { -1 } \bfseries,
bottom-skip = 1 cm
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/g/degree}
% 研究生封面标题实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / g / degree }
{
content = \c_@@_name_apply_tl,
format = \zihao { -1 } \bfseries,
bottom-skip = 1 cm plus 1.5 fil
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/g/info}
% 研究封面信息栏实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / g / info }
content = \@@_cover_info_g:nn { 6.2 em } { 18 em },
bottom-skip = 0 pt plus 1.5 fil
% \begin{macro}{cover/g/date}
% 研究封面日期实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / g / date }
{ content = \l_@@_info_sm_date_tl }
% \end{macrocode}
% \end{macro}
%
% \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
}
% \end{macrocode}
% \end{macro}
%
% \subparagraph{背面}
%
% \begin{macro}{cover/g/back}
% 研究生封面背面信息实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / g / back }
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_back_g:
\@@_spread_box:nnV { 6.2 em } { \kaishu } \c_@@_name_df_date_tl
\@@_spread_box:nnV { 6.2 em } { \kaishu } \c_@@_name_supv_full_tl
{ : \@@_quad: } \skip_horizontal:n { 8 em } \c_@@_name_sign_tl
% \subparagraph{英文封面} 包括标题、顶部、中部、校徽、底部。
%
% \begin{macro}{cover/g/en/title}
% 研究生英文封面标题实例。
\@@_declare_element:nn { cover / g / en / title }
content = \l_@@_info_title_en_tl,
format = \bf \sffamily \zihao { 2 },
bottom-skip = 2 cm
% \end{macro}
%
% \begin{macro}{cover/g/en/top}
% 研究生英文封面顶部信息实例。
\@@_declare_element:nn { cover / g / en / top }
{ by }
\skip_vertical:N \c_zero_skip
\textbf { \sffamily \l_@@_info_author_en_tl }
{ Supervised~ by }
\skip_vertical:N \c_zero_skip
\textsf { \l_@@_info_supv_full_en_tl },
format = \zihao { 4 },
bottom-skip = 0 pt plus 1.2 fil
% \end{macro}
%
% \begin{macro}{cover/g/en/middle}
% 研究生英文封面中部信息实例。
\@@_declare_element:nn { cover / g / en / middle }
\c_@@_cover_en_text_tl \@@_vskip:
\textsc { \clist_item:Nn \c_@@_name_degree_en_clist
% \end{macro}
%
% \begin{macro}{cover/g/en/emblem-img}
% 研究生英文封面校徽图片实例。
\@@_declare_element:nn { cover / g / en / emblem-img }
content = \njuemblem [ black ] { ! } { 2.5 cm },
bottom-skip = 1.5 cm
% \end{macro}
%
% \begin{macro}{cover/g/en/bottom}
% 研究生英文封面底部信息实例。
\@@_declare_element:nn { cover / g / en / bottom }
{
content =
\l_@@_info_dept_en_tl \skip_vertical:N \c_zero_skip
\c_@@_name_nju_en_tl \skip_vertical:n { 1 cm }
% \subparagraph{国家图书馆封面} 包括顶部、题名、标题、中部、底部、日期。
%
% \begin{macro}{cover/nl/top}
% 国家图书馆封面顶部信息实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / top }
content = \@@_cover_top_nl:,
bottom-skip = 2 cm
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/nl/name}
% 国家图书馆封面标题名称实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / name }
format = \zihao { -0 },
bottom-skip = 0 pt plus 1.2 fil
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/nl/title}
% 国家图书馆封面标题实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / title }
content = \@@_cover_title_nl:,
format = \zihao { 1 },
bottom-skip = 1 cm
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/nl/middle}
% 国家图书馆封面中部信息实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / middle }
content = \@@_cover_info_nl:,
format = \zihao { 4 },
bottom-skip = 0 pt plus 1.2 fil
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/nl/bottom}
% 国家图书馆封面底部信息实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / bottom }
content = \@@_cover_bottom_nl:,
bottom-skip = 1 cm,
align = r
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover/nl/date}
% 国家图书馆封面底部日期实例。
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / date }
{
content = \@@_qquad: 年 \@@_quad: 月 \@@_quad: 日,
}
% \end{macrocode}
% \end{macro}
%
\@@_spread_box:nnV { 3.2 em } { } \c_@@_name_clc_tl \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \l_@@_info_clc_tl } \hfill
\@@_spread_box:nnV { 3.2 em } { } \c_@@_name_seclv_tl \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \l_@@_info_seclv_tl } \\
\@@_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:
{
\@@_multiline_box:nnnn { \l_@@_tmp_int } \l_@@_tmp_clist { 3 } { 15 em }
\@@_ulined_center_box:nn { 4.5 em } { \l__nju_info_author_tl }
\skip_vertical:n { - 0.5 cm }
{ \zihao { 4 } { ( } \c_@@_name_author_tl { ) } }
\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_b } { 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:
% \changes{v0.13}{2021/12/10}{使用 \hologo{LaTeX3} 语法重构本科生封面。}
% \changes{v0.13}{2021/12/11}{使用 \hologo{LaTeX3} 语法重构研究生封面。}
% \changes{v0.13}{2021/12/12}{使用 \hologo{LaTeX3} 语法重构国家图书馆封面。}
% 定义封面页面的具体配置参数。
%
% \begin{macro}{cover-ug-default}
% 默认本科生封面实例。
element = { emblem-img, name-img, title, info },
prefix = cover / ug /,
bottom-skip = 0.5 cm plus 1.5 fill
% \begin{macro}{cover-g-front-default}
% 默认研究生普通封面正面实例。
\@@_declare_page:nn { cover-g-front-default }
element = { emblem-img, name-img, type, degree, info, date },
prefix = cover / g /,
format = \zihao { 3 } \kaishu,
top-skip = 1.5 cm
}
% \end{macro}
%
% \begin{macro}{cover-g-back-default}
% 默认研究生普通封面背面实例。
\@@_declare_page:nn { cover-g-back-default }
{
element = { back },
prefix = cover / g /,
format = \zihao { 3 } \kaishu,
top-skip = 20 cm
}
% \end{macro}
%
% \begin{macro}{cover-g-en-default}
% 默认研究生英文封面实例。
element = { title, top, middle, emblem-img, bottom },
prefix = cover / g / en /,
top-skip = 0 pt plus 1.2 fil
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{cover-nl-default}
% 默认国家图书馆封面实例。
% \begin{macrocode}
element = { top, name, title, middle, bottom, date },
prefix = cover / nl /,
format = \kaishu
% \begin{macro}{\@@_make_cover:}
% 生成本科生或研究生的普通封面。
%<*(definition-ug|definition-g)>
\cs_new_protected:Npn \@@_make_cover:
%<definition-ug> \UseInstance { nju } { cover-ug-default }
%<definition-g> \clist_map_inline:nn { front, back, en }
%<definition-g> { \UseInstance { nju } { cover-g- ##1 -default } }
% \begin{macro}{\@@_make_cover_nl:}
% 生成研究生的国家图书馆封面。
%<definition-g>\cs_new_protected:Npn \@@_make_cover_nl:
%<definition-g> { \UseInstance { nju } { cover-nl-default } }
\thispagestyle { empty }
\c_@@_orig_decl_text_tl
\vfil
\begin{flushright}
%<definition-ug> \clist_map_inline:nn { orig_sign, id, orig_date }
%<definition-g> \clist_map_inline:nn { orig_sign, orig_date }
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
% \begin{macro}{\@@_new_img_cmd:nn,\@@_new_img_cmd:nV}
% 用于定义插入图片命令的辅助函数。
% \begin{macrocode}
%<*class>
\cs_new_protected:Npn \@@_new_img_cmd:nn #1#2
{
\exp_args:Nc \NewDocumentCommand { #1 } { o m m }
{ \includegraphics [ width = ##2, height = ##3 ] { #2 } }
}
\cs_generate_variant:Nn \@@_new_img_cmd:nn { nV }
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
\keys_define:nn { nju / style }
{
% \end{macrocode}
% \begin{macro}{style/emblem-img,\njuemblem}
% \changes{v0.14}{2021/12/23}{提供选择外置校徽图片的接口。}
% 校徽图片路径。
% \begin{macrocode}
emblem-img .code:n =
{ \@@_new_img_cmd:nV { njuemblem } \l_keys_value_tl },
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{style/name-img,\njuname}
% \changes{v0.14}{2021/12/23}{提供选择外置校名图片的接口。}
% 校名图片路径。
% \begin{macrocode}
name-img .code:n =
{ \@@_new_img_cmd:nV { njuname } \l_keys_value_tl }
}
% \end{macrocode}
% \end{macro}
%
% \changes{v0.16}{2022/02/22}{不再默认载入 \pkg{njuvisual}。}
% 检查 \cs{njuemblem} 和 \cs{njuname} 命令是否有定义。
% \begin{macrocode}
\msg_new:nnn { njuthesis } { missing-image }
{
Local~ images~ not~ designated.\\
It~ seems~ that~ you~ haven't~ fill~ in~ both~
"style/emblem-img"~ and~ "style/name-img",~
therefore~ I~ am~ using~ package~ "njuvisual"~
instead,~ which~ may~ slow~ down~ the~ compilation.
}
\ctex_at_end_preamble:n
{
% \end{macrocode}
% 如果校名、校徽图片其中之一的路径未被定义,
% 则全盘使用 \pkg{njuvisual} 提供的绘制命令。
% \begin{macrocode}
\bool_lazy_and:nnF
{ \cs_if_exist_p:N \njuemblem }
{ \cs_if_exist_p:N \njuname }
{
\cs_undefine:N \njuemblem
\cs_undefine:N \njuname
\msg_warning:nn { njuthesis } { missing-image }
\RequirePackage { njuvisual }
}
}
% \end{macrocode}
%
\pagestyle { empty }
\pagenumbering { gobble }
% 如果在研究生模板中选择了 \opt{nlcover},就生成用于申请学位的国家图书馆封面,
% 反之生成普通封面。
% \begin{macrocode}
\bool_if:NT \g_@@_orig_decl_bool { \@@_make_orig_decl: }
% \subsubsection{绘制部件}
% \changes{v0.16}{2022/03/02}{将摘要部件分离到 \file{.def} 文件。}
% \changes{v0.16}{2022/03/02}{使用 \pkg{xtemplate} 重构摘要。}
%
% \begin{macro}{abstract/title}
% 中文摘要标题实例。
%<*(definition-ug|definition-g)>
\@@_declare_element:nn { abstract / title }
{
content = \@@_abs_title:V \c_@@_name_abstract_title_tl,
format = \bfseries \kaishu \zihao { -2 },
bottom-skip = 1.2 cm
}
% \begin{macro}{abstract/info}
% 中文摘要信息栏实例。
% \begin{macrocode}
\@@_declare_element:nn { abstract / info }
{
%<definition-ug> content = \@@_abs_info_ug:nn { } { : },
%<definition-ug> format = \zihao { -4 } \kaishu,
%<definition-g> format = \zihao { 4 } \kaishu,
align = l,
bottom-skip = 1 cm
}
% \end{macrocode}
% \end{macro}
% \begin{macro}{abstract/en/title}
% 英文摘要标题实例。
% \begin{macrocode}
\@@_declare_element:nn { abstract / en / title }
{
content = \@@_abs_title:V \c_@@_name_abstract_title_en_tl,
format = \bfseries \kaishu \zihao { -2 },
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{abstract/en/info}
% 英文摘要信息栏实例。
% \begin{macrocode}
\@@_declare_element:nn { abstract / en / info }
{
%<definition-ug> content = \@@_abs_info_ug:nn { _en } { :~ },
%<definition-ug> format = \zihao { -4 },
%<definition-g> format = \zihao { 4 },
align = l,
bottom-skip = 1 cm
}
%</(definition-ug|definition-g)>
% \end{macrocode}
% \end{macro}
% \changes{v0.13}{2021/12/12}{使用 \hologo{LaTeX3} 语法重构本科生摘要。}
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 分隔符
% \end{arguments}
{ \clist_item:Nn \c_@@_name_type_en_clist { \g_@@_info_type_int } }
% \end{macrocode}
% 由于作者姓名使用的字样发生了变动,这里进行替换以便嵌入循环。
% \begin{macrocode}
\tl_set_eq:NN \c_@@_name_author_tl \c_@@_name_author_a_tl
% \end{macrocode}
% 使用循环输出院系、专业、作者、导师信息。
% \begin{macrocode}
\clist_map_inline:nn { dept, major, author, supv_full }
{ \@@_name:n { ##1 #1 } #2 \@@_info:n { ##1 #1 } \\ }
\@@_name:n { abstract #1 } #2
}
% \changes{v0.13}{2021/12/12}{使用 \hologo{LaTeX3} 语法重构研究生摘要。}
% \begin{arguments}
% \item 分隔符
% \end{arguments}
% 研究生中文摘要页包括下划线以及若干特殊的对齐方式,实现方式较为繁琐。使用 \cs{@@_full_uline:NV} 确定内容宽度后,调用 \cs{@@_uline:n} 或 \cs{@@_ulined_center_box:nn} 命令以绘制横穿页面的下划线。前两行为标题。
\clist_item:Nn \c_@@_name_type_clist { \g_@@_info_type_int }
\c_@@_name_title_a_tl #1
}
\@@_ulined_center_box:nn { \l_@@_tmp_dim }
{ \tl_range:Nnn \l_@@_info_title_tl { 1 } { 20 } } \\
\@@_uline:n { \textwidth } \@@_qquad:
\tl_range:Nnn \l_@@_info_title_tl { 21 } { -1 } \\
% \end{macrocode}
% 专业、年级、姓名。
% \begin{macrocode}
\@@_full_uline:NV \l_@@_tmp_dim
{
\@@_ulined_center_box:nn { 11 em } { \l_@@_info_major_tl }
\c_@@_name_major_a_tl
\@@_ulined_center_box:nn { 4 em } { \l_@@_info_grade_tl }
\c_@@_name_grade_tl \c_@@_name_author_a_tl #1
}
\@@_ulined_center_box:nn { \l_@@_tmp_dim }
{ \l_@@_info_author_tl } \\
% \end{macrocode}
% 导师姓名、职称。
% \begin{macrocode}
\@@_full_uline:NV \l_@@_tmp_dim
{ \c_@@_name_supv_a_tl #1 }
\@@_ulined_center_box:nn { \l_@@_tmp_dim }
{ \l_@@_info_supv_full_tl }
}
% \end{macro}
%
% \begin{macro}{\@@_abs_info_en_g:n}
% 绘制研究生英文摘要信息栏。
% \begin{arguments}
% \item 分隔符
% \end{arguments}
% 前两行为标题。
\cs_new_protected:Npn \@@_abs_info_en_g:n #1
{
\@@_full_uline:NV \l_@@_tmp_dim
{ \clist_item:Nn \c_@@_name_type_en_clist
{ \g_@@_info_type_int } #1 }
\@@_ulined_center_box:nn { \l_@@_tmp_dim }
{ \tl_range:Nnn \l_@@_info_title_en_tl { 1 } { 40 } } \\
\@@_uline:n { \textwidth } \@@_qquad:
\tl_range:Nnn \l_@@_info_title_en_tl { 41 } { -1 }
% 使用循环输出专业、姓名、导师。注意这里将 |\\| 放置在前部,
% 以避免末尾生成多余的换行符产生 |Underfull \vbox| 信息。
\clist_map_inline:nn { major, author, supv_full }
{ \\
\@@_uline_entry:Nnnn \l_@@_tmp_dim
{ ##1 _en } { ##1 _en } { #1 }
% 生成中英文关键词列表。
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 关键词分隔符
% \end{arguments}
\tl_set:Nv \l_@@_tmp_tl { c_@@_name_keywords #1 _tl }
\@@_get_text_width:NV \l_@@_tmp_dim \l_@@_tmp_tl
\list { }
{
\labelwidth \l_@@_tmp_dim
\labelsep \c_zero_dim
\leftmargin \c_zero_dim
\rightmargin \c_zero_dim
\advance \leftmargin \l_@@_tmp_dim
% \end{macrocode}
% 使用粗体作为标签样式。
% \begin{macrocode}
\cs_set_eq:NN \makelabel \textbf
}
\item [ \l_@@_tmp_tl ]
\clist_use:cn { l_@@_info_keywords #1 _clist } { #2 }
\endlist
% \begin{macro}{\@@_make_abstract:,\@@_make_abstract_en:}
% 绘制摘要页面。
%<*(definition-ug|definition-g)>
\cs_new_protected:Npn \@@_make_abstract:
\UseInstance { nju } { abstract / title }
\UseInstance { nju } { abstract / info }
\cs_new_protected:Npn \@@_make_abstract_en:
{
\UseInstance { nju } { abstract / en / title }
\UseInstance { nju } { abstract / en / info }
}
%</(definition-ug|definition-g)>
%<*class>
\keys_define:nn { nju / style }
% \end{macrocode}
% \begin{macro}{style/abstract-in-toc}
% \changes{v0.15}{2022/02/04}{可选择摘要是否出现在目录中。}
% 是否将摘要添加到目录。
% \begin{macrocode}
abstract-in-toc .bool_gset:N = \g_@@_abs_in_toc_bool,
abstract-in-toc .initial:n = true
% \begin{environment}{abstract}
% \changes{v0.13}{2021/12/12}{重新绘制摘要。}
\@@_abs_bookmark:Vn \c_@@_name_abstract_a_tl { abstract }
% 英文摘要环境。\pkg{xparse} 目前不支持合并带有星号的环境,因此需要单独定义。
% \begin{macrocode}
\@@_abs_bookmark:Vn \c_@@_name_abstract_a_en_tl { abstract-en }
% \begin{environment}{preface}
% \begin{environment}{acknowledgement}
% \begin{macro}{\njupaperlist}
% \changes{v0.10}{2021/09/29}{新增了成果列表页面。}
\NewDocumentCommand \njupaperlist
{ O { \c_@@_name_paperlist_tl } m }
\group_begin:
% \end{macrocode}
% 修改姓名的显示方式,使被注解的姓名可被加粗下划线表示。
% \begin{macrocode}
\RenewDocumentCommand \mkbibnamegiven { m }
{ \njuline { \bf ##1 } } { ##1 } }
\RenewDocumentCommand \mkbibnamefamily { m }
{ \njuline { \bf ##1 } } { ##1 } }
% \end{macrocode}
% 修改年份的显示方式,默认进行加粗。
% \begin{macrocode}
\RenewDocumentCommand \mkbibdateshort { m m m }
{ \textbf { \thefield { ##1 } } }
\nocite { #2 }
\printbibliography [ heading = subbibliography, title = #1 ]