texlive[59794] Master/texmf-dist: easybook (1jul21)

commits+karl at tug.org commits+karl at tug.org
Thu Jul 1 23:35:55 CEST 2021


Revision: 59794
          http://tug.org/svn/texlive?view=revision&revision=59794
Author:   karl
Date:     2021-07-01 23:35:55 +0200 (Thu, 01 Jul 2021)
Log Message:
-----------
easybook (1jul21)

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/easybase.sty
    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-07-01 21:35:36 UTC (rev 59793)
+++ trunk/Master/texmf-dist/source/latex/easybook/easybook.dtx	2021-07-01 21:35:55 UTC (rev 59794)
@@ -28,7 +28,7 @@
 %
 % \title{\sffamily easybook 文档类手册}
 % \author{瞿毅}
-% \date{2021/06/30\hskip\ccwd\relax v1.26n\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/07/01\hskip\ccwd\relax v1.26o\thanks{\url{https://gitee.com/texl3/easybook}}}
 %
 % \maketitle
 % \begin{abstract}
@@ -40,7 +40,8 @@
 % 使用 \cls{easybook} 文档类编写文档前您可能需要满足以下的条件:
 % \begin{itemize}
 %   \item 使用 \hologo{XeLaTeX}(推荐)或 \hologo{LuaLaTeX} 两种编译方式。
-%   \item 由于用到了一些 \LaTeX 和宏包较新的功能,建议安装最新的 \TeX 发行版,例如 \TeX Live 2021或 \hologo{MiKTeX} 21.2之后的版本。
+%   \item 由于用到了一些 \LaTeX 和宏包较新的功能,建议安装最新的 \TeX 发行版,例如 \TeX Live 2021 或 \hologo{MiKTeX} 21.2 之后的版本。
+%   \item 虽然手册对基本用法做了介绍,但这并不是入门教程,您应当具有一定的 \LaTeX 使用基础。
 % \end{itemize}
 %
 % \subsection{基本用法}
@@ -139,7 +140,7 @@
 %
 % \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
 % \begin{syntax}
-%   paper = <(a4paper)|b5paper|letterpaper|...>
+%   paper = <(a4paper)|b5paper|c5paper|letterpaper|...>
 % \end{syntax}
 % 设置页面大小,交给 \pkg{geometry} 宏包处理,可使用它支持的所有规格。建议选项 \opt{b5paper} 和 \opt{zihao = 5},选项 \opt{a4paper} 和 \opt{zihao = -4} 配合。
 % \end{function}
@@ -157,7 +158,7 @@
 %   floatpage = <true|(false)>
 % \end{syntax}
 % 开启这个选项后浮动环境 \env{table} 和 \env{figure} 的比例参数会使用默认值,关闭它则尽可能避免出现浮动页,使图表环境与正文段落更加紧凑,减少多余的空白版面。
-% \changes{v1.26n}{2021/06/15}{增加浮动环境比例参数选项 \opt{floatpage}。}
+% \changes{v1.26o}{2021/06/15}{增加浮动环境比例参数选项 \opt{floatpage}。}
 % \end{function}
 %
 % \subsection{article 模式}
@@ -179,7 +180,7 @@
 %   \tn{backmatter}
 %   \tn{cleardoublepage}\oarg{页面风格|(empty)}
 % \end{syntax}
-% \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用清双页命令 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从1开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。在奇数页使用命令 \tn{cleardoublepage} 时可选参数为下一页多出的空白偶数页的页面风格,默认为 \opt{empty} 即空的页眉页脚。
+% \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用清双页命令 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从 1 开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。在奇数页使用命令 \tn{cleardoublepage} 时可选参数为下一页多出的空白偶数页的页面风格,默认为 \opt{empty} 即空的页眉页脚。
 % \changes{v1.23}{2021/02/20}{重新定义文档结构划分命令。}
 % \end{function}
 %
@@ -191,7 +192,7 @@
 %   \tn{listoftables*+}\oarg{键值列表}
 %   \tn{listoflstlistings*+}\oarg{键值列表}
 % \end{syntax}
-% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflstlistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 的+号含义则是输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入目录样式和换页等命令。可选参数的 \meta{键值列表} 如下:
+% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflstlistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有 + 号的目录命令可以使当前标题编号。\tn{tableofcontents+} 的 + 号含义则是输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入目录样式和换页等命令。可选参数的 \meta{键值列表} 如下:
 % \changes{v1.25}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
 % \end{function}
 %
@@ -239,7 +240,7 @@
 %   \tn{EBeforeAddBitoc*}\marg{加入目录英文标题前的代码}
 % \end{syntax}
 % \tn{appendix} 命令后的章节标题变为附录形式。英文目录中附录标题的格式用可选参数修改,英文附录目录前名字默认为 Appendix\tn{space},后名字默认为空,名字之间用一个半角逗号分开,也可以只有一部分,表示英文附录目录前名字。英文附录目录数字输出命令默认为 \tn{Alph}\{chapter\}。
-% \changes{v1.26n}{2021/06/13}{增加调整英文目录格式的钩子 \tn{EBeforeAddBitoc}。}
+% \changes{v1.26o}{2021/06/13}{增加调整英文目录格式的钩子 \tn{EBeforeAddBitoc}。}
 % \end{function}
 %
 % \tn{EBeforeAddBitoc} 是一个作用于局部范围的英文目录钩子,可以插入标题或目录设置的命令改变英文目录中标题的显示格式,也可以覆盖上述的目录前后名字和编号等设置,带有星号的命令会重置之前的代码,放置在导言区或 \tn{bichapter} 等命令前生效。
@@ -254,10 +255,10 @@
 %   \          \oarg{水平偏移}\parg{下标代码}
 % \end{syntax}
 % 上标和下标的功能来自 \pkg{spbmark} 宏包,\tn{super}、\tn{sub} 和 \tn{supersub} 三个命令可以用于输出上标和下标。它们根据当前处于文本模式还是数学模式来匹配相应的模式,或者可以使用它们的星号变体命令来强制使用数学模式。也可以使用键值列表对偏移量进行全局设置,详情见小节 \ref{subsec:style}。
-% \changes{v1.26n}{2021/06/28}{增加可以调整相对位置和格式的上标和下标命令 \tn{super}、\tn{sub} 和 \tn{supersub}。}
+% \changes{v1.26o}{2021/06/28}{增加可以调整相对位置和格式的上标和下标命令 \tn{super}、\tn{sub} 和 \tn{supersub}。}
 % \end{function}
 %
-% 垂直和水平偏移默认值都是0 pt,\meta{对齐方式} 的参数与 \opt{supersubalign} 相同。\meta{格式代码} 用于格式化上标和下标,可以插入字体或颜色等命令。代码中的最后一个命令可以接受一个为上标或下标的参数。\tn{textsuperscript} 和 \tn{textsubscript} 命令已被重新定义并且分别等价于 \tn{super} 和 \tn{sub},如果您需要使用它们的原始定义创建新命令,则可以使用 \tn{spb at textsuperscript@save} 和 \tn{spb at textsubscript@save} 命令。
+% 垂直和水平偏移默认值都是 0 pt,\meta{对齐方式} 的参数与 \opt{supersubalign} 相同。\meta{格式代码} 用于格式化上标和下标,可以插入字体或颜色等命令。代码中的最后一个命令可以接受一个为上标或下标的参数。\tn{textsuperscript} 和 \tn{textsubscript} 命令已被重新定义并且分别等价于 \tn{super} 和 \tn{sub},如果您需要使用它们的原始定义创建新命令,则可以使用 \tn{spb at textsuperscript@save} 和 \tn{spb at textsubscript@save} 命令。
 %
 % \section{接口选项}
 % \label{sec:interface options}
@@ -313,10 +314,10 @@
 %     主题颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改,类似地更改超链接颜色见小节 \ref{subsec:hyperlinks}。
 %     \changes{v1.10}{2021/01/08}{可以自定义主题颜色。}
 %     \end{function}
-%   \item[color-all] 统一设置主题的各部分颜色,参数是6个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
+%   \item[color-all] 统一设置主题的各部分颜色,参数是 6 个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
 %   \item[multoc] 开启多栏目录,与节 \ref{sec:document command} 中目录命令的同名选项有相同效果。
 %   \item[withpart] 使章跟随每一部分编号,默认不跟随。
-%   \item[footwith] 使脚注跟随编号的计数器,默认跟随章,当开启新的一章时脚注编号从1开始。
+%   \item[footwith] 使脚注跟随编号的计数器,默认跟随章,当开启新的一章时脚注编号从 1 开始。
 %   \item[rulewidth] 调整页眉、定理盒子以及代码框线条的粗细。
 %   \item[uppercase] 使用 \tn{rightmark} 及 \tn{leftmark} 获取标题内容设置页眉页脚时英文是否大小写。
 %   \item[figure-sep] 图片标题编号的连接符。
@@ -367,7 +368,7 @@
 %     超链接颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改。
 %     \changes{v1.10}{2021/01/08}{可以自定义超链接颜色。}
 %     \end{function}
-%   \item[linkcol-all] 统一设置超链接的各部分颜色,参数是6个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
+%   \item[linkcol-all] 统一设置超链接的各部分颜色,参数是 6 个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
 %   \item[linktoc] 将目录中的超链接取消、置于标题上、置于页码上或置于标题和页码上。
 % \end{optdesc}
 %
@@ -441,7 +442,7 @@
 %
 % \begin{optdesc}
 %   \item[backend] 参考文献处理后端,默认用传统的 \hologo{BibTeX} 处理参考文献。
-%   \item[bib-style] 参考文献格式为中国的参考文献推荐标准GB/T 7714-2015,有顺序编码制和著者-出版年制两种风格,理工科类一般使用顺序编码制,文科类一般使用著者-出版年制。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \opt{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg{biblatex} 宏包支持的参考文献风格名称。
+%   \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[datafile] 参考文献数据库的文件名,可以是单个文件也可以是以括号包裹并以英文逗号分隔的文件列表,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,若不在当前文件夹名称需要包含路径。只有设置数据库的文件名才会载入 \pkg{natbib} 或 \pkg{biblatex} 宏包,之后才可使用相关配置命令,否则需要手动载入相关宏包配置参考文献。
 % \end{optdesc}
@@ -469,7 +470,7 @@
 %
 % \subsection{定理样式}
 % \label{subsec:theorem of style}
-% \begin{function}[EXP,added = 2021-01-12,updated = 2021-06-16]{thmbox,within,headpunct,bodyfont,notefont,headfont,headindent,spaceabove,spacebelow,spacepost,headformat}
+% \begin{function}[EXP,added = 2021-01-12,updated = 2021-07-01]{thmbox,within,headpunct,bodyfont,notefont,headfont,headindent,spaceabove,spacebelow,spacepost,headformat,brackets}
 % \begin{syntax}
 %   thmbox = <true|(false)>
 %   within = <(chapter)|section|其它环境|空置>
@@ -482,9 +483,11 @@
 %   spacebelow = <弹性长度|(0.75ex plus .1ex)>
 %   spacepost = <刚性长度|(\tn{ccwd})>
 %   headformat = <(\tn{NAME}\tn{space}\tn{NUMBER}\tn{NOTE})>
+%   brackets = \{<左括号>,<右括号>\}
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{thmset/...}
 % \changes{v1.21}{2021/01/12}{增加配置定理环境样式的选项。}
+% \changes{v1.26o}{2021/07/01}{增加配置公式标签括号选项 \opt{brackets}。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -499,6 +502,7 @@
 %   \item[spacebelow] 定理环境后的间距。
 %   \item[spacepost] 定理标题后与第一段内容的间隔。
 %   \item[headformat] 定理开头部分各组成元素的排列和格式,这个选项一般不需要使用,其中 \tn{NAME}、\tn{NUMBER} 和 \tn{NOTE} 分别代表标题、编号和题注。
+%   \item[brackets] 设置行间公式编号标签的括号,以英文逗号分隔,分别为左右括号。
 % \end{optdesc}
 %
 % \begin{function}[added = 2021-01-12,updated = 2021-06-15]{\declaretheorem,\EBNewTheorem,\declaretheoremstyle}
@@ -507,10 +511,10 @@
 %   \tn{EBNewTheorem}\marg{定理环境名}\oarg{英文标题}\marg{中文标题}\parg{盒子样式|(tc-theorem)}\oarg{键值列表}
 %   \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名}
 % \end{syntax}
-% 文档类已预置8个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这两个命令,由 \pkg{thmtools} 提供支持,用法与它的同名命令一致。
+% 文档类已预置 8 个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这两个命令,由 \pkg{thmtools} 提供支持,用法与它的同名命令一致。
 % \changes{v1.23}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
 % \changes{v1.24}{2021/04/25}{增加定义定理环境命令 \tn{EBNewTheorem}。}
-% \changes{v1.26n}{2021/06/15}{定义新定理环境的命令调整为 \tn{declaretheorem}。}
+% \changes{v1.26o}{2021/06/15}{定义新定理环境的命令调整为 \tn{declaretheorem}。}
 % \end{function}
 %
 % \begin{optdesc}
@@ -616,10 +620,10 @@
 %   \tn{markrule}\oarg{长度|(\tn{textwidth})}\parg{颜色名}\marg{线宽|(0.75pt)}[<上间距>+<下间距>]
 % \end{syntax}
 % 命令 \tn{easyhead} 和 \tn{easyfoot} 的使用方法与 \tn{fancyhead} 和 \tn{fancyfoot} 完全相同,它们需要在 \opt{head-foot} 选项中使用,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中E、O代表偶数、奇数,L、C、R代表左、中、右部分。单面打印时,含有偶数的选项无效。
-% \changes{v1.26n}{2021/06/14}{增加页眉页脚的横线绘制命令 \tn{markrule}。}
+% \changes{v1.26o}{2021/06/14}{增加页眉页脚的横线绘制命令 \tn{markrule}。}
 % \end{function}
 %
-% 命令 \tn{markrule} 用于绘制页眉页脚横线,长度默认为页面文本区的宽度,上下间距为横线与上下方部件的间距,带有长度单位,间距长度之间用+号分开,若只有一部分则表示上间距,这个命令也可以在正文中绘制横线。下面举一个设置页眉内容的例子:
+% 命令 \tn{markrule} 用于绘制页眉页脚横线,长度默认为页面文本区的宽度,上下间距为横线与上下方部件的间距,带有长度单位,间距长度之间用 + 号分开,若只有一部分则表示上间距,这个命令也可以在正文中绘制横线。下面举一个设置页眉内容的例子:
 % \begin{ctexexam}
 %   \hdrset
 %     {
@@ -646,7 +650,7 @@
 %   afterfnmark = <脚注标记后的代码>
 % \end{syntax}
 % \ding{229} 以上选项路径为 \opt{hdrset/...} \\
-% 上面几个选项用于设置脚注格式,\opt{fnparskip} 和 \opt{fnparindent} 选项仅在 \opt{fnhang = true} 时有效。\opt{fnhang} 用于将脚注设置为悬挂缩进的格式,\opt{fnmark-pos} 选项设置脚注编号的位置,正常文本或是上标形式。\opt{fnmark-num} 选项设置脚注编号的格式,默认为原生样式 \opt{plain},还可以改为 \opt{pifont} 的各个版本,从左往右依次为普通版、阴文衬线版、阳文无衬线版和阴文无衬线版,缺点是它们的编号仅包括1-10。
+% 上面几个选项用于设置脚注格式,\opt{fnparskip} 和 \opt{fnparindent} 选项仅在 \opt{fnhang = true} 时有效。\opt{fnhang} 用于将脚注设置为悬挂缩进的格式,\opt{fnmark-pos} 选项设置脚注编号的位置,正常文本或是上标形式。\opt{fnmark-num} 选项设置脚注编号的格式,默认为原生样式 \opt{plain},还可以改为 \opt{pifont} 的各个版本,从左往右依次为普通版、阴文衬线版、阳文无衬线版和阴文无衬线版,缺点是它们的编号仅包括 1-10。
 % \changes{v1.25}{2021/05/12}{增加脚注样式设置选项。}
 % \end{function}
 %
@@ -715,7 +719,7 @@
 % \end{function}
 %
 % \begin{optdesc}
-%   \item[lolskip] \opt{lolskip} 是代码目录中章之间的代码标题的距离,与 \CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 article 模式中此选项失效。
+%   \item[lolskip] \opt{lolskip} 是代码目录中章之间的代码标题的距离,与 \CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认 0.8 pc,在 article 模式中此选项失效。
 %   \item[belowoffset] \opt{belowoffset} 选项为主文档目录标题下方的间距补偿,一般为负值,用于抵消 \opt{format} 中额外的垂直间距。\opt{(level)} 中的 \opt{belowoffset} 与之意义类似,代表 figure、table 和 lstlisting 三个级别,也可以使用 \opt{list} 统一设置,一般为正值。
 %   \item[tocline] 目录标签整体使用 \opt{tocline} 设置,在图表标签的参数中 \#1 代表编号,代码标签中则是 \tn{thelstlisting} 代表编号,标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。下面举个设置标签的例子:
 %   \begin{ctexexam}
@@ -722,7 +726,7 @@
 %   \tocset
 %     {
 %       hang        = false,
-%       tocline-fig = 图#1\hspace{\ccwd},
+%       tocline-fig = 图 #1\hspace{\ccwd},
 %       tocline-lst = 代码\thelstlisting\hspace{\ccwd}
 %     }
 %   \end{ctexexam}
@@ -824,7 +828,7 @@
 %   \  \tn{item} <习题内容>
 %   \tn{end}\marg{exercise}
 % \end{syntax}
-% 习题环境 \env{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号参数时不进行编号,使用+号参数独立编号并启用 \pkg{tcolorbox} 支持生成标题,并使 \opt{color} 生效。第三个 \meta{键值列表} 的选项与小节 \ref{subsec:sort list} 排序列表相同,\opt{number} 的编号格式也是如此。第一个 \meta{键值列表} 中包含的选项如下:
+% 习题环境 \env{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号参数时不进行编号,使用 + 号参数独立编号并启用 \pkg{tcolorbox} 支持生成标题,并使 \opt{color} 生效。第三个 \meta{键值列表} 的选项与小节 \ref{subsec:sort list} 排序列表相同,\opt{number} 的编号格式也是如此。第一个 \meta{键值列表} 中包含的选项如下:
 % \changes{v1.23}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
 % \end{function}
 %
@@ -835,7 +839,7 @@
 %   number = <习题编号格式|(1.)>
 %   numsep = <编号与标题的间距|(0.5\tn{ccwd})>
 % \end{syntax}
-% 第二个 \meta{键值列表} 在是否使用+号参数时用法不同,使用+号参数时为 \pkg{tcolorbox} 的盒子选项,例如 \opt{boxrule} 和 \opt{fontupper}。不使用+号参数时相当于设置 \tn{ctexset}\{section = {\#1}\} 键值选项列表,例如 \opt{format} 和 \opt{beforeskip}。另外还可以使用 \tn{exerprologue} 命令在习题环境开始前插入一段内容,可以是文本或者代码,需要在每一个习题环境前使用。
+% 第二个 \meta{键值列表} 在是否使用 + 号参数时用法不同,使用 + 号参数时为 \pkg{tcolorbox} 的盒子选项,例如 \opt{boxrule} 和 \opt{fontupper}。不使用 + 号参数时相当于设置 \tn{ctexset}\{section = {\#1}\} 键值选项列表,例如 \opt{format} 和 \opt{beforeskip}。另外还可以使用 \tn{exerprologue} 命令在习题环境开始前插入一段内容,可以是文本或者代码,需要在每一个习题环境前使用。
 % \end{function}
 %
 % \begin{ctexexam}
@@ -936,6 +940,26 @@
 %   \qtyrange[unit-color = green]{1.5}{4}{kg}
 % \end{ctexexam}
 %
+% \subsection{计数器}
+% \begin{function}[added = 2021-06-30]{\newcounter,\EBUseCounter}
+% \begin{syntax}
+%   \tn{newcounter}\marg{计数器}\oarg{父计数器}
+%   \tn{EBUseCounter*}\oarg{父计数器}\parg{编号|(arabic)}\marg{计数器}\marg{内容}\oarg{分隔符|(.)}\parg{数值}
+% \end{syntax}
+% \tn{newcounter} 是 \LaTeX 自带的创建计数器命令,\tn{EBUseCounter} 将会以一定的格式使用由它创建的计数器,将会以 \tn{the}\meta{父计数器}\meta{分隔符}\tn{the}\meta{计数器}\meta{内容} 输出当前内容。
+% \changes{v1.26o}{2021/06/30}{增加计数器使用命令 \tn{EBUseCounter}。}
+% \end{function}
+%
+% 需要注意的是 \tn{EBUseCounter} 仅具有 \textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加 1,带有星号的命令使 \meta{计数器} 保持当前值,\meta{编号} 为 arabic 和 alpha 等格式,\meta{数值} 可以手动将 \meta{计数器} 设为指定值。
+%
+% 在一定的场合下可能用到 \tn{EBUseCounter} 命令,比如通过新建快捷命令在一些位置使用定理环境的计数器,使用 \tn{labelformat} 设置计数器的引用标签需添加 eb@:
+% \begin{ctexexam}
+%   \labelformat{eb at theorem}{定理 #1}
+%   \newcommand{\theoremhead}[1]
+%     {定理 \EBUseCounter[chapter]{theorem}{\hspace{\ccwd}#1}}
+%   \theoremhead{定理标题}\label{thm:theorem}
+% \end{ctexexam}
+%
 % \subsection{化学式}
 % \begin{function}[added = 2021-01-05]{\ch,\chemfig}
 % \begin{syntax}
@@ -1015,24 +1039,6 @@
 % 该环境由 \pkg{setspace} 提供,可以指定环境内段落的行距,使用浮点数控制行距倍数。
 % \end{function}
 %
-% \subsection{计数器}
-% \begin{function}[added = 2021-06-30]{\newcounter,\EBUseCounter}
-% \begin{syntax}
-%   \tn{newcounter}\marg{计数器}\oarg{父计数器}
-%   \tn{EBUseCounter*}\oarg{父计数器的值}\parg{编号|(arabic)}\marg{计数器}\marg{内容}\oarg{分隔符|(.)}
-% \end{syntax}
-% \tn{newcounter} 是 \LaTeX 自带的创建计数器命令,\tn{EBUseCounter} 将会以一定的格式使用由它创建的计数器,将会以 \tn{the}\meta{父计数器}\meta{分隔符}\meta{计数器}\meta{内容} 输出当前内容。带有星号的命令不会使计数器的值增加,所以可以使用当前 \tn{the}\meta{计数器} 的值,\meta{编号} 为 arabic 和 alpha 等格式。
-% \changes{v1.26n}{2021/06/30}{增加计数器使用命令 \tn{EBUseCounter}。}
-% \end{function}
-%
-% 在一定的场合下可能用到 \tn{EBUseCounter} 命令,比如通过新建快捷命令在一些位置使用定理环境的计数器,使用 \tn{labelformat} 设置它的引用标签前缀需添加 eb@:
-% \begin{ctexexam}
-%   \labelformat{eb at theorem}{定理#1}
-%   \newcommand{\theoremhead}[1]
-%     {定理\space\EBUseCounter[chapter]{theorem}{#1}}
-%   \theoremhead{定理标题}\label{thm:theorem}
-% \end{ctexexam}
-%
 % \subsection{下划线}
 % \begin{function}[added = 2021-04-03]{\uline,\uuline,\uwave}
 % \begin{syntax}
@@ -1128,7 +1134,7 @@
 %<*class>
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/06/30}{1.26n}
+\ProvidesExplClass{easybook}{2021/07/01}{1.26o}
   {Typeset Chinese books or notes}
 
 \bool_set_false:N \l__eb_compile_draft_bool
@@ -1376,7 +1382,7 @@
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2021/06/30}{1.26n}
+\ProvidesExplPackage{easybase}{2021/07/01}{1.26o}
   {Typeset Chinese books or notes}
 
 \cs_generate_variant:Nn \eb_ctex_define:nn { nx }
@@ -1828,20 +1834,11 @@
     \dim_set:Nn \footnotesep { \dim_use:N \box_ht:N \strutbox }
     \bool_if:NT \l__eb_chap_counter_withpart_bool
       { \counterwithin*{chapter}{part} }
-    \str_case:VnF \l__eb_foot_counter_parent_choice_tl
+    \str_case:Vn \l__eb_foot_counter_parent_choice_tl
       {
-        { part } { \use_i:nn }
-        { page } { \use_ii:nn }
+        { part } { \counterwithin*{footnote}{part} }
+        { page } { \counterwithin*{footnote}{page} }
       }
-      { \use_none:nn }
-      {
-        \counterwithout*{footnote}{chapter}
-        \counterwithin*{footnote}{part}
-      }
-      {
-        \counterwithout*{footnote}{chapter}
-        \counterwithin*{footnote}{page}
-      }
     \bool_if:NTF \l__eb_footnote_hang_bool
       { \booltrue{FN at hangfoot} }
       { \boolfalse{FN at hangfoot} }
@@ -2106,21 +2103,26 @@
 \newcounter{bichapter}
 \newcounter{bisection}[bichapter]
 \newcounter{bisubsection}[bisection]
-\NewDocumentCommand{\EBUseCounter}{soD(){arabic}mmO{.}}
+\cs_set_protected:Npn \eb_current_label:n #1
   {
+    \tl_set:Nx \@currentlabel
+      {
+        \use:c { p@#1 }
+        \tl_use:c { the#1 }
+      }
+  }
+\NewDocumentCommand{\EBUseCounter}{soD(){arabic}mmO{.}d()}
+  {
     \IfBooleanF{#1}{\stepcounter{#4}}
-    \tl_set:cn { eb at the#4 }
+    \IfValueT{#7}{\setcounter{#4}{#7}}
+    \tl_set:cn { theeb@#4 }
       {
         \IfValueT{#2}{\use:c { the#2 }#6}
         \use:c {#3}{#4}\space #5
       }
-    \tl_use:c { eb at the#4 }
-    \tl_remove_once:cn { eb at the#4 } {#5}
-    \tl_set:Nx \@currentlabel
-      {
-        \use:c { p at eb@#4 }
-        \use:c { eb at the#4 }
-      }
+    \tl_use:c { theeb@#4 }
+    \tl_remove_once:cn { theeb@#4 } {#5}
+    \eb_current_label:n { eb@#4 }
   }
 \cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@#1 } }
 \cs_new:Npn \eb_section_counter_prefix:n #1
@@ -2161,8 +2163,7 @@
     \def\CTEX at thechapter{\CTEX at bichapter@number}
     \def\CTEX at postchapter{\CTEX at postbichapter}
     \eb at before@addbitoc at hook
-    \addcontentsline{tec}{#1}
-      {\use:c { CTEX@#1 at tocline }{#1}{#2}}
+    \addcontentsline{tec}{#1}{\use:c { CTEX@#1 at tocline }{#1}{#2}}
     \group_end:
   }
 \seq_const_from_clist:Nn \c__eb_bitoc_title_level_seq
@@ -2626,7 +2627,6 @@
 \RenewDocumentCommand{\declaretheorem}{O{}m}
   {\AfterPreamble{\eb at declare@theorem at save[#1]{#2}}}
 \cs_set_eq:NN \newtheorem \declaretheorem
-
 \prop_new:N \l__eb_thmtools_entry_prop
 \clist_const:Nn \c__eb_thmtools_entry_clist
   {
@@ -2646,11 +2646,31 @@
 \l__eb_thmtools_entry_prop \c__eb_thmtools_entry_clist
 \prop_map_inline:Nn \l__eb_thmtools_entry_prop
   { \eb_ctex_define:nn { thmset } { #1 .tl_set:N = #2 } }
+\NewDocumentCommand{\eb_assign_tag_brackets:n}
+  {>{\SplitArgument{1}{,}}m}
+  {\eb_assign_tag_brackets_pos:nn #1}
+\cs_new_protected:Npn \eb_assign_tag_brackets_pos:nn #1#2
+  {
+    \tl_set:Nn \eb at tag@brackets at left {#1}
+    \tl_set:Nn \eb at tag@brackets at right {#2}
+  }
+\cs_gset:Npn \tagform@ #1
+  {
+    \maketag@@@
+      {
+        \color{ctex at emph}
+        \eb at tag@brackets at left
+        \ignorespaces #1\unskip\@@italiccorr
+        \eb at tag@brackets at right
+      }
+  }
 \eb_ctex_define:nn { thmset }
   {
     thmbox .bool_set:N  = \l__eb_thmbox_bool,
     thmbox .default:n   = true,
-    thmbox .initial:n   = false
+    thmbox .initial:n   = false,
+    brackets .code:n    = \eb_assign_tag_brackets:n {#1},
+    brackets .initial:n = { (,) }
   }
 \ctex_set:nn { thmset }
   {
@@ -2731,8 +2751,6 @@
     \skip_set:Nn \abovedisplayshortskip { 0pt }
     \skip_set:Nn \belowdisplayshortskip { 5pt plus 1pt minus 1pt }
   }
-\cs_gset:Npn \tagform@ #1
-  { \maketag@@@{\color{ctex at emph}(\ignorespaces #1\unskip\@@italiccorr)} }
 \ctex_at_end_package:nn { unicode-math }
   { \msg_redirect_module:nnn { unicode-math } { warning } { info } }
 
@@ -2744,7 +2762,7 @@
     number .initial:n = { 1. },
     title .tl_set:N   = \eb at tc@exercise at title,
     title .initial:n  = \c__eb_name_exercise_tl,
-    numsep .dim_set:N = \eb at tc@exercise at numsep,
+    numsep .dim_set:N = \eb at toc@exercise at numsep,
     numsep .initial:n = 0.5\ccwd
   }
 \ctex_at_end_package:nn { tcolorbox }
@@ -2787,6 +2805,11 @@
     \newtcbox[auto~counter]{\eb at tc@exercise at box}[1]{tc-exercise,#1}
     \tl_new:N \eb at tc@list at prologue
     \cs_new:Npn \exerprologue #1 { \tl_gset:Nn \eb at tc@list at prologue {#1} }
+    \cs_new:Npn \eb_tcb_toc_counter_numsep:n #1
+      {
+        \thetcbcounter
+        \hspace{\use:c { eb at toc@#1 at numsep }}
+      }
     \NewDocumentEnvironment{outline}{O{}D(){\abstractname}o+b}
       {
         \begin{tcolorbox}[tc-outline,title = #2,IfValueT = {#3}{#3}]
@@ -2809,19 +2832,21 @@
                     {
                       \markright
                         {
-                          \thetcbcounter
-                          \hspace{\eb at tc@exercise at numsep}
+                          \eb_tcb_toc_counter_numsep:n { exercise }
                           \eb at tc@exercise at title
                         }
                       \addcontentsline{toc}{section}
                         {
-                          \thetcbcounter
-                          \hspace{\eb at toc@section at numsep}
+                          \eb_tcb_toc_counter_numsep:n { section }
                           \eb at tc@exercise at title
                         }
                     }
               }{
-                \IfBooleanF{#1}{\thetcbcounter\hspace{\eb at tc@exercise at numsep}}
+                \IfBooleanF{#1}
+                  {
+                    \eb_tcb_toc_counter_numsep:n { exercise }
+                    \eb_current_label:n { tcbcounter }
+                  }
                 \eb at tc@exercise at title
               }
           }{

Modified: trunk/Master/texmf-dist/tex/latex/easybook/easybase.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/easybook/easybase.sty	2021-07-01 21:35:36 UTC (rev 59793)
+++ trunk/Master/texmf-dist/tex/latex/easybook/easybase.sty	2021-07-01 21:35:55 UTC (rev 59794)
@@ -13,7 +13,7 @@
 %%   https://creativecommons.org/licenses/by/4.0/legalcode
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2021/06/30}{1.26n}
+\ProvidesExplPackage{easybase}{2021/07/01}{1.26o}
   {Typeset Chinese books or notes}
 
 \cs_generate_variant:Nn \eb_ctex_define:nn { nx }
@@ -465,20 +465,11 @@
     \dim_set:Nn \footnotesep { \dim_use:N \box_ht:N \strutbox }
     \bool_if:NT \l__eb_chap_counter_withpart_bool
       { \counterwithin*{chapter}{part} }
-    \str_case:VnF \l__eb_foot_counter_parent_choice_tl
+    \str_case:Vn \l__eb_foot_counter_parent_choice_tl
       {
-        { part } { \use_i:nn }
-        { page } { \use_ii:nn }
+        { part } { \counterwithin*{footnote}{part} }
+        { page } { \counterwithin*{footnote}{page} }
       }
-      { \use_none:nn }
-      {
-        \counterwithout*{footnote}{chapter}
-        \counterwithin*{footnote}{part}
-      }
-      {
-        \counterwithout*{footnote}{chapter}
-        \counterwithin*{footnote}{page}
-      }
     \bool_if:NTF \l__eb_footnote_hang_bool
       { \booltrue{FN at hangfoot} }
       { \boolfalse{FN at hangfoot} }
@@ -743,21 +734,26 @@
 \newcounter{bichapter}
 \newcounter{bisection}[bichapter]
 \newcounter{bisubsection}[bisection]
-\NewDocumentCommand{\EBUseCounter}{soD(){arabic}mmO{.}}
+\cs_set_protected:Npn \eb_current_label:n #1
   {
+    \tl_set:Nx \@currentlabel
+      {
+        \use:c { p@#1 }
+        \tl_use:c { the#1 }
+      }
+  }
+\NewDocumentCommand{\EBUseCounter}{soD(){arabic}mmO{.}d()}
+  {
     \IfBooleanF{#1}{\stepcounter{#4}}
-    \tl_set:cn { eb at the#4 }
+    \IfValueT{#7}{\setcounter{#4}{#7}}
+    \tl_set:cn { theeb@#4 }
       {
         \IfValueT{#2}{\use:c { the#2 }#6}
         \use:c {#3}{#4}\space #5
       }
-    \tl_use:c { eb at the#4 }
-    \tl_remove_once:cn { eb at the#4 } {#5}
-    \tl_set:Nx \@currentlabel
-      {
-        \use:c { p at eb@#4 }
-        \use:c { eb at the#4 }
-      }
+    \tl_use:c { theeb@#4 }
+    \tl_remove_once:cn { theeb@#4 } {#5}
+    \eb_current_label:n { eb@#4 }
   }
 \cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@#1 } }
 \cs_new:Npn \eb_section_counter_prefix:n #1
@@ -798,8 +794,7 @@
     \def\CTEX at thechapter{\CTEX at bichapter@number}
     \def\CTEX at postchapter{\CTEX at postbichapter}
     \eb at before@addbitoc at hook
-    \addcontentsline{tec}{#1}
-      {\use:c { CTEX@#1 at tocline }{#1}{#2}}
+    \addcontentsline{tec}{#1}{\use:c { CTEX@#1 at tocline }{#1}{#2}}
     \group_end:
   }
 \seq_const_from_clist:Nn \c__eb_bitoc_title_level_seq
@@ -1263,7 +1258,6 @@
 \RenewDocumentCommand{\declaretheorem}{O{}m}
   {\AfterPreamble{\eb at declare@theorem at save[#1]{#2}}}
 \cs_set_eq:NN \newtheorem \declaretheorem
-
 \prop_new:N \l__eb_thmtools_entry_prop
 \clist_const:Nn \c__eb_thmtools_entry_clist
   {
@@ -1283,11 +1277,31 @@
 \l__eb_thmtools_entry_prop \c__eb_thmtools_entry_clist
 \prop_map_inline:Nn \l__eb_thmtools_entry_prop
   { \eb_ctex_define:nn { thmset } { #1 .tl_set:N = #2 } }
+\NewDocumentCommand{\eb_assign_tag_brackets:n}
+  {>{\SplitArgument{1}{,}}m}
+  {\eb_assign_tag_brackets_pos:nn #1}
+\cs_new_protected:Npn \eb_assign_tag_brackets_pos:nn #1#2
+  {
+    \tl_set:Nn \eb at tag@brackets at left {#1}
+    \tl_set:Nn \eb at tag@brackets at right {#2}
+  }
+\cs_gset:Npn \tagform@ #1
+  {
+    \maketag@@@
+      {
+        \color{ctex at emph}
+        \eb at tag@brackets at left
+        \ignorespaces #1\unskip\@@italiccorr
+        \eb at tag@brackets at right
+      }
+  }
 \eb_ctex_define:nn { thmset }
   {
     thmbox .bool_set:N  = \l__eb_thmbox_bool,
     thmbox .default:n   = true,
-    thmbox .initial:n   = false
+    thmbox .initial:n   = false,
+    brackets .code:n    = \eb_assign_tag_brackets:n {#1},
+    brackets .initial:n = { (,) }
   }
 \ctex_set:nn { thmset }
   {
@@ -1368,8 +1382,6 @@
     \skip_set:Nn \abovedisplayshortskip { 0pt }
     \skip_set:Nn \belowdisplayshortskip { 5pt plus 1pt minus 1pt }
   }
-\cs_gset:Npn \tagform@ #1
-  { \maketag@@@{\color{ctex at emph}(\ignorespaces #1\unskip\@@italiccorr)} }
 \ctex_at_end_package:nn { unicode-math }
   { \msg_redirect_module:nnn { unicode-math } { warning } { info } }
 
@@ -1381,7 +1393,7 @@
     number .initial:n = { 1. },
     title .tl_set:N   = \eb at tc@exercise at title,
     title .initial:n  = \c__eb_name_exercise_tl,
-    numsep .dim_set:N = \eb at tc@exercise at numsep,
+    numsep .dim_set:N = \eb at toc@exercise at numsep,
     numsep .initial:n = 0.5\ccwd
   }
 \ctex_at_end_package:nn { tcolorbox }
@@ -1424,6 +1436,11 @@
     \newtcbox[auto~counter]{\eb at tc@exercise at box}[1]{tc-exercise,#1}
     \tl_new:N \eb at tc@list at prologue
     \cs_new:Npn \exerprologue #1 { \tl_gset:Nn \eb at tc@list at prologue {#1} }
+    \cs_new:Npn \eb_tcb_toc_counter_numsep:n #1
+      {
+        \thetcbcounter
+        \hspace{\use:c { eb at toc@#1 at numsep }}
+      }
     \NewDocumentEnvironment{outline}{O{}D(){\abstractname}o+b}
       {
         \begin{tcolorbox}[tc-outline,title = #2,IfValueT = {#3}{#3}]
@@ -1446,19 +1463,21 @@
                     {
                       \markright
                         {
-                          \thetcbcounter
-                          \hspace{\eb at tc@exercise at numsep}
+                          \eb_tcb_toc_counter_numsep:n { exercise }
                           \eb at tc@exercise at title
                         }
                       \addcontentsline{toc}{section}
                         {
-                          \thetcbcounter
-                          \hspace{\eb at toc@section at numsep}
+                          \eb_tcb_toc_counter_numsep:n { section }
                           \eb at tc@exercise at title
                         }
                     }
               }{
-                \IfBooleanF{#1}{\thetcbcounter\hspace{\eb at tc@exercise at numsep}}
+                \IfBooleanF{#1}
+                  {
+                    \eb_tcb_toc_counter_numsep:n { exercise }
+                    \eb_current_label:n { tcbcounter }
+                  }
                 \eb at tc@exercise at title
               }
           }{

Modified: trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-07-01 21:35:36 UTC (rev 59793)
+++ trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-07-01 21:35:55 UTC (rev 59794)
@@ -13,7 +13,7 @@
 %%   https://creativecommons.org/licenses/by/4.0/legalcode
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
 \RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/06/30}{1.26n}
+\ProvidesExplClass{easybook}{2021/07/01}{1.26o}
   {Typeset Chinese books or notes}
 
 \bool_set_false:N \l__eb_compile_draft_bool



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