texlive[59102] Master/texmf-dist: easybook (6may21)

commits+karl at tug.org commits+karl at tug.org
Thu May 6 22:23:02 CEST 2021


Revision: 59102
          http://tug.org/svn/texlive?view=revision&revision=59102
Author:   karl
Date:     2021-05-06 22:23:02 +0200 (Thu, 06 May 2021)
Log Message:
-----------
easybook (6may21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/easybook/easybook.pdf
    trunk/Master/texmf-dist/source/latex/easybook/easybook.dtx
    trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls

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

Modified: trunk/Master/texmf-dist/source/latex/easybook/easybook.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/easybook/easybook.dtx	2021-05-06 20:22:49 UTC (rev 59101)
+++ trunk/Master/texmf-dist/source/latex/easybook/easybook.dtx	2021-05-06 20:23:02 UTC (rev 59102)
@@ -24,11 +24,11 @@
 % \changes{v1.20}{2021/01/09}{修改和完善用户文档。}
 % \changes{v1.20}{2021/01/09}{模板更改为使用 CC-BY 许可协议。}
 % \changes{v1.23}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
-% \changes{v1.25a}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
+% \changes{v1.25c}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
 %
 % \title{\sffamily easybook 文档类手册}
 % \author{瞿毅}
-% \date{2021/05/04\hskip\ccwd\relax v1.25a\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/05/06\hskip\ccwd\relax v1.25c\thanks{\url{https://gitee.com/texl3/easybook}}}
 %
 % \maketitle
 % \begin{abstract}
@@ -118,7 +118,7 @@
 % \end{syntax}
 % 传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{subsec:font settings},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
 % \changes{v1.21}{2021/01/12}{默认字体与 \CTeX 一致,不再是自定义字体。}
-% \changes{v1.25a}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
+% \changes{v1.25c}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
 % \end{function}
 %
 % \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
@@ -145,8 +145,10 @@
 % \changes{v1.23}{2021/03/16}{增加 article 文章模式,可用于短篇幅的文章。}
 % \end{function}
 %
+% \clearpage
 % \subsection{文档命令}
 % \label{subsec:document command}
+% \subsubsection{文区命令}
 % \begin{function}[added = 2021-02-20,updated = 2021-04-29]{\frontmatter,\mainmatter,\backmatter,\cleardoublepage}
 % \begin{syntax}
 %   \tn{frontmatter*}\oarg{编号格式|(Roman)}
@@ -158,15 +160,16 @@
 % \changes{v1.23}{2021/02/20}{重新定义文档结构划分命令。}
 % \end{function}
 %
-% \begin{function}[added = 2021-02-20,updated = 2021-05-04]{\tableofcontents,\listoffigures,\listoftables,\listoflistings}
+% \subsubsection{目录命令}
+% \begin{function}[added = 2021-02-20,updated = 2021-05-05]{\tableofcontents,\listoffigures,\listoftables,\listoflistings}
 % \begin{syntax}
-%   \tn{tableofcontents+}\oarg{键值列表}
+%   \tn{tableofcontents+}\oarg{键值列表}\parg{附加代码}
 %   \tn{listoffigures*+}\oarg{键值列表}
 %   \tn{listoftables*+}\oarg{键值列表}
 %   \tn{listoflistings*+}\oarg{键值列表}
 % \end{syntax}
-% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等配合使用。目录的键值列表选项如下
-% \changes{v1.25a}{2021/05/04}{命令 \tn{tableofcontents} 可以输出双语目录。}
+% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入文本和换页命令等。目录的键值列表选项如下
+% \changes{v1.25c}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
 % \end{function}
 %
 % \begin{function}{multoc,title,book,article}
@@ -174,21 +177,42 @@
 %   multoc = <true|(false)>
 %   title = \{<中文目录标题>,<英文目录标题>\}
 % \end{syntax}
-% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{title} 选项用于更改目录的标题,标题之间用一个半角逗号分开,也可以只有一部分,表示中文目录的标题,不过英文目录标题目前仅对 \tn{tableofcontents} 命令有效。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
+% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{title} 选项用于更改目录的标题,标题之间用一个半角逗号分开,也可以只有一部分,表示中文目录的标题。当设置了英文目录标题时,英文目录标题将会自动加入主文档目录,与 \tn{tableofcontents+} 配合输出。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
 % \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
 % \changes{v1.24}{2021/04/04}{目录命令的可选参数增加标题键值。}
 % \end{function}
 %
-% \begin{function}[added = 2021-05-04]{\bichapter,\bisection,\bisubsection}
+% \subsubsection{标题命令}
+% \begin{function}[added = 2021-05-05]{\bichapter,\bichapter*,\bisection,\bisection*,\bisubsection,\bisubsection*}
 % \begin{syntax}
-%   \tn{bichapter}\marg{中文标题}\marg{英文标题(在目录中)}
-%   \tn{bichapter}\marg{中文标题}\marg{英文标题(在目录中)}
-%   \tn{bichapter}\marg{中文标题}\marg{英文标题(在目录中)}
+%   \tn{bichapter}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+%   \tn{bichapter*}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+%   \tn{bisection}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+%   \tn{bisection*}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+%   \tn{bisubsection}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
+%   \tn{bisubsection*}\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}
 % \end{syntax}
-% 双语目录的标题命令目前设置了三个级别,它们将中文标题正常输出,并将中英文标题加入双语目录,这个功能是为国内一些大学的学位论文模板的要求设计,当然在英文模式下不需要使用。双语目录的格式是一致的,使用 \tn{tocset} 设置,英文目录的章级别标题名为 Chapter 暂不支持修改。
-% \changes{v1.25a}{2021/05/04}{增加与双语目录配合的标题命令。}
+% 双语目录的标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录,这个功能是为国内一些大学的学位论文模板的要求设计,在一般情况和英文模式下不需要使用。
+%
+% 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \tn{chapter*} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文标题,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。双语目录的格式是一致的,共享使用 \tn{tocset} 的设置,英文目录的章级别标题名及编号的修改方式如下
+% \changes{v1.25c}{2021/05/05}{增加与双语目录配合的标题命令。}
 % \end{function}
 %
+% \begin{function}{biname,binmuber}
+% \begin{syntax}
+%   chapter/biname = \{<英文目录前名字|(Chapter\tn{space})>,<英文目录后名字>\}
+%   chapter/binmuber = <英文目录数字输出命令|(\tn{arabic\{chapter\}})>
+% \end{syntax}
+% 类似 \CTeX 的 \opt{name} 和 \opt{nmuber} 选项,它们用于设置主文区 \tn{bichapter} 等标题命令在英文目录中的前后名字与编号,目前只支持通常改变名字与编号的 chapter 级别。
+% \end{function}
+%
+% \begin{function}[added = 2021-05-05]{\appendix}
+% \begin{syntax}
+%   \tn{appendix}\oarg{英文附录目录前名字}\parg{英文附录目录数字输出命令}\oarg{英文附录目录后名字}
+% \end{syntax}
+% \tn{appendix} 命令后的章节标题变为附录形式。英文目录中附录标题的格式用可选参数修改,英文附录目录前名字默认为 Appendix\tn{space},英文附录目录数字输出命令默认为 \tn{Alph}\{chapter\},英文附录目录后名字默认为空。
+% \end{function}
+%
 % \section{接口选项}
 % \label{sec:interface options}
 % \begin{function}[added = 2021-01-05]{\ctexset}
@@ -200,7 +224,7 @@
 %   \begin{tabular}{*{5}{c}}
 %     \toprule
 %     \hyperref[subsec:style]{风格} & \hyperref[subsec:hyperlinks]{超链接} & \hyperref[subsec:other font]{其它字体} & \hyperref[subsec:spacing]{行距} & \hyperref[subsec:reference]{参考文献} \\
-%     style & link & elsefont & spread & bibset \\
+%     style & refset & elsefont & spread & bibset \\
 %     \midrule
 %     \hyperref[subsec:theorem of style]{定理样式} & \hyperref[subsec:page margins]{页面尺寸} & \hyperref[subsec:header and footer]{页眉页脚} & \hyperref[subsec:catalog style]{目录样式} & \\
 %     thmset & geoset & hdrset & tocset & \\
@@ -259,7 +283,7 @@
 %
 % \subsection{超链接}
 % \label{subsec:hyperlinks}
-% \begin{function}[EXP,added = 2021-01-05,updated = 2021-04-18]{hyperlink,linkcolor,linkcol-all,linktoc}
+% \begin{function}[EXP,added = 2021-01-05,updated = 2021-05-06]{hyperlink,linkcolor,linkcol-all,linktoc}
 % \begin{syntax}
 %   hyperlink = <(edge)|various|none>
 %   linkcolor = <fresh|cutepink|(navyblue)|crimson>
@@ -266,10 +290,11 @@
 %   linkcol-all = <HTML颜色代码>
 %   linktoc = <none|section|page|(all)>
 % \end{syntax}
-% \ding{229} 以上选项路径为 \opt{link/...} \\
-% \opt{link} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
+% \ding{229} 以上选项路径为 \opt{refset/...} \\
+% \opt{refset} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
 % \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
 % \changes{v1.24}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
+% \changes{v1.25c}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性保留。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -337,13 +362,13 @@
 %
 % \subsection{参考文献}
 % \label{subsec:reference}
-% \begin{function}[EXP,added = 2021-01-11,updated = 2021-04-09]{bib-loadpkg,backend,bib-style,cite-style,bibfile}
+% \begin{function}[EXP,added = 2021-01-11,updated = 2021-04-09]{loadpkg,backend,bib-style,cite-style,datafile}
 % \begin{syntax}
-%   bib-loadpkg = <(true)|false>
+%   loadpkg = <(true)|false>
 %   backend = <(bibtex)|biblatex>
 %   bib-style = <(numerical)|authoryear|其它格式>
 %   cite-style = <标注风格>
-%   bibfile = <refs.bib>
+%   datafile = <refs.bib>
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{bibset/...}
 % \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
@@ -352,11 +377,11 @@
 % \end{function}
 %
 % \begin{optdesc}
-%   \item[bib-loadpkg] 是否载入 \pkg{natbib} 或 \pkg{biblatex} 宏包,关闭此选项后需要在导言区手动载入参考文献宏包,之后可使用相关配置命令(见下文)或完全自行设置参考文献。
+%   \item[loadpkg] 是否载入 \pkg{natbib} 或 \pkg{biblatex} 宏包,关闭此选项后需要在导言区手动载入参考文献宏包,之后可使用相关配置命令(见下文)或完全自行设置参考文献。
 %   \item[backend] 参考文献处理后端,默认用传统的 \hologo{BibTeX} 处理参考文献。
 %   \item[bib-style] 参考文献格式为中国的参考文献推荐标准GB/T 7714-2015,有顺序编码制和著者-出版年制两种风格,理工科类一般使用顺序编码制,文科类一般使用著者-出版年制。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \opt{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg{biblatex} 宏包支持的参考文献风格名称。
 %   \item[cite-style] 标注参考文献的风格,\opt{backend = bibtex} 选项下可使用 \opt{super}(数字上标标注,默认)或 \opt{numbers}(数字标注)等 \pkg{natbib} 宏包带有的标注风格,\opt{backend = biblatex} 选项下可使用 \pkg{biblatex} 宏包支持的标注风格名称。
-%   \item[bibfile] 参考文献数据库的文件名,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,若不在当前文件夹名称需要包含路径,默认是一个在当前文件夹以 \opt{refs.bib} 命名的文件。
+%   \item[datafile] 参考文献数据库的文件名,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,若不在当前文件夹名称需要包含路径,默认是一个在当前文件夹以 \opt{refs.bib} 命名的文件。
 % \end{optdesc}
 %
 % \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\EbBibtexSet,\EbBiblatexPreset,\EbBiblatexPostset}
@@ -363,7 +388,7 @@
 % \begin{syntax}
 %   \tn{printbibliography}\oarg{键值列表}
 % \end{syntax}
-% 关闭 \opt{bib-loadpkg} 选项时 \opt{bibset} 中的选项会失效,但是后三个命令保存了 \opt{bibset} 模块预置的参考文献选项与配置,与对应宏包配合使用它们时 \opt{bibset} 中的选项仍然有效,也可以不使用它们完全自行设置参考文献方案。开启 \opt{bib-loadpkg} 选项对它们重新定义也可以达到重新设置参考文献的效果。
+% 关闭 \opt{loadpkg} 选项时 \opt{bibset} 中的选项会失效,但是后三个命令保存了 \opt{bibset} 模块预置的参考文献选项与配置,与对应宏包配合使用它们时 \opt{bibset} 中的选项仍然有效,也可以不使用它们完全自行设置参考文献方案。开启 \opt{loadpkg} 选项对它们重新定义也可以达到重新设置参考文献的效果。
 % \end{function}
 %
 % \begin{optdesc}
@@ -389,7 +414,7 @@
 %   headpunct = <(empty)>
 %   bodyfont = <(empty)>
 %   notefont = <(empty)>
-%   headfont = <(\tn{color}\marg{ctex at emph}\tn{sffamily})>
+%   headfont = <(\tn{color}\{ctex at emph\}\tn{sffamily})>
 %   headindent = <(0\tn{ccwd})>
 %   spaceabove = <(0.75ex plus .1ex)>
 %   spacebelow = <(0.75ex plus .1ex)>
@@ -623,7 +648,7 @@
 % \end{function}
 %
 % \subsection{列表}
-% \begin{function}[added = 2021-01-05,updated = 2021-04-08]{enumerate,itemize,description,enumerate*,itemize*,description*}
+% \begin{function}[added = 2021-01-05,updated = 2021-04-08]{enumerate,enumerate*,itemize,itemize*,description,description*}
 % \begin{syntax}
 %   \tn{begin}\marg{环境名}\oarg{键值列表}
 %   \  \tn{item} <列表内容>
@@ -692,7 +717,7 @@
 % \end{syntax}
 % 习题环境 \env{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号参数时不进行编号,使用+号参数启用 \pkg{tcolorbox} 支持生成标题。\meta{颜色名} 选项在使用+号参数时有效,其中颜色为自定义或 \pkg{xcolor} 包含的颜色名称。题目编号格式与小节 \ref{subsec:sort list} 排序列表相同,标题名默认为习题。
 %
-% 配置选项在是否使用+号参数时用法不同,使用+号参数时为 \pkg{tcolorbox} 的盒子选项,例如 \opt{boxrule} 和 \opt{fontupper}。不使用+号参数时相当于设置 \tn{ctexset}\marg{section = {\#1}} 键值选项列表,例如 \opt{format} 和 \opt{beforeskip}。\meta{序言} 选项用于在习题环境开始前插入一段内容,可以是文本或者代码。注意,环境具有相同定界符的可选参数只能\textbf{从右往左}省略,省略的参数使用默认值。
+% 配置选项在是否使用+号参数时用法不同,使用+号参数时为 \pkg{tcolorbox} 的盒子选项,例如 \opt{boxrule} 和 \opt{fontupper}。不使用+号参数时相当于设置 \tn{ctexset}\{section = {\#1}\} 键值选项列表,例如 \opt{format} 和 \opt{beforeskip}。\meta{序言} 选项用于在习题环境开始前插入一段内容,可以是文本或者代码。注意,环境具有相同定界符的可选参数只能\textbf{从右往左}省略,省略的参数使用默认值。
 % \changes{v1.23}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
 % \end{function}
 %
@@ -921,7 +946,7 @@
 %<*class>
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplClass{easybook}{2021/05/04}{1.25a}{beta}
+\ProvidesExplClass{easybook}{2021/05/06}{1.25c}{beta}
 
 \cs_generate_variant:Nn \eb_ctex_define:nn { nx }
 \cs_generate_variant:Nn \int_to_arabic:n { v }
@@ -1034,8 +1059,8 @@
 
 \seq_const_from_clist:Nn \c__eb_options_path_seq
   {
-    style,link,elsefont,
-    spread,bibset,thmset,
+    style,elsefont,spread,
+    refset,bibset,thmset,
     geoset,hdrset,tocset
   }
 \seq_map_inline:Nn \c__eb_options_path_seq
@@ -1043,8 +1068,10 @@
     \ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} }
     \cs_new:cpn {#1} ##1 { \keys_set:nn {ctex/#1} {##1} }
   }
+\keys_define:nn { } { ctex/link .inherit:n = ctex/refset }
 \ctex_define:n
   {
+    link .meta:nn                 = { ctex/link } {#1},
     lstlistlistingname .tl_set:N  = \lstlistlistingname,
     lstlistingname .tl_set:N      = \lstlistingname
   }
@@ -1143,11 +1170,8 @@
   }
 \cs_new_protected:Npn \eb_font_double_engine_set:n #1
   {
-    \exp_args:Nc \RenewDocumentCommand {set #1 font}{O{}mO{}}
-      {
-        \ctex_at_end_preamble:n
-          { \use:c { eb_set #1 font:nn }{##2}{##1,##3} }
-      }
+    \exp_args:Nc \RenewDocumentCommand {set#1font}{O{}mO{}}
+      {\use:c { eb_set#1font:nn }{##2}{##1,##3}}
   }
 \seq_const_from_clist:Nn \c__eb_font_reset_family_seq
   { main,sans,mono,CJKmain,CJKsans,CJKmono }
@@ -1395,9 +1419,7 @@
       }
     \bool_if:NT \l__eb_compile_draft_bool
       {
-        \bool_if:NTF \l__eb_page_twoside_bool
-          { \easyfoot[C]{\color{SlateGray}\sffamily\today} }
-          { \easyhead[C]{\color{SlateGray}\sffamily\today} }
+        \easyfoot[C]{\color{SlateGray}\sffamily\today}
         \geometry{showframe}
       }
   }
@@ -1609,16 +1631,14 @@
       }
   }
 
-\contentsuse{}{bitoc}
+\contentsuse{}{tec}
 \cs_set_protected:Npn \CTEX at addbitocline #1#2
   {
     \group_begin:
-    \ctex_set:n
-      {
-        chapter/name    = Chapter\space,
-        chapter/number  = \arabic{chapter}
-      }
-    \addcontentsline{bitoc}{#1}
+    \def\CTEX at prechapter{\CTEX at prebichapter}
+    \def\CTEX at thechapter{\CTEX at bichapter@number}
+    \def\CTEX at postchapter{\CTEX at postbichapter}
+    \addcontentsline{tec}{#1}
       {\use:c { CTEX@#1 at tocline }{#1}{#2}}
     \group_end:
   }
@@ -1626,8 +1646,18 @@
   { chapter,section,subsection }
 \seq_map_inline:Nn \c__eb_bitoc_title_level_seq
   {
-    \cs_new_protected:cpn {bi #1} ##1##2
-      { \use:c {#1}{##1}\CTEX at addbitocline{#1}{##2} }
+    \exp_args:Nc \NewDocumentCommand {bi#1}{sO{##3}mm}
+      {
+        \IfBooleanTF{##1}
+          {
+            \use:c {#1}*{\phantomsection ##3}
+            \CTEX at addtocline{#1}{##2}
+            \tl_if_empty:oF {##4} { \CTEX at addbitocline{#1}{##4} }
+          }{
+            \use:c {#1}[##2]{##3}
+            \tl_if_empty:oF {##4} { \CTEX at addbitocline{#1}{##4} }
+          }
+      }
   }
 
 \eb_appto_cmd:Nn \@chapter
@@ -1652,6 +1682,7 @@
   }
 
 \tl_set:Nn \l__eb_toc_type_tl { book }
+\tl_new:N \eb at bitoc@title
 \keys_define:nn { eb/listoc }
   {
     article .code:n     = \tl_set:Nn \l__eb_toc_type_tl { article },
@@ -1661,10 +1692,10 @@
     multoc .initial:n   = false,
     title .code:n       = \eb_assign_toc_title:n {#1}
   }
-\NewDocumentCommand \eb_assign_toc_title:n
+\NewDocumentCommand{\eb_assign_toc_title:n}
   {>{\SplitArgument{1}{,}}m}
-  {\eb_assign_toc_title:nn #1}
-\cs_new_protected:Npn \eb_assign_toc_title:nn #1#2
+  {\eb_assign_toc_title_judge:nn #1}
+\cs_new_protected:Npn \eb_assign_toc_title_judge:nn #1#2
   {
     \tl_set:Nn \eb at toc@title {#1}
     \tl_if_novalue:nTF {#2}
@@ -1694,13 +1725,11 @@
   {
     \tl_if_eq:NnTF \l__eb_toc_type_tl { book }
       {
-        \chapter*{\phantomsection #1}
-        \CTEX at addtocline{chapter}{#1}
+        \bichapter*{#1}{\eb at bitoc@title}
         \eb at nonumber@markdouble{#1}
       }
       {
-        \section*{\phantomsection #1}
-        \CTEX at addtocline{section}{#1}
+        \bisection*{#1}{\eb at bitoc@title}
         \bool_if:NTF \l__eb_class_book_bool
           { \eb at nonumber@markright{#1} }
           { \eb at nonumber@markdouble{#1} }
@@ -1725,8 +1754,8 @@
     \IfBooleanTF{#1}
       {
         \tl_if_eq:NnTF \l__eb_toc_type_tl { book }
-          { \chapter{\eb at toc@title} }
-          { \section{\eb at toc@title} }
+          { \bichapter{\eb at toc@title}{\eb at bitoc@title} }
+          { \bisection{\eb at toc@title}{\eb at bitoc@title} }
       }
       {
         \IfBooleanTF{#2}
@@ -1734,17 +1763,11 @@
           { \eb_title_mark_intoc:n {\eb at toc@title} }
       }
   }
-\cs_new_protected:Npn \eb_class_title_level_bool:n #1
+\cs_new_protected:Npn \eb_biber_title_level_bool:n #1
   {
     \bool_if:NTF \l__eb_class_book_bool
-      {
-        \chapter*{\phantomsection #1}
-        \CTEX at addtocline{chapter}{#1}
-      }
-      {
-        \section*{\phantomsection #1}
-        \CTEX at addtocline{section}{#1}
-      }
+      { \bichapter*{#1}{\l__eb_bib_bitoc_title} }
+      { \bisection*{#1}{\l__eb_bib_bitoc_title} }
     \eb at nonumber@markdouble{#1}
   }
 \cs_new_protected:Npn \eb_multoc_pre_bool:
@@ -1767,7 +1790,7 @@
     \bool_if:NT \l__eb_class_book_bool
       { \ifbool{@restonecol}{\twocolumn}{\onecolumn} }
   }
-\RenewDocumentCommand{\tableofcontents}{t+o}
+\RenewDocumentCommand{\tableofcontents}{t+oD(){}}
   {
     \group_begin:
     \tl_set_eq:NN \eb at toc@title \contentsname
@@ -1776,12 +1799,12 @@
     \eb_multoc_pre_bool:
     \eb_title_mark_notoc:n { \eb at toc@title }
     \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-    \@starttoc{toc}
+    \@starttoc{toc}#3
     \IfBooleanT{#1}
       {
         \eb_title_mark_notoc:n { \eb at bitoc@title }
         \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-        \@starttoc{bitoc}
+        \@starttoc{tec}
       }
     \eb_multoc_post_bool:
     \group_end:
@@ -1854,6 +1877,52 @@
       }
   }
 
+\eb_ctex_define:nn { chapter }
+  {
+    biname .code:n      =
+      { \ctex_assign_heading_name:nn { bichapter } {#1} },
+    biname .initial:n   = Chapter\space,
+    binmuber .tl_set:N  = \CTEX at bichapter@number,
+    binmuber .initial:n = \arabic{chapter}
+  }
+\RenewDocumentCommand{\appendix}
+  {O{Appendix\space}D(){\Alph{chapter}}O{}}
+  {
+    \int_compare:nNnTF { \c at chapter } > { 0 }
+      {
+        \ExplSyntaxOn\char_set_catcode_letter:N \@
+        \eb_patch_cmd:Nnn \CTEX at addbitocline
+          {
+            \def\CTEX at prechapter{\CTEX at prebichapter}
+            \def\CTEX at thechapter{\CTEX at bichapter@number}
+            \def\CTEX at postchapter{\CTEX at postbichapter}
+          }
+          {
+            \def\CTEX at prechapter{#1}
+            \def\CTEX at thechapter{#2}
+            \def\CTEX at postchapter{#3}
+          }
+        \ExplSyntaxOff\char_set_catcode_other:N \@
+        \setcounter{chapter}{0}
+        \setcounter{section}{0}
+        \gdef\thechapter{\@Alph\c at chapter}
+        \gdef\CTEX at prechapter{\CTEX at preappendix}
+        \gdef\CTEX at thechapter{\CTEX at appendix@number}
+        \gdef\CTEX at postchapter{\CTEX at postappendix}
+        \gdef\CTEX at chapter@numbering{\CTEX at appendix@numbering}
+      }
+      {
+        \setcounter{section}{0}
+        \setcounter{subsection}{0}
+        \gdef\thesection{\@Alph\c at section}
+        \gdef\CTEX at presection{\CTEX at preappendix}
+        \gdef\CTEX at thesection{\CTEX at appendix@number}
+        \gdef\CTEX at postsection{\CTEX at postappendix}
+        \gdef\CTEX at section@numbering{\CTEX at appendix@numbering}
+        \ctex_set:nn { appendix } { number = \@Alph\c at section,name = { } }
+      }
+  }
+
 \tl_new:N \l__eb_font_table_tl
 \tl_new:N \l__eb_font_figure_tl
 \tl_new:N \l__eb_font_listing_tl
@@ -1904,7 +1973,7 @@
     \captionsetup[table][bi-second]{name = Table}
   }
 
-\cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@ #1 } }
+\cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@#1 } }
 \cs_gset:cpn { thesection }
   {
     \int_compare:nNnT { \c at chapter } > { 0 } { \thechapter. }
@@ -1914,7 +1983,7 @@
   { figure,table,lstlisting,equation }
 \seq_map_inline:Nn \c__eb_serial_number_counter_seq
   {
-    \cs_set:cpn { the #1 }
+    \cs_set:cpn { the#1 }
       {
         \int_compare:nNnT { \c at chapter } > { 0 }
           {
@@ -1924,40 +1993,7 @@
         \eb_arabic:n {#1}
       }
   }
-\cs_gset_protected:Npn \appendix
-  {
-    \int_compare:nNnTF { \c at chapter } > { 0 }
-      {
-        \ExplSyntaxOn\char_set_catcode_letter:N \@
-        \eb_patch_cmd:Nnn \CTEX at addbitocline
-          {
-            chapter/name    = Chapter\space,
-            chapter/number  = \arabic{chapter}
-          }
-          {
-            chapter/name    = Appendix\space,
-            chapter/number  = \alph{chapter}
-          }
-        \ExplSyntaxOff\char_set_catcode_other:N \@
-        \setcounter{chapter}{0}
-        \setcounter{section}{0}
-        \gdef\thechapter{\@Alph\c at chapter}
-        \gdef\CTEX at prechapter{\CTEX at preappendix}
-        \gdef\CTEX at thechapter{\CTEX at appendix@number}
-        \gdef\CTEX at postchapter{\CTEX at postappendix}
-        \gdef\CTEX at chapter@numbering{\CTEX at appendix@numbering}
-      }
-      {
-        \setcounter{section}{0}
-        \setcounter{subsection}{0}
-        \gdef\thesection{\@Alph\c at section}
-        \gdef\CTEX at presection{\CTEX at preappendix}
-        \gdef\CTEX at thesection{\CTEX at appendix@number}
-        \gdef\CTEX at postsection{\CTEX at postappendix}
-        \gdef\CTEX at section@numbering{\CTEX at appendix@numbering}
-        \ctex_set:nn { appendix } { number = \@Alph\c at section,name = { } }
-      }
-  }
+
 \AtBeginEnvironment{tabularx}
   {
     \exp_args:Nx \linespread { \fp_use:N \l__eb_spread_table_fp }
@@ -1994,8 +2030,11 @@
     footnote .initial:n = 1,
     spread-all .meta:n  =
       {
-        line = #1,table = #1,math = #1,
-        caption = #1,footnote = #1
+        line      = #1,
+        table     = #1,
+        math      = #1,
+        caption   = #1,
+        footnote  = #1
       }
   }
 
@@ -2131,7 +2170,7 @@
 \eb_at_end_preamble:n
   {
     \exp_last_unbraced:No
-    \declaretheoremstyle\c__eb_thmtools_keyval_tl{easy-theorem}
+    \declaretheoremstyle{\c__eb_thmtools_keyval_tl}{easy-theorem}
     \eb_thmname_set:nnn { exercise } { Exercise } { 练习 }
     \cs_undefine:N \proof
     \clist_map_inline:nn
@@ -2167,16 +2206,16 @@
   }
 \sisetup
   {
+    detect-shape,
     detect-family,
     detect-weight,
-    detect-shape,
+    table-parse-only,
+    detect-display-math,
     detect-inline-family  = math,
     detect-inline-weight  = math,
-    detect-display-math,
-    table-parse-only,
-    range-phrase  = \ensuremath{\sim},
-    range-units   = single,
-    group-digits  = false
+    range-phrase          = \ensuremath{\sim},
+    range-units           = single,
+    group-digits          = false
   }
 \allowdisplaybreaks[4]
 \tl_gset:Nn \ULthickness { 0.75pt }
@@ -2298,7 +2337,7 @@
           }{
             \group_begin:
             \keys_set:nn { ctex/section } { format += \centering }
-            \IfValueT{#6}{\keys_set:nn { ctex/section } {#6}}
+            \IfValueT{#6}{\ctex_set:nn { section } {#6}}
             \IfBooleanTF{#1}{\section*{#5}}{\section{#5}}
             \group_end:
           }#7
@@ -2390,12 +2429,15 @@
 
     cite-style .code:n  =
       { \tl_set:Nn \l__eb_bib_citestyle_tl {#1} },
-    bibfile .tl_set:N   = \l__eb_bib_file_tl,
-    bibfile .initial:n  = refs.bib,
+    datafile .tl_set:N  = \l__eb_bib_file_tl,
+    datafile .initial:n = refs.bib,
 
-    bib-loadpkg .bool_set:N = \l__eb_bib_loadpkg_bool,
-    bib-loadpkg .default:n  = true,
-    bib-loadpkg .initial:n  = true
+    loadpkg .bool_set:N = \l__eb_bib_loadpkg_bool,
+    loadpkg .default:n  = true,
+    loadpkg .initial:n  = true,
+
+    bitoc-title .tl_set:N   = \l__eb_bib_bitoc_title,
+    bitoc-title .initial:n  = Reference
   }
 
 \cs_new_protected:Npn \EbBibtexSet
@@ -2449,7 +2491,7 @@
     \exp_args:NV \addbibresource \l__eb_bib_file_tl
     \tl_gset:Nn \blx at default@theheading { bibintoc }
     \defbibheading{bibintoc}[\bibname]
-      {\eb_class_title_level_bool:n {##1}}
+      {\eb_biber_title_level_bool:n {##1}}
     \skip_zero:N \bibitemsep
   }
 \eb_at_end_preamble:n
@@ -2607,7 +2649,7 @@
   }
 
 \bool_set_false:N \l__eb_toc_number_color_bool
-\eb_ctex_define:nn { link }
+\eb_ctex_define:nn { refset }
   {
     hyperlink .choice:,
     hyperlink/edge .code:n    = { },
@@ -2644,7 +2686,7 @@
           }
       }
   }
-\eb_ctex_define:nx { link }
+\eb_ctex_define:nx { refset }
   {
     linkcolor .choice:,
     \clist_map_function:nN
@@ -2681,9 +2723,9 @@
 \cs_new:Npn \eb_allow_urlbreak:
   {
     \cs_new:Npn \eb_add_urlbreak_points:
-      { \tl_map_function:NN \c__eb_urlbreak_points_tl\do }
-    \eb_appto_cmd:Nn
-      \UrlBreaks{\UrlOrds\eb_add_urlbreak_points:}
+      { \tl_map_function:NN \c__eb_urlbreak_points_tl \do }
+    \eb_appto_cmd:Nn \UrlBreaks
+      { \UrlOrds\eb_add_urlbreak_points: }
   }
 \tl_const:Nn \c__eb_urlbreak_points_tl
   {

Modified: trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-05-06 20:22:49 UTC (rev 59101)
+++ trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-05-06 20:23:02 UTC (rev 59102)
@@ -13,7 +13,7 @@
 %%   https://creativecommons.org/licenses/by/4.0/legalcode
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplClass{easybook}{2021/05/04}{1.25a}{beta}
+\ProvidesExplClass{easybook}{2021/05/06}{1.25c}{beta}
 
 \cs_generate_variant:Nn \eb_ctex_define:nn { nx }
 \cs_generate_variant:Nn \int_to_arabic:n { v }
@@ -126,8 +126,8 @@
 
 \seq_const_from_clist:Nn \c__eb_options_path_seq
   {
-    style,link,elsefont,
-    spread,bibset,thmset,
+    style,elsefont,spread,
+    refset,bibset,thmset,
     geoset,hdrset,tocset
   }
 \seq_map_inline:Nn \c__eb_options_path_seq
@@ -135,8 +135,10 @@
     \ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} }
     \cs_new:cpn {#1} ##1 { \keys_set:nn {ctex/#1} {##1} }
   }
+\keys_define:nn { } { ctex/link .inherit:n = ctex/refset }
 \ctex_define:n
   {
+    link .meta:nn                 = { ctex/link } {#1},
     lstlistlistingname .tl_set:N  = \lstlistlistingname,
     lstlistingname .tl_set:N      = \lstlistingname
   }
@@ -235,11 +237,8 @@
   }
 \cs_new_protected:Npn \eb_font_double_engine_set:n #1
   {
-    \exp_args:Nc \RenewDocumentCommand {set #1 font}{O{}mO{}}
-      {
-        \ctex_at_end_preamble:n
-          { \use:c { eb_set #1 font:nn }{##2}{##1,##3} }
-      }
+    \exp_args:Nc \RenewDocumentCommand {set#1font}{O{}mO{}}
+      {\use:c { eb_set#1font:nn }{##2}{##1,##3}}
   }
 \seq_const_from_clist:Nn \c__eb_font_reset_family_seq
   { main,sans,mono,CJKmain,CJKsans,CJKmono }
@@ -487,9 +486,7 @@
       }
     \bool_if:NT \l__eb_compile_draft_bool
       {
-        \bool_if:NTF \l__eb_page_twoside_bool
-          { \easyfoot[C]{\color{SlateGray}\sffamily\today} }
-          { \easyhead[C]{\color{SlateGray}\sffamily\today} }
+        \easyfoot[C]{\color{SlateGray}\sffamily\today}
         \geometry{showframe}
       }
   }
@@ -701,16 +698,14 @@
       }
   }
 
-\contentsuse{}{bitoc}
+\contentsuse{}{tec}
 \cs_set_protected:Npn \CTEX at addbitocline #1#2
   {
     \group_begin:
-    \ctex_set:n
-      {
-        chapter/name    = Chapter\space,
-        chapter/number  = \arabic{chapter}
-      }
-    \addcontentsline{bitoc}{#1}
+    \def\CTEX at prechapter{\CTEX at prebichapter}
+    \def\CTEX at thechapter{\CTEX at bichapter@number}
+    \def\CTEX at postchapter{\CTEX at postbichapter}
+    \addcontentsline{tec}{#1}
       {\use:c { CTEX@#1 at tocline }{#1}{#2}}
     \group_end:
   }
@@ -718,8 +713,18 @@
   { chapter,section,subsection }
 \seq_map_inline:Nn \c__eb_bitoc_title_level_seq
   {
-    \cs_new_protected:cpn {bi #1} ##1##2
-      { \use:c {#1}{##1}\CTEX at addbitocline{#1}{##2} }
+    \exp_args:Nc \NewDocumentCommand {bi#1}{sO{##3}mm}
+      {
+        \IfBooleanTF{##1}
+          {
+            \use:c {#1}*{\phantomsection ##3}
+            \CTEX at addtocline{#1}{##2}
+            \tl_if_empty:oF {##4} { \CTEX at addbitocline{#1}{##4} }
+          }{
+            \use:c {#1}[##2]{##3}
+            \tl_if_empty:oF {##4} { \CTEX at addbitocline{#1}{##4} }
+          }
+      }
   }
 
 \eb_appto_cmd:Nn \@chapter
@@ -744,6 +749,7 @@
   }
 
 \tl_set:Nn \l__eb_toc_type_tl { book }
+\tl_new:N \eb at bitoc@title
 \keys_define:nn { eb/listoc }
   {
     article .code:n     = \tl_set:Nn \l__eb_toc_type_tl { article },
@@ -753,10 +759,10 @@
     multoc .initial:n   = false,
     title .code:n       = \eb_assign_toc_title:n {#1}
   }
-\NewDocumentCommand \eb_assign_toc_title:n
+\NewDocumentCommand{\eb_assign_toc_title:n}
   {>{\SplitArgument{1}{,}}m}
-  {\eb_assign_toc_title:nn #1}
-\cs_new_protected:Npn \eb_assign_toc_title:nn #1#2
+  {\eb_assign_toc_title_judge:nn #1}
+\cs_new_protected:Npn \eb_assign_toc_title_judge:nn #1#2
   {
     \tl_set:Nn \eb at toc@title {#1}
     \tl_if_novalue:nTF {#2}
@@ -786,13 +792,11 @@
   {
     \tl_if_eq:NnTF \l__eb_toc_type_tl { book }
       {
-        \chapter*{\phantomsection #1}
-        \CTEX at addtocline{chapter}{#1}
+        \bichapter*{#1}{\eb at bitoc@title}
         \eb at nonumber@markdouble{#1}
       }
       {
-        \section*{\phantomsection #1}
-        \CTEX at addtocline{section}{#1}
+        \bisection*{#1}{\eb at bitoc@title}
         \bool_if:NTF \l__eb_class_book_bool
           { \eb at nonumber@markright{#1} }
           { \eb at nonumber@markdouble{#1} }
@@ -817,8 +821,8 @@
     \IfBooleanTF{#1}
       {
         \tl_if_eq:NnTF \l__eb_toc_type_tl { book }
-          { \chapter{\eb at toc@title} }
-          { \section{\eb at toc@title} }
+          { \bichapter{\eb at toc@title}{\eb at bitoc@title} }
+          { \bisection{\eb at toc@title}{\eb at bitoc@title} }
       }
       {
         \IfBooleanTF{#2}
@@ -826,17 +830,11 @@
           { \eb_title_mark_intoc:n {\eb at toc@title} }
       }
   }
-\cs_new_protected:Npn \eb_class_title_level_bool:n #1
+\cs_new_protected:Npn \eb_biber_title_level_bool:n #1
   {
     \bool_if:NTF \l__eb_class_book_bool
-      {
-        \chapter*{\phantomsection #1}
-        \CTEX at addtocline{chapter}{#1}
-      }
-      {
-        \section*{\phantomsection #1}
-        \CTEX at addtocline{section}{#1}
-      }
+      { \bichapter*{#1}{\l__eb_bib_bitoc_title} }
+      { \bisection*{#1}{\l__eb_bib_bitoc_title} }
     \eb at nonumber@markdouble{#1}
   }
 \cs_new_protected:Npn \eb_multoc_pre_bool:
@@ -859,7 +857,7 @@
     \bool_if:NT \l__eb_class_book_bool
       { \ifbool{@restonecol}{\twocolumn}{\onecolumn} }
   }
-\RenewDocumentCommand{\tableofcontents}{t+o}
+\RenewDocumentCommand{\tableofcontents}{t+oD(){}}
   {
     \group_begin:
     \tl_set_eq:NN \eb at toc@title \contentsname
@@ -868,12 +866,12 @@
     \eb_multoc_pre_bool:
     \eb_title_mark_notoc:n { \eb at toc@title }
     \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-    \@starttoc{toc}
+    \@starttoc{toc}#3
     \IfBooleanT{#1}
       {
         \eb_title_mark_notoc:n { \eb at bitoc@title }
         \vspace*{\dim_use:N \l__eb_toc_offset_dim}
-        \@starttoc{bitoc}
+        \@starttoc{tec}
       }
     \eb_multoc_post_bool:
     \group_end:
@@ -946,6 +944,52 @@
       }
   }
 
+\eb_ctex_define:nn { chapter }
+  {
+    biname .code:n      =
+      { \ctex_assign_heading_name:nn { bichapter } {#1} },
+    biname .initial:n   = Chapter\space,
+    binmuber .tl_set:N  = \CTEX at bichapter@number,
+    binmuber .initial:n = \arabic{chapter}
+  }
+\RenewDocumentCommand{\appendix}
+  {O{Appendix\space}D(){\Alph{chapter}}O{}}
+  {
+    \int_compare:nNnTF { \c at chapter } > { 0 }
+      {
+        \ExplSyntaxOn\char_set_catcode_letter:N \@
+        \eb_patch_cmd:Nnn \CTEX at addbitocline
+          {
+            \def\CTEX at prechapter{\CTEX at prebichapter}
+            \def\CTEX at thechapter{\CTEX at bichapter@number}
+            \def\CTEX at postchapter{\CTEX at postbichapter}
+          }
+          {
+            \def\CTEX at prechapter{#1}
+            \def\CTEX at thechapter{#2}
+            \def\CTEX at postchapter{#3}
+          }
+        \ExplSyntaxOff\char_set_catcode_other:N \@
+        \setcounter{chapter}{0}
+        \setcounter{section}{0}
+        \gdef\thechapter{\@Alph\c at chapter}
+        \gdef\CTEX at prechapter{\CTEX at preappendix}
+        \gdef\CTEX at thechapter{\CTEX at appendix@number}
+        \gdef\CTEX at postchapter{\CTEX at postappendix}
+        \gdef\CTEX at chapter@numbering{\CTEX at appendix@numbering}
+      }
+      {
+        \setcounter{section}{0}
+        \setcounter{subsection}{0}
+        \gdef\thesection{\@Alph\c at section}
+        \gdef\CTEX at presection{\CTEX at preappendix}
+        \gdef\CTEX at thesection{\CTEX at appendix@number}
+        \gdef\CTEX at postsection{\CTEX at postappendix}
+        \gdef\CTEX at section@numbering{\CTEX at appendix@numbering}
+        \ctex_set:nn { appendix } { number = \@Alph\c at section,name = { } }
+      }
+  }
+
 \tl_new:N \l__eb_font_table_tl
 \tl_new:N \l__eb_font_figure_tl
 \tl_new:N \l__eb_font_listing_tl
@@ -996,7 +1040,7 @@
     \captionsetup[table][bi-second]{name = Table}
   }
 
-\cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@ #1 } }
+\cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@#1 } }
 \cs_gset:cpn { thesection }
   {
     \int_compare:nNnT { \c at chapter } > { 0 } { \thechapter. }
@@ -1006,7 +1050,7 @@
   { figure,table,lstlisting,equation }
 \seq_map_inline:Nn \c__eb_serial_number_counter_seq
   {
-    \cs_set:cpn { the #1 }
+    \cs_set:cpn { the#1 }
       {
         \int_compare:nNnT { \c at chapter } > { 0 }
           {
@@ -1016,40 +1060,7 @@
         \eb_arabic:n {#1}
       }
   }
-\cs_gset_protected:Npn \appendix
-  {
-    \int_compare:nNnTF { \c at chapter } > { 0 }
-      {
-        \ExplSyntaxOn\char_set_catcode_letter:N \@
-        \eb_patch_cmd:Nnn \CTEX at addbitocline
-          {
-            chapter/name    = Chapter\space,
-            chapter/number  = \arabic{chapter}
-          }
-          {
-            chapter/name    = Appendix\space,
-            chapter/number  = \alph{chapter}
-          }
-        \ExplSyntaxOff\char_set_catcode_other:N \@
-        \setcounter{chapter}{0}
-        \setcounter{section}{0}
-        \gdef\thechapter{\@Alph\c at chapter}
-        \gdef\CTEX at prechapter{\CTEX at preappendix}
-        \gdef\CTEX at thechapter{\CTEX at appendix@number}
-        \gdef\CTEX at postchapter{\CTEX at postappendix}
-        \gdef\CTEX at chapter@numbering{\CTEX at appendix@numbering}
-      }
-      {
-        \setcounter{section}{0}
-        \setcounter{subsection}{0}
-        \gdef\thesection{\@Alph\c at section}
-        \gdef\CTEX at presection{\CTEX at preappendix}
-        \gdef\CTEX at thesection{\CTEX at appendix@number}
-        \gdef\CTEX at postsection{\CTEX at postappendix}
-        \gdef\CTEX at section@numbering{\CTEX at appendix@numbering}
-        \ctex_set:nn { appendix } { number = \@Alph\c at section,name = { } }
-      }
-  }
+
 \AtBeginEnvironment{tabularx}
   {
     \exp_args:Nx \linespread { \fp_use:N \l__eb_spread_table_fp }
@@ -1086,8 +1097,11 @@
     footnote .initial:n = 1,
     spread-all .meta:n  =
       {
-        line = #1,table = #1,math = #1,
-        caption = #1,footnote = #1
+        line      = #1,
+        table     = #1,
+        math      = #1,
+        caption   = #1,
+        footnote  = #1
       }
   }
 
@@ -1223,7 +1237,7 @@
 \eb_at_end_preamble:n
   {
     \exp_last_unbraced:No
-    \declaretheoremstyle\c__eb_thmtools_keyval_tl{easy-theorem}
+    \declaretheoremstyle{\c__eb_thmtools_keyval_tl}{easy-theorem}
     \eb_thmname_set:nnn { exercise } { Exercise } { 练习 }
     \cs_undefine:N \proof
     \clist_map_inline:nn
@@ -1259,16 +1273,16 @@
   }
 \sisetup
   {
+    detect-shape,
     detect-family,
     detect-weight,
-    detect-shape,
+    table-parse-only,
+    detect-display-math,
     detect-inline-family  = math,
     detect-inline-weight  = math,
-    detect-display-math,
-    table-parse-only,
-    range-phrase  = \ensuremath{\sim},
-    range-units   = single,
-    group-digits  = false
+    range-phrase          = \ensuremath{\sim},
+    range-units           = single,
+    group-digits          = false
   }
 \allowdisplaybreaks[4]
 \tl_gset:Nn \ULthickness { 0.75pt }
@@ -1390,7 +1404,7 @@
           }{
             \group_begin:
             \keys_set:nn { ctex/section } { format += \centering }
-            \IfValueT{#6}{\keys_set:nn { ctex/section } {#6}}
+            \IfValueT{#6}{\ctex_set:nn { section } {#6}}
             \IfBooleanTF{#1}{\section*{#5}}{\section{#5}}
             \group_end:
           }#7
@@ -1482,12 +1496,15 @@
 
     cite-style .code:n  =
       { \tl_set:Nn \l__eb_bib_citestyle_tl {#1} },
-    bibfile .tl_set:N   = \l__eb_bib_file_tl,
-    bibfile .initial:n  = refs.bib,
+    datafile .tl_set:N  = \l__eb_bib_file_tl,
+    datafile .initial:n = refs.bib,
 
-    bib-loadpkg .bool_set:N = \l__eb_bib_loadpkg_bool,
-    bib-loadpkg .default:n  = true,
-    bib-loadpkg .initial:n  = true
+    loadpkg .bool_set:N = \l__eb_bib_loadpkg_bool,
+    loadpkg .default:n  = true,
+    loadpkg .initial:n  = true,
+
+    bitoc-title .tl_set:N   = \l__eb_bib_bitoc_title,
+    bitoc-title .initial:n  = Reference
   }
 
 \cs_new_protected:Npn \EbBibtexSet
@@ -1541,7 +1558,7 @@
     \exp_args:NV \addbibresource \l__eb_bib_file_tl
     \tl_gset:Nn \blx at default@theheading { bibintoc }
     \defbibheading{bibintoc}[\bibname]
-      {\eb_class_title_level_bool:n {##1}}
+      {\eb_biber_title_level_bool:n {##1}}
     \skip_zero:N \bibitemsep
   }
 \eb_at_end_preamble:n
@@ -1699,7 +1716,7 @@
   }
 
 \bool_set_false:N \l__eb_toc_number_color_bool
-\eb_ctex_define:nn { link }
+\eb_ctex_define:nn { refset }
   {
     hyperlink .choice:,
     hyperlink/edge .code:n    = { },
@@ -1736,7 +1753,7 @@
           }
       }
   }
-\eb_ctex_define:nx { link }
+\eb_ctex_define:nx { refset }
   {
     linkcolor .choice:,
     \clist_map_function:nN
@@ -1773,9 +1790,9 @@
 \cs_new:Npn \eb_allow_urlbreak:
   {
     \cs_new:Npn \eb_add_urlbreak_points:
-      { \tl_map_function:NN \c__eb_urlbreak_points_tl\do }
-    \eb_appto_cmd:Nn
-      \UrlBreaks{\UrlOrds\eb_add_urlbreak_points:}
+      { \tl_map_function:NN \c__eb_urlbreak_points_tl \do }
+    \eb_appto_cmd:Nn \UrlBreaks
+      { \UrlOrds\eb_add_urlbreak_points: }
   }
 \tl_const:Nn \c__eb_urlbreak_points_tl
   {



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