Newer
Older
% \begin{macro}{\@@_biblatex_post_setup:}
% \pkg{biblatex} 宏包载入后的设置,此时可正常使用 \cs{addbibresource} 命令。
% \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}
% 传入参考文献源文件。
% \begin{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{url}}}
}
}
% \end{macrocode}
% \end{macro}
%
% 使用 \pkg{etoolbox} 提供的 \tn{BeforeBeginEnvironment},在 \env{document} 环境开始的钩子前载入 \pkg{biblatex} 并进行相关设置。
%\hook_gset_rule:nnnn { begindocument/before } { . } { < } { xeCJK }
%\hook_gput_code:nnn { env/document/begin } { . }
\BeforeBeginEnvironment { document }
% \end{macrocode}
% 清除标题中用于手动换行的 |!| 控制符。
% \begin{macrocode}
\tl_set_eq:NN \l_@@_tmp_tl \l_@@_info_title_tl
\tl_remove_all:Nn \l_@@_tmp_tl { ! }
\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
}
}
%
% \begin{macro}{\@@_cref_name:n,\@@_cref_name:N }
% 用于修改 \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 } } }
}
\cs_new_protected:Npn \@@_cref_name:N #1
{
\clist_map_inline:Nn #1
{ \crefname { ##1 } { \@@_name:n { ##1 } } { \@@_name:n { ##1 _en } } }
}
% \end{macrocode}
% \end{macro}
%
% 修改 \pkg{cleverref} 的标签格式。
% 默认在名称后面添加空格,删除公式编号的括号。
% \begin{macrocode}
\crefdefaultlabelformat{#2#1#3\,}
\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 }
\@@_cref_name:N \c_@@_theorem_type_clist
%
% 设置默认图片扩展名,允许在不键入扩展名时自动进行补全。
% \begin{macrocode}
\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png}
% \end{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}
%
% 定义普通定理环境。
\seq_set_split:NnV \l_@@_tmp_seq { ! } { #1 }
\clist_set_from_seq:NN \l_@@_tmp_clist \l_@@_tmp_seq
\@@_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}
\@@_split_title:n { \l_@@_info_title_tl }
\@@_spread_box:nnn { #2 } { \kaishu } { \c_@@_name_title_tl }
\@@_hskip:
% 生成单项信息条目。
% \begin{arguments}
% \item 条目
% \item 名称盒子宽度,|dim| 型变量
% \item 内容盒子宽度,|dim| 型变量
% \end{arguments}
\@@_spread_box:nnn { #2 } { \kaishu } { \@@_name:n { #1 } }
% 生成两项信息条目,仅用于本科生封面。
% \begin{arguments}
% \item 左侧条目
% \item 右侧条目
% \item 名称盒子宽度,|dim| 型变量
% \item 内容盒子宽度,|dim| 型变量
% \end{arguments}
\@@_spread_box:nnn { #3 } { \kaishu } { \@@_name:n { #1 } }
\@@_spread_box:nnn { #3 } { \kaishu } { \@@_name:n { #2 } }
% \begin{macro}{\@@_cover_title_ug:}
% 本科生封面标题。
% \begin{macrocode}
\cs_new_protected:Npn \@@_cover_title_ug:
{ \@@_spread_box:nnn { 9em } { \bf } { \l_@@_info_type_tl } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_info_ug:nnn}
% 本科生封面信息栏。
% \item 名称盒子宽度,|dim| 型变量
% \item 长内容盒子宽度,|dim| 型变量
% \item 短内容盒子宽度,|dim| 型变量
\@@_cover_entry:nnn { dept } { #1 } { #2 }
\@@_cover_entry:nnn { major } { #1 } { #2 }
\@@_cover_bientry:nnnn { grade } { id } { #1 } { #3 }
\@@_cover_entry:nnn { author } { #1 } { #2 }
\@@_cover_bientry:nnnn { supv } { supv_ttl } { #1 } { #3 }
{ \@@_cover_bientry:nnnn { supv_ii } { supv_ttl } { #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{macro}{\@@_cover_back_g:}
% 研究生封面背面信息。
% \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
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
% \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:
\group_begin:
\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
\@@_vskip: { in } \@@_vskip:
\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 }
\@@_vskip: \zihao{4} \c_@@_name_title_nl_tl
\@@_vskip: \zihao{1}
\@@_ulined_center_box:nn { 4.5 em } { \l__nju_info_author_tl }
\@@_vskip: \zihao{4} { ( } \c_@@_name_author_tl { ) }
}
% \end{macrocode}
% \end{macro}
\@@_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 }
\njuemblem [ black] { ! } { 3.35 cm }
\begin{center}
\njuname[black]{!}{3cm} \@@_vskip:
\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} 语法重构研究生封面。}
% 生成研究生封面。
\cs_new_protected:Npn \@@_make_cover_g:
{
\newpage
\begin{center}
\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}
\group_begin:
\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: 日
\cs_new_protected:Npn \@@_make_orig_decl:
{
\normalfont \normalsize
\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 } }
\clist_map_inline:Nn \l_@@_tmp_clist
{ \@@_vskip: \@@_name:n { ##1 } : \@@_uline:n { 7 em } }
% \end{macrocode}
% 如果在研究生模板中选择了 |nlcover|,就生成用于申请学位的国家图书馆封面和原创性声明,反之生成普通封面。
% \begin{macrocode}
% \end{macrocode}
% 如果在选择了 |orig-decl|,就生成本科生的诚信承诺书或研究生的原创性声明。
% \begin{macrocode}
\bool_if:NT \g_@@_orig_decl_bool { \@@_make_orig_decl: }
% 生成封面后清除标题中的换行控制符。
% \begin{macrocode}
\tl_remove_all:Nn \l_@@_info_title_tl { ! }
% \end{macrocode}
% 在标题页后使用大写罗马字母页码,恢复正常字体设置。
% \begin{arguments}
% \item 宽度,|dim| 型变量
% \end{arguments}
{ \bf \kaishu \zihao { -2 } \@@_uuline:n { #1 } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_abs_info_style:n,\@@_abs_info_style_en:n}
% \begin{arguments}
% \item 字号
% \end{arguments}
% \begin{macrocode}
\cs_new_protected:Npn \@@_abs_info_style:n #1
{ \noindent \zihao{ #1 } \kaishu }
\cs_new_protected:Npn \@@_abs_info_style_en: #1 { \zihao{ #1 } }
% \end{macrocode}
% \end{macro}
%
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 关键词分隔符
% \end{arguments}
% \begin{macrocode}
%
% \begin{macro}{\@@_abs_title_ug:n}
% 绘制本科生摘要标题。
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \end{arguments}
% \begin{macrocode}
\cs_generate_variant:Nn \clist_map_inline:nn { Vn }
\cs_new_protected:Npn \@@_abs_title_ug:n #1
{
\@@_name:n { nju } \@@_name:n { type }
\@@_name:n { lang #1 } \@@_name:n { abstract }
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 分隔符
% \end{arguments}
\tl_if_blank:eTF { #1 }
{ \c_@@_name_title_tl }
{ \clist_item:Nn \c_@@_name_type_en_clist { \l_@@_info_type_int } }
#2 \tl_use:c { l_@@_info_title #1 _tl } \\
% \end{macrocode}
% 由于作者姓名使用的字样发生了变动,这里进行替换以便嵌入循环。
% \begin{macrocode}
\tl_set_eq:NN \c_@@_name_author_tl \c_@@_name_author_full_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
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_abs_title_g:n}
% 绘制研究生摘要标题。
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \end{arguments}
% \begin{macrocode}
\cs_new_protected:Npn \@@_abs_title_g:n #1
{
\@@_name:n { nju } \@@_info:n { type }
\@@_name:n { lang #1 } \@@_name:n { abstract_r }
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 分隔符
% \end{macrocode}
% 中文摘要环境,使用 \cs{@@_full_uline:NV} 确定内容宽度后,调用 \cs{@@_uline:n} 或 \cs{@@_ulined_center_box:nn} 命令以绘制横穿页面的下划线。前两行为标题。
% \begin{macrocode}
\@@_full_uline:NV \l_@@_tmp_dim
{
\clist_item:Nn \c_@@_name_type_clist { \l_@@_info_type_int }
\c_@@_name_title_s_tl #2
}
\@@_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_s_tl
\@@_ulined_center_box:nn { 4 em } { \l_@@_info_grade_tl }
\c_@@_name_grade_tl
\c_@@_name_author_r_tl #2
}
\@@_ulined_center_box:nn { \l_@@_tmp_dim }
{ \l_@@_info_author_tl } \\
% \end{macrocode}
% 导师姓名、职称。
% \begin{macrocode}
\@@_full_uline:NV \l_@@_tmp_dim
{ \c_@@_name_supv_full_tl \c_@@_name_supv_r_tl #2 }
\@@_ulined_center_box:nn { \l_@@_tmp_dim }
{ \l_@@_info_supv_full_tl }
}
% \end{macrocode}
% 英文摘要环境。前两行为标题。
% \begin{macrocode}
{ \clist_item:cn { c_@@_name_type #1 _clist }
{ \l_@@_info_type_int } # 2 }
\@@_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 }
% \end{macrocode}
% 使用循环输出专业、姓名、导师。注意这里将 |\\| 放置在前部,以避免末尾生成多余的换行符产生 |Underfull \vbox| 信息。
% \begin{macrocode}
\clist_map_inline:nn { major, author, supv_full }
{ \\
\@@_uline_entry:nnnn \l_@@_tmp_dim { ##1 _en } { ##1 _en } { #2 }
}
}
%
% \begin{macro}{\@@_print_keywords:nn}
% 生成中英文关键词列表。
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 关键词分隔符
% \end{arguments}
\cs_new_protected:Npn \@@_print_keywords:nn #1#2
{
\skip_vertical:n { 2 ex }
\group_begin:
% \end{macrocode}
% “关键词”字样使用加粗黑体。
% \begin{macrocode}
\noindent \bf \heiti
\use:c { c_@@_name_keywords #1 _tl }
% \subsubsection{绘制摘要}
%
% \begin{macro}{\@@_make_abs_ug:nn}
% \changes{v0.13}{2021/12/12}{使用 \hologo{LaTeX3} 语法重构本科生摘要。}
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 关键词分隔符
% \end{arguments}
% 生成本科生摘要。
\cs_new_protected:Npn \@@_make_abs_ug:nn #1#2
{
\begin{center}
\@@_abs_title_ug:n { #1 }
\end{center}
\group_begin:
\@@_abs_info_style:n { -4 }
\@@_abs_info_ug:nn { #1 } { #2 }
\group_end: \@@_vskip:
}
% \begin{macro}{\@@_make_abs_g:nn}
% \changes{v0.13}{2021/12/12}{使用 \hologo{LaTeX3} 语法重构研究生摘要。}
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
% \item 关键词分隔符
% \end{arguments}
% 生成研究生摘要。
\cs_new_protected:Npn \@@_make_abs_g:nn #1#2
{
\begin{center}
\@@_abs_title_g:n { #1 }
\end{center}
\group_begin:
\@@_abs_info_style:n { 4 }
\@@_abs_info_g:nn { #1 } { #2 }
\group_end: \@@_vskip:
}
% \begin{environment}{abstract}
% \changes{v0.13}{2021/12/12}{重新绘制摘要。}
% 英文摘要环境。\pkg{xparse} 目前不支持合并带有星号的环境,因此需要单独定义。
% \begin{macrocode}
\NewDocumentEnvironment{abstract*} { +b }
% \begin{environment}{preface}
% \begin{environment}{acknowledgement}
% \begin{macrocode}
\NewDocumentEnvironment{preface} { +b }
{ \njuchapter { 前\hspace{2em}言 } #1 } { }
\NewDocumentEnvironment{acknowledgement} { +b }
{ \njuchapter { 致\hspace{2em}谢 } #1 } { }
% \end{macrocode}
% \end{environment}
%
% \begin{macro}{\njupaperlist}
% \changes{v0.10}{2021/09/29}{新增了成果列表页面。}
% \changes{v0.13}{2021/12/20}{成果列表中可突出指定作者姓名及年份。}
% 成果列表。
\NewDocumentCommand\njupaperlist { O { \c_@@_name_paperlist_tl } m }
{
\group_begin:
% \end{macrocode}
% 修改姓名的显示方式,使被注解的姓名可被加粗下划线表示。
% \begin{macrocode}
\RenewDocumentCommand \mkbibnamegiven { m }
{ \ifitemannotation { thesisauthor }
{ \njuline { \bf ##1 } } { ##1 } }
\RenewDocumentCommand \mkbibnamefamily { m }
{ \ifitemannotation { thesisauthor }
{ \njuline { \bf ##1 } } { ##1 } }
% \end{macrocode}
% 修改年份的显示方式,默认进行加粗。
% \begin{macrocode}
\RenewDocumentCommand \mkbibdateshort { m m m }
{ \textbf{ \thefield { ##1 } } }
\printbibliography[heading=subbibliography,title=#1]