texlive[62556] branches/branch2021.final/Master/texmf-dist: easybook

commits+karl at tug.org commits+karl at tug.org
Wed Mar 9 22:12:33 CET 2022


Revision: 62556
          http://tug.org/svn/texlive?view=revision&revision=62556
Author:   karl
Date:     2022-03-09 22:12:33 +0100 (Wed, 09 Mar 2022)
Log Message:
-----------
easybook (9mar22) (branch)

Modified Paths:
--------------
    branches/branch2021.final/Master/texmf-dist/doc/latex/easybook/easybook.pdf
    branches/branch2021.final/Master/texmf-dist/doc/latex/easybook/easybook.tex
    branches/branch2021.final/Master/texmf-dist/source/latex/easybook/easybook.dtx
    branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybase.sty
    branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybook.cls
    branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/easybook/easybook.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/easybook/easybook.tex
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/easybook/easybook.tex	2022-03-09 21:12:24 UTC (rev 62555)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/easybook/easybook.tex	2022-03-09 21:12:33 UTC (rev 62556)
@@ -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 at 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{*}
 

Modified: branches/branch2021.final/Master/texmf-dist/source/latex/easybook/easybook.dtx
===================================================================
--- branches/branch2021.final/Master/texmf-dist/source/latex/easybook/easybook.dtx	2022-03-09 21:12:24 UTC (rev 62555)
+++ branches/branch2021.final/Master/texmf-dist/source/latex/easybook/easybook.dtx	2022-03-09 21:12:33 UTC (rev 62556)
@@ -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 at footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
 \cs_set:Npn \thempfootnote { \int_to_alph:n { \c at 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 at 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 at 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 at toc@lol at 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 at numberline { \protect\numberline }
-\cs_new:Npn \listnumberline #1
-  { \p at 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 at tocline@figure,
-    table   = \eb at 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 at MakeCaption
-  {
-    \addcontentsline{lol}{lstlisting}
-      {\protect\numberline{\thelstlisting}\lst@@caption}
-  }
-  {
-    \addcontentsline{lol}{lstlisting}
-      {\eb at 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 at bisubsection }
 \cs_set:Npn \thesection { \eb_section_counter_prefix:n { } }
-
 \contentsuse{}{tec}
 \tl_new:N \eb at before@addbitoc at hook
 \NewDocumentCommand{\BeforeAddBitoc}{sm}
@@ -1491,7 +1305,7 @@
   }
 
 \tl_new:N \eb at bitoc@title
-\keys_define:nn { eb/listoc }
+\keys_define:nn { eb/floattoc }
   {
     level .tl_set:N   = \eb at toc@title at 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 at 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 at bitoc@title }
       { \tl_set:Nn \eb at 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 at bib@bitoc at title} }
-      { \bisection*{#1}{\eb at bib@bitoc at 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 at toc@title at level{\eb at toc@title}{\eb at 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 at 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 at 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 at 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}
+      }
   }
-  { \eb_list_content_cmd_set:nn #1 }
-\cs_set_eq:NN \listoflistings \listoflstlistings
+\ctex_patch_cmd:Nnn \lst at MakeCaption
+  {
+    \addcontentsline{lol}{lstlisting}
+      {\protect\numberline{\thelstlisting}\lst@@caption}
+  }
+  {
+    \addcontentsline{lol}{lstlisting}
+      {\eb at tocline@lstlisting{\thelstlisting}{\lst@@caption}}
+  }
 \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 at toc@title at level{\eb at 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 at 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 at toc@lol at 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 at jobname}}
+    \RenewDocumentCommand{\printindex}{st+od()}
       {
         \group_begin:
         \tl_set_eq:NN \eb at toc@title \indexname
         \cs_set_eq:NN \imki at 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 at indexheaders
           {
             \eb_toc_title_level_cmd:n {#1}
             \cs_set_eq:NN \thispagestyle \use_none:n
           }
-        \imki at putindex{#4}
+        \imki at 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 at 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 at 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 at bib@bitoc at title} }
+      { \bisection*{#1}{\eb at bib@bitoc at 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

Modified: branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybase.sty
===================================================================
--- branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybase.sty	2022-03-09 21:12:24 UTC (rev 62555)
+++ branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybase.sty	2022-03-09 21:12:33 UTC (rev 62556)
@@ -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 at footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
 \cs_set:Npn \thempfootnote { \int_to_alph:n { \c at 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 at 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 at 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 at toc@lol at 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 at numberline { \protect\numberline }
-\cs_new:Npn \listnumberline #1
-  { \p at 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 at tocline@figure,
-    table   = \eb at 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 at MakeCaption
-  {
-    \addcontentsline{lol}{lstlisting}
-      {\protect\numberline{\thelstlisting}\lst@@caption}
-  }
-  {
-    \addcontentsline{lol}{lstlisting}
-      {\eb at 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 at bisubsection }
 \cs_set:Npn \thesection { \eb_section_counter_prefix:n { } }
-
 \contentsuse{}{tec}
 \tl_new:N \eb at before@addbitoc at hook
 \NewDocumentCommand{\BeforeAddBitoc}{sm}
@@ -1208,7 +1022,7 @@
   }
 
 \tl_new:N \eb at bitoc@title
-\keys_define:nn { eb/listoc }
+\keys_define:nn { eb/floattoc }
   {
     level .tl_set:N   = \eb at toc@title at 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 at 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 at bitoc@title }
       { \tl_set:Nn \eb at 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 at bib@bitoc at title} }
-      { \bisection*{#1}{\eb at bib@bitoc at 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 at toc@title at level{\eb at toc@title}{\eb at 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 at 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 at 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 at 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}
+      }
   }
-  { \eb_list_content_cmd_set:nn #1 }
-\cs_set_eq:NN \listoflistings \listoflstlistings
+\ctex_patch_cmd:Nnn \lst at MakeCaption
+  {
+    \addcontentsline{lol}{lstlisting}
+      {\protect\numberline{\thelstlisting}\lst@@caption}
+  }
+  {
+    \addcontentsline{lol}{lstlisting}
+      {\eb at tocline@lstlisting{\thelstlisting}{\lst@@caption}}
+  }
 \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 at toc@title at level{\eb at 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 at 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 at toc@lol at 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 at jobname}}
+    \RenewDocumentCommand{\printindex}{st+od()}
       {
         \group_begin:
         \tl_set_eq:NN \eb at toc@title \indexname
         \cs_set_eq:NN \imki at 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 at indexheaders
           {
             \eb_toc_title_level_cmd:n {#1}
             \cs_set_eq:NN \thispagestyle \use_none:n
           }
-        \imki at putindex{#4}
+        \imki at 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 at 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 at 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 at bib@bitoc at title} }
+      { \bisection*{#1}{\eb at bib@bitoc at title} }
+    \sectionmark{#1}
+  }
 \cs_new_protected:Npn \eb_biber_biblatex_set:
   {
     \str_case:VnF \l__eb_bib_both_style_tl

Modified: branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybook.cls
===================================================================
--- branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybook.cls	2022-03-09 21:12:24 UTC (rev 62555)
+++ branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/easybook.cls	2022-03-09 21:12:33 UTC (rev 62556)
@@ -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

Modified: branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
===================================================================
--- branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg	2022-03-09 21:12:24 UTC (rev 62555)
+++ branches/branch2021.final/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg	2022-03-09 21:12:33 UTC (rev 62556)
@@ -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



More information about the tex-live-commits mailing list.