summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/easybook/easybook.pdfbin586959 -> 592701 bytes
-rw-r--r--Master/texmf-dist/doc/latex/easybook/easybook.tex62
-rw-r--r--Master/texmf-dist/source/latex/easybook/easybook.dtx475
-rw-r--r--Master/texmf-dist/tex/latex/easybook/easybase.sty471
-rw-r--r--Master/texmf-dist/tex/latex/easybook/easybook.cls2
-rw-r--r--Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg2
6 files changed, 510 insertions, 502 deletions
diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.pdf b/Master/texmf-dist/doc/latex/easybook/easybook.pdf
index e17b80e4c52..fe31a2f5613 100644
--- a/Master/texmf-dist/doc/latex/easybook/easybook.pdf
+++ b/Master/texmf-dist/doc/latex/easybook/easybook.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.tex b/Master/texmf-dist/doc/latex/easybook/easybook.tex
index 20fd6cbb522..ae9ecb96b53 100644
--- a/Master/texmf-dist/doc/latex/easybook/easybook.tex
+++ b/Master/texmf-dist/doc/latex/easybook/easybook.tex
@@ -21,7 +21,7 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v1.642,
+ version = v1.643,
date = 2022/03/08,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
@@ -322,7 +322,7 @@
\command{backmatter}
后记区命令。页码格式与编号保持不变,章标题不编号。
\command{cleardoublepage}[\oarg{页面风格}]\Default{empty}
- 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会用到清双页命令。
+ 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会默认用到清双页命令。
\command{blankpagestyle}[\marg{页面风格}]
多出空白页的 \meta{页面风格} 用空白页面风格命令 \cs{blankpagestyle} 全局指定,或使用清双页命令的可选参数局部指定。空白页默认的风格为 \code{empty},即空的页眉页脚。
\end{commands}
@@ -793,7 +793,7 @@
模块 \module*{hdrset} 还可以灵活调整脚注编号和内容的格式。格式主要包括脚注标记的编号类型、字体、附加符号、对齐方式和缩进距离等,以及脚注内容的首行缩进、行距和字体等。基本思想是默认脚注和自定义编号脚注标记的格式分离,两种类型脚注各自正文和内容的标记又共享格式,默认脚注中正文和内容标记的编号类型分离。
\begin{options}
\keychoice{footnotetype}{hang,default,flush,bottom}\Module{hdrset}\Default{hang}
- 脚注的类型。悬挂缩进 \code{hang} 是默认值,\code{default} 是原始的类型,\code{flush} 使脚注内容标记位于脚注首行边缘外侧并右对齐。在一些浮动体排版的情况下,脚注可能位于页面中间,\code{bottom} 使脚注始终位于页面底端。其中 \code{bottom} 是复合选项,可以与前三种类型重复或复合使用:
+ 脚注的类型。悬挂缩进 \code{hang} 是默认值,\code{default} 是原始的类型,\code{flush} 使脚注内容标记位于脚注首行边缘外侧并右对齐。当存在浮动环境排版时,脚注可能位于页面中间,\code{bottom} 使脚注始终位于页面底端。其中 \code{bottom} 是复合选项,可以与前三种类型重复或复合使用:
\begin{ctexexam}
\ebhdrset{footnotetype = default,footnotetype = bottom}
\ebhdrset{footnotetype = {hang,bottom}}
@@ -892,7 +892,7 @@
\subsection{目录样式}
\label{subsec:catalog style}
-模块 \module*{tocset} 将使用 \pkg*{titletoc} 宏包处理目录样式。模块或扩展包括了 \module*{part}、\module*{chapter}、\module*{section}、\module*{subsection}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 二级路径,而使用 \module*{list} 路径可以统一设置图片、表格和代码目录的样式。选项前带有 \ding{73} 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{tocset} 路径下。目前支持标准的论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
+模块 \module*{tocset} 将使用 \pkg*{titletoc} 宏包处理目录样式。默认包括 \module*{part}、\module*{chapter}、\module*{section}、\module*{subsection}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 二级路径,而使用 \module*{float} 路径可以统一设置图片、表格和代码目录的样式。选项前带有 \ding{73} 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{tocset} 一级路径下。目前支持标准的论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
\begin{options}
\keyval{tocformat}{条目格式}\dtag\smodule{tocset}%
目录中各级别条目的格式。可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。
@@ -902,12 +902,16 @@
目录条目左边的缩进距离,通常标题级别越低缩进越大。
\keyval{tocrule}{引导线命令}\dtag
引导线选项 \option{tocrule} 中一般可以使用基于 \cs*{xleaders} 命令的 \cs{tocrule} 绘制引导线。
+ \begin{commands}
+ \command{tocrule}[\sarg\harg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}]
+ 生成目录引导线的命令,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令与 \keyis{dotalign}{false} 效果相同。带有 \harg{} 号的命令不添加引导线后的目录页码。\meta{引导点间距} 需带有长度单位,\meta{放大因子} 为 \meta{引导点} 的放大倍数。\meta{页码格式} 的代码位于页码前面,可以设置页码字体和距离等,最后一个命令可以带有一个参数为页码编号。
+ \end{commands}
\keyval{tocafter}{距离命令}\dtag\Default{\cs*{hspace}\Marg{1em}}
目录条目编号与标题间的代码,默认为插入 \code{1em} 横向距离。
\keyval{tocbelow}{距离命令}\dtag\newtag%
在目录条目下方执行的代码,可以插入垂直距离等命令。
\keyval{tocline}{条目定义}\dtag[\textcolor{red}{\ding{73}}]
- 这个选项扩展了图片、表格或代码题注在目录文件中的定义。选项中参数 \code{\#1} 代表相应题注编号 \cs*{the}\meta{计数器} 的值,参数 \code{\#2} 代表相应题注内容。
+ 这个选项在章节标题基础上扩展了浮动环境的题注在目录文件中的定义。选项中参数 \code{\#1} 代表相应题注编号 \cs*{the}\meta{计数器} 的值,参数 \code{\#2} 代表相应题注内容。
\begin{ctexexam}
\ctexset
{
@@ -924,14 +928,23 @@
\begin{commands}
\command{RegisterTocName}[\marg{条目名}]\newtag%
- 给 \meta{条目名} 注册上述设置目录样式的选项,选项前有红色的符号 \textcolor{red}{\ding{73}} 表示目前在注册后不可用。
+ 给名称为 \meta{条目名} 的浮动环境注册设置目录样式的选项,选项前有符号 \ding{73} 表示在注册后可用。
\command{contentsuse}[\marg{条目名}\marg{扩展名}]
- 激活名为 \meta{条目名} 的目录条目定制功能,它使用的目录文件后缀为 \meta{扩展名}。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。
- \command{tocrule}[\sarg\harg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}]
- 生成目录引导线的命令,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令会使当前级别的目录引导线右端与页码相连而不是对齐。带有 \harg{} 号的命令不添加引导线后的目录页码。\meta{引导点间距} 需带有长度单位,\meta{放大因子} 不带单位,为 \meta{引导点} 的放大倍数,\meta{引导点} 一般为英文句号或 \cs*{cdot} 中心点符号。\meta{页码格式} 的代码位于页码前面,可以设置页码字体和距离等,最后一个命令可以带有一个参数为页码编号。
+ 激活名称为 \meta{条目名} 的浮动环境目录定制功能,它使用的目录文件后缀为 \meta{扩展名}。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。
+ \command{DeclareFloatList}[\marg{条目名}\marg{扩展名}]\newtag%
+ 声明一个新的 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}} 的浮动环境目录命令,并且支持\ref{sec:document command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,推荐搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有符号 \textcolor{red}{\ding{73}} 表示在声明后可用。下面举一个声明算法目录的例子:
+ \begin{ctexexam}
+ \usepackage{newfloat}
+ \DeclareFloatingEnvironment[
+ fileext = loa,
+ listname = 算法清单
+ ]{algorithm}
+ \DeclareFloatList{algorithm}{loa}
+ \listofalgorithms[multoc] % 在正文中输出双栏算法目录
+ \end{ctexexam}
\command{listnumberline}[\marg{条目名}]
- 在图片、表格或代码目录中插入条目编号的命令,默认包含与题注名相同的标签名。其中 \meta{条目名} 需要显示指定,即为 \code{figure}、\code{table} 或 \code{lstlisting}。关于命令的用法可见\ref{exam:list command usage}。
- \begin{ctexexam}[labelref = exam:list command usage]
+ 在图表等浮动环境目录中插入条目标签和编号,默认标签可以由格式命令 \cs{labelformat} 设置。注意其中 \meta{条目名} 需要用对应名称\textbf{显示指定}。
+ \begin{ctexexam}
\ctexset
{
figure/tocline = \listnumberline{figure}#2,
@@ -945,8 +958,8 @@
悬挂缩进选项 \option{hang} 使目录条目为悬挂缩进形式。缩进距离为条目编号及其与标题间距的长度和。这个选项对所有条目名同时生效。
\keyval{lolskip}{弹性长度}\Default{10pt}
代码目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。
- \keyval{between}{代码钩子}
- 目录标题与内容间的钩子(作用于标题下方间距之后),一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。一级路径此选项对应文档主目录的钩子,二级路径为 \module*{figure}、\module*{table} 和 \module*{lstlisting},或者用位于 \module*{list} 路径的此选项统一设置相应类型目录的钩子。
+ \keyval{between}{代码钩子}\dtag[\textcolor{red}{\ding{73}}]
+ 目录标题与内容间的钩子(作用于标题下方间距之后),一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。一级路径此选项对应文档主目录的钩子,二级路径为浮动环境的 \meta{条目名}。
\keyval{bibetween}{代码钩子}\newtag%
与选项 \option{between} 类似,是位于一级路径的英文文档主目录(如果启用)代码钩子。
\keybool{dotalign}\Default{true}
@@ -1140,13 +1153,13 @@
\subsection{计数器}
\begin{commands}\noitemsep
\command{newcounter}[\marg{计数器}\oarg{父计数器}]\default{}
- \command{counteruse}[\sarg\oarg{父计数器}\darg{编号}\marg{计数器}\oarg{分隔符}\darg{整数}]
- 命令 \cs{newcounter} 是 \LaTeX 自带的创建计数器命令,计数器值输出命令 \cs{counteruse} 以一定的格式使用由它创建的计数器,将会以 \cs*{the}\meta{父计数器}\meta{分隔符}\cs*{the}\meta{计数器} 输出这种计数器的值。命令 \cs{counteruse} 仅具有\textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加1,带有星号的命令使 \meta{计数器} 值保持不变,\meta{计数器} 的值也可以设为指定的 \meta{整数}。计数器的 \meta{编号} 为 \code{arabic} 或 \code{alph} 等计数形式。
+ \command{counteruse}[\sarg\oarg{编号}\darg{分隔符}\marg{计数器}\oarg{父计数器}]
+ 命令 \cs{newcounter} 是 \LaTeX 自带的创建计数器命令,计数器值输出命令 \cs{counteruse} 将会以 \cs*{the}\meta{父计数器}\meta{分隔符}\cs*{the}\meta{计数器} 形式输出这种计数器的值。命令 \cs{counteruse} 仅具有\textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加1,带有星号参数的命令使 \meta{计数器} 的值保持不变。计数器的 \meta{编号} 为 \code{arabic} 或 \code{alph} 等计数形式。
在一定的场合下可能用到 \cs{counteruse} 命令,比如通过新建快捷命令在一些位置使用定理环境的计数器,使用 \cs{labelformat} 设置计数器的标签引用需添加 \code{eb@}:
\begin{ctexexam}
\labelformat{eb@theorem}{定理#1}
- \newcommand{\theoremhead}[1]{定理\counteruse[chapter]{theorem}\hspace{1em}#1}
+ \newcommand{\theoremhead}[1]{定理\counteruse{theorem}[chapter]\hspace{1em}#1}
\theoremhead{定理内容}\label{thm:theorem}
\end{ctexexam}
\command{counterwithin}[\sarg\oarg{格式}\marg{计数器}\marg{父计数器}]
@@ -1162,7 +1175,7 @@
\subsection{标签引用}
\begin{commands}
\command{labelformat}[\marg{计数器}\marg{标签引用格式}]
- 标签格式命令 \cs{labelformat} 可以设置标签引用格式,\meta{标签引用格式} 中 \code{\#1} 代表 \cs*{the}\meta{计数器},可以设置引用序号的前缀和后缀。也可以使用 \pkg*{cleveref} 宏包提供更强大的标签功能。
+ 标签格式命令 \cs{labelformat} 可以设置标签引用格式。\meta{标签引用格式} 中 \code{\#1} 代表 \cs*{the}\meta{计数器},可以设置引用序号的前缀和后缀。也可以使用 \pkg*{cleveref} 宏包提供更强大的标签功能。
\command{AtEndPreamble}[\marg{钩子代码}]
导言区末尾的钩子命令。为了保证兼容性 \pkg*{hyperref} 宏包被设计在导言区末尾载入,一些情况下需要合适的钩子在 \pkg*{hyperref} 后方执行 \meta{钩子代码},例如载入 \pkg*{cleveref} 宏包。
\begin{ctexexam}
@@ -1182,7 +1195,7 @@
\command{caption}[\sarg\oarg{目录标题}\marg{标题}]\default{}
\command{captionof}[\sarg\marg{条目名}\oarg{目录标题}\marg{标题}]\default{}
\command{bicaption}[\sarg\oarg{目录中文标题}\marg{中文标题}\oarg{目录英文标题}\marg{英文标题}]
- 题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动体环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
+ 题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
\end{commands}
\subsection{化学式}
@@ -1237,13 +1250,17 @@
\subsection{索引}
\begin{commands}
\command*{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能,这是它的的接口命令,用于设置索引表的整体格式。
+ \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
\command*{index}[\oarg{索引名}\marg{标签}]
- 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引打印命令 \cs{printindex} 一致,可以存在多个索引表。
+ 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引输出命令 \cs{printindex} 一致,可以存在多个索引表。
\command*{makeindex}[\oarg{键值列表}]
使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。
- \command{printindex}[\sarg\oarg{键值列表}\darg{索引名}]
- 现在索引表生成命令 \cs{printindex} 被重新定义,\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。
+ \command{printindex}[\sarg\oarg{键值列表}]
+ 现在索引表生成命令 \cs{printindex} 被重新定义。\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。
+ \begin{options}
+ \keyval{name}{索引名}
+ 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
+ \end{options}
\end{commands}
\subsection{边注}
@@ -1301,6 +1318,7 @@
\item 增加英文主文档目录钩子选项 \option{bibetween}。
\end{version}
\shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
+ \shortversion{v = 1.643,date = 2022/03/08,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
\end{changelog}
\nocite{*}
diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx
index 54cc9221758..660f3e63751 100644
--- a/Master/texmf-dist/source/latex/easybook/easybook.dtx
+++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/03/08}{1.642}
+\ProvidesExplClass{easybook}{2022/03/08}{1.643}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -303,7 +303,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/03/08}{1.642}
+\ProvidesExplPackage{easybase}{2022/03/08}{1.643}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -447,18 +447,21 @@
}
}
-\eb_seq_map_inline:nn
+\seq_set_from_clist:Nn \l__eb_module_paths_seq
{
style,subfont,spread,
- refset,bibset,thmset,
- geoset,hdrset,tocset,list
+ bibset,thmset,tocset,
+ hdrset,refset,geoset,float
}
+\seq_map_inline:Nn \l__eb_module_paths_seq
{
\ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} }
\cs_new_protected:cpn { eb#1 } ##1 { \ctex_set:nn {#1} {##1} }
}
-\eb_seq_map_inline:nn
- { style,subfont,spread,bibset,thmset,hdrset,tocset }
+\bool_until_do:nn
+ { \int_compare_p:nNn { \seq_count:N \l__eb_module_paths_seq } < { 8 } }
+ { \seq_pop_right:NN \l__eb_module_paths_seq \l_tmpa_tl }
+\seq_map_inline:Nn \l__eb_module_paths_seq
{
\msg_new:nnn { easybase } { deprecated-#1 }
{
@@ -1196,193 +1199,6 @@
\cs_new:Npn \eb@footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
\cs_set:Npn \thempfootnote { \int_to_alph:n { \c@mpfootnote } }
-\contentsuse{lstlisting}{lol}
-\seq_put_left:Nn \c__ctex_headings_seq { chapter }
-\seq_put_right:Nn \c__ctex_headings_seq { figure }
-\seq_put_right:Nn \c__ctex_headings_seq { table }
-\seq_put_right:Nn \c__ctex_headings_seq { lstlisting }
-\seq_remove_duplicates:N \c__ctex_headings_seq
-\ctex_define:n { lstlisting/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { figure/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { table/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { list/#1 .meta:nn = { ctex/#1 } {##1} }
-\cs_new_protected:Npn \eb_toc_entry_if_hang:n #1
- {
- \bool_if:NTF \l__eb_toc_entry_hang_bool
- { \contentspush }
- { \use:n }
- {
- \bool_if:NTF \l__eb_toc_number_color_bool
- { \textcolor{ctex@toc@number} }
- { \use:n }
- { \thecontentslabel }
- \tl_use:c { l__eb_toc_#1_after_tl }
- }
- }
-\cs_new_protected:Npn \RegisterTocName #1
- {
- \ctex_define:n
- {
- #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
- #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
- #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
- #1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
- #1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
- }
- \titlecontents{#1}
- [\dim_use:c { l__eb_toc_#1_indent_dim }]
- {\tl_use:c { l__eb_toc_#1_format_tl }}
- {\eb_toc_entry_if_hang:n {#1}}{}
- {\tl_use:c { l__eb_toc_#1_rule_tl }}
- [\tl_use:c { l__eb_toc_#1_below_tl }]
- }
-\seq_map_function:NN
-\c__ctex_headings_seq \RegisterTocName
-\eb_seq_map_inline:nn
- { figure,table,lstlisting }
- {
- \ctex_define:n
- {
- #1/between .tl_set:c = l__eb_toc_#1_between_hook_tl,
- #1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2,
- }
- }
-\eb_seq_map_inline:nn
- {
- tocformat,tocformat+,tocformat~+,
- tocindent,tocrule,tocline,tocafter,between
- }
- {
- \ctex_define:n
- {
- list/#1 .meta:n =
- {
- figure/#1 = ##1,table/#1 = ##1,
- lstlisting/#1 = ##1
- }
- }
- }
-\eb_seq_map_inline:nn
- { tocafter,tocindent,tocrule }
- {
- \ctex_define:nn { tocset }
- {
- #1-every .code:n =
- {
- \ctex_set:n
- {
- part/#1 = ##1,chapter/#1 = ##1,
- section/#1 = ##1,subsection/#1 = ##1,
- list/#1 = ##1
- }
- }
- }
- }
-
-\ctex_define:nn { tocset }
- {
- lolskip .skip_set:N = \eb@toc@lol@skip,
- lolskip .initial:n = 10pt,
- between .tl_set:N = \l__eb_toc_main_between_hook_tl,
- between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
- bibetween .tl_set:N = \l__eb_toc_bimain_between_hook_tl,
- bibetween .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
- dotalign .bool_set:N = \l__eb_toc_dot_align_bool,
- dotalign .default:n = true,
- dotalign .initial:n = true,
- hang .bool_set:N = \l__eb_toc_entry_hang_bool,
- hang .default:n = true,
- hang .initial:n = true,
- pagenumwd .code:n = \contentsmargin{#1},
- pagenumwd .initial:n = 1.55em,
- unknown .code:n = \eb_msg_deprecated_option:n { tocset }
- }
-\NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}}
- {
- \normalsize\normalfont
- \titlerule*[#3]{\IfValueTF{#4}{\scalebox{#4}{#5}}{#5}}#6
- \bgroup
- \IfBooleanF{#2}
- {
- \IfBooleanTF{#1}
- {\thecontentspage}
- {
- \bool_if:NTF \l__eb_toc_dot_align_bool
- { \contentspage }
- { \thecontentspage }
- }
- }
- \egroup
- }
-\cs_new:Npn \p@numberline { \protect\numberline }
-\cs_new:Npn \listnumberline #1
- { \p@numberline{\use:c { #1name }~\use:c { the#1 }} }
-\ctex_set:n
- {
- part =
- {
- tocformat = \addvspace{1pc}\sffamily\large,
- tocindent = 0em,
- tocrule = \tocrule{}[\bfseries],
- tocline = \CTEXnumberline{#1}#2
- },
- chapter =
- {
- tocformat = \addvspace{1pc}\sffamily,
- tocindent = 0em,
- tocrule = \tocrule{$\cdot$}[\bfseries],
- tocline = \CTEXnumberline{#1}#2
- },
- section =
- {
- tocformat = \bool_if:NF \l__eb_class_mode_book_bool { \sffamily },
- tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em },
- tocrule =
- {
- \bool_if:NTF \l__eb_class_mode_book_bool
- { \tocrule{$\cdot$} }
- { \tocrule{$\cdot$}[\bfseries] }
- }
- },
- subsection =
- {
- tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em },
- tocrule = \tocrule{$\cdot$}
- },
- list =
- {
- tocindent = 0em,
- tocrule = \tocrule{$\cdot$},
- between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }
- },
- table/tocline = \listnumberline{table}#2,
- figure/tocline = \listnumberline{figure}#2,
- lstlisting/tocline = \listnumberline{lstlisting}#2,
- tocset/tocafter-every = \hspace{1em}
- }
-\prop_new:N \l__eb_list_label_entry_prop
-\prop_set_from_keyval:Nn \l__eb_list_label_entry_prop
- {
- figure = \eb@tocline@figure,
- table = \eb@tocline@table
- }
-\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
- {
- \addcontentsline{#1}{#2}
- {\prop_item:Nn \l__eb_list_label_entry_prop {#2}{#3}{#4}}
- }
-\ctex_patch_cmd:Nnn \lst@MakeCaption
- {
- \addcontentsline{lol}{lstlisting}
- {\protect\numberline{\thelstlisting}\lst@@caption}
- }
- {
- \addcontentsline{lol}{lstlisting}
- {\eb@tocline@lstlisting{\thelstlisting}{\lst@@caption}}
- }
-
\newcounter{bichapter}
\newcounter{bisection}[bichapter]
\newcounter{bisubsection}[bisection]
@@ -1394,14 +1210,13 @@
\use:c { p@#1 } { the#1 }
}
}
-\NewDocumentCommand{\counteruse}{soD(){arabic}mO{.}d()}
+\NewDocumentCommand{\counteruse}{sO{arabic}D(){.}mod()}
{
\IfBooleanF{#1}{\stepcounter{#4}}
- \IfValueT{#6}{\setcounter{#4}{#6}}
\tl_set:cn { theeb@#4 }
{
- \IfValueT{#2}{\use:c { the#2 }#5}
- \use:c {#3}{#4}
+ \IfValueT{#5}{\use:c { the#5 }#3}
+ \use:c {#2}{#4}
}
\tl_use:c { theeb@#4 }
\eb_current_label:n { eb@#4 }
@@ -1415,7 +1230,6 @@
\cs_set:Npn \thebisection { \eb_section_counter_prefix:n { bi } }
\cs_set:Npn \thebisubsection { \thebisection.\@arabic\c@bisubsection }
\cs_set:Npn \thesection { \eb_section_counter_prefix:n { } }
-
\contentsuse{}{tec}
\tl_new:N \eb@before@addbitoc@hook
\NewDocumentCommand{\BeforeAddBitoc}{sm}
@@ -1491,7 +1305,7 @@
}
\tl_new:N \eb@bitoc@title
-\keys_define:nn { eb/listoc }
+\keys_define:nn { eb/floattoc }
{
level .tl_set:N = \eb@toc@title@level,
level .initial:n =
@@ -1526,11 +1340,13 @@
plan .initial:n = cn,
columns .meta:n = { multoc = #1 },
title .code:n = \eb_assign_toc_title:n {#1},
- bilist .tl_gset:N = \g__eb_bilist_permute_value_tl
+ bilist .tl_gset:N = \g__eb_bilist_permute_value_tl,
+ name .tl_set:N = \l__eb_print_index_name_tl,
+ name .initial:n = \imki@jobname
}
\bool_if:NTF \l__eb_class_mode_book_bool
- { \keys_define:nn { } { eb/listoc .inherit:n = ctex/chapter } }
- { \keys_define:nn { } { eb/listoc .inherit:n = ctex/section } }
+ { \keys_define:nn { } { eb/floattoc .inherit:n = ctex/chapter } }
+ { \keys_define:nn { } { eb/floattoc .inherit:n = ctex/section } }
\NewDocumentCommand{\eb_assign_toc_title:n}
{>{\SplitArgument{1}{,}}m}
{\eb_assign_toc_title_judge:nn #1}
@@ -1541,13 +1357,7 @@
{ \tl_clear:N \eb@bitoc@title }
{ \tl_set:Nn \eb@bitoc@title {#2} }
}
-\cs_new_protected:Npn \eb_biber_toc_title:n #1
- {
- \bool_if:NTF \l__eb_class_mode_book_bool
- { \bichapter*{#1}{\eb@bib@bitoc@title} }
- { \bisection*{#1}{\eb@bib@bitoc@title} }
- \sectionmark{#1}
- }
+\prop_new:N \l__eb_toc_float_label_prop
\cs_new_protected:Npn \eb_toc_start_multi_column_ext:n #1
{
\int_compare:nNnTF { \l__eb_toc_columns_int } > { 1 }
@@ -1568,29 +1378,60 @@
\IfBooleanF{#1}
{\eb@toc@title@level{\eb@toc@title}{\eb@bitoc@title}}
}
-\cs_new_protected:Npn \eb_toc_list_parse:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \eb_toc_float_list_parse:nnnnn #1#2#3#4#5
{
\group_begin:
\tl_set_eq:Nc \eb@toc@title { list#4name }
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\eb_toc_title_level_cmd:n {#1}
\eb_toc_if_title_between_hook:nn {#1} {#4}
\eb_toc_start_multi_column_ext:n {#5}
\group_end:
}
-\cs_new_protected:Npn \eb_list_content_cmd_set:nn #1#2
+\cs_new:Npn \listnumberline #1
+ {
+ \protect\numberline
+ {
+ \exp_args:Nnv
+ \use:c { p@#1 } { the#1 }
+ }
+ }
+\cs_new_protected:Npn \DeclareFloatList #1#2
{
\exp_args:Nc \DeclareDocumentCommand { listof#1s }{st+o}
- {\eb_toc_list_parse:nnnnn {##1} {##2} {##3} {#1} {#2}}
+ {\eb_toc_float_list_parse:nnnnn {##1} {##2} {##3} {#1} {#2}}
+ \ctex_define:n
+ {
+ #1/##1 .meta:nn = { ctex/##1 } {####1},
+ #1/between .tl_set:c = l__eb_toc_#1_between_hook_tl,
+ #1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2,
+ #1/tocline .initial:n = \listnumberline{#1}##2
+ }
+ \prop_put_from_keyval:Nn \l__eb_toc_float_label_prop
+ { #1 = \use:c { eb@tocline@#1 } }
}
-\eb_seq_map_inline:nn
+\DeclareFloatList{table}{lot}
+\DeclareFloatList{figure}{lof}
+\DeclareFloatList{lstlisting}{lol}
+\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
{
- { figure } { lof },
- { table } { lot },
- { lstlisting } { lol }
+ \addcontentsline{#1}{#2}
+ {
+ \prop_if_in:NnTF \l__eb_toc_float_label_prop {#2}
+ { \prop_item:Nn \l__eb_toc_float_label_prop {#2} }
+ { \protect\numberline }
+ {#3}{#4}
+ }
+ }
+\ctex_patch_cmd:Nnn \lst@MakeCaption
+ {
+ \addcontentsline{lol}{lstlisting}
+ {\protect\numberline{\thelstlisting}\lst@@caption}
+ }
+ {
+ \addcontentsline{lol}{lstlisting}
+ {\eb@tocline@lstlisting{\thelstlisting}{\lst@@caption}}
}
- { \eb_list_content_cmd_set:nn #1 }
-\cs_set_eq:NN \listoflistings \listoflstlistings
\ctex_define:n
{
bicontentsname .tl_set:N = \bicontentsname,
@@ -1607,7 +1448,7 @@
{ \chapter* }
{ \section* }
}
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\bool_if:NT \l__eb_toc_plan_cn_bool
{
\IfBooleanF{#1}{\eb@toc@title@level{\eb@toc@title}{}}
@@ -1623,22 +1464,169 @@
\group_end:
}
+\contentsuse{lstlisting}{lol}
+\seq_put_left:Nn \c__ctex_headings_seq { chapter }
+\seq_put_right:Nn \c__ctex_headings_seq { table }
+\seq_put_right:Nn \c__ctex_headings_seq { figure }
+\seq_put_right:Nn \c__ctex_headings_seq { lstlisting }
+\seq_remove_duplicates:N \c__ctex_headings_seq
+\cs_new_protected:Npn \eb_toc_entry_if_hang:n #1
+ {
+ \bool_if:NTF \l__eb_toc_entry_hang_bool
+ { \contentspush }
+ { \use:n }
+ {
+ \bool_if:NTF \l__eb_toc_number_color_bool
+ { \textcolor{ctex@toc@number} }
+ { \use:n }
+ { \thecontentslabel }
+ \tl_use:c { l__eb_toc_#1_after_tl }
+ }
+ }
+\cs_new_protected:Npn \RegisterTocName #1
+ {
+ \ctex_define:n
+ {
+ #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
+ #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
+ #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
+ #1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
+ #1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
+ }
+ \titlecontents{#1}
+ [\dim_use:c { l__eb_toc_#1_indent_dim }]
+ {\tl_use:c { l__eb_toc_#1_format_tl }}
+ {\eb_toc_entry_if_hang:n {#1}}{}
+ {\tl_use:c { l__eb_toc_#1_rule_tl }}
+ [\tl_use:c { l__eb_toc_#1_below_tl }]
+ }
+\seq_map_function:NN
+\c__ctex_headings_seq \RegisterTocName
+\eb_seq_map_inline:nn
+ {
+ tocformat,tocformat+,tocformat~+,
+ tocindent,tocrule,tocline,tocafter,between
+ }
+ {
+ \ctex_define:n
+ {
+ float/#1 .meta:n =
+ {
+ figure/#1 = ##1,table/#1 = ##1,
+ lstlisting/#1 = ##1
+ }
+ }
+ }
+\eb_seq_map_inline:nn
+ { tocafter,tocindent,tocrule }
+ {
+ \ctex_define:nn { tocset }
+ {
+ #1-every .code:n =
+ {
+ \ctex_set:n
+ {
+ part/#1 = ##1,chapter/#1 = ##1,
+ section/#1 = ##1,subsection/#1 = ##1,
+ float/#1 = ##1
+ }
+ }
+ }
+ }
+\ctex_define:nn { tocset }
+ {
+ lolskip .skip_set:N = \eb@toc@lol@skip,
+ lolskip .initial:n = 10pt,
+ between .tl_set:N = \l__eb_toc_main_between_hook_tl,
+ between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
+ bibetween .tl_set:N = \l__eb_toc_bimain_between_hook_tl,
+ bibetween .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
+ dotalign .bool_set:N = \l__eb_toc_dot_align_bool,
+ dotalign .default:n = true,
+ dotalign .initial:n = true,
+ hang .bool_set:N = \l__eb_toc_entry_hang_bool,
+ hang .default:n = true,
+ hang .initial:n = true,
+ pagenumwd .code:n = \contentsmargin{#1},
+ pagenumwd .initial:n = 1.55em,
+ unknown .code:n = \eb_msg_deprecated_option:n { tocset }
+ }
+\NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}}
+ {
+ \normalsize\normalfont
+ \titlerule*[#3]{\IfValueTF{#4}{\scalebox{#4}{#5}}{#5}}#6
+ \bgroup
+ \IfBooleanF{#2}
+ {
+ \IfBooleanTF{#1}
+ {\thecontentspage}
+ {
+ \bool_if:NTF \l__eb_toc_dot_align_bool
+ { \contentspage }
+ { \thecontentspage }
+ }
+ }
+ \egroup
+ }
+\ctex_set:n
+ {
+ part =
+ {
+ tocformat = \addvspace{1pc}\sffamily\large,
+ tocindent = 0em,
+ tocrule = \tocrule{}[\bfseries],
+ tocline = \CTEXnumberline{#1}#2
+ },
+ chapter =
+ {
+ tocformat = \addvspace{1pc}\sffamily,
+ tocindent = 0em,
+ tocrule = \tocrule{$\cdot$}[\bfseries],
+ tocline = \CTEXnumberline{#1}#2
+ },
+ section =
+ {
+ tocformat = \bool_if:NF \l__eb_class_mode_book_bool { \sffamily },
+ tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em },
+ tocrule =
+ {
+ \bool_if:NTF \l__eb_class_mode_book_bool
+ { \tocrule{$\cdot$} }
+ { \tocrule{$\cdot$}[\bfseries] }
+ }
+ },
+ subsection =
+ {
+ tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em },
+ tocrule = \tocrule{$\cdot$}
+ },
+ float =
+ {
+ tocindent = 0em,
+ tocrule = \tocrule{$\cdot$},
+ between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }
+ },
+ tocset/tocafter-every = \hspace{1em}
+ }
+
\ctex_at_end_package:nn { imakeidx }
{
\makeindex
- \RenewDocumentCommand{\printindex}{st+oD(){\imki@jobname}}
+ \RenewDocumentCommand{\printindex}{st+od()}
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \indexname
\cs_set_eq:NN \imki@indexlevel \use_none:n
\setkeys{imkiindex}{noclearpage}
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\cs_set_protected:Npn \imki@indexheaders
{
\eb_toc_title_level_cmd:n {#1}
\cs_set_eq:NN \thispagestyle \use_none:n
}
- \imki@putindex{#4}
+ \imki@putindex{\l__eb_print_index_name_tl}
\group_end:
}
}
@@ -1690,9 +1678,9 @@
\ctex_define:nn { subfont }
{
- caption-table .tl_set:N = \l__eb_subfont_cap_table_tl,
- caption-figure .tl_set:N = \l__eb_subfont_cap_figure_tl,
- caption-listing .tl_set:N = \l__eb_subfont_cap_listing_tl,
+ caption-table .tl_set:N = \l__eb_subfont_caption_table_tl,
+ caption-figure .tl_set:N = \l__eb_subfont_caption_figure_tl,
+ caption-listing .tl_set:N = \l__eb_subfont_caption_listing_tl,
caption-every .meta:n =
{
caption-table = #1,caption-figure = #1,
@@ -1709,16 +1697,16 @@
\str_case:nnF {#1}
{
{ table }
- { \tl_put_right:Nn \l__eb_subfont_cap_table_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2} }
{ figure }
- { \tl_put_right:Nn \l__eb_subfont_cap_figure_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2} }
{ listing }
- { \tl_put_right:Nn \l__eb_subfont_cap_listing_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2} }
{ every }
{
- \tl_put_right:Nn \l__eb_subfont_cap_table_tl {#2}
- \tl_put_right:Nn \l__eb_subfont_cap_figure_tl {#2}
- \tl_put_right:Nn \l__eb_subfont_cap_listing_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2}
}
}
{ \tl_put_right:cn { l__eb_subfont_#1_tl } {#2} }
@@ -1738,9 +1726,9 @@
math .initial:n = 1.354,
footnote .fp_set:N = \l__eb_spread_footnote_fp,
footnote .initial:n = 1.2,
- caption-table .fp_set:N = \l__eb_spread_cap_table_fp,
- caption-figure .fp_set:N = \l__eb_spread_cap_figure_fp,
- caption-listing .fp_set:N = \l__eb_spread_cap_listing_fp,
+ caption-table .fp_set:N = \l__eb_spread_caption_table_fp,
+ caption-figure .fp_set:N = \l__eb_spread_caption_figure_fp,
+ caption-listing .fp_set:N = \l__eb_spread_caption_listing_fp,
caption-every .meta:n =
{
caption-table = #1,caption-figure = #1,
@@ -1761,8 +1749,8 @@
{
\DeclareCaptionFont{eb@#1@font}
{
- \setspread{\fp_use:c { l__eb_spread_cap_#1_fp }}
- \tl_use:c { l__eb_subfont_cap_#1_tl }
+ \setspread{\fp_use:c { l__eb_spread_caption_#1_fp }}
+ \tl_use:c { l__eb_subfont_caption_#1_tl }
}
}
\captionsetup
@@ -2043,7 +2031,7 @@
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \bibname
- \IfValueT{##3}{ \keys_set:nn { eb/listoc } {##3} }
+ \IfValueT{##3}{ \keys_set:nn { eb/floattoc } {##3} }
\cs_set_protected:Npn \bibsection
{
\eb_toc_title_level_cmd:n {##1}
@@ -2059,6 +2047,13 @@
}
\cs_new_protected:Npn \eb_put_biblatex:n #1
{ \PassOptionsToPackage{#1}{biblatex} }
+\cs_new_protected:Npn \eb_biber_toc_title:n #1
+ {
+ \bool_if:NTF \l__eb_class_mode_book_bool
+ { \bichapter*{#1}{\eb@bib@bitoc@title} }
+ { \bisection*{#1}{\eb@bib@bitoc@title} }
+ \sectionmark{#1}
+ }
\cs_new_protected:Npn \eb_biber_biblatex_set:
{
\str_case:VnF \l__eb_bib_both_style_tl
@@ -2317,7 +2312,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/08}{1.642}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/08}{1.643}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/Master/texmf-dist/tex/latex/easybook/easybase.sty b/Master/texmf-dist/tex/latex/easybook/easybase.sty
index 9c405313159..a272e34af37 100644
--- a/Master/texmf-dist/tex/latex/easybook/easybase.sty
+++ b/Master/texmf-dist/tex/latex/easybook/easybase.sty
@@ -20,7 +20,7 @@
%% This work has the LPPL maintenance status `maintained'.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/03/08}{1.642}
+\ProvidesExplPackage{easybase}{2022/03/08}{1.643}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -164,18 +164,21 @@
}
}
-\eb_seq_map_inline:nn
+\seq_set_from_clist:Nn \l__eb_module_paths_seq
{
style,subfont,spread,
- refset,bibset,thmset,
- geoset,hdrset,tocset,list
+ bibset,thmset,tocset,
+ hdrset,refset,geoset,float
}
+\seq_map_inline:Nn \l__eb_module_paths_seq
{
\ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} }
\cs_new_protected:cpn { eb#1 } ##1 { \ctex_set:nn {#1} {##1} }
}
-\eb_seq_map_inline:nn
- { style,subfont,spread,bibset,thmset,hdrset,tocset }
+\bool_until_do:nn
+ { \int_compare_p:nNn { \seq_count:N \l__eb_module_paths_seq } < { 8 } }
+ { \seq_pop_right:NN \l__eb_module_paths_seq \l_tmpa_tl }
+\seq_map_inline:Nn \l__eb_module_paths_seq
{
\msg_new:nnn { easybase } { deprecated-#1 }
{
@@ -913,193 +916,6 @@
\cs_new:Npn \eb@footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
\cs_set:Npn \thempfootnote { \int_to_alph:n { \c@mpfootnote } }
-\contentsuse{lstlisting}{lol}
-\seq_put_left:Nn \c__ctex_headings_seq { chapter }
-\seq_put_right:Nn \c__ctex_headings_seq { figure }
-\seq_put_right:Nn \c__ctex_headings_seq { table }
-\seq_put_right:Nn \c__ctex_headings_seq { lstlisting }
-\seq_remove_duplicates:N \c__ctex_headings_seq
-\ctex_define:n { lstlisting/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { figure/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { table/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { list/#1 .meta:nn = { ctex/#1 } {##1} }
-\cs_new_protected:Npn \eb_toc_entry_if_hang:n #1
- {
- \bool_if:NTF \l__eb_toc_entry_hang_bool
- { \contentspush }
- { \use:n }
- {
- \bool_if:NTF \l__eb_toc_number_color_bool
- { \textcolor{ctex@toc@number} }
- { \use:n }
- { \thecontentslabel }
- \tl_use:c { l__eb_toc_#1_after_tl }
- }
- }
-\cs_new_protected:Npn \RegisterTocName #1
- {
- \ctex_define:n
- {
- #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
- #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
- #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
- #1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
- #1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
- }
- \titlecontents{#1}
- [\dim_use:c { l__eb_toc_#1_indent_dim }]
- {\tl_use:c { l__eb_toc_#1_format_tl }}
- {\eb_toc_entry_if_hang:n {#1}}{}
- {\tl_use:c { l__eb_toc_#1_rule_tl }}
- [\tl_use:c { l__eb_toc_#1_below_tl }]
- }
-\seq_map_function:NN
-\c__ctex_headings_seq \RegisterTocName
-\eb_seq_map_inline:nn
- { figure,table,lstlisting }
- {
- \ctex_define:n
- {
- #1/between .tl_set:c = l__eb_toc_#1_between_hook_tl,
- #1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2,
- }
- }
-\eb_seq_map_inline:nn
- {
- tocformat,tocformat+,tocformat~+,
- tocindent,tocrule,tocline,tocafter,between
- }
- {
- \ctex_define:n
- {
- list/#1 .meta:n =
- {
- figure/#1 = ##1,table/#1 = ##1,
- lstlisting/#1 = ##1
- }
- }
- }
-\eb_seq_map_inline:nn
- { tocafter,tocindent,tocrule }
- {
- \ctex_define:nn { tocset }
- {
- #1-every .code:n =
- {
- \ctex_set:n
- {
- part/#1 = ##1,chapter/#1 = ##1,
- section/#1 = ##1,subsection/#1 = ##1,
- list/#1 = ##1
- }
- }
- }
- }
-
-\ctex_define:nn { tocset }
- {
- lolskip .skip_set:N = \eb@toc@lol@skip,
- lolskip .initial:n = 10pt,
- between .tl_set:N = \l__eb_toc_main_between_hook_tl,
- between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
- bibetween .tl_set:N = \l__eb_toc_bimain_between_hook_tl,
- bibetween .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
- dotalign .bool_set:N = \l__eb_toc_dot_align_bool,
- dotalign .default:n = true,
- dotalign .initial:n = true,
- hang .bool_set:N = \l__eb_toc_entry_hang_bool,
- hang .default:n = true,
- hang .initial:n = true,
- pagenumwd .code:n = \contentsmargin{#1},
- pagenumwd .initial:n = 1.55em,
- unknown .code:n = \eb_msg_deprecated_option:n { tocset }
- }
-\NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}}
- {
- \normalsize\normalfont
- \titlerule*[#3]{\IfValueTF{#4}{\scalebox{#4}{#5}}{#5}}#6
- \bgroup
- \IfBooleanF{#2}
- {
- \IfBooleanTF{#1}
- {\thecontentspage}
- {
- \bool_if:NTF \l__eb_toc_dot_align_bool
- { \contentspage }
- { \thecontentspage }
- }
- }
- \egroup
- }
-\cs_new:Npn \p@numberline { \protect\numberline }
-\cs_new:Npn \listnumberline #1
- { \p@numberline{\use:c { #1name }~\use:c { the#1 }} }
-\ctex_set:n
- {
- part =
- {
- tocformat = \addvspace{1pc}\sffamily\large,
- tocindent = 0em,
- tocrule = \tocrule{}[\bfseries],
- tocline = \CTEXnumberline{#1}#2
- },
- chapter =
- {
- tocformat = \addvspace{1pc}\sffamily,
- tocindent = 0em,
- tocrule = \tocrule{$\cdot$}[\bfseries],
- tocline = \CTEXnumberline{#1}#2
- },
- section =
- {
- tocformat = \bool_if:NF \l__eb_class_mode_book_bool { \sffamily },
- tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em },
- tocrule =
- {
- \bool_if:NTF \l__eb_class_mode_book_bool
- { \tocrule{$\cdot$} }
- { \tocrule{$\cdot$}[\bfseries] }
- }
- },
- subsection =
- {
- tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em },
- tocrule = \tocrule{$\cdot$}
- },
- list =
- {
- tocindent = 0em,
- tocrule = \tocrule{$\cdot$},
- between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }
- },
- table/tocline = \listnumberline{table}#2,
- figure/tocline = \listnumberline{figure}#2,
- lstlisting/tocline = \listnumberline{lstlisting}#2,
- tocset/tocafter-every = \hspace{1em}
- }
-\prop_new:N \l__eb_list_label_entry_prop
-\prop_set_from_keyval:Nn \l__eb_list_label_entry_prop
- {
- figure = \eb@tocline@figure,
- table = \eb@tocline@table
- }
-\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
- {
- \addcontentsline{#1}{#2}
- {\prop_item:Nn \l__eb_list_label_entry_prop {#2}{#3}{#4}}
- }
-\ctex_patch_cmd:Nnn \lst@MakeCaption
- {
- \addcontentsline{lol}{lstlisting}
- {\protect\numberline{\thelstlisting}\lst@@caption}
- }
- {
- \addcontentsline{lol}{lstlisting}
- {\eb@tocline@lstlisting{\thelstlisting}{\lst@@caption}}
- }
-
\newcounter{bichapter}
\newcounter{bisection}[bichapter]
\newcounter{bisubsection}[bisection]
@@ -1111,14 +927,13 @@
\use:c { p@#1 } { the#1 }
}
}
-\NewDocumentCommand{\counteruse}{soD(){arabic}mO{.}d()}
+\NewDocumentCommand{\counteruse}{sO{arabic}D(){.}mod()}
{
\IfBooleanF{#1}{\stepcounter{#4}}
- \IfValueT{#6}{\setcounter{#4}{#6}}
\tl_set:cn { theeb@#4 }
{
- \IfValueT{#2}{\use:c { the#2 }#5}
- \use:c {#3}{#4}
+ \IfValueT{#5}{\use:c { the#5 }#3}
+ \use:c {#2}{#4}
}
\tl_use:c { theeb@#4 }
\eb_current_label:n { eb@#4 }
@@ -1132,7 +947,6 @@
\cs_set:Npn \thebisection { \eb_section_counter_prefix:n { bi } }
\cs_set:Npn \thebisubsection { \thebisection.\@arabic\c@bisubsection }
\cs_set:Npn \thesection { \eb_section_counter_prefix:n { } }
-
\contentsuse{}{tec}
\tl_new:N \eb@before@addbitoc@hook
\NewDocumentCommand{\BeforeAddBitoc}{sm}
@@ -1208,7 +1022,7 @@
}
\tl_new:N \eb@bitoc@title
-\keys_define:nn { eb/listoc }
+\keys_define:nn { eb/floattoc }
{
level .tl_set:N = \eb@toc@title@level,
level .initial:n =
@@ -1243,11 +1057,13 @@
plan .initial:n = cn,
columns .meta:n = { multoc = #1 },
title .code:n = \eb_assign_toc_title:n {#1},
- bilist .tl_gset:N = \g__eb_bilist_permute_value_tl
+ bilist .tl_gset:N = \g__eb_bilist_permute_value_tl,
+ name .tl_set:N = \l__eb_print_index_name_tl,
+ name .initial:n = \imki@jobname
}
\bool_if:NTF \l__eb_class_mode_book_bool
- { \keys_define:nn { } { eb/listoc .inherit:n = ctex/chapter } }
- { \keys_define:nn { } { eb/listoc .inherit:n = ctex/section } }
+ { \keys_define:nn { } { eb/floattoc .inherit:n = ctex/chapter } }
+ { \keys_define:nn { } { eb/floattoc .inherit:n = ctex/section } }
\NewDocumentCommand{\eb_assign_toc_title:n}
{>{\SplitArgument{1}{,}}m}
{\eb_assign_toc_title_judge:nn #1}
@@ -1258,13 +1074,7 @@
{ \tl_clear:N \eb@bitoc@title }
{ \tl_set:Nn \eb@bitoc@title {#2} }
}
-\cs_new_protected:Npn \eb_biber_toc_title:n #1
- {
- \bool_if:NTF \l__eb_class_mode_book_bool
- { \bichapter*{#1}{\eb@bib@bitoc@title} }
- { \bisection*{#1}{\eb@bib@bitoc@title} }
- \sectionmark{#1}
- }
+\prop_new:N \l__eb_toc_float_label_prop
\cs_new_protected:Npn \eb_toc_start_multi_column_ext:n #1
{
\int_compare:nNnTF { \l__eb_toc_columns_int } > { 1 }
@@ -1285,29 +1095,60 @@
\IfBooleanF{#1}
{\eb@toc@title@level{\eb@toc@title}{\eb@bitoc@title}}
}
-\cs_new_protected:Npn \eb_toc_list_parse:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \eb_toc_float_list_parse:nnnnn #1#2#3#4#5
{
\group_begin:
\tl_set_eq:Nc \eb@toc@title { list#4name }
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\eb_toc_title_level_cmd:n {#1}
\eb_toc_if_title_between_hook:nn {#1} {#4}
\eb_toc_start_multi_column_ext:n {#5}
\group_end:
}
-\cs_new_protected:Npn \eb_list_content_cmd_set:nn #1#2
+\cs_new:Npn \listnumberline #1
+ {
+ \protect\numberline
+ {
+ \exp_args:Nnv
+ \use:c { p@#1 } { the#1 }
+ }
+ }
+\cs_new_protected:Npn \DeclareFloatList #1#2
{
\exp_args:Nc \DeclareDocumentCommand { listof#1s }{st+o}
- {\eb_toc_list_parse:nnnnn {##1} {##2} {##3} {#1} {#2}}
+ {\eb_toc_float_list_parse:nnnnn {##1} {##2} {##3} {#1} {#2}}
+ \ctex_define:n
+ {
+ #1/##1 .meta:nn = { ctex/##1 } {####1},
+ #1/between .tl_set:c = l__eb_toc_#1_between_hook_tl,
+ #1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2,
+ #1/tocline .initial:n = \listnumberline{#1}##2
+ }
+ \prop_put_from_keyval:Nn \l__eb_toc_float_label_prop
+ { #1 = \use:c { eb@tocline@#1 } }
}
-\eb_seq_map_inline:nn
+\DeclareFloatList{table}{lot}
+\DeclareFloatList{figure}{lof}
+\DeclareFloatList{lstlisting}{lol}
+\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
{
- { figure } { lof },
- { table } { lot },
- { lstlisting } { lol }
+ \addcontentsline{#1}{#2}
+ {
+ \prop_if_in:NnTF \l__eb_toc_float_label_prop {#2}
+ { \prop_item:Nn \l__eb_toc_float_label_prop {#2} }
+ { \protect\numberline }
+ {#3}{#4}
+ }
+ }
+\ctex_patch_cmd:Nnn \lst@MakeCaption
+ {
+ \addcontentsline{lol}{lstlisting}
+ {\protect\numberline{\thelstlisting}\lst@@caption}
+ }
+ {
+ \addcontentsline{lol}{lstlisting}
+ {\eb@tocline@lstlisting{\thelstlisting}{\lst@@caption}}
}
- { \eb_list_content_cmd_set:nn #1 }
-\cs_set_eq:NN \listoflistings \listoflstlistings
\ctex_define:n
{
bicontentsname .tl_set:N = \bicontentsname,
@@ -1324,7 +1165,7 @@
{ \chapter* }
{ \section* }
}
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\bool_if:NT \l__eb_toc_plan_cn_bool
{
\IfBooleanF{#1}{\eb@toc@title@level{\eb@toc@title}{}}
@@ -1340,22 +1181,169 @@
\group_end:
}
+\contentsuse{lstlisting}{lol}
+\seq_put_left:Nn \c__ctex_headings_seq { chapter }
+\seq_put_right:Nn \c__ctex_headings_seq { table }
+\seq_put_right:Nn \c__ctex_headings_seq { figure }
+\seq_put_right:Nn \c__ctex_headings_seq { lstlisting }
+\seq_remove_duplicates:N \c__ctex_headings_seq
+\cs_new_protected:Npn \eb_toc_entry_if_hang:n #1
+ {
+ \bool_if:NTF \l__eb_toc_entry_hang_bool
+ { \contentspush }
+ { \use:n }
+ {
+ \bool_if:NTF \l__eb_toc_number_color_bool
+ { \textcolor{ctex@toc@number} }
+ { \use:n }
+ { \thecontentslabel }
+ \tl_use:c { l__eb_toc_#1_after_tl }
+ }
+ }
+\cs_new_protected:Npn \RegisterTocName #1
+ {
+ \ctex_define:n
+ {
+ #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
+ #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
+ #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
+ #1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
+ #1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
+ }
+ \titlecontents{#1}
+ [\dim_use:c { l__eb_toc_#1_indent_dim }]
+ {\tl_use:c { l__eb_toc_#1_format_tl }}
+ {\eb_toc_entry_if_hang:n {#1}}{}
+ {\tl_use:c { l__eb_toc_#1_rule_tl }}
+ [\tl_use:c { l__eb_toc_#1_below_tl }]
+ }
+\seq_map_function:NN
+\c__ctex_headings_seq \RegisterTocName
+\eb_seq_map_inline:nn
+ {
+ tocformat,tocformat+,tocformat~+,
+ tocindent,tocrule,tocline,tocafter,between
+ }
+ {
+ \ctex_define:n
+ {
+ float/#1 .meta:n =
+ {
+ figure/#1 = ##1,table/#1 = ##1,
+ lstlisting/#1 = ##1
+ }
+ }
+ }
+\eb_seq_map_inline:nn
+ { tocafter,tocindent,tocrule }
+ {
+ \ctex_define:nn { tocset }
+ {
+ #1-every .code:n =
+ {
+ \ctex_set:n
+ {
+ part/#1 = ##1,chapter/#1 = ##1,
+ section/#1 = ##1,subsection/#1 = ##1,
+ float/#1 = ##1
+ }
+ }
+ }
+ }
+\ctex_define:nn { tocset }
+ {
+ lolskip .skip_set:N = \eb@toc@lol@skip,
+ lolskip .initial:n = 10pt,
+ between .tl_set:N = \l__eb_toc_main_between_hook_tl,
+ between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
+ bibetween .tl_set:N = \l__eb_toc_bimain_between_hook_tl,
+ bibetween .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
+ dotalign .bool_set:N = \l__eb_toc_dot_align_bool,
+ dotalign .default:n = true,
+ dotalign .initial:n = true,
+ hang .bool_set:N = \l__eb_toc_entry_hang_bool,
+ hang .default:n = true,
+ hang .initial:n = true,
+ pagenumwd .code:n = \contentsmargin{#1},
+ pagenumwd .initial:n = 1.55em,
+ unknown .code:n = \eb_msg_deprecated_option:n { tocset }
+ }
+\NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}}
+ {
+ \normalsize\normalfont
+ \titlerule*[#3]{\IfValueTF{#4}{\scalebox{#4}{#5}}{#5}}#6
+ \bgroup
+ \IfBooleanF{#2}
+ {
+ \IfBooleanTF{#1}
+ {\thecontentspage}
+ {
+ \bool_if:NTF \l__eb_toc_dot_align_bool
+ { \contentspage }
+ { \thecontentspage }
+ }
+ }
+ \egroup
+ }
+\ctex_set:n
+ {
+ part =
+ {
+ tocformat = \addvspace{1pc}\sffamily\large,
+ tocindent = 0em,
+ tocrule = \tocrule{}[\bfseries],
+ tocline = \CTEXnumberline{#1}#2
+ },
+ chapter =
+ {
+ tocformat = \addvspace{1pc}\sffamily,
+ tocindent = 0em,
+ tocrule = \tocrule{$\cdot$}[\bfseries],
+ tocline = \CTEXnumberline{#1}#2
+ },
+ section =
+ {
+ tocformat = \bool_if:NF \l__eb_class_mode_book_bool { \sffamily },
+ tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em },
+ tocrule =
+ {
+ \bool_if:NTF \l__eb_class_mode_book_bool
+ { \tocrule{$\cdot$} }
+ { \tocrule{$\cdot$}[\bfseries] }
+ }
+ },
+ subsection =
+ {
+ tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em },
+ tocrule = \tocrule{$\cdot$}
+ },
+ float =
+ {
+ tocindent = 0em,
+ tocrule = \tocrule{$\cdot$},
+ between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }
+ },
+ tocset/tocafter-every = \hspace{1em}
+ }
+
\ctex_at_end_package:nn { imakeidx }
{
\makeindex
- \RenewDocumentCommand{\printindex}{st+oD(){\imki@jobname}}
+ \RenewDocumentCommand{\printindex}{st+od()}
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \indexname
\cs_set_eq:NN \imki@indexlevel \use_none:n
\setkeys{imkiindex}{noclearpage}
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\cs_set_protected:Npn \imki@indexheaders
{
\eb_toc_title_level_cmd:n {#1}
\cs_set_eq:NN \thispagestyle \use_none:n
}
- \imki@putindex{#4}
+ \imki@putindex{\l__eb_print_index_name_tl}
\group_end:
}
}
@@ -1407,9 +1395,9 @@
\ctex_define:nn { subfont }
{
- caption-table .tl_set:N = \l__eb_subfont_cap_table_tl,
- caption-figure .tl_set:N = \l__eb_subfont_cap_figure_tl,
- caption-listing .tl_set:N = \l__eb_subfont_cap_listing_tl,
+ caption-table .tl_set:N = \l__eb_subfont_caption_table_tl,
+ caption-figure .tl_set:N = \l__eb_subfont_caption_figure_tl,
+ caption-listing .tl_set:N = \l__eb_subfont_caption_listing_tl,
caption-every .meta:n =
{
caption-table = #1,caption-figure = #1,
@@ -1426,16 +1414,16 @@
\str_case:nnF {#1}
{
{ table }
- { \tl_put_right:Nn \l__eb_subfont_cap_table_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2} }
{ figure }
- { \tl_put_right:Nn \l__eb_subfont_cap_figure_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2} }
{ listing }
- { \tl_put_right:Nn \l__eb_subfont_cap_listing_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2} }
{ every }
{
- \tl_put_right:Nn \l__eb_subfont_cap_table_tl {#2}
- \tl_put_right:Nn \l__eb_subfont_cap_figure_tl {#2}
- \tl_put_right:Nn \l__eb_subfont_cap_listing_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2}
}
}
{ \tl_put_right:cn { l__eb_subfont_#1_tl } {#2} }
@@ -1455,9 +1443,9 @@
math .initial:n = 1.354,
footnote .fp_set:N = \l__eb_spread_footnote_fp,
footnote .initial:n = 1.2,
- caption-table .fp_set:N = \l__eb_spread_cap_table_fp,
- caption-figure .fp_set:N = \l__eb_spread_cap_figure_fp,
- caption-listing .fp_set:N = \l__eb_spread_cap_listing_fp,
+ caption-table .fp_set:N = \l__eb_spread_caption_table_fp,
+ caption-figure .fp_set:N = \l__eb_spread_caption_figure_fp,
+ caption-listing .fp_set:N = \l__eb_spread_caption_listing_fp,
caption-every .meta:n =
{
caption-table = #1,caption-figure = #1,
@@ -1478,8 +1466,8 @@
{
\DeclareCaptionFont{eb@#1@font}
{
- \setspread{\fp_use:c { l__eb_spread_cap_#1_fp }}
- \tl_use:c { l__eb_subfont_cap_#1_tl }
+ \setspread{\fp_use:c { l__eb_spread_caption_#1_fp }}
+ \tl_use:c { l__eb_subfont_caption_#1_tl }
}
}
\captionsetup
@@ -1760,7 +1748,7 @@
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \bibname
- \IfValueT{##3}{ \keys_set:nn { eb/listoc } {##3} }
+ \IfValueT{##3}{ \keys_set:nn { eb/floattoc } {##3} }
\cs_set_protected:Npn \bibsection
{
\eb_toc_title_level_cmd:n {##1}
@@ -1776,6 +1764,13 @@
}
\cs_new_protected:Npn \eb_put_biblatex:n #1
{ \PassOptionsToPackage{#1}{biblatex} }
+\cs_new_protected:Npn \eb_biber_toc_title:n #1
+ {
+ \bool_if:NTF \l__eb_class_mode_book_bool
+ { \bichapter*{#1}{\eb@bib@bitoc@title} }
+ { \bisection*{#1}{\eb@bib@bitoc@title} }
+ \sectionmark{#1}
+ }
\cs_new_protected:Npn \eb_biber_biblatex_set:
{
\str_case:VnF \l__eb_bib_both_style_tl
diff --git a/Master/texmf-dist/tex/latex/easybook/easybook.cls b/Master/texmf-dist/tex/latex/easybook/easybook.cls
index ec137f0e3af..9bf606d8cb4 100644
--- a/Master/texmf-dist/tex/latex/easybook/easybook.cls
+++ b/Master/texmf-dist/tex/latex/easybook/easybook.cls
@@ -20,7 +20,7 @@
%% This work has the LPPL maintenance status `maintained'.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/03/08}{1.642}
+\ProvidesExplClass{easybook}{2022/03/08}{1.643}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
diff --git a/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg b/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
index 668d515e9fc..a73ee95339f 100644
--- a/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
+++ b/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
@@ -18,7 +18,7 @@
%% LaTeX version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/08}{1.642}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/08}{1.643}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2