summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/easybook/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/easybook/easybook.pdfbin627571 -> 628144 bytes
-rw-r--r--Master/texmf-dist/doc/latex/easybook/easybook.tex63
-rw-r--r--Master/texmf-dist/source/latex/easybook/easybook.dtx93
-rw-r--r--Master/texmf-dist/tex/latex/easybook/easybase.sty89
-rw-r--r--Master/texmf-dist/tex/latex/easybook/easybook.cls2
-rw-r--r--Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg2
7 files changed, 133 insertions, 118 deletions
diff --git a/Master/texmf-dist/doc/latex/easybook/README.md b/Master/texmf-dist/doc/latex/easybook/README.md
index 69649bccb3e..8fdda590273 100644
--- a/Master/texmf-dist/doc/latex/easybook/README.md
+++ b/Master/texmf-dist/doc/latex/easybook/README.md
@@ -1,5 +1,5 @@
# `easybook` document class
-Easily typesetting Chinese theses or books (v2024cb)
+Easily typesetting Chinese theses or books (v2024cd)
## Abstract
`easybook` is a pure academic template created based on the `ctexbook` book document class. It also has the functions of `book` and `article` document class. Combined with the general framework design of the theses of many universities in China, providing multiple commands and interfaces allows users to easily customize the theses templates. Its basic macro package `easybase` can also be used with `ctex` and standard document classes.
diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.pdf b/Master/texmf-dist/doc/latex/easybook/easybook.pdf
index 3e37b767876..ec5a34b05e0 100644
--- a/Master/texmf-dist/doc/latex/easybook/easybook.pdf
+++ b/Master/texmf-dist/doc/latex/easybook/easybook.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.tex b/Master/texmf-dist/doc/latex/easybook/easybook.tex
index 75c213ecaa3..3fcd9cf2910 100644
--- a/Master/texmf-dist/doc/latex/easybook/easybook.tex
+++ b/Master/texmf-dist/doc/latex/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024cc,
- date = 2024/06/13,
+ version = v2024cd,
+ date = 2024/06/14,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -393,7 +393,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\newcommand{\bracketsf}[1]{[\textsf{#1}}
\ebtoolsset{tagform = {\bracketsf,]}}
\end{ctexexam}
- \kvsplit-{figurepath}{\marg{路径名1}\marg{路径名2}$\cdots$\marg{路径名n}}\newtagv[Changed]{2024cc}%
+ \kvsplit-{figurepath}{\marg{路径名1}\marg{路径名2}$\cdots$\marg{路径名n}}\newtagv[Changed]{2024cd}%
设置插入图片的文件夹路径名。每个路径需包含在花括号内,只有一个路径时括号可以省略。
\begin{ctexexam}
\ctexset{tools/figurepath = path1}
@@ -487,7 +487,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\label{subsec:reference}
\begin{cnltxlist}
\keychoice{backend}{\fbox{bibtex},biblatex}
- 参考文献处理后端。默认用传统的 \hologo{BibTeX} 处理参考文献\footnote{使用 \hologo{BibTeX} 引擎时加载 \pkg*{natbib} 宏包,使用 \hologo{biber} 时将加载 \pkg*{biblatex} 宏包。}。
+ 参考文献处理后端。选择 \code{bibtex} 时使用传统的 \hologo{BibTeX} 引擎处理参考文献,加载 \pkg*{natbib} 宏包。选择 \code{biblatex} 时使用 \hologo{biber} 引擎,加载 \pkg*{biblatex} 宏包。
\keychoice{bibstyle}{\fbox{numerical},authoryear,\optpath*{other sty}}
参考文献格式使用中国参考文献推荐标准GB/T 7714-2015,对应顺序编码制和著者—出版年制两种风格。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \code{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg*{biblatex} 宏包支持的参考文献风格名称。
\keyval{citestyle}{标注风格}
@@ -608,7 +608,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection[页面尺寸]{页面尺寸\smodule{geo}}
\label{subsec:page margins}
-模块 \module*{geo} 会将选项(除了前两个为附加)交给页面尺寸宏包 \pkg*{geometry} 处理,并且支持它的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种代表性选项,其它选项可查阅宏包帮助文档。当在此设置纸张规格时,会覆盖文类选项 \option{paper} 的设置。
+模块 \module*{geo} 会将选项(除了前两个为附加)交给页面尺寸宏包 \pkg*{geometry} 处理,并且支持它的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种代表性选项,其它选项可查阅宏包帮助文档。当用此模块设置纸张规格时,会覆盖全局选项 \option{paper} 的设置。
\begin{cnltxlist}[itemsep = 0ex]
\keyval{headruleskip}{页眉线间距}\Default*{0pt}
\keyval{footruleskip}{页脚线间距}\Default*{3.5pt}
@@ -617,7 +617,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keyval{textheight}{版心文本高度}\default{}
\keychoice{nofoot}{true,\fbox{false}}\default{}
\begin{ctexexam}
- \ebgeoset
+ \ctexset[geo]
{
headruleskip = 3pt,
vscale = 0.9,
@@ -629,27 +629,27 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection[页眉页脚]{页眉页脚\smodule{hdr}}
\label{subsec:header and footer}
-模块 \module*{hdr} 设置的命令由 \pkg*{fancyhdr} 宏包提供支持。标题标记由标签和标题组成,选项中参数 \code{\#1} 代表当前章、节或小节的标题。在 \cls*{book} 模式时使用标题标记选项 \option{chap-mark} 和 \option{sec-mark},在 \cls*{article} 模式时使用 \option{sec-mark} 和 \option{subsec-mark} 选项,这与标准文档类的行为一致。重新设置标题标记选项时标记大小写选项 \option{uppercase} 会失效。
+模块 \module*{hdr} 设置的命令由 \pkg*{fancyhdr} 宏包提供支持。标题标记由标签和标题组成,选项中参数 \code{\#1} 代表当前章、节或小节的标题。在 \cls*{book} 模式时使用标题标记选项 \option{chapter-mark} 和 \option{section-mark},在 \cls*{article} 模式时使用 \option{section-mark} 和 \option{subsection-mark} 选项,这与标准文档类的行为一致。重新设置标题标记选项时标记大小写选项 \option{uppercase} 会失效。
\begin{cnltxlist}
- \keyval{chap-mark}{标题标记}
- \code{chapter} 级别标题标记的内容,包含了标签选项 \option{chap-label} 和章标题 \code{\#1}。
- \keyval{sec-mark}{标题标记}
- \code{section} 级别标题标记的内容,包含了标签选项 \option{sec-label} 和节标题 \code{\#1}。
- \keyval{subsec-mark}{标题标记}
- \code{subsection} 级别标题标记的内容,包含了标签选项 \option{subsec-label} 和小节标题 \code{\#1}。
- \kvsplit-{chap-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{1em}}
+ \keyval{chapter-mark}{标题标记}
+ \code{chapter} 级别标题标记的内容,包含了标签选项 \option{chapter-label} 和章标题 \code{\#1}。
+ \keyval{section-mark}{标题标记}
+ \code{section} 级别标题标记的内容,包含了标签选项 \option{section-label} 和节标题 \code{\#1}。
+ \keyval{subsection-mark}{标题标记}
+ \code{subsection} 级别标题标记的内容,包含了标签选项 \option{subsection-label} 和小节标题 \code{\#1}。
+ \kvsplit-{chapter-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{1em}}
\code{chapter} 级别标题标记的标签(标题有编号时)。比标题标记选项更常用,可选参数是对应章编号计数器值的输出命令,必选参数是编号与标题之间的距离命令:
\begin{ctexexam}
\ebhdrset
{
- chap-label = [\thechapter]{\hspace{1em}},
- sec-mark = \CTEXifname{\CTEXthesection——}{}#1
+ chapter-label = [\thechapter]{\hspace{1em}},
+ section-mark = \CTEXifname{\CTEXthesection——}{}#1
}
\end{ctexexam}
- \kvsplit-{sec-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}}
- \code{section} 级别标题标记的标签,用法与 \option{chap-label} 类似。
- \kvsplit-{subsec-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}}
- \code{subsection} 级别标题标记的标签,用法与 \option{chap-label} 类似。
+ \kvsplit-{section-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}}
+ \code{section} 级别标题标记的标签,用法与 \option{chapter-label} 类似。
+ \kvsplit-{subsection-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}}
+ \code{subsection} 级别标题标记的标签,用法与 \option{chapter-label} 类似。
\keyval{headrule}{横线命令}
绘制页眉横线的选项,可以使用 \cs*{hrule} 或\ref{exam:markrule} 所述 \cs{markrule} 等画线命令来绘制横线。
\keyval{footrule}{横线命令}
@@ -677,7 +677,12 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\command{markboth}[\marg{左页标题标记}\marg{右页标题标记}]\default{}
\command{markright}[\marg{右页标题标记}]\default{}
\command{markdouble}[\marg{双页标题标记}]
- 这三个命令用于手动设置当前页标题标记,特殊情况下可以使用它们定义与标题不同的页眉页脚标记。上述标记命令内容的选项便是基于这三个命令。其中 \cs{markdouble} 根据是否是双面打印设置相应标记。如果是单面打印,则 \meta{左页标题标记} 无效。
+ 这三个命令用于手动设置当前页标题标记,特殊情况下可以使用它们定义与标题不同的页眉页脚标记。其中 \cs{markdouble} 根据是否是双面打印设置相应标记。如果是单面打印,则 \meta{左页标题标记} 无效。标题标记选项 \meta{级别}\option*{-mark} 定义的是它们的参数,左右页标记规则已经进行了优化调整,若需更改可以重定义 \code{\textbackslash}\meta{级别}\code{\textcolor{cs}{mark}} 命令。
+ \begin{ctexexam}
+ \makeatletter
+ \renewcommand{\sectionmark}[1]{\markright{\eb@mark@section@whole{#1}}}
+ \makeatother
+ \end{ctexexam}
\end{cnltxlist}
\command{markrule}[\oarg{长度}\darg{颜色名}\marg{线宽}\baroarg{上间距,下间距}]
实线命令 \cs{markrule} 既可在 \meta{横线命令} 中用于绘制页眉页脚横线,也可以在正文中使用。\meta{长度} 默认为版心的宽度,上下间距为横线与上下方部件的间距,带有长度单位,上下间距之间用符号 \code{|} 分开,若只有一部分则表示 \meta{上间距}。下面举一个设置页眉内容的例子:
@@ -705,7 +710,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\keyval{fnparskip}{弹性长度}\Default{0ex plus .1ex}
不同脚注自身的段落间距,脚注内容文本分段时生效,等于长度 \cs{fnparskip} 的值。
\keyval{footnotesep}{刚性长度}
- 不同脚注之间的距离,默认情况下它自适应 \module*{space} 模块脚注行距选项 \option{footnote} 的值。
+ 不同脚注之间的距离,默认情况下它自适应 \module*{space} 模块脚注行距选项 \option{fntspread} 的值。
\keychoice{fntext-pos}{normal,\fbox{super}}
设置脚注内容标记的位置,正常文本或是上标形式。
\keychoice{fnmark-num}{\fbox{plain},pifont,pifont*,pisans,pisans*,\optpath*{short num}}
@@ -1148,7 +1153,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\subsection{代码}
\begin{cnltxlist}
\command{lstdefinestyle}[\marg{代码风格}\marg{键值列表}]
- 代码抄录宏包 \pkg*{listings} 的代码风格定义命令,提供大量选项对代码样式进行高度定制。可以根据需要的代码语言和样式定义多种风格,默认使用的 \meta{代码风格} 为 \code{lst-latex}。
+ 代码抄录宏包 \pkg*{listings} 提供了完善的排版功能,不需要前端处理器。这是它的代码风格定义命令,提供大量选项对代码样式进行高度定制。可以根据需要的代码语言定义多种风格,默认使用的 \meta{代码风格} 为适用于\TeX 语言的 \code{lst-latex}。
\command{lstinline}[\oarg{键值列表}\marg{行内代码}]
行内代码抄录命令。较原生的 \cs*{verb} 命令有较大改进,具有代码语言和样式支持。
\environment{lstlisting}[\oarg{键值列表}]
@@ -1407,7 +1412,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\item 新增行间公式与正文上下间距选项 \option{abovedisplayskip} 和 \option{belowdisplayskip}。
\item 新增目录文件扩展名分配命令 \cs{AllotCaptionExt}。
\end{version}
- \shortversion{v = 2024aq,date = 2022/03/31,changes = 修复命令 \cs{ebifbitoc} 用于条目缩进选项 \option{tocindent} 失效的问题。}
+ \shortversion{v = 2024aq,date = 2024/03/31,changes = 修复命令 \cs{ebifbitoc} 用于条目缩进选项 \option{tocindent} 失效的问题。}
\begin{version}[v = 2024as,date = 2024/04/19]
\changed
\item 目录条目样式注册命令 \cs{RegisterTocName} 增加星号参数,支持设置段落型目录。
@@ -1415,16 +1420,16 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\item 新增目录条目标题标签定义的选项 \option{toclabel}。
\item 新增段落型目录条目附加代码的选项 \option{tocbegin}、\option{tocsep} 和 \option{tocend}。
\end{version}
- \shortversion{v = 2024aw,date = 2022/04/22,changes = 新增新建章节标题命令 \cs{NewTitleCommand} 和 \cs{NewTitleEntryCommand}。}
- \shortversion{v = 2024bb,date = 2022/04/26,changes = 增加对 \pkg*{thmtools} 宏包定理环境目录 \cs{listoftheorems} 的支持。}
- \shortversion{v = 2024bk,date = 2022/05/07,changes = 新增局部题注目录分配命令 \cs{AllotPartialExt}。}
- \begin{version}[v = 2024bn,date = 2022/05/10]
+ \shortversion{v = 2024aw,date = 2024/04/22,changes = 新增新建章节标题命令 \cs{NewTitleCommand} 和 \cs{NewTitleEntryCommand}。}
+ \shortversion{v = 2024bb,date = 2024/04/26,changes = 增加对 \pkg*{thmtools} 宏包定理环境目录 \cs{listoftheorems} 的支持。}
+ \shortversion{v = 2024bk,date = 2024/05/07,changes = 新增局部题注目录分配命令 \cs{AllotPartialExt}。}
+ \begin{version}[v = 2024bn,date = 2024/05/10]
\fixed
\item 修复 \module*{toc} 模块中带有 \option*{every} 后缀的选项不对所有已注册条目有效的问题。
\added
\item 新增统一设置所有目录格式时的条目类型排除命令 \cs{ExcludeEveryTocName}。
\end{version}
- \shortversion{v = 2024cc,date = 2022/06/13,changes = 修复全局选项 \option{class} 无法正确切换单双面排版的问题。}
+ \shortversion{v = 2024cd,date = 2024/06/14,changes = 修复全局选项 \option{class} 无法正确切换单双面排版的问题。}
\end{changelog}
\nocite{*}
diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx
index fcc00b96556..03d076c901f 100644
--- a/Master/texmf-dist/source/latex/easybook/easybook.dtx
+++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<class|package>\NeedsTeXFormat{LaTeX2e}[2021/11/15]
%<*class>
-\ProvidesExplClass{easybook}{2024/06/13}{2024cc}
+\ProvidesExplClass{easybook}{2024/06/14}{2024cd}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -300,7 +300,7 @@
%</class>
%<*package>
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/06/13}{2024cc}
+\ProvidesExplPackage{easybase}{2024/06/14}{2024cd}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -387,6 +387,8 @@
\bool_set_true:N \l__eb_class_mode_book_bool
\bool_set_false:N \l__eb_compile_draft_bool
\clist_new:N \g__eb_ctex_options_clist
+\cs_new_protected:Npn \eb_put_geometry:n #1
+ { \PassOptionsToPackage{#1}{geometry} }
\keys_define:nn { easybase }
{
@@ -401,19 +403,19 @@
theorem .bool_set:N = \l__eb_theorem_support_bool,
theorem .default:n = true,
theorem .initial:n = true,
- paper .code:n = \PassOptionsToPackage{#1}{geometry},
+ paper .code:n = \eb_put_geometry:n {#1},
paper .initial:n = a4paper,
class .choice:,
class .value_required:n = true,
class/book .code:n =
{
\bool_set_true:N \l__eb_class_mode_book_bool
- \PassOptionsToPackage{twoside}{geometry}
+ \eb_put_geometry:n { twoside }
},
class/article .code:n =
{
\bool_set_false:N \l__eb_class_mode_book_bool
- \PassOptionsToPackage{twoside = false}{geometry}
+ \eb_put_geometry:n { twoside = false }
},
class .initial:n = book,
book .meta:n = { class = book },
@@ -591,8 +593,7 @@
\cs_new_protected:Npn \blankpagestyle #1
{ \tl_set:Nn \l__eb_blank_pagestyle_tl {#1} }
\blankpagestyle{empty}
-\RenewDocumentCommand{\cleardoublepage}
- {O{\l__eb_blank_pagestyle_tl}}
+\RenewDocumentCommand{\cleardoublepage}{O{\l__eb_blank_pagestyle_tl}}
{
\clearpage
\ifbool{@twoside}
@@ -613,19 +614,6 @@
\booltrue{@mainmatter}
\pagenumbering{arabic}
}
-\clist_map_inline:nn
- { chapter,section,subsection }
- {
- \exp_args:Nc \NewDocumentCommand { eb@mark@#1@label@layout }
- {O{\use:c { CTEXthe#1 }}m}
- {\tl_set:cn { eb@mark@#1@label } {##1##2}}
- \cs_new_protected:cpn { eb_mark_#1_name_parse:n } ##1
- {
- \regex_match:nnTF { \[.*\] } {##1}
- { \use:c { eb@mark@#1@label@layout }##1 }
- { \use:c { eb@mark@#1@label@layout }{##1} }
- }
- }
\NewDocumentCommand{\markrule}
{O{\textwidth}D(){ctex@frame}m>{\SplitArgument{1}{|}}O{}}
{\eb_draw_markrule:nnnnn {#1} {#2} {#3} #4}
@@ -646,32 +634,49 @@
{ none* } { \text_lowercase:n }
}
}
-\ctex_define:nn { hdr }
+\cs_new_protected:Npn \eb@register@hdr@mark #1
{
- chap-mark .cs_set:Np = \eb@mark@chapter@whole #1,
- chap-mark .initial:n =
- {
- \CTEXifname{\eb@mark@chapter@label}{}
- \eb_mark_uppercase_case_init:n {#1}
- },
- sec-mark .cs_set:Np = \eb@mark@section@whole #1,
- sec-mark .initial:n =
+ \exp_args:Nc \NewDocumentCommand { eb@mark@#1@label@layout }
+ {O{\use:c { CTEXthe#1 }}m}
+ {\tl_set:cn { eb@mark@#1@label } {##1##2}}
+ \cs_new_protected:cpn { eb_mark_#1_name_parse:n } ##1
{
- \CTEXifname{\eb@mark@section@label}{}
- \eb_mark_uppercase_case_init:n {#1}
- },
- subsec-mark .cs_set:Np = \eb@mark@subsection@whole #1,
- subsec-mark .initial:n =
+ \regex_match:nnTF { ^\[.*\] } {##1}
+ { \use:c { eb@mark@#1@label@layout }##1 }
+ { \use:c { eb@mark@#1@label@layout }{##1} }
+ }
+ \ctex_define:nn { hdr }
{
- \CTEXifname{\eb@mark@subsection@label}{}
- \eb_mark_uppercase_case_init:n {#1}
- },
- chap-label .code:n = \eb_mark_chapter_name_parse:n {#1},
- chap-label .initial:n = \hspace{1em},
- sec-label .code:n = \eb_mark_section_name_parse:n {#1},
- sec-label .initial:n = \hspace{0.5em},
- subsec-label .code:n = \eb_mark_subsection_name_parse:n {#1},
- subsec-label .initial:n = \hspace{0.5em},
+ #1-mark .cs_set:cp = { eb@mark@#1@whole } ##1,
+ #1-mark .initial:n =
+ {
+ \CTEXifname{\use:c { eb@mark@#1@label }}{}
+ \eb_mark_uppercase_case_init:n {##1}
+ },
+ #1-label .code:n = \use:c { eb_mark_#1_name_parse:n } {##1},
+ }
+ }
+\cs_new_protected:Npn \RegisterHdrMark #1
+ {
+ \clist_map_function:nN {#1}
+ \eb@register@hdr@mark
+ }
+\RegisterHdrMark{chapter,section,subsection}
+
+\ctex_set:nn { hdr }
+ {
+ chapter-label = \hspace{1em},
+ section-label = \hspace{0.5em},
+ subsection-label = \hspace{0.5em}
+ }
+\ctex_define:nn { hdr }
+ {
+ chap-mark .meta:n = { chapter-mark = {#1} },
+ sec-mark .meta:n = { section-mark = {#1} },
+ subsec-mark .meta:n = { subsection-mark = {#1} },
+ chap-label .meta:n = { chapter-label = {#1} },
+ sec-label .meta:n = { section-label = {#1} },
+ subsec-label .meta:n = { subsection-label = {#1} },
headrulewd .dim_set:N = \eb@head@rule@wd,
headrulewd .initial:n = 0.5pt,
footnoterulewd .dim_set:N = \eb@footnote@rule@wd,
@@ -2611,7 +2616,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/06/13}{2024cc}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/06/14}{2024cd}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/Master/texmf-dist/tex/latex/easybook/easybase.sty b/Master/texmf-dist/tex/latex/easybook/easybase.sty
index f6738444952..e01c8a7e42b 100644
--- a/Master/texmf-dist/tex/latex/easybook/easybase.sty
+++ b/Master/texmf-dist/tex/latex/easybook/easybase.sty
@@ -20,7 +20,7 @@
%% This work has the LPPL maintenance status `maintained'.
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/06/13}{2024cc}
+\ProvidesExplPackage{easybase}{2024/06/14}{2024cd}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -107,6 +107,8 @@
\bool_set_true:N \l__eb_class_mode_book_bool
\bool_set_false:N \l__eb_compile_draft_bool
\clist_new:N \g__eb_ctex_options_clist
+\cs_new_protected:Npn \eb_put_geometry:n #1
+ { \PassOptionsToPackage{#1}{geometry} }
\keys_define:nn { easybase }
{
@@ -121,19 +123,19 @@
theorem .bool_set:N = \l__eb_theorem_support_bool,
theorem .default:n = true,
theorem .initial:n = true,
- paper .code:n = \PassOptionsToPackage{#1}{geometry},
+ paper .code:n = \eb_put_geometry:n {#1},
paper .initial:n = a4paper,
class .choice:,
class .value_required:n = true,
class/book .code:n =
{
\bool_set_true:N \l__eb_class_mode_book_bool
- \PassOptionsToPackage{twoside}{geometry}
+ \eb_put_geometry:n { twoside }
},
class/article .code:n =
{
\bool_set_false:N \l__eb_class_mode_book_bool
- \PassOptionsToPackage{twoside = false}{geometry}
+ \eb_put_geometry:n { twoside = false }
},
class .initial:n = book,
book .meta:n = { class = book },
@@ -311,8 +313,7 @@
\cs_new_protected:Npn \blankpagestyle #1
{ \tl_set:Nn \l__eb_blank_pagestyle_tl {#1} }
\blankpagestyle{empty}
-\RenewDocumentCommand{\cleardoublepage}
- {O{\l__eb_blank_pagestyle_tl}}
+\RenewDocumentCommand{\cleardoublepage}{O{\l__eb_blank_pagestyle_tl}}
{
\clearpage
\ifbool{@twoside}
@@ -333,19 +334,6 @@
\booltrue{@mainmatter}
\pagenumbering{arabic}
}
-\clist_map_inline:nn
- { chapter,section,subsection }
- {
- \exp_args:Nc \NewDocumentCommand { eb@mark@#1@label@layout }
- {O{\use:c { CTEXthe#1 }}m}
- {\tl_set:cn { eb@mark@#1@label } {##1##2}}
- \cs_new_protected:cpn { eb_mark_#1_name_parse:n } ##1
- {
- \regex_match:nnTF { \[.*\] } {##1}
- { \use:c { eb@mark@#1@label@layout }##1 }
- { \use:c { eb@mark@#1@label@layout }{##1} }
- }
- }
\NewDocumentCommand{\markrule}
{O{\textwidth}D(){ctex@frame}m>{\SplitArgument{1}{|}}O{}}
{\eb_draw_markrule:nnnnn {#1} {#2} {#3} #4}
@@ -366,32 +354,49 @@
{ none* } { \text_lowercase:n }
}
}
-\ctex_define:nn { hdr }
+\cs_new_protected:Npn \eb@register@hdr@mark #1
{
- chap-mark .cs_set:Np = \eb@mark@chapter@whole #1,
- chap-mark .initial:n =
- {
- \CTEXifname{\eb@mark@chapter@label}{}
- \eb_mark_uppercase_case_init:n {#1}
- },
- sec-mark .cs_set:Np = \eb@mark@section@whole #1,
- sec-mark .initial:n =
+ \exp_args:Nc \NewDocumentCommand { eb@mark@#1@label@layout }
+ {O{\use:c { CTEXthe#1 }}m}
+ {\tl_set:cn { eb@mark@#1@label } {##1##2}}
+ \cs_new_protected:cpn { eb_mark_#1_name_parse:n } ##1
{
- \CTEXifname{\eb@mark@section@label}{}
- \eb_mark_uppercase_case_init:n {#1}
- },
- subsec-mark .cs_set:Np = \eb@mark@subsection@whole #1,
- subsec-mark .initial:n =
+ \regex_match:nnTF { ^\[.*\] } {##1}
+ { \use:c { eb@mark@#1@label@layout }##1 }
+ { \use:c { eb@mark@#1@label@layout }{##1} }
+ }
+ \ctex_define:nn { hdr }
{
- \CTEXifname{\eb@mark@subsection@label}{}
- \eb_mark_uppercase_case_init:n {#1}
- },
- chap-label .code:n = \eb_mark_chapter_name_parse:n {#1},
- chap-label .initial:n = \hspace{1em},
- sec-label .code:n = \eb_mark_section_name_parse:n {#1},
- sec-label .initial:n = \hspace{0.5em},
- subsec-label .code:n = \eb_mark_subsection_name_parse:n {#1},
- subsec-label .initial:n = \hspace{0.5em},
+ #1-mark .cs_set:cp = { eb@mark@#1@whole } ##1,
+ #1-mark .initial:n =
+ {
+ \CTEXifname{\use:c { eb@mark@#1@label }}{}
+ \eb_mark_uppercase_case_init:n {##1}
+ },
+ #1-label .code:n = \use:c { eb_mark_#1_name_parse:n } {##1},
+ }
+ }
+\cs_new_protected:Npn \RegisterHdrMark #1
+ {
+ \clist_map_function:nN {#1}
+ \eb@register@hdr@mark
+ }
+\RegisterHdrMark{chapter,section,subsection}
+
+\ctex_set:nn { hdr }
+ {
+ chapter-label = \hspace{1em},
+ section-label = \hspace{0.5em},
+ subsection-label = \hspace{0.5em}
+ }
+\ctex_define:nn { hdr }
+ {
+ chap-mark .meta:n = { chapter-mark = {#1} },
+ sec-mark .meta:n = { section-mark = {#1} },
+ subsec-mark .meta:n = { subsection-mark = {#1} },
+ chap-label .meta:n = { chapter-label = {#1} },
+ sec-label .meta:n = { section-label = {#1} },
+ subsec-label .meta:n = { subsection-label = {#1} },
headrulewd .dim_set:N = \eb@head@rule@wd,
headrulewd .initial:n = 0.5pt,
footnoterulewd .dim_set:N = \eb@footnote@rule@wd,
diff --git a/Master/texmf-dist/tex/latex/easybook/easybook.cls b/Master/texmf-dist/tex/latex/easybook/easybook.cls
index f5537f8f9c2..7c7772e7ce0 100644
--- a/Master/texmf-dist/tex/latex/easybook/easybook.cls
+++ b/Master/texmf-dist/tex/latex/easybook/easybook.cls
@@ -19,7 +19,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
-\ProvidesExplClass{easybook}{2024/06/13}{2024cc}
+\ProvidesExplClass{easybook}{2024/06/14}{2024cd}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
diff --git a/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg b/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
index d474d36f0c5..44078e7da97 100644
--- a/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
+++ b/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg
@@ -18,7 +18,7 @@
%% LaTeX version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/06/13}{2024cc}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/06/14}{2024cd}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2