From e11a34ebeb96a1e568cc937df3b614062ddb0adf Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 19 Feb 2024 03:01:14 +0000
Subject: CTAN sync 202402190301

---
 macros/latex/contrib/easybook/easybook.tex | 59 +++++++++++++++++++++++-------
 1 file changed, 46 insertions(+), 13 deletions(-)

(limited to 'macros/latex/contrib/easybook/easybook.tex')

diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 3a725ee03c..92848347f4 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -5,7 +5,7 @@
 \usepackage
   {
     enumitem,newtxmath,indentfirst,tabularray,
-    fancyvrb,geometry,hologo,pifont,changelog
+    fancyvrb,geometry,hologo,pifont,changelog,calc
   }
 \definecolorscheme{blue}
   {
@@ -23,8 +23,8 @@
     name            = easybook,
     color-scheme    = blue,
     title           = EASYBOOK使用手册,
-    version         = v2024ad,
-    date            = 2024/02/16,
+    version         = v2024ae,
+    date            = 2024/02/18,
     authors         = 瞿毅,
     info            = 简便地排版中文学位论文或书籍,
     email           = toquyi@163.com,
@@ -61,6 +61,7 @@
 \ExplSyntaxOn\makeatletter
 % * Do not add entries to the index
 % - Leave the option value blank
+\let\isvalue\cnltx@isvalue
 \NewDocumentCommand{\kvsplit}{st-mm}
   {
     \item\code
@@ -112,6 +113,12 @@
     \IfBooleanF{#1}{\cnltx@checkdefault{\hfill\newline}}
   }
 \newnote{\newtag}[1][New]{\fbox{#1}}
+% Multi-row values alignment when there are many choices
+\newcommand{\leftfillchoice}[2]
+  {
+    \hspace*{\widthof{\option*{#1}}+\widthof{\code{\cnltx@isvalue}}-1em}
+    \code{\choices{#2}}
+  }
 % Use a separate module margin marker to prevent overlap
 \newcommand{\smodule}[1]{\cnltx@module@text*{\normalsize #1}}
 \newcommand{\noitemsep}{\setlength{\itemsep}{0ex}}
@@ -308,7 +315,8 @@
 \end{options}
 
 \begin{options}
-  \keychoice{mathfont}{\fbox{times},noto,notosans,nc,stix2,charter,ebgaramond,libertine,none}\dtag
+  \keychoice{mathfont}{\fbox{times},noto,notosans,nc,ncf,stix2,charter,ebgaramond,libertine}\dtag
+  \leftfillchoice{mathfont}{minion,garamondx,baskervaldx,baskerville,none} \\
   选择合适的数学字体，将会加载 \pkg*{newtxmath} 和 \pkg*{bm} 宏包。使用选项 \code{none} 时可以使用 \pkg*{unicode-math} 等其它数学字体宏包定义字体。
 \end{options}
 
@@ -454,8 +462,8 @@
   \keyval{line}{数值}
   正文行距因子。行距因子初始值为 \code{1.354}（相当于 \textsf{Word} 的1.25倍行距），如果设置了文类或 \pkg*{ctex} 宏包的全局行距选项 \option*{linespread} 则初始值设为它的值。
   \keyval{table}{数值}\Default{1.354}
-  表格内容行距因子。对传统表格 \env{tabular} 和 \env{tabularx} 等环境以及 \pkg*{tabularray} 宏包的 \env{tblr} 环境生效，同时 \env{tblr} 也自带有 \option*{stretch} 选项设置行距系数。
-  \keyval{math}{数值}\Default{1.354}
+  表格内容行距因子，对传统表格 \env{tabular} 和 \env{tabularx} 等环境生效。\pkg*{tabularray} 宏包的 \env{tblr} 环境自带 \option*{stretch} 和 \option*{rowsep} 等行间距选项，这里不做调整。
+  \keyval{math}{数值}\Default{1.2}
   数学环境的行距因子，包含了 \pkg*{amsmath} 和 \pkg*{mathtools} 宏包提供的公式环境。
   \keyval{caption-figure}{数值}\Default{1.2}
   图片题注的行距因子。
@@ -473,6 +481,10 @@
   \end{ctexexam}
   \keyval{every}{数值}
   统一设置上述所有的行距因子。
+  \keyval{abovedisplayskip}{弹性长度}\Default{0.5ex plus .1ex minus .1ex}\newtag%
+  行间公式与上面正文间的额外距离。
+  \keyval{belowdisplayskip}{弹性长度}\Default{0.5ex plus .1ex minus .1ex}\newtag%
+  行间公式与下面正文间的额外距离。
 \end{options}
 
 \subsection[其它字体]{其它字体\smodule{subfont}}
@@ -880,7 +892,7 @@
   \keyval{lolskip}{弹性长度}\Default{10pt}
   代码目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似，在 \cls*{article} 模式中此选项失效。
   \keyval{between}{代码钩子}\dtag[\textcolor{red}{\ding{73}}]
-  目录标题与条目内容间的钩子（作用于标题下方间距之后），一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。除了条目名的键路径外，此选项也可用于 \module*{tocset} 路径中，表示章节标题目录标题代码钩子。
+  目录标题与条目内容间的钩子（作用于标题下方间距之后），如果是 \cls*{book} 模式则默认插入 \code{-10pt} 垂直距离抵消首行目录的额外垂直间距，这是由于图表和 由 \pkg*{newfloat} 宏包所创建环境的目录默认每使用一次章标题在题注目录中插入 \code{10pt} 距离。除了条目名的键路径外，此选项也可用于 \module*{tocset} 路径中，表示章节标题目录标题代码钩子，如果是 \cls*{book} 模式则默认插入 \code{-1pc} 垂直距离。
   \keyval{bibetween}{代码钩子}
   与选项 \option{between} 类似，是英文章节标题目录（如果启用）标题代码钩子。
   \keychoice{dotalign}{\fbox{true},false}
@@ -919,7 +931,7 @@
   \begin{options}
   \keychoice{plan}{\fbox{cn},bi,both}\newtag[Exp]%
   章节标题目录的输出方案。\code{cn} 只输出中文目录，\code{bi} 只输出英文目录。\code{both} 同时连续输出中文和英文目录，需要与双语目录标题命令 \cs{bichapter} 等或双语标题选项 \option{title} 配合使用。
-  \keyval{bicontentsname}{英文目录标题}\Default{Contents}\newtag%
+  \keyval{bicontentsname}{英文目录标题}\Default{Contents}
   英文目录的标题，为通用接口命令 \cs*{ctexset} 的选项。
   \end{options}
   \command{listoffigures}[\sarg\oarg{键值列表}]
@@ -929,9 +941,13 @@
   \command{listoflstlistings}[\sarg\oarg{键值列表}]
   输出代码目录命令。带有星号参数的命令不输出目录标题。
 
-  如果需要部分而不是全文的目录或其它类型的目录，可以查看 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录，可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能，其中 \meta{键值列表} 的选项如下：
+  如果需要部分而不是全文的目录或其它类型的目录，可以查看 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录，可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能，也提供了配置命令 \cs{SetTocOuter} 在目录命令外设置选项默认值。
+  \begin{commands}
+  \command{SetTocOuter}[\marg{键值列表}]\newtag%
+  统一设置上述所有目录可选参数的默认值\footnote{由于目录命令通常只在文中使用一次，因此不设计为可以分别指定不同目录的参数。}，其中 \meta{键值列表} 的选项如下：
+  \end{commands}
   \begin{options}
-  \keyval{level}{标题命令}\newtag%
+  \keyval{level}{标题命令}
   设定输出目录标题的命令。如果使用 \option{title} 选项设置了双语标题则需要配合双语标题命令。
   \begin{ctexexam}
   \tableofcontents[level = \chapter*]
@@ -942,7 +958,20 @@
   \kvsplit{title}{中文目录标题,英文目录标题}
   用于更改目录的双语标题。标题之间用一个英文逗号分开，对主目录来说前部分为中文目录标题，后部分为英文目录标题，对图表和代码目录来说后部分则是加入英文目录的条目。也可以只有一部分，表示中文目录的标题。
   \keychoice{bilist}{mix,\fbox{new}}
-  确定章节标题目录中双语标题条目的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出，\code{new} 则在新建的英文目录中输出英文标题。
+  确定章节标题目录中双语标题条目的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出，\code{new} 则在新建的英文目录中输出英文标题。这是个全局选项，在所有目录的可选参数中使用均可生效，但推荐在章节标题目录中使用。
+  \begin{commands}
+  \command{ebifbitoc}[\marg{英文目录代码}\marg{中文目录代码}]\newtag%
+  启用混合双语目录条目即 \keyis{bilist}{mix} 时，在设置目录样式时可以配合 \cs{ebifbitoc} 命令判断当前条目是否为英文，从而输出不同的代码。
+  \begin{ctexexam}
+  \SetTocStyle{section}{fancy}
+    {
+      tocformat = \ebifbitoc{\color{red}}{\small},
+      tocindent = \ebifbitoc{1em}{2em}
+    }
+  \UseTocStyle{section}{fancy}{toc}
+  \tableofcontents[bilist = mix]
+  \end{ctexexam}
+  \end{commands}
   \keyval{format}{目录标题格式}
   设置目录标题的格式，在标题级别为 \code{chapter} 或者 \cls*{article} 模式且标题级别为 \code{section} 时有效。
   \keyval{aftertitle}{标题后代码}
@@ -1358,13 +1387,17 @@
   \shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
   \shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
   \shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。}
-  \begin{version}[v = 2024ad,date = 2024/02/16,simple]
-  \item 核对依赖宏包的更新改动，优化使用手册的内容细节。
+  \begin{version}[v = 2024ae,date = 2024/02/18]
+  \fixed
   \item 修复图表等浮动环境题注目录中条目标签编号的计数器值显示错误问题。
   \item 修复附录命令 \cs{appendix} 的可选参数设置英文目录中条目名字和编号失效的问题。
+  \item 修复 \pkg*{biblatex} 宏包对脚注打补丁失效的问题。
+  \added
   \item 新增目录风格定义命令 \cs{SetTocStyle} 和使用命令 \cs{UseTocStyle}。
+  \item 新增目录配置命令 \cs{SetTocOuter} 双语目录判断命令 \cs{ebifbitoc}。
   \item 新增脚注段落文本格式定义命令 \cs{deffntpara} 和脚注间距离选项 \option{footnotesep}。
   \item 新增悬挂缩进命令 \cs{hangfrom}。
+  \item 新增行间公式与正文上下间距选项 \option{abovedisplayskip} 和 \option{belowdisplayskip}。
   \end{version}
 \end{changelog}
 \nocite{*}
-- 
cgit v1.2.3

