From f7fc4ad3995d7f6ebbed20c20bf06e3a9176ea04 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Wed, 9 Jun 2021 03:03:06 +0000
Subject: CTAN sync 202106090303

---
 macros/latex/contrib/easybook/easybook.dtx | 231 ++++++++++++++++++-----------
 1 file changed, 143 insertions(+), 88 deletions(-)

(limited to 'macros/latex/contrib/easybook/easybook.dtx')

diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 8b0f06cada..43e86f831b 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -23,16 +23,16 @@
 %
 % \changes{v1.20}{2021/01/09}{修改和完善用户文档。}
 % \changes{v1.20}{2021/01/09}{模板更改为使用 CC-BY 许可协议。}
-% \changes{v1.25v}{2021/05/03}{取消附带的示例文件，可查看历史版本及其它来源的使用样例。}
-% \changes{v1.25v}{2021/06/02}{将模块的代码独立出来为 \pkg{easybase} 宏包，适用于 \CTeX 文档类。}
+% \changes{v1.25w}{2021/05/03}{取消附带的示例文件，可查看历史版本及其它来源的使用样例。}
+% \changes{v1.25w}{2021/06/02}{将模块的代码独立出来为 \pkg{easybase} 宏包，适用于 \CTeX 文档类。}
 %
 % \title{\sffamily easybook 文档类手册}
 % \author{瞿毅}
-% \date{2021/06/07\hskip\ccwd\relax v1.25v\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/06/08\hskip\ccwd\relax v1.25w\thanks{\url{https://gitee.com/texl3/easybook}}}
 %
 % \maketitle
 % \begin{abstract}
-%   \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板，可以看作对 \cls{ctexbook} 的进一步包装与增强。虽然 \CTeX 文档类提供了较好的中文支持，但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并已载入一些常用宏包用于实现一般的排版需求，同时也具有 \cls{article} 文档类的功能，使用户可以简便地进行设置。它适用于排版中英文学术书籍、笔记或者是学位论文。
+%   \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板，可以看作对 \cls{ctexbook} 的进一步包装与增强。虽然 \CTeX 文档类提供了较好的中文支持，但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并已载入一些常用宏包用于实现一般的排版需求，同时也具有 \cls{article} 文档类的功能，使用户可以简便地进行设置。它适用于排版中英文学位论文、学术书籍或者是笔记。
 % \end{abstract}
 % \tableofcontents
 %
@@ -134,7 +134,7 @@
 % \end{syntax}
 % 传递给 \cls{ctexbook} 设置字体，最好不要使用原有的 \opt{fontset} 选项，默认情况下使用自定义字体而不开启这个选项，可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{subsec:font settings}，\opt{overleaf} 是一个各系统通用选项，会检测系统环境选取对应字体。
 % \changes{v1.21}{2021/01/12}{默认字体与 \CTeX 一致，不再是自定义字体。}
-% \changes{v1.25v}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
+% \changes{v1.25w}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
 % \end{function}
 %
 % \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
@@ -183,8 +183,8 @@
 %   \tn{listoftables*+}\oarg{键值列表}
 %   \tn{listoflstlistings*+}\oarg{键值列表}
 % \end{syntax}
-% \tn{listoffigures} 命令输出图片目录，\tn{listoftables} 输出表格目录，\tn{listoflstlistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录，带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录，需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用，附加代码是中文与英文目录之间的代码，可以插入文本和换页命令等。目录的键值列表选项如下
-% \changes{v1.25v}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
+% \tn{listoffigures} 命令输出图片目录，\tn{listoftables} 输出表格目录，\tn{listoflstlistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录，带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录，需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用，附加代码是中文与英文目录之间的代码，可以插入目录样式和换页等命令。目录的键值列表选项如下
+% \changes{v1.25w}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
 % \end{function}
 %
 % \begin{function}{multoc,columns,title,format,aftertitle,pagestyle,chapter,section}
@@ -201,7 +201,7 @@
 % 在书籍模式且 \opt{chapter} 选项开启或者文章模式的情况下，\opt{format} 用于设置目录标题的格式，\opt{aftertitle} 选项的代码将被插入到目录标题内容之后，\opt{pagestyle} 是目录标题所在页的页面格式，除此之外还支持 \opt{ctexset/chapter} 或 \opt{ctexset/section} 所有的章节标题样式选项。\opt{chapter} 选项使目录标题按照 chapter 级别输出，\opt{section} 选项使目录标题按照 section 级别输出，默认为 chapter 级别。
 % \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项，可设置标题输出级别以及是否加入主目录。}
 % \changes{v1.24}{2021/04/04}{目录命令的可选参数增加标题键值。}
-% \changes{v1.25v}{2021/06/02}{目录可设置多栏，并在 article 模式仍然生效。}
+% \changes{v1.25w}{2021/06/02}{目录可设置多栏，并在 article 模式仍然生效。}
 % \end{function}
 %
 % \subsubsection{标题命令}
@@ -214,7 +214,7 @@
 % 双语目录的标题命令目前设置了常用的三个级别，它们将中文标题正常输出，并使中英文标题加入双语目录，这个功能是为国内一些大学的学位论文模板的要求设计，在一般情况和英文模式下不需要使用。
 %
 % 它们的星号变体命令使文中标题不编号，但是仍然加入双语目录，若英文标题参数空置那么仅加入中文目录而不加入英文目录，这一特点与 \tn{chapter*} 等命令的行为不太一样，在一些情况下会用到。可选参数是目录中的中文标题，默认与中文标题一致，正文标题过长时可用它设置在目录中显示的标题。双语目录的格式是一致的，共享使用 \tn{tocset} 的设置，英文目录的章级别标题名及编号的修改方式如下
-% \changes{v1.25v}{2021/05/05}{增加与双语目录配合的标题命令。}
+% \changes{v1.25w}{2021/05/05}{增加与双语目录配合的标题命令。}
 % \end{function}
 %
 % \begin{function}{chapter/biname,chapter/binmuber}
@@ -314,7 +314,7 @@
 % \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
 % \changes{v1.23}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
 % \changes{v1.24}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
-% \changes{v1.25v}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset}，\opt{link} 作为兼容性保留。}
+% \changes{v1.25w}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset}，\opt{link} 作为兼容性保留。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -371,7 +371,7 @@
 % \ding{229} 以上选项路径为 \opt{subfont/...}
 % \changes{v1.10}{2021/01/08}{加入自定义非正文字体选项。}
 % \changes{v1.23}{2021/02/08}{修复使用 \tn{zihao} 命令设置字体失效的问题。}
-% \changes{v1.25v}{2021/05/31}{其它字体模块名由 \opt{elsefont} 改为 \opt{subfont}，并增加数学字体的选项 \opt{subfont/math}。}
+% \changes{v1.25w}{2021/05/31}{其它字体模块名由 \opt{elsefont} 改为 \opt{subfont}，并增加数学字体的选项 \opt{subfont/math}。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -396,7 +396,7 @@
 % \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项，可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
 % \changes{v1.23}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
 % \changes{v1.24}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
-% \changes{v1.25v}{2021/05/12}{取消 \opt{bib-loadpkg} 选项，由是否设置参考文献数据库来决定载入宏包。}
+% \changes{v1.25w}{2021/05/12}{取消 \opt{bib-loadpkg} 选项，由是否设置参考文献数据库来决定载入宏包。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -406,7 +406,7 @@
 %   \item[datafile] 参考文献数据库的文件名，使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀，若不在当前文件夹名称需要包含路径。只有设置数据库的文件名才会载入 \pkg{natbib} 或 \pkg{biblatex} 宏包，之后才可使用相关配置命令，否则需要自行配置参考文献。
 % \end{optdesc}
 %
-% \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\EbBibtexSet,\EbBiblatexPreset,\EbBiblatexPostset}
+% \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\EBibtexSet,\EBiblatexPreset,\EBiblatexPostset}
 % \begin{syntax}
 %   \tn{printbibliography}\oarg{键值列表}
 % \end{syntax}
@@ -422,9 +422,9 @@
 %     \end{syntax}
 %     \opt{heading} 为参考文献标题的处理方式，\opt{bibliography} 选项以 \opt{chapter} 级别输出参考文献，不加进目录，\opt{subbibliography} 选项以 \opt{section} 级别输出参考文献，不加进目录，\opt{bibintoc} 选项以 \opt{chapter} 级别输出参考文献，加进目录，\opt{subbibintoc} 选项以 \opt{section} 级别输出参考文献，加进目录。\opt{title} 选项覆盖由 \opt{heading} 选项提供的缺省标题名。除此之外其他支持选项可见 \pkg{biblatex} 宏包说明文档。
 %     \end{function}
-%   \item[\tn{EbBibtexSet}] 这是 \pkg{natbib} 宏包的配置命令，需要与 \pkg{natbib} 配合并放在载入其之后使用，默认保存了参考文献风格和标题的设置。
-%   \item[\tn{EbBiblatexPreset}]  这是 \pkg{biblatex} 宏包的前配置命令，需要与 \pkg{biblatex} 配合并放在载入其之前使用，默认保存了参考文献风格的设置。若重新定义可使用 \tn{PassOptionsToPackage} 命令向 \pkg{biblatex} 传递它支持的各种参考文献选项。
-%   \item[\tn{EbBiblatexPostset}]  这是 \pkg{biblatex} 宏包的后配置命令，需要与 \pkg{biblatex} 配合并放在载入其之后使用，默认保存了参考文献标题的设置。
+%   \item[\tn{EBibtexSet}] 这是 \pkg{natbib} 宏包的配置命令，需要与 \pkg{natbib} 配合并放在载入其之后使用，默认保存了参考文献风格和标题的设置。
+%   \item[\tn{EBiblatexPreset}]  这是 \pkg{biblatex} 宏包的前配置命令，需要与 \pkg{biblatex} 配合并放在载入其之前使用，默认保存了参考文献风格的设置。若重新定义可使用 \tn{PassOptionsToPackage} 命令向 \pkg{biblatex} 传递它支持的各种参考文献选项。
+%   \item[\tn{EBiblatexPostset}]  这是 \pkg{biblatex} 宏包的后配置命令，需要与 \pkg{biblatex} 配合并放在载入其之后使用，默认保存了参考文献标题的设置。
 % \end{optdesc}
 %
 % \subsection{定理样式}
@@ -459,15 +459,15 @@
 %   \item[spacepost] 定理标题后与第一段内容的间隔。
 % \end{optdesc}
 %
-% \begin{function}[added = 2021-01-12,updated = 2021-04-25]{\newtheorem,\EbNewTheorem,\declaretheoremstyle}
+% \begin{function}[added = 2021-01-12,updated = 2021-04-25]{\newtheorem,\EBNewTheorem,\declaretheoremstyle}
 % \begin{syntax}
 %   \tn{newtheorem}\oarg{键值列表}\marg{定理环境名}
-%   \tn{EbNewTheorem}\marg{定理环境名}\oarg{英文标题}\marg{中文标题}\parg{盒子样式|(tc-theorem)}\oarg{键值列表}
+%   \tn{EBNewTheorem}\marg{定理环境名}\oarg{英文标题}\marg{中文标题}\parg{盒子样式|(tc-theorem)}\oarg{键值列表}
 %   \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名}
 % \end{syntax}
 % 文档类已预置8个定理环境，环境名及对应的定理标题名见小节 \ref{subsec:theorem}，如果需要新的定理标题名或定理样式可使用这两个命令。
 % \changes{v1.23}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
-% \changes{v1.24}{2021/04/25}{增加定义定理环境命令 \tn{EbNewTheorem}。}
+% \changes{v1.24}{2021/04/25}{增加定义定理环境命令 \tn{EBNewTheorem}。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -478,7 +478,7 @@
 %       \item[numberlike] 定理将使用此计数器进行编号，通常这是另一个定理环境的名称。
 %       \item[style] 用 \tn{declaretheoremstyle} 定义的定理样式的名称，定理将使用这种样式的设置。
 %     \end{description}
-%   \item[\tn{EbNewTheorem}] \tn{EbNewTheorem} 是更便捷的定理命令，它定义一个新的定理环境，键值列表支持的选项与 \tn{newtheorem} 相同，但它们的区别有
+%   \item[\tn{EBNewTheorem}] \tn{EBNewTheorem} 是更便捷的定理命令，它定义一个新的定理环境，键值列表支持的选项与 \tn{newtheorem} 相同，但它们的区别有
 %     \begin{itemize}
 %       \item 中英文模式下标题不同，英文标题为可选项，默认为首字母大写的环境名。
 %       \item 自动定义交叉引用的格式，引用标签前缀为定理名称。
@@ -491,7 +491,7 @@
 % \subsubsection{新的定理样式}
 % 定理由 \pkg{thmtools} 设置，预置定理的样式为 \opt{easy-theorem}，上述定理样式选项将对这个定理样式生效。如果使用这个样式而只是增加新的定理名称，可以这样
 % \begin{ctexexam}
-%   \EbNewTheorem{定理环境名}{中文标题}[style = other theorem]
+%   \EBNewTheorem{定理环境名}{中文标题}[style = other theorem]
 %   \newtheorem[style = easy-theorem,name = 定理名]{定理环境名}
 % \end{ctexexam}
 % \tn{newtheorem} 定义的定理环境需要手动增加盒子边框，可以如下进行设置
@@ -602,7 +602,7 @@
 % 上面几个选项用于设置脚注格式，\opt{fnparskip} 和 \opt{fnparindent} 选项仅在 \opt{fnhang = true} 时有效。\opt{fnhang} 用于将脚注设置为悬挂缩进的格式，\opt{fnmark-pos} 选项设置脚注编号的位置，正常文本或是上标形式。\opt{fnmark-num} 选项设置脚注编号的格式，默认为原生样式 \opt{plain}，还可以改为 \opt{pifont} 的各个版本，从左往右依次为普通版、阴文衬线版、阳文无衬线版和阴文无衬线版，缺点是它们的编号仅包括1-10。
 %
 % \opt{fnmark-form} 是脚注标记的格式，在此设置字体命令会覆盖 \opt{subfont/footnote} 的设置，最后一个格式命令可以带有一个参数，这个参数接受脚注编号，一般配合 \opt{fnmark-num = plain} 使用。\opt{afterfnmark} 是脚注标记后的代码，一般用于设置标记与文本间的距离。
-% \changes{v1.25v}{2021/05/12}{增加脚注样式设置选项。}
+% \changes{v1.25w}{2021/05/12}{增加脚注样式设置选项。}
 % \end{function}
 %
 % \subsection{目录样式}
@@ -621,17 +621,17 @@
 % \opt{format} 是目录中标题的格式，可以设置字体和加入垂直间距等，垂直间距最好使用无间距重合的 \tn{addvspace} 命令，带有加号的 \opt{format+} 选项用于在已有的格式命令后附加内容。\opt{indent} 是目录中标题在页面左侧的缩进距离，应该有长度单位。\opt{rule} 选项中一般应当使用 \tn{tocrule} 命令，将会在接下来介绍。\opt{numsep} 是有编号的标题在目录中编号与标题的间距。
 % \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
 % \changes{v1.24}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。}
-% \changes{v1.25v}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。}
+% \changes{v1.25w}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。}
 % \end{function}
 %
-% \begin{function}[added = 2021-01-13,updated = 2021-04-20]{\tocrule,\EbNumberLine}
+% \begin{function}[added = 2021-01-13,updated = 2021-04-20]{\tocrule,\EBNumberLine}
 % \begin{syntax}
 %   \tn{tocrule}*\oarg{引导点间距|(0.7pc)}\parg{引导点大小|(1.2)}\marg{引导点}\oarg{页码格式}
-%   \tn{EbNumberLine}\marg{编号类型}
+%   \tn{EBNumberLine}\marg{编号类型}
 % \end{syntax}
 % \tn{tocrule} 命令生成目录引导线，需要在 \opt{rule} 选项中使用。带有星号的命令会使当前级别的目录引导线右边与页码连接而不是对齐。引导点间距需带有长度单位，引导点大小不带单位，为引导点符号正常大小的倍数，引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面，可以设置页码字体、距离。
 %
-% \tn{EbNumberLine} 命令类似 \CTeX 的 \tn{CTEXnumberline} 命令，用于 \opt{tocline} 选项中设置目录标签的编号。区别是它需要在 \opt{tocset/hang = false} 时使用，否则目录中无法显示标题编号，使用它的时候 \opt{numsep} 选项仍然有效。\meta{编号类型} 为 \opt{chapter} 和 \opt{section} 等，也可用参数 \#1 代替当前级别类型，标题名用参数 \#2 代替一般不变。
+% \tn{EBNumberLine} 命令类似 \CTeX 的 \tn{CTEXnumberline} 命令，用于 \opt{tocline} 选项中设置目录标签的编号。区别是它需要在 \opt{tocset/hang = false} 时使用，否则目录中无法显示标题编号，使用它的时候 \opt{numsep} 选项仍然有效。\meta{编号类型} 为 \opt{chapter} 和 \opt{section} 等，也可用参数 \#1 代替当前级别类型，标题名用参数 \#2 代替一般不变。
 % \end{function}
 %
 % \begin{ctexexam}
@@ -706,7 +706,7 @@
 %   \tn{end}\marg{环境名}
 % \end{syntax}
 % \pkg{tabularray} 是一个较新的宏包，不仅提供了 \pkg{tabularx}、\pkg{multirow}、和 \pkg{booktabs} 宏包的功能，并且不依赖其它宏包与它们同时使用不会产生冲突，还实现了用简便的键值列表方式设置表格样式。目前除了表头斜线以及跨页功能存在不足，其它方面已满足对表格绝大多数格式的需求，具体用法可见宏包的说明文档。
-% \changes{v1.25v}{2021/05/17}{使用功能更便捷齐全的 \pkg{tabularray} 宏包设置表格样式。}
+% \changes{v1.25w}{2021/05/17}{使用功能更便捷齐全的 \pkg{tabularray} 宏包设置表格样式。}
 % \end{function}
 %
 % \subsection{列表}
@@ -879,7 +879,7 @@
 %   \tn{qtyrange}\oarg{键值列表}\marg{数字1}\marg{数字2}\marg{单位}
 % \end{syntax}
 % \pkg{siunitx} 宏包的 \tn{num} 命令可以输出以科学计数法表示的数值，单位格式化命令 \tn{unit} 包含文字项目（例如字母或数字）时，使用 . 和 \~{} 放置在单元乘积中间，并使用 \_ 和 \^{} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。而 \tn{qty} 命令可用来输出带有单位的量，\tn{qtyrange} 可以输出带有范围和单位的量。
-% \changes{v1.25v}{2021/05/18}{\pkg{siunitx} 宏包 v3.0.0 更新后用法改变，修改相关配置选项。}
+% \changes{v1.25w}{2021/05/18}{\pkg{siunitx} 宏包 v3.0.0 更新后用法改变，修改相关配置选项。}
 % \end{function}
 %
 % \begin{ctexexam}
@@ -978,9 +978,6 @@
 % \pkg{ulem} 宏包提供了多种下划线命令，下划线的粗细由命令 \tn{ULthickness} 控制，重新定义它需要使用 \tn{renewcommand} 命令。下划线的深度由 \tn{ULdepth} 控制，默认值 \tn{maxdimen} 是一个允许深度根据当前字体变化的特殊标志，当然也可以使用 \tn{setlength} 设定特定深度。
 % \end{function}
 %
-% \subsection{封面}
-% 目前仍然使用由 \tn{maketitle} 命令生成的标准 \cls{book} 文档类的封面，并未做任何改动。可以自行设计或用其它软件制作封面，也可以使用热心网友 nangeng 已经为 \cls{easybook} 制作的\href{https://gitee.com/texl3/easybook/issues/I3NXVQ}{一个封面}。
-%
 % \section{载入的宏包}
 % 以下为 \cls{easybook} 直接调用的关键宏包，带有 \ding{75} 符号的宏包并未载入它们，仅做了预配置和兼容性处理，可根据需要在导言区手动载入以实现相关的功能。
 % \begin{description}
@@ -1006,18 +1003,66 @@
 %   \item[listings] 可以在 \LaTeX 中排版程序/编程代码。
 %   \item[hyperref] 处理交叉引用命令以及在文档中生成超文本链接。
 %   \item[\ding{75} tcolorbox] 为带有标题线的彩色和带框文本框提供了一个环境。
-%   \item[\ding{75} tasks] 将练习题组织成水平而不是垂直计数的列。
 %   \item[\ding{75} imakeidx] 可以让文档同时生成和排版一个或多个索引。
 %   \item[\ding{75} bicaption] 提供图表的双语题注。
 %   \item[\ding{75} mathtools] 增强 \pkg{amsmath} 的数学功能。
 %   \item[\ding{75} unicode-math] 处理使用 unicode 编码的数学字体。
 % \end{description}
 %
+% \newcommand\urlprefix{\newline\hspace*{\fill}}
+% \let\OldUrl\url
+% \renewcommand\url[2][]{{\small\textit{#1}~\OldUrl{#2}}}
+% \begin{thebibliography}{99}
+% \bibitem{CTeX}
+% \textsc{CTEX.ORG}.
+% \newblock \textit{\CTeX 宏集手册} [EB/OL].
+% \newblock version 2.5.6,
+% \newblock (2021-03-14)
+% \urlprefix\url{https://ctan.org/pkg/ctex}
+%
+% \bibitem{fduthesis}
+% 曾祥东.
+% \newblock \textit{\pkg{fduthesis}：复旦大学论文模板} [EB/OL].
+% \newblock version 0.7e,
+% \newblock (2020-08-30)
+% \urlprefix\url{https://github.com/stone-zeng/fduthesis}
+%
+% \bibitem{source3}
+% \textsc{The \LaTeX3 Project}.
+% \newblock \textit{The \LaTeX3 Interfaces} [CP/OL].
+% \newblock (2020-10-27)
+% \urlprefix\url{https://ctan.org/pkg/l3kernel}
+%
+% \bibitem{胡伟2017latex2e}
+% 胡伟.
+% \newblock \textit{\LaTeXe 文类和宏包学习手册} [M].
+% \newblock 北京: 清华大学出版社, 2017
+%
+% \bibitem{刘海洋2013latex入门}
+% 刘海洋.
+% \newblock \textit{\LaTeX 入门} [M].
+% \newblock 北京: 电子工业出版社, 2013
+%
+% \bibitem{xmuthesis}
+% Camuse Cao.
+% \newblock \textit{\pkg{xmuthesis}：厦门大学论文模板} [EB/OL].
+% \newblock version 0.4.1,
+% \newblock (2020-10-09)
+% \urlprefix\url{https://github.com/CamuseCao/XMU-thesis}
+%
+% \bibitem{whuthesis}
+% WHUTUG.
+% \newblock \textit{\pkg{whuthesis}：武汉大学论文模板} [EB/OL].
+% \newblock version 0.6d,
+% \newblock (2021-05-20)
+% \urlprefix\url{https://github.com/whutug/whu-thesis}
+% \end{thebibliography}
+%
 % \StopEventually{}
 %<*class>
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/06/07}{1.25v}{beta}
+\ProvidesExplClass{easybook}{2021/06/08}{1.25w}{beta}
 
 \bool_set_false:N \l__eb_compile_draft_bool
 \bool_set_false:N \l__eb_title_newline_bool
@@ -1197,7 +1242,7 @@
     part =
       {
         pagestyle = empty,
-        tocline   = \EbNumberLine{#1}#2,
+        tocline   = \EBNumberLine{#1}#2,
         format    = \color{ctex@frame}\sffamily\Huge,
         aftername =
           {
@@ -1261,7 +1306,7 @@
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2021/06/07}{1.25v}{beta}
+\ProvidesExplPackage{easybase}{2021/06/08}{1.25w}{beta}
 
 \cs_generate_variant:Nn \eb_ctex_define:nn { nx }
 \cs_generate_variant:Nn \int_to_arabic:n { v }
@@ -1635,6 +1680,17 @@
   }
 \cs_new:Npn \eb@number@markright #1#2
   { \markright{\eb_upper_number_mark_bool:nn {#1} {#2}} }
+\cs_new:Npn \eb@number@section@mark #1
+  {
+    \bool_if:NTF \l__eb_class_book_bool
+      { \eb@number@markright{section}{#1} }
+      { \eb@number@markdouble{section}{#1} }
+  }
+\cs_new:Npn \eb@number@subsection@mark #1
+  {
+    \bool_if:NF \l__eb_class_book_bool
+      { \eb@number@markright{subsection}{#1} }
+  }
 \ctex_at_end_preamble:n
   {
     \exp_args:NV \geometry \g__eb_geometry_clist
@@ -1642,19 +1698,9 @@
     \tl_use:N \l__eb_fancyhf_content_tl
     \cs_gset_eq:NN \ps@plain \ps@empty
     \pagestyle{fancy}
-    \bool_if:NTF \l__eb_class_book_bool
-      {
-        \cs_gset:Npn \chaptermark #1
-          { \eb@number@markdouble{chapter}{#1} }
-        \cs_gset:Npn \sectionmark #1
-          { \eb@number@markright{section}{#1} }
-      }
-      {
-        \cs_gset:Npn \sectionmark #1
-          { \eb@number@markdouble{section}{#1} }
-        \cs_gset:Npn \subsectionmark #1
-          { \eb@number@markright{subsection}{#1} }
-      }
+    \cs_gset:Npn \chaptermark #1 { \eb@number@markdouble{chapter}{#1} }
+    \cs_gset_eq:NN \sectionmark \eb@number@section@mark
+    \cs_gset_eq:NN \subsectionmark \eb@number@subsection@mark
     \bool_if:NT \l__eb_compile_draft_bool
       {
         \easyfoot[C]{\color{SlateGray}\sffamily\today}
@@ -1826,7 +1872,7 @@
       }
   }
 
-\cs_new:Npn \EbNumberLine #1
+\cs_new:Npn \EBNumberLine #1
   {
     \CTEXifname
       {
@@ -1889,9 +1935,9 @@
       {
         \ctex_set:n
           {
-            chapter/tocline     = \EbNumberLine{##1}##2,
-            section/tocline     = \EbNumberLine{##1}##2,
-            subsection/tocline  = \EbNumberLine{##1}##2
+            chapter/tocline     = \EBNumberLine{##1}##2,
+            section/tocline     = \EBNumberLine{##1}##2,
+            subsection/tocline  = \EBNumberLine{##1}##2
           }
       },
     hang .default:n     = true,
@@ -2004,6 +2050,7 @@
   { chapter,section,subsection }
 \seq_map_inline:Nn \c__eb_bitoc_title_level_seq
   {
+    \tl_const:cn { c__eb_bitoc_mark_title_#1_tl } {#1}
     \exp_args:Nc \NewDocumentCommand { bi#1 }{sO{##3}mm}
       {
         \IfBooleanTF{##1}
@@ -2011,6 +2058,16 @@
             \use:c {#1}*{\phantomsection ##3}
             \CTEX@addtocline{#1}{##2}
             \tl_if_empty:oF {##4} { \CTEX@addbitocline{#1}{##4} }
+            \tl_set:Nn \l__eb__bitoc_mark_title_level_tl {#1}
+            \tl_case:Nn \l__eb__bitoc_mark_title_level_tl
+              {
+                \c__eb_bitoc_mark_title_chapter_tl
+                  { \eb@nonumber@markdouble{##2} }
+                \c__eb_bitoc_mark_title_section_tl
+                  { \eb@nonumber@section@mark{##2} }
+                \c__eb_bitoc_mark_title_subsection_tl
+                  { \eb@nonumber@subsection@mark{##2} }
+              }
           }{
             \use:c {#1}[##2]{##3}
             \tl_if_empty:oF {##4} { \CTEX@addbitocline{#1}{##4} }
@@ -2088,6 +2145,17 @@
   }
 \cs_new:Npn \eb@nonumber@markright #1
   { \markright{\eb_upper_nonumber_mark_bool:n {#1}} }
+\cs_new:Npn \eb@nonumber@section@mark #1
+  {
+    \bool_if:NTF \l__eb_class_book_bool
+      { \eb@nonumber@markright{#1} }
+      { \eb@nonumber@markdouble{#1} }
+  }
+\cs_new:Npn \eb@nonumber@subsection@mark #1
+  {
+    \bool_if:NF \l__eb_class_book_bool
+      { \eb@nonumber@markright{#1} }
+  }
 
 \cs_new_protected:Npn \eb_title_mark_intoc:n #1
   {
@@ -2098,9 +2166,7 @@
       }
       {
         \bisection*{#1}{\eb@bitoc@title}
-        \bool_if:NTF \l__eb_class_book_bool
-          { \eb@nonumber@markright{#1} }
-          { \eb@nonumber@markdouble{#1} }
+        \eb@nonumber@section@mark{#1}
       }
   }
 \cs_new_protected:Npn \eb_title_mark_notoc:n #1
@@ -2112,9 +2178,7 @@
       }
       {
         \section*{\phantomsection #1}
-        \bool_if:NTF \l__eb_class_book_bool
-          { \eb@nonumber@markright{#1} }
-          { \eb@nonumber@markdouble{#1} }
+        \eb@nonumber@section@mark{#1}
       }
   }
 \cs_new_protected:Npn \eb_title_number_intoc_bool:nn #1#2
@@ -2135,9 +2199,9 @@
     \bool_if:NTF \l__eb_class_book_bool
       { \bichapter*{#1}{\l__eb_bib_bitoc_title} }
       { \bisection*{#1}{\l__eb_bib_bitoc_title} }
-    \eb@nonumber@markdouble{#1}
+    \eb@nonumber@section@mark{#1}
   }
-\cs_new_protected:Npn \eb_toc_multicol_bool:n #1
+\cs_new_protected:Npn \eb_toc_start_multicol_bool:n #1
   {
     \bool_if:NTF \l__eb_multoc_bool
       {
@@ -2157,7 +2221,7 @@
     \exp_args:NNc \dim_add:NV
     \l__eb_toc_offset_dim { l__eb_toc_#4_offset_dim }
     \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-    \eb_toc_multicol_bool:n {#5}
+    \eb_toc_start_multicol_bool:n {#5}
     \group_end:
   }
 \clist_map_inline:nn
@@ -2184,12 +2248,12 @@
     \IfValueT{#2}{\keys_set:nn { eb/listoc } {#2}}
     \eb_title_mark_notoc:n { \eb@toc@title }
     \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-    \eb_toc_multicol_bool:n { toc }#3
+    \eb_toc_start_multicol_bool:n { toc }#3
     \IfBooleanT{#1}
       {
         \eb_title_mark_notoc:n { \eb@bitoc@title }
         \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-        \eb_toc_multicol_bool:n { tec }
+        \eb_toc_start_multicol_bool:n { tec }
       }
     \group_end:
   }
@@ -2389,9 +2453,12 @@
   }
 \SetTblrDefault
   {
-    rows = {abovesep = 4pt,belowsep = 2pt},
+    rows    = {abovesep = 4pt,belowsep = 2pt},
     stretch = \fp_use:N \l__eb_spread_table_fp
   }
+\NewTableCommand{\toprule}[1][1pt]{\hline[#1]}
+\NewTableCommand{\midrule}[1][0.5pt]{\hline[#1]}
+\NewTableCommand{\bottomrule}[1][1pt]{\hline[#1]}
 \eb_at_begin_environment:nn { tabular,tabularx }
   {
     \exp_args:Nx \linespread { \fp_use:N \l__eb_spread_table_fp }
@@ -2418,7 +2485,7 @@
         \int_compare:nNnT { \c@chapter } > { 0 }
           {
             \thechapter
-            \use:c { l__eb_#1_separator_tl }
+            \tl_use:c { l__eb_#1_separator_tl }
           }
         \eb_arabic:n {#1}
       }
@@ -2479,7 +2546,7 @@
       { \tl_const:cn { c__eb_name_#1_tl } {#3} }
       { \tl_const:cn { c__eb_name_#1_tl } {#2} }
   }
-\NewDocumentCommand{\EbNewTheorem}
+\NewDocumentCommand{\EBNewTheorem}
   {mO{\text_titlecase_first:n {#1}}mD(){tc-theorem}O{}}
   {
     \ctex_at_end_preamble:n
@@ -2487,7 +2554,7 @@
         \eb_thmname_set:nnn {#1} {#2} {#3}
         \exp_args:No \declaretheorem@i
           {
-            name  = \use:c { c__eb_name_#1_tl },
+            name  = \tl_use:c { c__eb_name_#1_tl },
             style = easy-theorem,#5
           }{#1}[]
         \bool_if:NT \l__eb_thmbox_bool
@@ -2495,7 +2562,7 @@
             \@ifpackageloaded{tcolorbox}
               {\tcolorboxenvironment{#1}{#4}}{}
           }
-        \labelformat{#1}{\use:c { c__eb_name_#1_tl }~##1}
+        \labelformat{#1}{\tl_use:c { c__eb_name_#1_tl }~##1}
       }
   }
 
@@ -2567,21 +2634,9 @@
         { remark } { 注 } [ numbered = no ],
         { { proof } { 证明 } [ numbered = no,qed = \qedsymbol ] }
       }
-      { \EbNewTheorem #1 }
+      { \EBNewTheorem #1 }
   }
 
-\ctex_at_end_package:nn { tasks }
-  {
-    \settasks
-      {
-        label           = (\Alph*),
-        column-sep      = \ccwd,
-        item-indent     = 2\ccwd,
-        label-offset    = 0.5\ccwd,
-        label-width     = 1.5\ccwd,
-        after-item-skip = 0ex plus .1ex
-      }
-  }
 \setchemformula
   {
     math-scripts      = false,
@@ -2800,7 +2855,7 @@
       {
         standard~jigsaw,
         nobeforeafter,tcbox~raise~base,
-        top = 1.25vt,bottom = 1.25vt,left = 1.25vt,right = 1.25vt,
+        top = 1.25wt,bottom = 1.25wt,left = 1.25wt,right = 1.25wt,
         boxrule = 0.75pt,arc = 1pt,
         colback = #1,opacityback = 0.12,colframe = #1,#3
       }{#2}
@@ -2843,7 +2898,7 @@
     bitoc-title .initial:n  = Reference
   }
 
-\cs_new_protected:Npn \EbBibtexSet
+\cs_new_protected:Npn \EBibtexSet
   {
     \tl_if_empty:NTF \l__eb_bib_otherstyle_tl
       {
@@ -2879,7 +2934,7 @@
   }
 \cs_new_protected:Npn \eb_put_biblatex:n #1
   { \PassOptionsToPackage{#1}{biblatex} }
-\cs_new_protected:Npn \EbBiblatexPreset
+\cs_new_protected:Npn \EBiblatexPreset
   {
     \tl_if_empty:NTF \l__eb_bib_otherstyle_tl
       {
@@ -2893,7 +2948,7 @@
       { \eb_put_biblatex:n { citestyle = \l__eb_bib_citestyle_tl } }
     \eb_put_biblatex:n { backend = biber }
   }
-\cs_new_protected:Npn \EbBiblatexPostset
+\cs_new_protected:Npn \EBiblatexPostset
   {
     \exp_args:NV \addbibresource \l__eb_bib_datafile_tl
     \tl_gset:Nn \blx@default@theheading { bibintoc }
@@ -2908,12 +2963,12 @@
         \bool_if:NTF \l__eb_backend_bibtex_bool
           {
             \eb@package@load[sort&compress]{natbib}
-            \EbBibtexSet
+            \EBibtexSet
           }
           {
-            \EbBiblatexPreset
+            \EBiblatexPreset
             \eb@package@load{biblatex}
-            \EbBiblatexPostset
+            \EBiblatexPostset
           }
       }
   }
-- 
cgit v1.2.3

