Skip to content
Snippets Groups Projects
Commit 1e419156 authored by Yu Xiong's avatar Yu Xiong :confounded:
Browse files

fix: 设置参考文献默认选项

- 在模板中进行相关设置,现在无需在\printbibliography后修改参数。
- 更改了说明文档中代码内容的呈现方式
- 修改说明文档的相关内容
- 代码缩进样式调整
parent 802e66ac
No related branches found
No related tags found
No related merge requests found
......@@ -113,7 +113,7 @@ through XeTeX.
%<*driver>
\ProvidesFile{njuthesis.dtx}
\documentclass{ctxdoc}
\usepackage{floatrow,tabularray,njuvisual}
\usepackage{floatrow,listings,tabularray,njuvisual}
\usepackage[firstpage=true]{background}
\backgroundsetup{contents={\njuemblem[white!85!gray]{22cm}{!}},scale=1,angle=0,hshift=-4cm}
\setlist[1]{labelindent=0.5em}
......@@ -121,6 +121,45 @@ through XeTeX.
\DefTblrTemplate{caption-tag}{default}{表\hspace{0.25em}\thetable}
\SetTblrStyle{caption-tag}{font=\bfseries}
\DefTblrTemplate{caption-sep}{default}{\quad}
\lstdefinestyle{style@base}
{
basewidth = 0.5 em,
gobble = 3,
lineskip = 3 pt,
frame = l,
framerule = 1 pt,
framesep = 0 pt,
xleftmargin = 2 em,
xrightmargin = 3 em,
escapeinside = {(*}{*)},
basicstyle = \small\ttfamily,
keywordstyle = \bfseries\color{njuviolet},
commentstyle = \itshape\color{white!50!gray},
stringstyle = \color{nju-chem-red},
backgroundcolor = \color{white!95!gray}
}
\lstdefinestyle{style@shell}
{
style = style@base,
rulecolor = \color{njumagenta},
language = bash,
alsoletter = {-},
emphstyle = \color{green}
}
\lstdefinestyle{style@latex}
{
style = style@base,
rulecolor = \color{njublue},
language = [LaTeX]TeX,
alsoletter = {*, -},
texcsstyle = *\color{njuviolet},
emphstyle = [1]\color{nju-ai-orange},
emphstyle = [2]\color{nju-cs-green}
}
\lstnewenvironment{shellexample}[1][]{%
\lstset{style=style@shell, #1}}{}
\lstnewenvironment{latexexample}[1][]{%
\lstset{style=style@latex, #1}}{}
\begin{document}
\DocInput{njuthesis.dtx}
\PrintChanges
......@@ -154,6 +193,7 @@ through XeTeX.
% \changes{v0.12}{2021/11/28}{删除内置的 \pkg{njuvisual} 代码。}
% \changes{v0.12}{2021/11/29}{更新了说明文档封面设计。}
% \changes{v0.12}{2021/11/30}{区分测试文件和空白模板。}
% \changes{v0.12}{2021/12/06}{修改了说明文档的代码呈现样式。}
%
% \maketitle
%
......@@ -252,9 +292,9 @@ through XeTeX.
% \ref{subsec:onlinecompile}。
% 您可以通过 \hologo{TeX}\,Live Manager 或者 \hologo{MiKTeX} Console 等图形化包管理器
% 直接安装并使用以上两个宏包最新的稳定版,也可以使用 \pkg{tlmgr} 的终端命令:
% \begin{ctexexam}
% \begin{shellexample}[morekeywords={tlmgr,install}]
% tlmgr install njuthesis njuvisual
% \end{ctexexam}
% \end{shellexample}
%
% 我们\emph{强烈建议}使用这一类安装方式。
%
......@@ -380,22 +420,25 @@ through XeTeX.
% 编译命令具体为引擎名称加文件名,在编译 \file{.tex} 文件时,文件扩展名可以省略不写。
% 现阶段 \cls{njuthesis} 仅支持 \hologo{XeLaTeX} 与 \hologo{LuaLaTeX}。请注意,几种命令的输出文件基本相同,可以任取一种;但如果你不清楚这两种编译引擎的区别,我们建议优先使用|latexmk -xelatex|。
%
% \subparagraph{使用 \hologo{XeLaTeX}}
% \subparagraph{使用 \hologo{XeLaTeX}}
% 标准的 \hologo{XeLaTeX} 引擎编译方法。
%
% \begin{ctexexam}
% \begin{shellexample}[morekeywords={xelatex,biber}]
% xelatex njuthesis-sample
% biber njuthesis-sample
% xelatex njuthesis-sample
% xelatex njuthesis-sample
% \end{ctexexam}
% \end{shellexample}
%
% \subparagraph{使用 \hologo{LuaLaTeX}}
% \begin{ctexexam}
% 标准的 \hologo{LuaLaTeX} 引擎编译方法。
%
% \begin{shellexample}[morekeywords={lualatex,biber}]
% lualatex njuthesis-sample
% biber njuthesis-sample
% lualatex njuthesis-sample
% lualatex njuthesis-sample
% \end{ctexexam}
% \end{shellexample}
%
% \subparagraph{使用 \pkg{latexmk}}
% \href{https://mg.readthedocs.io/latexmk.html}{\pkg{latexmk}} 是一个基于 Perl 脚本的自动编译工具,宗旨是通过单一命令简化上述的多次编译流程。在使用该命令前,请确保安装了以下软件:
......@@ -405,19 +448,19 @@ through XeTeX.
% \end{description}
%
% 该命令的使用方法为
% \begin{ctexexam}
% \begin{shellexample}[morekeywords={latexmk}]
% latexmk njuthesis-sample
% \end{ctexexam}
% \end{shellexample}
%
% 如需指定编译器,可以加入 |-xelatex| 或 |-lualatex| 参数,例如指定 \hologo{XeLaTeX} 的命令为
% \begin{ctexexam}
% \begin{shellexample}[morekeywords={latexmk,xelatex}]
% latexmk -xelatex njuthesis-sample
% \end{ctexexam}
% \end{shellexample}
%
% 此外可以选择使用以下命令清理编译生成的临时文件。
% \begin{ctexexam}
% \begin{shellexample}[morekeywords={latexmk}]
% latexmk -c
% \end{ctexexam}
% \end{shellexample}
%
% \subsection{在线编译}
% \label{subsec:onlinecompile}
......@@ -454,31 +497,26 @@ through XeTeX.
%
% 典型的\cls{njuthesis}主文件结构应该如下所示:
%
% \begin{ctexexam}
% \documentclass[<options>]{njuthesis}
% \njusetup { info = {<info>} }
% \graphicspath{{figure/}}
% \addbibresource{njuthesis.bib}
% \begin{latexexample}[moretexcs={\njusetup,\graphicspath,\addbibresource,\maketitle,\tableofcontents,\listoffigures,\listoftables,\mainmatter,\chapter,\printbibliography,\appendix},emph={[1]document}]
% \documentclass{njuthesis}
% \njusetup{}
% \begin{document}
% \maketitle
% <abstract>
% <preface>
% \tableofcontents
% \listoffigures
% \listoftables
% \mainmatter
% <text>
% \printbibliography[heading=bibintoc,title=参考文献]
% <acknowledgement>
% \appendix
% <appendix>
% \chapter{欢迎}
% 使用 \hologo{LaTeX}
% \printbibliography
% \end{document}
% \end{ctexexam}
% \end{latexexample}
%
% 如果你尝试编译上面的代码,会发现自己得到了一个5页的 PDF 文档,是一份空白的本科生论文。
% 当然,这个文档实际上没有任何内容,接下来将会介绍具体填写内容的方法。
%
%
% \subsection{模板选项}
%
% 模板选项位于\tn{documentclass}后的方括号内,用于指定模板的行为。
% 模板选项位于 \tn{documentclass} 后的方括号内,用于指定模板的行为。
% 下文中尖括号内列出了若干个允许的选项,其中加粗的为默认选项。
%
% \subsubsection{学位信息}
......@@ -502,7 +540,6 @@ through XeTeX.
% type = <(thesis)|design>
% \end{syntax}
% 用于选择文档类型并将相关字段输出在封面和摘要页,可选值分别为毕业论文和毕业设计。
%
% \end{function}
%
%
......@@ -718,7 +755,7 @@ through XeTeX.
%
% 本科生可以参考如下范例输入个人信息。注意不能有空行。
%
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info}]
% \njusetup {
% info = {
% titlea = {第一行标题},
......@@ -741,11 +778,11 @@ through XeTeX.
% submit-date = {2021年8月10日},
% }
% }
% \end{ctexexam}
% \end{latexexample}
%
% 研究生可以参考如下列表输入个人信息
%
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info}]
% \njusetup {
% info = {
% titlea = {第一行标题},
......@@ -779,7 +816,7 @@ through XeTeX.
% supervisor-contact = {拉太赫科学与技术学院 枝江市结丘路 19 号 114514},
% }
% }
% \end{ctexexam}
% \end{latexexample}
%
%
% \subsection{编写正文}
......@@ -801,13 +838,6 @@ through XeTeX.
% \end{syntax}
% \pkg{ctex} 宏集提供了其中用于处理长标题的可选参数。对于过长的标题,目录中会使用其短描述。
% \end{function}
%
% \begin{ctexexam}
% \begin{document}
% \chapter[短描述]{我的标题}
% 我的正文
% \end{document}
% \end{ctexexam}
%
%
% \subsubsection{文字}
......@@ -840,29 +870,29 @@ through XeTeX.
%
% 下面这个例子展示了如何插入一张名称为\file{myfig.jpg},宽度占页面文字宽度一半的图片。注意标签命令\tn{label}必须放在图注命令\tn{caption}之后。
%
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\includegraphics},emph={[1]figure}]
% \begin{figure}[h]
% \includegraphics[width=0.5\textwidth]{myfig}
% \caption{我的图}
% \label{fig:myfig}
% \end{figure}
% \end{ctexexam}
% \end{latexexample}
%
%
% 对于较为瘦长,或者仅起到辅助作用的图像,可以使用\env{wrapfigure}实现文字环绕效果。注意这个环境后紧跟的一行不能为空。
%
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\includegraphics},emph={[1]wrapfigure}]
% \begin{wrapfigure}{r}{0cm}
% \includegraphics[width=0.15\textwidth]{myfig}
% \caption{我的图}
% \label{fig:myfig}
% \end{wrapfigure}
% <text>
% \end{ctexexam}
% \end{latexexample}
%
% 使用 \pkg{caption} 内置的 \pkg{subcaption} 提供 \env{subfigure} 环境,实现多张图片并排的效果。较为老旧的 \pkg{subfigure} 并不在此受到支持。
%
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\includegraphics},emph={[1]figure,subfigure}]
% \begin{figure}
% \begin{subfigure}{.32\textwidth}
% \centering
......@@ -881,13 +911,13 @@ through XeTeX.
% \end{subfigure}
% \caption{subfigures}
% \end{figure}
% \end{ctexexam}
% \end{latexexample}
%
%
% \subsubsection{表格}
%
% 下面这个例子展示了如何插入一张表格。通过 \pkg{booktabs} 提供的 \tn{toprule}、\tn{midrule} 和 \tn{bottomrule},我们可以很轻松地绘制出一张漂亮规范的三线表。
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\toprule,\midrule,\bottomrule},emph={[1]table,tabular}]
% \begin{table}[htbp]
% \caption{我的表}
% \label{tab:testtab}
......@@ -899,7 +929,7 @@ through XeTeX.
% \bottomrule
% \end{tabular}
% \end{table}
% \end{ctexexam}
% \end{latexexample}
%
% \begin{function}{\multirow,\multicolumn}
% \begin{syntax}
......@@ -915,11 +945,11 @@ through XeTeX.
% \subsubsection{代码}
%
% 由\pkg{listings}提供代码排版。代码块\env{lstlisting},注意这个环境中的缩进空格会如实输出
% \begin{ctexexam}
% \begin{latexexample}[emph={[1]lstlisting}]
% \begin{lstlisting}
% <code>
% \end{lstlisting}
% \end{ctexexam}
% \end{latexexample}
%
% 行间代码可以使用抄录环境 \tn{verb} (或者 \pkg{listings} 提供的 \tn{lstinline}),
% 格式如 |\verb!<code>!|。其中包裹代码的两个感叹号并不是绝对的,可以替换成任何两个相同的没有在这段代码中出现过的符号。
......@@ -932,27 +962,27 @@ through XeTeX.
% 行内公式形如|$\mathrm{e}^{(a+2b)x}$|
%
% 带有编号的行间公式\env{equation}
% \begin{ctexexam}
% \begin{latexexample}[emph={[1]equation}]
% \begin{equation}\label{eq:myeqlabel}
% \pi
% \end{equation}
% \end{ctexexam}
% \end{latexexample}
%
% 如不需要编号,可以用\env{equation*}或者 |\[<eq>\]|
%
% 本模板也提供了一系列的数学环境。证明环境会在结尾添加证毕符号。
% \begin{ctexexam}
% \begin{latexexample}
% \begin{proof}
% 证明我是我
% \end{proof}
% \end{ctexexam}
% \end{latexexample}
%
% 普通环境
% \begin{ctexexam}
% \begin{latexexample}
% \begin{definition}[他人]
% 定义他人即地狱
% \end{definition}
% \end{ctexexam}
% \end{latexexample}
%
%
% \subsubsection{引用}
......@@ -979,7 +1009,7 @@ through XeTeX.
%
% \subsection{特殊页面}
%
% 本模板还提供一系列环境用于生成所需的特殊页面
% 本模板还提供一系列命令与环境用于生成所需的特殊页面
%
% \subsubsection{封面}
%
......@@ -993,15 +1023,15 @@ through XeTeX.
% \subsubsection{摘要页}
% \changes{v0.11}{2021/10/01}{简化了摘要的编写方式。}
%
% \begin{ctexexam}
% \begin{latexexample}[emph={[1]abstract,abstract*}]
% \begin{abstract}
% 我的中文摘要
% \end{abstract}
%
% \begin{abstract*}
% My abstract in English
% Abstract in English
% \end{abstract*}
% \end{ctexexam}
% \end{latexexample}
%
%
% \subsubsection{前言页}
......@@ -1010,7 +1040,7 @@ through XeTeX.
% 使用\env{preface}环境定义
% \end{function}
%
% \begin{ctexexam}
% \begin{latexexample}[emph={[1]preface,flushright}]
% \begin{preface}
% 我的前言
% \vspace{1cm}
......@@ -1019,7 +1049,7 @@ through XeTeX.
% 时间地点
% \end{flushright}
% \end{preface}
% \end{ctexexam}
% \end{latexexample}
%
% \subsubsection{目录页}
%
......@@ -1034,30 +1064,18 @@ through XeTeX.
% 同前言,使用\env{acknowledgement}环境
% \end{function}
%
% \begin{ctexexam}
% \begin{latexexample}[emph={[1]acknowledgement}]
% \begin{acknowledgement}
% 感谢NJU LUG
% \end{acknowledgement}
% \end{ctexexam}
%
%
% \subsubsection{参考文献页}
%
% 使用以下命令,\opt{bibintoc}可以将参考文献页插入目录
%
% \begin{ctexexam}
% \printbibliography[heading=bibintoc,title=参考文献]
% \end{ctexexam}
% \end{latexexample}
%
%
% \subsubsection{附录页}
%
% \begin{function}{\appendix}
%
% 附录放在本命令后,以英文字母进行编号,编写方式同正文
% \end{function}
%
% 是否需要索引?
%
%
% \subsubsection{成果列表}
......@@ -1071,27 +1089,21 @@ through XeTeX.
%
% \subsection{参考文献}
%
% 符合GB7714-2015规范。使用\hologo{biber}作为\hologo{BibTeX}后端。需要使用|biber|命令手动编译才会显示
% 符合GB7714-2015规范。使用\hologo{biber}作为后端。需要使用 |biber| 命令手动编译才会显示
%
% \begin{function}{\addbibresource}
% \begin{syntax}
% \tn{addbibresource}\Arg{文件}
% \end{syntax}
%
% 默认参考文献存储于主目录下的\file{njuthesis.bib},直接向其中粘贴新的参考文献即可。如果希望额外添加参考文献列表,可以在导言区中多次调用\tn{addbibresource}命令。注意本命令与|\bibliography{bibfile1,bibfile2}|不同,不可以用逗号分隔多个输入文件,且必须使用带扩展名的完整文件名。
% 添加参考文献源文件。
% \end{function}
%
%
% \subsubsection{使用EndNote}
%
% 南京大学信息化建设管理服务中心已购买\href{https://itsc.nju.edu.cn/EndNote/list.htm}{EndNote}供全校师生免费试用,最新版为EndNote 20。
% 示例参考文献存储于 \file{njuthesis-sample.bib},直接向其中粘贴新的参考文献即可。如果希望额外添加参考文献列表,可以在导言区中多次调用 \tn{addbibresource} 命令。注意本命令与 |\bibliography{bibfile1,bibfile2}| 不同,不可以用逗号分隔多个输入文件,且必须使用带扩展名的完整文件名。
%
% \begin{function}{\printbibliography}
% 生成参考文献列表页面。
% \end{function}
%
% \subsubsection{使用Zotero}
%
% \href{https://www.zotero.org/}{Zotero}是一款免费的文献管理软件,支持所有桌面平台。
%
% 在保持Zotero程序运行的情况下,点击浏览器工具栏的Zotero Connector插件即可自动从网页抓取参考文件信息。Zotero可以通过\href{https://github.com/l0o0/jasminum}{jasminum插件}支持中文参考文献的识别。在选中希望使用的文献后右键导出文献条目即可生成\file{.bib}文件。
%
% \subsubsection{文段内引用}
%
......@@ -1103,23 +1115,39 @@ through XeTeX.
% \end{syntax}
% 引用文献
% \end{function}
%
%
% \subsubsection{文献管理}
%
% \subparagraph{使用EndNote}
%
% 南京大学信息化建设管理服务中心已购买\href{https://itsc.nju.edu.cn/EndNote/list.htm}{EndNote}供全校师生免费试用,最新版为EndNote 20。
%
%
% \subparagraph{使用Zotero}
%
% \href{https://www.zotero.org/}{Zotero}是一款免费的文献管理软件,支持所有桌面平台。
%
% 在保持Zotero程序运行的情况下,点击浏览器工具栏的Zotero Connector插件即可自动从网页抓取参考文件信息。Zotero可以通过\href{https://github.com/l0o0/jasminum}{jasminum插件}支持中文参考文献的识别。在选中希望使用的文献后右键导出文献条目即可生成\file{.bib}文件。
%
%
% \subsection{视觉识别系统}
%
% 视觉识别系统 \pkg{njuvisual} 现已被分离为独立宏包,基本使用方法举例如下:
% \begin{ctexexam}
% \begin{latexexample}[moretexcs={\njuemblem}]
% \njuemblem{!}{3cm} % 默认生成指定大小的紫色南大校徽
% \njuname{4cm}{!} % 默认生成指定大小的紫色南大中文校名
% \njuname*{4cm}{!} % 默认生成指定大小的紫色南大英文校名
% \njuemblem[black]{!}{3cm} % 黑色的南大校徽
% \njuemblem[department=dii]{!}{4cm} % 紫色匡院徽标
% \njuemblem[department=cs,color=blue]{!}{3cm} % 纯蓝色计科徽标
% \end{ctexexam}
% \end{latexexample}
%
% 本宏包的详细使用方法请参考其\href{http://mirrors.ctan.org/macros/latex/contrib/njuvisual/njuvisual.pdf}{说明文档}。
%
% \end{documentation}
%
%
% \begin{implementation}
%
% \section{代码实现}
......@@ -1134,9 +1162,9 @@ through XeTeX.
% “|*|”和“|/|”的 guard 出现在行号右侧,它们用来确定
% 单独一行代码的归属。这些 guard 的颜色深浅不一,用以明确嵌套关系。
%
% 另有若干包含|@@|的guard,在 \pkg{l3docstrip} 中表示名空间(模块)。
% 在删除注释生成格式文件时,变量名称中的|@@|会被等号后的字段替换,
% 譬如在本模板\cls{njuthesis}中 |@@=nju|。
% 另有若干包含 |@@| 的guard,用以表示名空间(模块)。
% 在删除注释生成格式文件时,变量名称中的 |@@| 会被等号后的字段替换,
% 譬如在本模板 \cls{njuthesis} 中 |@@=nju|。
%
%
% \subsection{准备}
......@@ -1269,53 +1297,53 @@ through XeTeX.
% 学位信息的设置
% \begin{macrocode}
\keys_define:nn { nju }
{
{
% \end{macrocode}
%
% \begin{macro}{degree}
% 学位类型。
% \begin{macrocode}
degree .choices:nn =
{ ug, mg, mf, phd }
{ \int_set_eq:NN \g_@@_info_degree_int \l_keys_choice_int
degree .choices:nn =
{ ug, mg, mf, phd }
{ \int_set_eq:NN \g_@@_info_degree_int \l_keys_choice_int
% \end{macrocode}
% 进行学位的判断。
% \begin{macrocode}
\int_compare:nTF { \g_@@_info_degree_int == 1 }
{ \tl_set:Nn \g_@@_info_diploma_tl { ug } }
{ \tl_set:Nn \g_@@_info_diploma_tl { g } } },
degree .initial:n = ug,
\int_compare:nTF { \g_@@_info_degree_int == 1 }
{ \tl_set:Nn \g_@@_info_diploma_tl { ug } }
{ \tl_set:Nn \g_@@_info_diploma_tl { g } } },
degree .initial:n = ug,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{type}
% 论文类型。
% \begin{macrocode}
type .choices:nn =
{ thesis, design }
{ \int_set_eq:NN \g_@@_info_type_int \l_keys_choice_int },
type .initial:n = thesis,
type .choices:nn =
{ thesis, design }
{ \int_set_eq:NN \g_@@_info_type_int \l_keys_choice_int },
type .initial:n = thesis,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{nlcover}
% 是否需要国家图书馆封面的设置。
% \begin{macrocode}
nlcover .bool_set:N = \g_@@_nlcover_bool,
nlcover .initial:n = false,
nlcover .bool_set:N = \g_@@_nlcover_bool,
nlcover .initial:n = false,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{customlatinfont,customchinesefont}
% 定义字体选项
% \begin{macrocode}
customlatinfont .choices:nn =
{ gyre, macos, windows, none }
{ \tl_set_eq:NN \g_@@_latin_fontset_tl \l_keys_choice_tl },
customchinesefont .choices:nn =
{ fandol, founder, macos, noto, windows, none }
{ \tl_set_eq:NN \g_@@_cjk_fontset_tl \l_keys_choice_tl },
}
customlatinfont .choices:nn =
{ gyre, macos, windows, none }
{ \tl_set_eq:NN \g_@@_latin_fontset_tl \l_keys_choice_tl },
customchinesefont .choices:nn =
{ fandol, founder, macos, noto, windows, none }
{ \tl_set_eq:NN \g_@@_cjk_fontset_tl \l_keys_choice_tl },
}
% \end{macrocode}
% \end{macro}
%
......@@ -1330,24 +1358,21 @@ through XeTeX.
% \subsection{个人信息}
% 输入个人信息的区域。
% \begin{macrocode}
\keys_define:nn { nju }
{
info.meta:nn = { nju / info } { #1 }
}
\keys_define:nn { nju } { info.meta:nn = { nju / info } { #1 } }
% \end{macrocode}
%
% \begin{macrocode}
\keys_define:nn { nju / info }
{
{
% \end{macrocode}
%
% \begin{macro}{info/titlea,info/titleb,info/titlec,info/title*}
% 题目。以下标注星号(*)的为对应的英文字段。
% \begin{macrocode}
titlea .tl_set:N = \l_@@_info_title_a_tl,
titleb .tl_set:N = \l_@@_info_title_b_tl,
titlec .tl_set:N = \l_@@_info_title_c_tl,
title* .tl_set:N = \l_@@_info_title_en_tl,
titlea .tl_set:N = \l_@@_info_title_a_tl,
titleb .tl_set:N = \l_@@_info_title_b_tl,
titlec .tl_set:N = \l_@@_info_title_c_tl,
title* .tl_set:N = \l_@@_info_title_en_tl,
% \end{macrocode}
% \end{macro}
%
......@@ -1355,78 +1380,78 @@ through XeTeX.
% \changes{v0.11}{2021/10/01}{修改了添加关键词的方式。}
% 关键词列表。
% \begin{macrocode}
keywords .clist_set:N = \l_@@_info_keywords_clist,
keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
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*}
% 年级、学号、姓名。
% \begin{macrocode}
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,
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,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/department,info/department*,info/major,info/major*,info/field,info/field*}
% 院系、专业、方向。
% \begin{macrocode}
department .tl_set:N = \l_@@_info_dept_tl,
department* .tl_set:N = \l_@@_info_dept_en_tl,
major .tl_set:N = \l_@@_major_tl,
major* .tl_set:N = \l_@@_major_en_tl,
field .tl_set:N = \l_@@_field_tl,
field* .tl_set:N = \l_@@_field_en_tl,
department .tl_set:N = \l_@@_info_dept_tl,
department* .tl_set:N = \l_@@_info_dept_en_tl,
major .tl_set:N = \l_@@_major_tl,
major* .tl_set:N = \l_@@_major_en_tl,
field .tl_set:N = \l_@@_field_tl,
field* .tl_set:N = \l_@@_field_en_tl,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/supervisora,info/supervisora*,info/supervisora-title,info/supervisora-title*}
% 导师
% \begin{macrocode}
supervisora .tl_set:N = \l_@@_info_supv_a_tl,
supervisora* .tl_set:N = \l_@@_info_supv_a_en_tl,
supervisora-title .tl_set:N = \l_@@_info_supv_a_title_tl,
supervisora-title*.tl_set:N = \l_@@_info_supv_a_title_en_tl,
supervisora .tl_set:N = \l_@@_info_supv_a_tl,
supervisora* .tl_set:N = \l_@@_info_supv_a_en_tl,
supervisora-title .tl_set:N = \l_@@_info_supv_a_title_tl,
supervisora-title*.tl_set:N = \l_@@_info_supv_a_title_en_tl,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/supervisorb,info/supervisorb*,info/supervisorb-title,info/supervisorb-title*}
% 第二导师
% \begin{macrocode}
supervisorb .tl_set:N = \l_@@_info_supv_b_tl,
supervisorb* .tl_set:N = \l_@@_info_supv_b_en_tl,
supervisorb-title .tl_set:N = \l_@@_info_supv_b_title_tl,
supervisorb-title*.tl_set:N = \l_@@_info_supv_b_title_en_tl,
supervisorb .tl_set:N = \l_@@_info_supv_b_tl,
supervisorb* .tl_set:N = \l_@@_info_supv_b_en_tl,
supervisorb-title .tl_set:N = \l_@@_info_supv_b_title_tl,
supervisorb-title*.tl_set:N = \l_@@_info_supv_b_title_en_tl,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/submit-date,info/submit-date*}
% 提交日期
% \begin{macrocode}
submit-date .tl_set:N = \l_@@_submit_date_tl,
submit-date* .tl_set:N = \l_@@_submit_date_en_tl,
submit-date .tl_set:N = \l_@@_submit_date_tl,
submit-date* .tl_set:N = \l_@@_submit_date_en_tl,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/defend-date,info/chairman,info/reviewer}
% 答辩信息。
% \begin{macrocode}
defend-date .tl_set:N = \l_@@_defend_date_tl,
chairman .tl_set:N = \l_@@_info_chairman_tl,
reviewer .clist_set:N = \l_@@_info_reviewer_clist,
defend-date .tl_set:N = \l_@@_defend_date_tl,
chairman .tl_set:N = \l_@@_info_chairman_tl,
reviewer .clist_set:N = \l_@@_info_reviewer_clist,
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/clc,info/secret-level,info/udc,info/supervisor-contact}
% 国家图书馆封面相关信息。
% \begin{macrocode}
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,
}
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,
}
% \end{macrocode}
% \end{macro}
%
......@@ -1435,8 +1460,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \changes{v0.11}{2021/10/01}{将个人信息变量名改为小写字母加连字符的形式。}
% 定义用于设置个人信息的命令
% \begin{macrocode}
\NewDocumentCommand \njusetup { m }
{ \keys_set:nn { nju } { #1 } }
\NewDocumentCommand \njusetup { m } { \keys_set:nn { nju } { #1 } }
% \end{macrocode}
% \end{macro}
%
......@@ -1467,29 +1491,19 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \pkg{emptypage}用于清除空白页的页码。
% \begin{macrocode}
\RequirePackage
{
geometry,
caption,
floatrow,
setspace,
emptypage,
fancyhdr,
}
{
geometry,
caption,
floatrow,
setspace,
emptypage,
fancyhdr,
hologo
}
\RequirePackage[titles]{tocloft}
\RequirePackage[hyphens]{url} % generate better linebreaks in the url
% \end{macrocode}
%
% 用于生成可以被插入书签的LaTeX logo,TODO: 使用hologo创建|latex{}|命令
% \begin{macrocode}
\RequirePackage{hologo}
% \end{macrocode}
%
% \begin{macrocode}
% Required to prevent page break right after a sectioning command
% \RequirePackage{needspace}
% \RequirePackage{xspace} % Better print trailing whitespace
% \end{macrocode}
%
% \begin{macro}{\njuline}
% 针对编译引擎,使用不同的宏包构建可以对中文正常换行的下划线命令。\pkg{lua-ul} 中需要在结尾使用\tn{null}保护尾部空白。
% \begin{macrocode}
......@@ -1583,10 +1597,10 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \begin{macrocode}
\tl_if_empty:NTF \g_@@_latin_fontset_tl
{ \bool_gset_true:N \g_@@_load_system_fontset_bool }
{
\tl_if_empty:NT \g_@@_cjk_fontset_tl
{ \bool_gset_true:N \g_@@_load_system_fontset_bool }
}
{
\tl_if_empty:NT \g_@@_cjk_fontset_tl
{ \bool_gset_true:N \g_@@_load_system_fontset_bool }
}
% \end{macrocode}
%
% 进行系统检测。
......@@ -1950,7 +1964,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \end{macrocode}
%
% \begin{macro}{\tableofcontents}
% 重定义目录命令,修改标题格式并插入书签。
% 重定义目录命令,修改标题格式并插入书签。
% \begin{macrocode}
\RenewDocumentCommand \tableofcontents { }
{
......@@ -2045,7 +2059,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \end{macro}
%
% \subsection{参考文献}
%
%
% biblatex设置
% \begin{macrocode}
\RequirePackage[
......@@ -2075,6 +2089,16 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
]{biblatex}
% \end{macrocode}
%
% \changes{v0.12}{2021/12/06}{设置输出参考文献的默认选项。}
% 设置参考文献名称
% \begin{macrocode}
\ctexset{ bibname = {参考文献} }
% \end{macrocode}
% 将参考文献插入目录
% \begin{macrocode}
\DeclarePrintbibliographyDefaults{ heading = bibintoc }
% \end{macrocode}
%
% 忽略不需要的文献信息。
% \begin{macrocode}
\AtEveryBibitem{
......@@ -2119,7 +2143,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist,
% \crefname{assumption}{假设}{假设}
% \end{macrocode}
%
% \pkg{hyperref}
% \pkg{hyperref} 覆写了大量命令,因此需要在最后载入。
% \changes{v0.11}{2021/10/01}{写入PDF元数据。}
% \begin{macrocode}
\ctex_at_end_preamble:n
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment