texlive[58591] Master/texmf-dist: easybook (21mar21)

commits+karl at tug.org commits+karl at tug.org
Sun Mar 21 22:41:03 CET 2021


Revision: 58591
          http://tug.org/svn/texlive?view=revision&revision=58591
Author:   karl
Date:     2021-03-21 22:41:03 +0100 (Sun, 21 Mar 2021)
Log Message:
-----------
easybook (21mar21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf
    trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex
    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-demo.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex	2021-03-21 21:40:49 UTC (rev 58590)
+++ trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex	2021-03-21 21:41:03 UTC (rev 58591)
@@ -99,7 +99,7 @@
     \url{https://latexstudio.net} \\
     \url{https://gitee.com/texl3/easybook}\thanks{Gitee为项目的主要发布地址。}
   }
-\date{2021/03/19\hskip\ccwd\relax v1.23v}
+\date{2021/03/21\hskip\ccwd\relax v1.23x}
 
 \frontmatter[roman]
 \maketitle

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-03-21 21:40:49 UTC (rev 58590)
+++ trunk/Master/texmf-dist/source/latex/easybook/easybook.dtx	2021-03-21 21:41:03 UTC (rev 58591)
@@ -51,7 +51,7 @@
 %
 % \changes{v1.20}{2021/01/09}{修改和完善用户文档。}
 % \changes{v1.20}{2021/01/09}{模板更改为使用 CC-BY 许可协议。}
-% \changes{v1.23v}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
+% \changes{v1.23x}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
 %
 % \CheckSum{0}
 %
@@ -73,7 +73,7 @@
 %
 % \title{\sffamily easybook书籍文档类}
 % \author{瞿毅}
-% \date{2021/03/19\hskip\ccwd\relax v1.23v\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/03/21\hskip\ccwd\relax v1.23x\thanks{\url{https://gitee.com/texl3/easybook}}}
 % \maketitle
 % \begin{abstract}
 %   \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -164,7 +164,7 @@
 %   class = <(book)|article>
 % \end{syntax}
 % 设置文类风格,默认为 \opt{book} 文档类。选用 \opt{article} 使文档编号、结构等与 \cls{article} 文档类的特性相似,可用于短篇幅的文章,不要再使用 \tn{chapter} 命令,此时设置双栏目录的 \opt{style/multoc} 选项、小节 \ref{subsec:document command} 中打印目录命令的 \opt{multoc} 及 \opt{book} 选项均会失效,会以 \opt{section} 标题级别输出目录。
-% \changes{v1.23v}{2021/03/16}{增加 article 文章模式,可用于短篇幅的文章。}
+% \changes{v1.23x}{2021/03/16}{增加 article 文章模式,可用于短篇幅的文章。}
 % \end{function}
 %
 % \subsection{文档命令}
@@ -180,7 +180,7 @@
 %   \tn{listoflistings*}\oarg{键值列表}
 % \end{syntax}
 % \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从1开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。\tn{listoffigures} 命令输出图片目录,\tn{listoftables} 命令输出表格目录,\tn{listoflistings} 命令输出代码目录。带有星号的目录命令不会添加进主文档目录中,目录的键值列表选项如下
-% \changes{v1.23v}{2021/02/20}{重新定义文档结构划分命令。}
+% \changes{v1.23x}{2021/02/20}{重新定义文档结构划分命令。}
 % \end{function}
 %
 % \begin{function}{multoc,book,article}
@@ -188,7 +188,7 @@
 %   multoc = <true|(false)>
 % \end{syntax}
 % \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
-% \changes{v1.23v}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
+% \changes{v1.23x}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
 % \end{function}
 %
 % \section{接口选项}
@@ -225,9 +225,9 @@
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{style/...}
 % \changes{v1.10}{2021/01/08}{更改颜色实现方式与选项名。}
-% \changes{v1.23v}{2021/02/02}{noto风格的数学字体独立出来,可自定义设置。}
-% \changes{v1.23v}{2021/02/09}{增加控制页面横线粗细的选项。}
-% \changes{v1.23v}{2021/03/15}{增加控制编号连接符的选项。}
+% \changes{v1.23x}{2021/02/02}{noto风格的数学字体独立出来,可自定义设置。}
+% \changes{v1.23x}{2021/02/09}{增加控制页面横线粗细的选项。}
+% \changes{v1.23x}{2021/03/15}{增加控制编号连接符的选项。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -289,7 +289,7 @@
 % \ding{229} 以上选项路径为 \opt{spread/...} \\
 % 行距因子用于设置各种行距倍数,只能是浮点数,不能带有长度单位。\tn{ctexset} 原有的行距选项 \opt{linespread} 失效。各行距既可在导言区全局设置也可正文中设置对后面生效,行距的意义为
 % \changes{v1.21}{2021/01/12}{增加脚注线间的距离选项。}
-% \changes{v1.23v}{2021/02/09}{取消使用 \pkg{zhlineskip} 宏包设置数学间距。}
+% \changes{v1.23x}{2021/02/09}{取消使用 \pkg{zhlineskip} 宏包设置数学间距。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -311,7 +311,7 @@
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{elsefont/...}
 % \changes{v1.10}{2021/01/08}{加入自定义非正文字体选项。}
-% \changes{v1.23v}{2021/02/08}{修复使用 \tn{zihao} 命令设置字体失效的问题。}
+% \changes{v1.23x}{2021/02/08}{修复使用 \tn{zihao} 命令设置字体失效的问题。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -332,7 +332,7 @@
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{bibset/...}
 % \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
-% \changes{v1.23v}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
+% \changes{v1.23x}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -394,7 +394,7 @@
 %   \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名}
 % \end{syntax}
 % 文档类已预置8个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这两个命令。
-% \changes{v1.23v}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
+% \changes{v1.23x}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -423,16 +423,20 @@
 % \end{ctexexam}
 %
 % \subsection{页面边距}
-% \begin{function}[EXP,added = 2021-01-13]{left,top,hmargin,textwidth,includehead}
+% \begin{function}[EXP,added = 2021-01-13,updated = 2021-03-21]{footnotemargin,footparskip,footparindent,list-labelsep,left,top,hmargin,textwidth,includehead}
 % \begin{syntax}
-%   left = <长度>
-%   top = <长度>
+%   footnotemargin = <脚注首行缩进|(0.5\tn{ccwd})>
+%   footparskip = <脚注段落间距|(0ex)>
+%   footparindent = <脚注分段缩进|(2\tn{ccwd})>
+%   list-labelsep = <索引目录编号与标题的间距|(\tn{ccwd})>
+%   left = <页面左边距>
+%   top = <页面上边距>
 %   hmargin = \marg{左边距,右边距}
-%   textwidth = <长度>
+%   textwidth = <页面文本区宽度>
 %   includehead = <true|(false)>
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{geoset/...} \\
-% \opt{geoset} 将选项交给 \pkg{geometry} 宏包接口命令 \tn{geometry} 处理,并且选项的键值列表与之相同,上面的选项仅是一小部分,支持的参数可查阅宏包帮助文档。当在此设置页面大小时,会覆盖 \opt{paper} 选项的设置。
+% \opt{geoset} 会将前4个选项以外的其它选项交给 \pkg{geometry} 宏包接口命令 \tn{geometry} 处理,并且选项的键值列表与之相同,上面的选项仅是一小部分,支持的参数可查阅宏包帮助文档。当在此设置页面大小时,会覆盖 \opt{paper} 选项的设置。
 % \begin{ctexexam}
 %   \ctexset
 %     {
@@ -441,7 +445,8 @@
 %           top = 2.5cm,
 %           bottom = 2.5cm,
 %           left = 3.2cm,
-%           right = 3.2cm
+%           right = 3.2cm,
+%           list-labelsep = \hspace{0.5\ccwd}
 %         }
 %     }
 % \end{ctexexam}
@@ -462,8 +467,8 @@
 % \opt{hdrset} 设置的命令由 \pkg{fancyhdr} 宏包提供支持,\opt{headrule}、\opt{footrule} 和 \opt{footnoterule} 三个横线选项一般可以使用 \tn{hrule} width \meta{长度} height \meta{高度} 命令来绘制,脚注横线默认为空。当然,手动绘制横线时线条粗细选项 \opt{style/rulewidth} 会失效。
 % \changes{v1.21}{2021/01/11}{修复单面文档时页眉横线消失的问题。}
 % \changes{v1.21}{2021/01/13}{增加配置页眉页脚的选项。}
-% \changes{v1.23v}{2021/03/08}{优化页眉页脚设置,增加 \opt{chap-mark} 和 \opt{sec-mark} 选项。}
-% \changes{v1.23v}{2021/03/14}{可以手动绘制页眉、页脚和脚注的横线。}
+% \changes{v1.23x}{2021/03/08}{优化页眉页脚设置,增加 \opt{chap-mark} 和 \opt{sec-mark} 选项。}
+% \changes{v1.23x}{2021/03/14}{可以手动绘制页眉、页脚和脚注的横线。}
 % \end{function}
 %
 % \begin{function}[added = 2021-01-13,updated = 2021-03-14]{,\easyhead,\easyfoot}
@@ -510,7 +515,7 @@
 %   belowoffset = <(0pc)>
 %   belowoffset = <(-1pc)>
 % \end{syntax}
-% \opt{lolskip} 是代码目录中章之间的代码标题的距离,使用刚性间距,与\CTeX 的 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。\opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{lists} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{lists/lolskip(0.8pc) + lists/format/addvspace(0.2pc) + lists/belowoffset(0pc) = belowoffset(-1pc)}。
+% \opt{lolskip} 是代码目录中章之间的代码标题的距离,与\CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。\opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{lists} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{lists/lolskip(0.8pc) + lists/format/addvspace(0.2pc) + lists/belowoffset(0pc) = belowoffset(-1pc)}。
 % \end{function}
 %
 % \begin{function}[added = 2021-01-13,updated = 2021-01-15]{\tocrule}
@@ -540,7 +545,7 @@
 % \begin{function}[added = 2021-01-05]{equation,multline,gather,align}
 % \begin{syntax}
 %   \tn{begin}\marg{环境名}
-%   \tn{item} <行间公式>
+%   <行间公式>
 %   \tn{end}\marg{环境名}
 % \end{syntax}
 % \pkg{amsmath} 宏包提供了一系列数学环境,它们可以排布各种对齐或不对齐的公式组。\env{multline} 环境用于一行无法放下的长公式,\env{gather} 环境用于每行居中的公式组,\env{align} 环境用于多列对齐的公式组。
@@ -599,7 +604,7 @@
 % \begin{center}
 %   \begin{tabular}{*{8}{c}}
 %     \toprule
-%     theorem & definition & lemma & corollary & proposition & example & remark & prooof \\
+%     theorem & definition & lemma & corollary & proposition & example & remark & proof \\
 %     定理 & 定义 & 引理 & 推论& 性质 & 例 & 注 & 证明 \\
 %     \bottomrule
 %   \end{tabular}
@@ -621,7 +626,7 @@
 %     \item 习题内容
 %   \end{exercise}
 % \end{ctexexam}
-% \changes{v1.23v}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
+% \changes{v1.23x}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
 % \end{function}
 %
 % \subsection{盒子}
@@ -780,7 +785,7 @@
 %<*class>
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/03/19}{1.23v}{}
+\ProvidesExplClass{easybook}{2021/03/21}{1.23x}{beta}
 
 \cs_generate_variant:Nn \keys_define:nn {nx}
 \cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -901,6 +906,15 @@
     withpart          .bool_set:N = \l__chap_withpart_bool,
     withpart          .default:n = true,
     withpart          .initial:n = false,
+    notomath          .bool_set:N = \l__notomath_bool,
+    notomath          .default:n = true,
+    notomath          .initial:n = true,
+    rulewidth         .dim_set:N = \l__rule_width_dim,
+    rulewidth         .initial:n = 0.75pt,
+    uppercase         .bool_set:N = \l__uppercase_bool,
+    uppercase         .default:n = true,
+    uppercase         .initial:n = true,
+
     footwith          .choice:,
     footwith          .value_required:n = true,
     footwith/part     .code:n =
@@ -909,14 +923,7 @@
       {\tl_set:Nn \l__foot_numberwith_tl{#1}},
     footwith/chapter  .code:n = {},
     footwith          .initial:n = chapter,
-    notomath          .bool_set:N = \l__notomath_bool,
-    notomath          .default:n = true,
-    notomath          .initial:n = true,
-    rulewidth         .dim_set:N = \l__rule_width_dim,
-    rulewidth         .initial:n = 0.75pt,
-    uppercase         .bool_set:N = \l__uppercase_bool,
-    uppercase         .default:n = true,
-    uppercase         .initial:n = true,
+
     figure-sep        .tl_set:N = \l__figure_separator_tl,
     table-sep         .tl_set:N = \l__table_separator_tl,
     listing-sep       .tl_set:N = \l__lstlisting_separator_tl,
@@ -951,6 +958,28 @@
     \tl_if_empty:NF \g__config_tl{\file_input:n {\g__config_tl}}
   }
 
+\cs_new_protected:Npn \__ifpackage_later:nn #1#2
+  {
+    \@ifpackagelater{#1}{#2}
+      {}{\msg_warning:nnn {easybook}{package-old}{#1}}
+  }
+\msg_new:nnn {easybook}{package-old}
+  {
+    Package~#1~has~been~out~of~date. \\
+    Some~problems~or~errors~may~occur \\
+    if~you~continue~compiling. \\\\
+    Please~update~your~macro~package~from~CTAN.
+  }
+\clist_map_inline:nn
+  {
+    {expl3}{2020/10/27},
+    {xparse}{2020/10/27},
+    {l3keys2e}{2020/10/27},
+    {ctex}{2020/10/19},
+    {thmtools}{2020/08/01},
+    {caption-light}{2020/08/24}
+  }{\__ifpackage_later:nn #1}
+
 \sys_if_engine_xetex:TF
   {
     \cs_new_eq:NN \__set_family:nnn  \xeCJK_set_family:nnn
@@ -1055,7 +1084,15 @@
 \clist_new:N \g__geometry_clist
 \__ctex_define:nn {geoset}
   {
-    unknown .code:n =
+    footnotemargin  .dim_set:N = \footnotemargin,
+    footnotemargin  .initial:n = 0.5\ccwd,
+    footparskip     .tl_set:N = \hangfootparskip,
+    footparskip     .initial:n = 0ex,
+    footparindent   .tl_set:N = \hangfootparindent,
+    footparindent   .initial:n = 2\ccwd,
+    list-labelsep   .dim_set:N = \list at labelsep,
+    list-labelsep   .initial:n = \ccwd,
+    unknown         .code:n =
       {
         \clist_gput_right:Nx \g__geometry_clist
           {
@@ -1232,7 +1269,7 @@
     lists/indent      .initial:n = 0\ccwd,
     lists/rule        .tl_set:N = \l__toc_lists_rule_tl,
     lists/rule        .initial:n = \tocrule{$\cdot$},
-    lists/lolskip     .dim_set:N = \l__toc_lolskip_dim,
+    lists/lolskip     .skip_set:N = \l__toc_lolskip_skip,
     lists/lolskip     .initial:n = 0.8pc,
     lists/belowoffset .dim_set:N = \l__toc_listsoffset_dim,
     lists/belowoffset .initial:n = 0pc,
@@ -1266,7 +1303,7 @@
   }{\__titlecontents_set:nn #1}
 \ctex_patch_cmd:Nnn \caption@@@addcontentsline
   {\addcontentsline{#1}{#2}{\protect\numberline{#3}{#4}}}
-  {\addcontentsline{#1}{#2}{#3\hspace{\ccwd}#4}}
+  {\addcontentsline{#1}{#2}{#3\hspace{\list at labelsep}#4}}
 \ctex_patch_cmd:Nnn \lst at MakeCaption
   {
     \addcontentsline{lol}{lstlisting}
@@ -1273,13 +1310,28 @@
       {\protect\numberline{\thelstlisting}\lst@@caption}
   }{
     \addcontentsline{lol}{lstlisting}
-      {\thelstlisting\hspace{\ccwd}\lst@@caption}
+      {\thelstlisting\hspace{\list at labelsep}\lst@@caption}
   }
 \__appto_cmd:Nn \@chapter
   {
-    \addtocontents{lol}
-      {\protect\addvspace{\dim_use:N \l__toc_lolskip_dim}}
+    \skip_if_eq:nnF {\l__toc_lolskip_skip}{\c_zero_skip}
+      {
+        \addtocontents{lol}
+          {\protect\addvspace{\skip_use:N \l__toc_lolskip_skip}}
+      }
+    \bool_if:NF \l__class_book_bool
+      {\msg_error:nn {easybook}{no-chapter}}
   }
+\__appto_cmd:Nn \@schapter
+  {
+    \bool_if:NF \l__class_book_bool
+      {\msg_error:nn {easybook}{no-chapter}}
+  }
+\msg_new:nnn {easybook}{no-chapter}
+  {
+    Your~document~class~is~in~article~mode. \\
+    The~\string\chapter\space~command~will~not~be~used.
+  }
 
 \cs_new_protected:Npn \__markboth:n #1
   {
@@ -1361,7 +1413,7 @@
 \RenewDocumentCommand{\tableofcontents}{o}
   {
     \group_begin:
-    \IfValueT {#1}{\keys_set:nn {listoc}{#1}}
+    \IfValueT{#1}{\keys_set:nn {listoc}{#1}}
     \__ifmultoc_pre_set:
     \__title_mark:n {\contentsname}
     \vspace*{\dim_use:N \l__toc_offset_dim}
@@ -1372,9 +1424,9 @@
 \RenewDocumentCommand{\listoffigures}{so}
   {
     \group_begin:
-    \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+    \IfValueT{#2}{\keys_set:nn {listoc}{#2}}
     \__ifmultoc_pre_set:
-    \IfBooleanTF {#1}
+    \IfBooleanTF{#1}
       {\__title_mark:n {\listfigurename}}
       {\__title_mark_intoc:n {\listfigurename}}
     \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
@@ -1386,9 +1438,9 @@
 \RenewDocumentCommand{\listoftables}{so}
   {
     \group_begin:
-    \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+    \IfValueT{#2}{\keys_set:nn {listoc}{#2}}
     \__ifmultoc_pre_set:
-    \IfBooleanTF {#1}
+    \IfBooleanTF{#1}
       {\__title_mark:n {\listtablename}}
       {\__title_mark_intoc:n {\listtablename}}
     \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
@@ -1400,9 +1452,9 @@
 \NewDocumentCommand{\listoflistings}{so}
   {
     \group_begin:
-    \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+    \IfValueT{#2}{\keys_set:nn {listoc}{#2}}
     \__ifmultoc_pre_set:
-    \IfBooleanTF {#1}
+    \IfBooleanTF{#1}
       {\__title_mark:n {\lstlistlistingname}}
       {\__title_mark_intoc:n {\lstlistlistingname}}
     \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
@@ -1522,9 +1574,20 @@
       }
   }
 \AtBeginEnvironment{tabularx}
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}\selectfont\ignorespaces}
+  {
+    \exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}
+    \selectfont\ignorespaces
+  }
 \AtBeginEnvironment{tabular}
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}\selectfont\ignorespaces}
+  {
+    \exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}
+    \selectfont\ignorespaces
+  }
+\ctex_after_end_preamble:n
+  {
+    \exp_args:Nx \linespread{\fp_use:N \l__spread_line_fp}
+    \selectfont\ignorespaces
+  }
 
 \fp_new:N \l__spread_line_fp
 \fp_new:N \l__spread_table_fp
@@ -1559,8 +1622,6 @@
 \cs_gset:Npn \topfraction{0.85}
 \cs_gset:Npn \bottomfraction{0.65}
 \cs_gset:Npn \floatpagefraction{0.60}
-\ctex_after_end_preamble:n
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_line_fp}\selectfont}
 
 \newcolumntype{L}{X}
 \newcolumntype{C}{>{\centering\arraybackslash}X}
@@ -1756,6 +1817,7 @@
 
 \ctex_at_end_package:nn {tcolorbox}
   {
+    \__ifpackage_later:nn {tcolorbox}{2020/10/09}
     \tcbset
       {
         thmsty/.style =
@@ -1935,11 +1997,11 @@
     \NewDocumentCommand{\printbibliography}{so}
       {
         \group_begin:
-        \IfValueT {##2}{\keys_set:nn {listoc}{##2}}
+        \IfValueT{##2}{\keys_set:nn {listoc}{##2}}
         \__ifmultoc_pre_set:
         \cs_set:Npn \bibsection
           {
-            \IfBooleanTF {##1}
+            \IfBooleanTF{##1}
               {\__title_mark:n {\bibname}}
               {\__title_mark_intoc:n {\bibname}}
           }
@@ -1987,15 +2049,11 @@
 
 \ctex_at_end_preamble:n
   {
-    \skip_set:Nn \footnotemargin{0.5\ccwd}
     \group_begin:
     \footnotesize
     \exp_args:Nx \linespread{\fp_use:N \l__spread_footnote_fp}\selectfont
     \skip_gset:Nn \footnotesep{\ht\strutbox}
     \group_end:
-    \cs_gset:Npn \hangfootparskip{0ex}
-    \bool_if:NT \l__lang_chinese_bool
-      {\cs_gset:Npn \hangfootparindent{2\ccwd}}
     \bool_if:NT \l__chap_withpart_bool
       {\counterwithin*{chapter}{part}}
     \tl_if_eq:NnT \l__foot_numberwith_tl{part}

Modified: trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-03-21 21:40:49 UTC (rev 58590)
+++ trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-03-21 21:41:03 UTC (rev 58591)
@@ -13,7 +13,7 @@
 %%   https://creativecommons.org/licenses/by/4.0/legalcode
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/03/19}{1.23v}{}
+\ProvidesExplClass{easybook}{2021/03/21}{1.23x}{beta}
 
 \cs_generate_variant:Nn \keys_define:nn {nx}
 \cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -134,6 +134,15 @@
     withpart          .bool_set:N = \l__chap_withpart_bool,
     withpart          .default:n = true,
     withpart          .initial:n = false,
+    notomath          .bool_set:N = \l__notomath_bool,
+    notomath          .default:n = true,
+    notomath          .initial:n = true,
+    rulewidth         .dim_set:N = \l__rule_width_dim,
+    rulewidth         .initial:n = 0.75pt,
+    uppercase         .bool_set:N = \l__uppercase_bool,
+    uppercase         .default:n = true,
+    uppercase         .initial:n = true,
+
     footwith          .choice:,
     footwith          .value_required:n = true,
     footwith/part     .code:n =
@@ -142,14 +151,7 @@
       {\tl_set:Nn \l__foot_numberwith_tl{#1}},
     footwith/chapter  .code:n = {},
     footwith          .initial:n = chapter,
-    notomath          .bool_set:N = \l__notomath_bool,
-    notomath          .default:n = true,
-    notomath          .initial:n = true,
-    rulewidth         .dim_set:N = \l__rule_width_dim,
-    rulewidth         .initial:n = 0.75pt,
-    uppercase         .bool_set:N = \l__uppercase_bool,
-    uppercase         .default:n = true,
-    uppercase         .initial:n = true,
+
     figure-sep        .tl_set:N = \l__figure_separator_tl,
     table-sep         .tl_set:N = \l__table_separator_tl,
     listing-sep       .tl_set:N = \l__lstlisting_separator_tl,
@@ -184,6 +186,28 @@
     \tl_if_empty:NF \g__config_tl{\file_input:n {\g__config_tl}}
   }
 
+\cs_new_protected:Npn \__ifpackage_later:nn #1#2
+  {
+    \@ifpackagelater{#1}{#2}
+      {}{\msg_warning:nnn {easybook}{package-old}{#1}}
+  }
+\msg_new:nnn {easybook}{package-old}
+  {
+    Package~#1~has~been~out~of~date. \\
+    Some~problems~or~errors~may~occur \\
+    if~you~continue~compiling. \\\\
+    Please~update~your~macro~package~from~CTAN.
+  }
+\clist_map_inline:nn
+  {
+    {expl3}{2020/10/27},
+    {xparse}{2020/10/27},
+    {l3keys2e}{2020/10/27},
+    {ctex}{2020/10/19},
+    {thmtools}{2020/08/01},
+    {caption-light}{2020/08/24}
+  }{\__ifpackage_later:nn #1}
+
 \sys_if_engine_xetex:TF
   {
     \cs_new_eq:NN \__set_family:nnn  \xeCJK_set_family:nnn
@@ -288,7 +312,15 @@
 \clist_new:N \g__geometry_clist
 \__ctex_define:nn {geoset}
   {
-    unknown .code:n =
+    footnotemargin  .dim_set:N = \footnotemargin,
+    footnotemargin  .initial:n = 0.5\ccwd,
+    footparskip     .tl_set:N = \hangfootparskip,
+    footparskip     .initial:n = 0ex,
+    footparindent   .tl_set:N = \hangfootparindent,
+    footparindent   .initial:n = 2\ccwd,
+    list-labelsep   .dim_set:N = \list at labelsep,
+    list-labelsep   .initial:n = \ccwd,
+    unknown         .code:n =
       {
         \clist_gput_right:Nx \g__geometry_clist
           {
@@ -465,7 +497,7 @@
     lists/indent      .initial:n = 0\ccwd,
     lists/rule        .tl_set:N = \l__toc_lists_rule_tl,
     lists/rule        .initial:n = \tocrule{$\cdot$},
-    lists/lolskip     .dim_set:N = \l__toc_lolskip_dim,
+    lists/lolskip     .skip_set:N = \l__toc_lolskip_skip,
     lists/lolskip     .initial:n = 0.8pc,
     lists/belowoffset .dim_set:N = \l__toc_listsoffset_dim,
     lists/belowoffset .initial:n = 0pc,
@@ -499,7 +531,7 @@
   }{\__titlecontents_set:nn #1}
 \ctex_patch_cmd:Nnn \caption@@@addcontentsline
   {\addcontentsline{#1}{#2}{\protect\numberline{#3}{#4}}}
-  {\addcontentsline{#1}{#2}{#3\hspace{\ccwd}#4}}
+  {\addcontentsline{#1}{#2}{#3\hspace{\list at labelsep}#4}}
 \ctex_patch_cmd:Nnn \lst at MakeCaption
   {
     \addcontentsline{lol}{lstlisting}
@@ -506,13 +538,28 @@
       {\protect\numberline{\thelstlisting}\lst@@caption}
   }{
     \addcontentsline{lol}{lstlisting}
-      {\thelstlisting\hspace{\ccwd}\lst@@caption}
+      {\thelstlisting\hspace{\list at labelsep}\lst@@caption}
   }
 \__appto_cmd:Nn \@chapter
   {
-    \addtocontents{lol}
-      {\protect\addvspace{\dim_use:N \l__toc_lolskip_dim}}
+    \skip_if_eq:nnF {\l__toc_lolskip_skip}{\c_zero_skip}
+      {
+        \addtocontents{lol}
+          {\protect\addvspace{\skip_use:N \l__toc_lolskip_skip}}
+      }
+    \bool_if:NF \l__class_book_bool
+      {\msg_error:nn {easybook}{no-chapter}}
   }
+\__appto_cmd:Nn \@schapter
+  {
+    \bool_if:NF \l__class_book_bool
+      {\msg_error:nn {easybook}{no-chapter}}
+  }
+\msg_new:nnn {easybook}{no-chapter}
+  {
+    Your~document~class~is~in~article~mode. \\
+    The~\string\chapter\space~command~will~not~be~used.
+  }
 
 \cs_new_protected:Npn \__markboth:n #1
   {
@@ -594,7 +641,7 @@
 \RenewDocumentCommand{\tableofcontents}{o}
   {
     \group_begin:
-    \IfValueT {#1}{\keys_set:nn {listoc}{#1}}
+    \IfValueT{#1}{\keys_set:nn {listoc}{#1}}
     \__ifmultoc_pre_set:
     \__title_mark:n {\contentsname}
     \vspace*{\dim_use:N \l__toc_offset_dim}
@@ -605,9 +652,9 @@
 \RenewDocumentCommand{\listoffigures}{so}
   {
     \group_begin:
-    \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+    \IfValueT{#2}{\keys_set:nn {listoc}{#2}}
     \__ifmultoc_pre_set:
-    \IfBooleanTF {#1}
+    \IfBooleanTF{#1}
       {\__title_mark:n {\listfigurename}}
       {\__title_mark_intoc:n {\listfigurename}}
     \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
@@ -619,9 +666,9 @@
 \RenewDocumentCommand{\listoftables}{so}
   {
     \group_begin:
-    \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+    \IfValueT{#2}{\keys_set:nn {listoc}{#2}}
     \__ifmultoc_pre_set:
-    \IfBooleanTF {#1}
+    \IfBooleanTF{#1}
       {\__title_mark:n {\listtablename}}
       {\__title_mark_intoc:n {\listtablename}}
     \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
@@ -633,9 +680,9 @@
 \NewDocumentCommand{\listoflistings}{so}
   {
     \group_begin:
-    \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+    \IfValueT{#2}{\keys_set:nn {listoc}{#2}}
     \__ifmultoc_pre_set:
-    \IfBooleanTF {#1}
+    \IfBooleanTF{#1}
       {\__title_mark:n {\lstlistlistingname}}
       {\__title_mark_intoc:n {\lstlistlistingname}}
     \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
@@ -755,9 +802,20 @@
       }
   }
 \AtBeginEnvironment{tabularx}
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}\selectfont\ignorespaces}
+  {
+    \exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}
+    \selectfont\ignorespaces
+  }
 \AtBeginEnvironment{tabular}
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}\selectfont\ignorespaces}
+  {
+    \exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}
+    \selectfont\ignorespaces
+  }
+\ctex_after_end_preamble:n
+  {
+    \exp_args:Nx \linespread{\fp_use:N \l__spread_line_fp}
+    \selectfont\ignorespaces
+  }
 
 \fp_new:N \l__spread_line_fp
 \fp_new:N \l__spread_table_fp
@@ -792,8 +850,6 @@
 \cs_gset:Npn \topfraction{0.85}
 \cs_gset:Npn \bottomfraction{0.65}
 \cs_gset:Npn \floatpagefraction{0.60}
-\ctex_after_end_preamble:n
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_line_fp}\selectfont}
 
 \newcolumntype{L}{X}
 \newcolumntype{C}{>{\centering\arraybackslash}X}
@@ -989,6 +1045,7 @@
 
 \ctex_at_end_package:nn {tcolorbox}
   {
+    \__ifpackage_later:nn {tcolorbox}{2020/10/09}
     \tcbset
       {
         thmsty/.style =
@@ -1168,11 +1225,11 @@
     \NewDocumentCommand{\printbibliography}{so}
       {
         \group_begin:
-        \IfValueT {##2}{\keys_set:nn {listoc}{##2}}
+        \IfValueT{##2}{\keys_set:nn {listoc}{##2}}
         \__ifmultoc_pre_set:
         \cs_set:Npn \bibsection
           {
-            \IfBooleanTF {##1}
+            \IfBooleanTF{##1}
               {\__title_mark:n {\bibname}}
               {\__title_mark_intoc:n {\bibname}}
           }
@@ -1220,15 +1277,11 @@
 
 \ctex_at_end_preamble:n
   {
-    \skip_set:Nn \footnotemargin{0.5\ccwd}
     \group_begin:
     \footnotesize
     \exp_args:Nx \linespread{\fp_use:N \l__spread_footnote_fp}\selectfont
     \skip_gset:Nn \footnotesep{\ht\strutbox}
     \group_end:
-    \cs_gset:Npn \hangfootparskip{0ex}
-    \bool_if:NT \l__lang_chinese_bool
-      {\cs_gset:Npn \hangfootparindent{2\ccwd}}
     \bool_if:NT \l__chap_withpart_bool
       {\counterwithin*{chapter}{part}}
     \tl_if_eq:NnT \l__foot_numberwith_tl{part}



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