Newer
Older
{ definition } { 定义 } { Definition },
{ example } { 例 } { Example },
{ lemma } { 引理 } { Lemma },
{ proof } { 证明 } { Proof },
{ theorem } { 定理 } { Theorem }
}
{ \@@_define_name:nnn #1 }
% \end{macrocode}
\keys_define:nn { nju } { info.meta:nn = { nju / info } { #1 } }
% \begin{macro}{info/keywords,info/keywords*}
keywords .clist_set:N = \l_@@_info_keywords_clist,
keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/grade,info/student-id,info/author,info/author*}
grade .tl_set:N = \l_@@_info_grade_tl,
student-id .tl_set:N = \l_@@_info_id_tl,
author .tl_set:N = \l_@@_info_author_tl,
author* .tl_set:N = \l_@@_info_author_en_tl,
% \begin{macro}{info/department,info/department*,info/major,info/major*,info/field,info/field*}
department .tl_set:N = \l_@@_info_dept_tl,
department* .tl_set:N = \l_@@_info_dept_en_tl,
major .tl_set:N = \l_@@_info_major_tl,
major* .tl_set:N = \l_@@_info_major_en_tl,
field .tl_set:N = \l_@@_info_field_tl,
field* .tl_set:N = \l_@@_info_field_en_tl,
% \begin{macro}{info/supervisor,info/supervisor*,info/supervisor-title,info/supervisor-title*}
supervisor .tl_set:N = \l_@@_info_supv_tl,
supervisor* .tl_set:N = \l_@@_info_supv_en_tl,
supervisor-title .tl_set:N = \l_@@_info_supv_ttl_tl,
supervisor-title* .tl_set:N = \l_@@_info_supv_ttl_en_tl,
% \begin{macro}{info/supervisor-ii,info/supervisor-ii*,info/supervisor-ii-title,info/supervisor-ii-title*}
supervisor-ii .tl_set:N = \l_@@_info_supv_ii_tl,
supervisor-ii* .tl_set:N = \l_@@_info_supv_ii_en_tl,
supervisor-ii-title .tl_set:N = \l_@@_info_supv_ii_ttl_tl,
supervisor-ii-title*.tl_set:N = \l_@@_info_supv_ii_ttl_en_tl,
% \begin{macro}{info/submit-date,info/submit-date*}
submit-date .tl_set:N = \l_@@_info_sm_date_tl,
submit-date* .tl_set:N = \l_@@_info_sm_date_en_tl,
% \begin{macro}{info/defend-date,info/chairman,info/reviewer}
chairman .tl_set:N = \l_@@_info_chairman_tl,
reviewer .clist_set:N = \l_@@_info_reviewer_clist,
% \begin{macro}{info/clc,info/secret-level,info/udc,info/supervisor-contact}
clc .tl_set:N = \l_@@_info_clc_tl,
secret-level .tl_set:N = \l_@@_info_seclv_tl,
udc .tl_set:N = \l_@@_info_udc_tl,
supervisor-contact .tl_set:N = \l_@@_info_supv_cont_tl,
% \begin{macro}{\njusetup}
% \changes{v0.6}{2021/09/10}{改用键值对输入信息。}
% \changes{v0.11}{2021/10/01}{将个人信息变量名改为小写字母加连字符的形式。}
\NewDocumentCommand \njusetup { m } { \keys_set:nn { nju } { #1 } }
\bool_set:Nn \l_@@_second_supv_bool
{ ! \tl_if_empty_p:N \l_@@_info_supv_ii_tl }
\bool_if:NT \l_@@_second_supv_bool
{
\@@_quad: \l_@@_info_supv_ii_tl
\l_@@_info_supv_en_tl
\bool_if:NT \l_@@_second_supv_bool
{
%
% \changes{v0.12}{2021/12/07}{重新组织宏包载入顺序。}
% 将选项传入 \cls{ctexbook} 文档类。
\PassOptionsToClass
{
a4paper,
twoside,
UTF8,
scheme=chinese,
% 开启草稿模式后传入 |draft| 选项。
% \begin{macrocode}
\bool_if:NT \g_@@_draft_bool { draft, }
% \end{macrocode}
% 关于行距,\hologo{LaTeX} 默认1.2行距,word 默认行距是1.3,要求1.5倍 word 行距,故
linespread=1.625,
% \end{macrocode}
% 默认不载入任何字体,供本模板自行设置。
% \begin{macrocode}
fontset=none,
% \end{macrocode}
% 正文字体设置为小四号。
% \begin{macrocode}
zihao=-4
}
{ ctexbook }
%
% 传入各宏包选项。
% \begin{macrocode}
\clist_map_inline:nn
{
{ no-math } { fontspec },
{ perpage } { footmisc },
{ hyphens } { url },
{ warnings-off={ mathtools-colon, mathtools-overbracket } }
{ unicode-math },
{ capitalise, nameinlink, noabbrev }
{ cleveref }
}
{ \PassOptionsToPackage #1 }
% \end{macrocode}
%
% 使用\pkg{ctexbook}作为基础文档类。
% \end{macrocode}
% \pkg{emptypage} 用于清除空白页的页码。
% \begin{macrocode}
emptypage,
% \end{macrocode}
% 南京大学视觉形象化标准宏包 \pkg{njuvisual} 用于绘制学校 logo。
% \begin{macrocode}
njuvisual,
% \changes{v0.13}{2021/12/13}{使用 \pkg{ntheorem} 创建定理环境,删除 \pkg{amsthm} 和 \pkg{thmtools}。}
% 数学,\pkg{amsmath} 必须在 \pkg{unicode-math} 前加载。
% \pkg{unicode-math} 指定了 \hologo{XeTeX} 和 \hologo{LuaTeX} 下所使用的数学字体。
% 用于配置数学环境的 \pkg{mathtools} 会与 \pkg{unicode-math} 发生冲突,此处手动消除其警告。
% \end{macrocode}
% \pkg{url} 用于生成链接文本。
% \begin{macrocode}
url,
% \end{macrocode}
% 按以下顺序加载两个关于引用的包。
% \pkg{hyperref} 覆写了大量命令,因此需要在其他包最后载入。
% 仅有 \pkg{cleveref} 需要在 \pkg{hyperref} 后载入,否则会报错。
% \begin{macrocode}
hyperref,
cleveref
}
% \changes{v0.13}{2021/12/13}{删除会与 \pkg{ntheorem} 冲突的 \pkg{microtype}。}
% \begin{macro}{\njuline}
% 针对编译引擎,使用不同的宏包构建可以对中文正常换行的下划线命令。
\NewDocumentCommand \njuline { m } { \CJKunderline{#1} }
}
\NewDocumentCommand \njuline { m } { \underLine{#1} \null }
}
% \begin{macro}{\@@_check_package:nnn}
% 检查过时宏包。
% \begin{macrocode}
\msg_new:nnn { njuthesis } { package-too-old }
{
Package~ "#1"~ is~ too~ old. \\
The~ njuthesis~ class~ only~ supports~ "#1"~ with~
a~ version higher~ than~ v#2.\\
Please~ update~ an~ up-to-date~ version~ of~ it~
}
\cs_new_protected:Npn \@@_check_package:nnn #1#2#3
{
\@ifpackagelater {#1} {#2}
{ } { \msg_error:nnnn { njuthesis } { package-too-old } {#1} {#3} }
}
% \end{macrocode}
% \end{macro}
%
% 检查绘制下划线所需的 \pkg{luatexja} 包版本。该宏包在2021-09-18的更新解决了下划线中断问题,然而在2021-10-24的更新才提供了正确的内嵌日期。
{ \@@_check_package:nnn { luatexja } { 2021/10/24 } { 20211024.0 } }
\tl_if_empty:NTF \g_@@_latin_font_tl
{ \bool_gset_true:N \g_@@_load_sys_font_bool }
\tl_if_empty:NT \g_@@_cjk_font_tl
{ \bool_gset_true:N \g_@@_load_sys_font_bool }
% \end{macrocode}
%
% 进行系统检测。
% 检测 Windows 的命令由\pkg{l3kernal}提供,
% 检测 macOS 的命令由\pkg{ctex}提供,
% 这两种情况外的系统被判断为 Linux,一律使用自由字体。
% \begin{macrocode}
{ \tl_set:Nn \g_@@_latin_font_tl { win }
\tl_set:Nn \g_@@_cjk_font_tl { win } }
{ \tl_set:Nn \g_@@_latin_font_tl { mac }
\tl_set:Nn \g_@@_cjk_font_tl { mac } }
{ \tl_set:Nn \g_@@_latin_font_tl { gyre }
\tl_set:Nn \g_@@_cjk_font_tl { fandol } } }
{
\setmainfont{Times~New~Roman}
\setsansfont{Arial}
\setmonofont{Courier~New}[Scale=MatchLowercase]
}
{
\setmainfont{Times~New~Roman}
\setsansfont{Arial}
\setmonofont{Menlo}[Scale=MatchLowercase]
}
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
{
\setmainfont{texgyretermes}[
Extension=.otf,
UprightFont=*-regular,
BoldFont=*-bold,
ItalicFont=*-italic,
BoldItalicFont=*-bolditalic]
\setsansfont{texgyreheros}[
Extension=.otf,
UprightFont=*-regular,
BoldFont=*-bold,
ItalicFont=*-italic,
BoldItalicFont=*-bolditalic]
\setmonofont{texgyrecursor}[
Extension=.otf,
UprightFont=*-regular,
BoldFont=*-bold,
ItalicFont=*-italic,
BoldItalicFont=*-bolditalic,
Scale=MatchLowercase,
Ligatures=CommonOff]
}
{
\setCJKmainfont{SimSun}[
AutoFakeBold=2.17,
ItalicFont=KaiTi]
\setCJKsansfont{SimHei}
\setCJKmonofont{FangSong}
\setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold=2.17]
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhfs}{FangSong}
\setCJKfamilyfont{zhkai}{KaiTi}[AutoFakeBold=2.17]
}
{
% 移除 does not contain script "CJK" 警告
\msg_redirect_name:nnn {fontspec} {no-script} {info}
\setCJKmainfont{Songti~SC~Light}[
BoldFont=Songti~SC~Bold,
ItalicFont=Kaiti~SC,
BoldItalicFont=Kaiti~SC~Bold]
\setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium]
\setCJKmonofont{STFangsong}
\setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold]
\setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium]
\setCJKfamilyfont{zhfs}{STFangsong}
\setCJKfamilyfont{zhkai}{Kaiti~SC}[BoldFont=Kaiti~SC~Bold]
\setCJKfamilyfont{zhnewhei}{PingFang~SC}
}
% \begin{macro}{\@@_load_cjk_font_fandol:}
% Fandol 字体
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
{
% 移除 does not contain script "CJK" 警告
\msg_redirect_name:nnn {fontspec} {no-script} {info}
\setCJKmainfont{FandolSong-Regular}[
Extension=.otf,
BoldFont=FandolSong-Bold,
ItalicFont=FandolKai-Regular]
\setCJKsansfont{FandolHei-Regular}[
Extension=.otf,
BoldFont=FandolHei-Bold]
\setCJKmonofont{FandolFang-Regular}[Extension=.otf]
\setCJKfamilyfont{zhsong}{FandolSong-Regular}[
Extension=.otf,
BoldFont=FandolSong-Bold]
\setCJKfamilyfont{zhhei}{FandolHei-Regular}[
Extension=.otf,
BoldFont=FandolHei-Bold]
\setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf]
\setCJKfamilyfont{zhkai}{FandolKai-Regular}[
Extension=.otf,
AutoFakeBold=2.17]
}
%
% \begin{macro}{\@@_load_cjk_font_founder:}
\sys_if_engine_luatex:T
{
% \end{macrocode}
% 在 LuaTeX 中调整方正字体括号位置
% XeTeX 暂无好的解决方法
% \begin{macrocode}
\defaultCJKfontfeatures{JFM={zh_CN/{quanjiao,fzpr}}}
}
\setCJKmainfont{FZSSK}[% 方正书宋
BoldFont=FZXBSK,% 方正小标宋
ItalicFont=FZKTK]% 方正楷体
\setCJKsansfont{FZXH1K}[% 方正细黑一
BoldFont=FZHTK]% FZHTK 方正黑体
\setCJKmonofont{FZFSK}[Extension=.ttf]% 方正仿宋
\setCJKfamilyfont{zhsong}
{FZSSK}[
Extension=.ttf,
BoldFont=FZXBSK]
\setCJKfamilyfont{zhhei}
{FZHTK}[
Extension=.ttf,
AutoFakeBold=2.17]
\setCJKfamilyfont{zhfs}
{FZFSK}[Extension=.ttf]
\setCJKfamilyfont{zhkai}
{FZKTK}[Extension=.ttf]
\defaultCJKfontfeatures{}
}
{
% 思源宋体
\setCJKmainfont[
UprightFont=NotoSerifSC-Regular,
BoldFont=NotoSerifSC-Bold,
ItalicFont=NotoSerifSC-Regular,
BoldItalicFont=NotoSerifSC-Bold,
ItalicFeatures=FakeSlant,
BoldItalicFeatures=FakeSlant]{Noto~Serif~SC}
% 思源黑体
\setCJKsansfont[
UprightFont=NotoSansSC-Regular,
BoldFont=NotoSansSC-Bold,
ItalicFont=NotoSansSC-Regular,
BoldItalicFont=NotoSansSC-Bold,
ItalicFeatures=FakeSlant,
BoldItalicFeatures=FakeSlant]{Noto~Sans~SC}
\setCJKfamilyfont{zhsong}{Noto~Serif~SC}
\setCJKfamilyfont{zhhei}{Noto~Sans~SC}
\setCJKfamilyfont{zhfs}{FZFSK}[Extension=.ttf]
\setCJKfamilyfont{zhkai}{FZKTK}[Extension=.ttf]
\use:c { @@_load_latin_font_ \g_@@_latin_font_tl : }
\use:c { @@_load_cjk_font_ \g_@@_cjk_font_tl : }
\NewDocumentCommand \songti { } { \CJKfamily{zhsong} }
\NewDocumentCommand \heiti { } { \CJKfamily{zhhei} }
\NewDocumentCommand \fangsong { } { \CJKfamily{zhfs} }
\NewDocumentCommand \kaishu { } { \CJKfamily{zhkai} }
% \end{macrocode}
%
% 载入设置的字体。
% \begin{macrocode}
% 设置数学字体 (XITS, 或者 \href{https://www.stixfonts.org}{STIX}, 与 Times New Roman 最为相近)
% \setmathfont{STIXTwoMath-Regular}[Extension = .otf]
\setmathfont{XITSMath-Regular}[
BoldFont = XITSMath-Bold,
Extension = .otf]
\geometry
{
vmargin = 2.5 cm,
hmargin = 3.2 cm,
headheight = 15 pt
}
% 草稿模式下显示页面文字范围边界以及页眉、页脚线。
% \begin{macrocode}
\bool_if:NT \g_@@_draft_bool { \geometry { showframe } }
% \end{macrocode}
%
\fancypagestyle { plain }
{
\fancyhf { }
\fancyfoot [ C ] { \zihao{5} \thepage }
\RenewDocumentCommand \headrulewidth { } { 0 pt }
\RenewDocumentCommand \footrulewidth { } { 0 pt }
}
\fancypagestyle{headings}
{
\fancyhf { }
\fancyhead [ CO ] { \leftmark }
\fancyhead [ CE ] { \rightmark }
\fancyfoot [ C ] { \zihao{5} \thepage }
\RenewDocumentCommand \headrulewidth { } { 0.4 pt }
\RenewDocumentCommand \footrulewidth { } { 0 pt }
% \begin{macro}{\frontmatter}
% 重定义 \cs{frontmatter},清空页眉页脚以及页码设置。
% 此命令仅为解决原 \cls{book} 类中使用小写罗马字母序号的冲突,并不建议使用。
\RenewDocumentCommand \frontmatter { }
{
\cleardoublepage
\pagestyle{empty}
\pagenumbering{Roman}
}
% \changes{v0.12}{2021/12/03}{修复了摘要页字体格式泄漏到正文的问题。}
% \changes{v0.12}{2021/12/03}{修复了页眉上长标题重叠的问题。}
% 重定义 \cs{mainmatter},在论文主体部分载入页眉页脚设置,并重新进行数字编号。
% \begin{macrocode}
\RenewDocumentCommand \mainmatter { }
{
\cleardoublepage
\pagenumbering{arabic}
\normalfont\normalsize
}
% \end{macrocode}
% \end{macro}
\tl_const:Nn \c_@@_sec_format_tl { \large \normalfont \sffamily }
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
\ctexset
{
chapter/beforeskip = 10 pt,
chapter/afterskip = 60 pt,
chapter/format = \centering \c_@@_sec_format_tl,
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} 内置的目录设置。}
{ \addcontentsline { toc } { chapter } { \c_@@_sec_format_tl #1 } }
\addcontentsline { toc } { chapter } { \c_@@_sec_format_tl #1}
contentsname = { 目\hspace{2em}录},
listfigurename = { 插图清单 },
listtablename = { 表格清单 },
chapter / tocline = \c_@@_sec_format_tl \CTEXnumberline {#1} #2
\tl_const:Nn \c_@@_toc_title_tl { \centering \zihao{3} \bf }
% \begin{macro}{\@@_modify_toc_title:nn}
% 通过 group 内修改标题设置,改变标题页字体。
\cs_new_protected:Npn \@@_modify_toc_title:nn #1#2
{
\group_begin:
\ctexset { chapter/format = \c_@@_toc_title_tl }
% \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 } }
\RequirePackage[
style=gb7714-2015,
%style=numeric-comp,
%citestyle=authortitle-icomp,
% citestyle=numeric-comp,
%bibstyle=authoryear,
% bibstyle=numeric,
sorting=none,
%sorting=nyt,
%sortcites=true,
%autocite=footnote,
backend=biber, % Compile the bibliography with biber
hyperref=true,
backref=false,
citecounter=true,
pagetracker=true,
citetracker=true,
ibidtracker=context,
autopunct=true,
autocite=plain,
% gbpub=false, % Uncomment if you do NOT want '[S.l. : s.n.]'
% in reference entries, GitHub Issue (#47)
% gbnamefmt=lowercase, % Uncomment if you do NOT want uppercase author
% names in reference entries, GitHub Issue (#23)
% \changes{v0.12}{2021/12/06}{设置输出参考文献的默认选项。}
% 设置参考文献名称
% \begin{macrocode}
\ctexset{ bibname = {参考文献} }
% \end{macrocode}
\defbibheading { njubib } [ \bibname ] { \njuchapter { #1 } }
\DeclarePrintbibliographyDefaults { heading = njubib }
\AtEveryBibitem
{
\clist_map_inline:nn
{ abstract, issn, isbn, archivePrefix, arxivId, pmid, eprint }
{ \clearfield { #1 } }
\ifentrytype{online}{}{\ifentrytype{misc}{}{\clearfield{url}}}
}
% \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 }
%
% \subsubsection{列表环境}
% \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 } }