diff options
author | Karl Berry <karl@freefriends.org> | 2022-01-25 21:26:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-01-25 21:26:31 +0000 |
commit | dd63b7f99ec73881c45f5b134afacb364a81bb30 (patch) | |
tree | b31b7ee23ba76e2f07fa7213c7b6cf9a43ee9266 | |
parent | 172629ae560882d56aa1229fdab5a844c6f1bf58 (diff) |
easybook (25jan22)
git-svn-id: svn://tug.org/texlive/trunk@61739 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/easybook/easybook.pdf | bin | 598880 -> 575306 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/easybook/easybook.tex | 276 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/easybook/easybook.dtx | 169 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/easybook/easybase.sty | 152 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/easybook/easybook.cls | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg | 11 |
6 files changed, 196 insertions, 418 deletions
diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.pdf b/Master/texmf-dist/doc/latex/easybook/easybook.pdf Binary files differindex 1361a798c9e..95a4e0fd716 100644 --- a/Master/texmf-dist/doc/latex/easybook/easybook.pdf +++ b/Master/texmf-dist/doc/latex/easybook/easybook.pdf diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.tex b/Master/texmf-dist/doc/latex/easybook/easybook.tex index 6b742dd8982..006e62fde86 100644 --- a/Master/texmf-dist/doc/latex/easybook/easybook.tex +++ b/Master/texmf-dist/doc/latex/easybook/easybook.tex @@ -21,8 +21,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.51, - date = 2022/01/24, + version = v1.52, + date = 2022/01/25, authors = 瞿毅, info = 排版简体中文学位论文和书籍, email = q1jx@foxmail.com, @@ -46,6 +46,7 @@ \DeclareTOCStyleEntry[entryformat = \sffamily]{default}{section} \geometry{margin = 1in,marginparwidth = 0.65in} \SetEnumitemValue{label}{smallbullet}{\small\color{Blue}\textbullet} +\DeclareFieldFormat[book]{title}{\textsf{#1}} \setlist{nosep,topsep = \smallskipamount,labelsep = 0.5em} \setlist[1]{labelindent = \parindent} \setlist[itemize,1]{label = smallbullet,leftmargin = *} @@ -77,7 +78,6 @@ \newcommand{#2}[1] {\code{\textcolor{argument}{#3\textnormal{#1{##1}}#4}}} } -\newarg[\color{Plum}\code]\Carg{\{}{\}} \newsplitarg{\splitoarg}{[}{]} \newsplitarg{\splitdarg}{(}{)} \newsplitarg{\splitmarg}{\{}{\}} @@ -85,7 +85,13 @@ \newcommand{\spemmeta}{\splitmeta[\code{|}]} \newsplitarg[\spemmeta]{\spemcoarg}{[}{]} \newcommand{\harg}{\textcolor{argument}{\code{-}}} -\newcommand{\black}[1]{\textcolor{black}{#1}} +% Default value adds a flag to distinguish options +\RenewDocumentCommand{\Default}{st-m} + { + \null\hfill + \llap{\code{#3}\IfBooleanT{#1}{*}} + \IfBooleanF{#2}{\newline} + } \newcommand{\noitemsep}{\setlength{\itemsep}{0ex}} \newcommand{\insertblr}[2] { @@ -218,27 +224,29 @@ \section{文档类选项} \label{sec:document class options} -文档类选项应当在使用 \cls*{easybook} 文档类或 \pkg*{easybase} 宏包(部分支持)时载入,可见\ref{subsec:basic usage} 的例子。目前 \pkg*{easybase} 宏包可用的选项有 \option{class}、\option{draft}、\option{paper} 和 \option{floatpage}。除了下面列举的选项以外,还支持标准和 C\TeX 文档类的选项。 +文档类选项应当在使用 \cls*{easybook} 文档类或 \pkg*{easybase} 宏包(部分支持)时载入,可见\ref{subsec:basic usage} 的例子。默认值后带有星号的选项表示文档类与宏包都适用,否则只可用于文档类。除了下面列举的选项以外,还支持标准和 C\TeX 文档类的选项。 \begin{options} - \opt{draft}\Default! + \opt{draft}\Default*{} 开启草稿模式会加快编译速度,表现有显示页面边框、行溢出的地方显示黑色方块、图片变成占位方框、显示当前日期和关闭超链接渲染。不使用绘图宏包及依赖于 \pkg*{tcolorbox} 宏包的盒子环境也会增快编译速度,详情见\ref{subsec:box}。 - \opt{newline}\Default! + \opt{newline} 部分和章标题的样式为另起一行,符合一般英文书籍的习惯。 \keychoice{scheme}{chinese,plain}\Default{chinese} 文档主题方案选项 \option{scheme} 扩展了 C\TeX 文档类中同名选项原有的作用范围,选项值 \code{plain} 可使各类标题变为英文形式。包括章节标题、图表标题和定理名等。 - \opt{enmode}\Default! + \opt{enmode} 同时开启 \option{newline} 和 \keyis-{scheme}{plain} 选项以符合英文原生风格。 - \keychoice{paper}{a4paper,b5paper,c5paper,letterpaper,other paper}\Default{a4paper} + \keychoice{paper}{a4paper,b5paper,c5paper,letterpaper,other paper}\Default*{a4paper} 文档页面尺寸选项将参数交给 \pkg*{geometry} 宏包处理,可使用它支持的所有标准纸张规格。 - \keyval-{config}{配置文件列表}\Default + \keyval-{config}{配置文件列表} 载入用户配置的文件名列表,文件列表以花括号包裹并以英文逗号分隔。文件名应包含如 \code{tex}、\code{def} 或 \code{cfg} 等扩展名。若配置文件不在当前文件夹则文件名需要包含路径。 - \keybool{floatpage}\Default{false} + \keybool{floatpage}\Default*{false} 开启这个选项后浮动环境 \env*{table} 和 \env*{figure} 的比例参数会使用默认值,关闭它则尽可能避免出现浮动页,使图表环境与正文段落更加紧凑,减少多余的空白版面。 + \keybool{theorem}\Default*{true} + 是否提供定理功能支持。选项开启时定理样式模块生效,此时会载入 \pkg*{amsthm} 和 \pkg*{thmtools} 宏包。 \end{options} \subsection{中文字体} \begin{options} - \keychoice{cjkfont}{adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none}\Default + \keychoice{cjkfont}{adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none} 中文字体采用 C\TeX 宏集包含的字库并与其一致,具体配置方案可以查看 C\TeX 使用手册。它与 \option*{fontset} 选项是等效的,如果没有指定 \option{cjkfont} 的值,将会自动检测操作系统并选择相应的字体。 如果需要使用其它中文字体,可以在启用选项 \keyis-{cjkfont}{none} 后,再使用 \pkg*{xeCJK} 宏包的相关命令设置字体以及声明字体族: @@ -279,11 +287,11 @@ \subsection{\textsf{article} 模式} \begin{options} - \keychoice{class}{book,article}\Default{book} + \keychoice{class}{book,article}\Default*{book} 使用 \cls*{easybook} 文档类可以有两种模式,默认为 \cls*{book} 模式。选用 \code{article} 会变为 \code{oneside} 单面排版,同时使文档编号、结构等与标准 \cls*{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \cs*{chapter} 命令。此时\ref{sec:document command} 中目录命令的 \option{chapter} 选项会失效,将以 \code{section} 标题级别输出目录。如果使用 \cls*{ctexart} 配合 \pkg*{easybase} 宏包,则选项值 \code{book} 会失效。 - \opt{book}\Default! + \opt{book}\Default*{} 开启 \cls*{book} 书籍模式,与 \keyis*-{class}{book} 等效。 - \opt{article}\Default! + \opt{article}\Default*{} 开启 \cls*{article} 文章模式,与 \keyis*-{class}{article} 等效。 \end{options} @@ -318,11 +326,11 @@ 上面目录命令的可选参数改进了原本单一的功能,其中 \meta{键值列表} 的选项如下: \begin{options} - \opt{chapter}\Default! + \opt{chapter} 使当前目录标题按照 \code{chapter} 章级别输出。 - \opt{section}\Default! + \opt{section} 使当前目录标题按照 \code{section} 节级别输出。 - \opt{none}\Default! + \opt{none} 使当前目录没有 \code{chapter} 或 \code{section} 级别的标题,仅输出目录原始内容。 \keyval-{multoc}{整数}\Default{2} 与 \module*{style} 模块的 \option{multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同类型目录的排版栏数。\meta{整数} 为目录栏数,不指定栏数值则默认为双栏。 @@ -332,7 +340,7 @@ 确定文档主目录中双语标题列表的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出,\code{new} 则新建一个英文目录输出英文标题。 \keyval-{format}{目录标题格式} 在 \cls*{book} 模式且 \option{chapter} 选项开启或者 \cls*{article} 模式的情况下,\option{format} 用于设置目录标题的格式。 - \keyval-{aftertitle}{目录标题格式}\Default + \keyval-{aftertitle}{目录标题格式} 目录标题文本之后插入的代码。 \keyval-{pagestyle}{标题页的页面格式}\Default{empty} 目录标题所在页的页面格式,仅当目录以 \code{chapter} 级别输出时有效。除了上述选项还支持 C\TeX 键值列表路径 \module*{chapter} 或 \module*{section} 所有的章节标题样式选项。 @@ -353,7 +361,7 @@ \begin{options} \kvsplit{biname}{英文目录前名字,英文目录后名字}\Module{chapter}\Default{Chapter\cs*{space}} 更改英文目录 \code{chapter} 级别的标题编号前后名字,类似于 C\TeX 的 \option*{name} 选项。 - \keyval-{binmuber}{英文目录数字输出命令}\Default{\cs*{arabic}\Carg{chapter}} + \keyval-{binmuber}{英文目录数字输出命令}\Default{\cs*{arabic}\Marg{chapter}} 更改英文目录 \code{chapter} 级别的标题编号输出格式,类似于 C\TeX 的 \option*{number} 选项。 \end{options} @@ -383,11 +391,11 @@ 上标或下标的垂直偏移。如果是上下标命令使用则代表上标和上标间的额外垂直距离 \option{vsep}。 \keyval-{hmove}{刚性长度}\Default{0pt} 上标或下标的水平偏移。如果是上下标命令使用则代表上标和上标的共同偏移。 - \keyval-{cmd}{格式命令}\Default + \keyval-{cmd}{格式命令} 上标或下标的格式命令选项。最后一个命令可以带有一个参数,这个参数用于接受上标或下标。 - \keyval-{height}{刚性长度}\Default + \keyval-{height}{刚性长度} 段落中当前行上标或下标的基线与前一行的间距。 - \keyval-{depth}{刚性长度}\Default + \keyval-{depth}{刚性长度} 段落中当前行上标或下标的基线与下一行的间距。 \keychoice{mode}{text,math,match}\Default{match} 上标或下标的输出格式。可以为文本 \code{text} 或数学 \code{math} 模式。当使用选项 \code{match} 时可以根据当前段落所处的模式自动匹配。 @@ -437,7 +445,7 @@ \command{DeclareThemeColor}[\splitmarg{风格名称,ctex@frame,ctex@emph,ctex@verb}] 声明新的颜色主题命令。它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 \code{HTML} 颜色代码,构成主题颜色列表。类似地更改超链接颜色见\ref{subsec:hyperlinks}。 \end{commands} - \keyval-{color-every}{HTML颜色代码}\Default + \keyval-{color-every}{HTML颜色代码} 统一设置主题的各部分颜色,参数是 6 个十六进制数字组成的 \code{HTML} 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 \keyval-{multoc}{整数}\Default{2} 使目录多栏排版,与\ref{sec:document command} 中目录命令的同名选项有相同效果。 @@ -447,27 +455,27 @@ 使脚注跟随编号的计数器名。默认跟随章计数器,即开启新的一章时脚注编号从 1 开始。 \keychoice{uppercase}{all,first,none}\Default{all} 使用 \cs*{rightmark} 和 \cs*{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写,\code{first} 为标记以英文起始时仅第一个字母大写,\code{none} 则不改变标记中英文字母的大小写形式。 - \kvsplit{brackets}{左括号,右括号}\Default{\Carg{(\black{,})}} + \kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}} 设置行间公式编号标签的括号及格式,以英文逗号分隔,分别代表左右括号。\meta{左括号} 可以是带有一个参数的命令,用于接受编号和 \meta{右括号}。将标签括号设置为方括号,并使用无衬线字体: \begin{ctexexam} \newcommand{\bracketsf}[1]{\textsf{[#1}} \ebstyle{brackets = {\bracketsf,]}} \end{ctexexam} - \kvsplit-{figurepath}{\marg{路径名1}\marg{路径名2}}\Default + \kvsplit-{figurepath}{\marg{路径名1}\marg{路径名2}} 设置插入图片的文件夹路径名,可以有多个路径名,每个路径包含在括号分隔,只有一个路径时需要包含在两层括号内。 \end{options} \subsubsection{连字符} \begin{options} - \keyval-{hyphen-figure}{图片连字符}\Default{\Carg{.}} + \keyval-{hyphen-figure}{图片连字符}\Default{\Marg{.}} 设置图片题注编号的连字符。 - \keyval-{hyphen-table}{表格连字符}\Default{\Carg{.}} + \keyval-{hyphen-table}{表格连字符}\Default{\Marg{.}} 设置表格题注编号的连字符。 - \keyval-{hyphen-listing}{代码连字符}\Default{\Carg{.}} + \keyval-{hyphen-listing}{代码连字符}\Default{\Marg{.}} 设置代码题注编号的连字符。 - \keyval-{hyphen-equation}{公式连字符}\Default{\Carg{.}} + \keyval-{hyphen-equation}{公式连字符}\Default{\Marg{.}} 设置公式题注编号的连字符。 - \keyval-{hyphen-every}{连字符}\Default{\Carg{.}} + \keyval-{hyphen-every}{连字符}\Default{\Marg{.}} 统一设置上述所有编号的连字符。 \end{options} @@ -482,17 +490,17 @@ 下标命令 \cs{sub} 对应的下标垂直偏移量。 \keyval-{sbhmove}{刚性长度}\Default{0pt} 下标命令 \cs{sub} 对应的下标水平偏移量。 - \opt{nohmove}\Default! + \opt{nohmove} 同时取消上标和下标的 \meta{水平偏移},与 \keyis-{sphmove}{0pt} 和 \keyis-{sbhmove}{0pt} 等效。 - \opt{novmove}\Default! + \opt{novmove} 同时取消上标和下标的 \meta{垂直偏移},与 \keyis-{spvmove}{0pt} 和 \keyis-{sbvmove}{0pt} 等效。 - \keyval-{spcmd}{格式命令}\Default + \keyval-{spcmd}{格式命令} 上标命令 \cs{super} 对应的上标的格式命令。 - \keyval-{sbcmd}{格式命令}\Default + \keyval-{sbcmd}{格式命令} 下标命令 \cs{sub} 对应的下标的格式命令。 \keyval-{spbhmove}{刚性长度}\Default{0pt} 上下标命令 \cs{supersub} 对应的上下标共同水平偏移量。 - \kvsplit{spbcmd}{上标格式,下标格式}\Default + \kvsplit{spbcmd}{上标格式,下标格式} 上下标命令 \cs{supersub} 对应的上下标格式命令。以英文逗号分隔为前后两个部分分别设置上下标格式,也可以只有前部分,表示上标的格式。 \keyval-{vsep}{刚性长度}\Default{0.6ex} 上下标命令 \cs{supersub} 对应的上下标额外垂直距离。 @@ -512,7 +520,7 @@ \command{DeclareLinkColor}[\splitmarg{风格名称,ctex@link,ctex@url,ctex@cite}] 声明新的超链接颜色样式命令。它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 \code{HTML} 颜色代码,构成超链接颜色列表。 \end{commands} - \keyval-{linkcolor-every}{HTML颜色代码}\Default + \keyval-{linkcolor-every}{HTML颜色代码} 统一设置超链接的各部分颜色,参数是 6 个十六进制数字组成的 \code{HTML} 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 \keychoice{linktoc}{none,section,page,all}\Default{all} 将目录中的超链接取消、置于标题上、置于页码上或置于标题和页码上。 @@ -542,7 +550,7 @@ \ebspread{footnote = 1.3} \ebhdrset{fnpara-form = \linespread{1.2}\selectfont} \end{ctexexam} - \keyval-{every}{数值}\Default + \keyval-{every}{数值} 统一设置上述所有的行距因子。 \end{options} @@ -557,7 +565,7 @@ 设置代码题注的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 \keyval-{caption-every}{字体命令}\Default{\cs*{sffamily}\cs*{small}} 同时设置图片、表格和代码题注的字体命令。 - \keyval-{footnote}{字体命令}\Default + \keyval-{footnote}{字体命令} 设置脚注标记与内容的字体,包括字体族、字体系列和字体形状命令。 \keyval-{marginpar}{字体命令}\Default{\cs*{footnotesize}} 设置边注的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 @@ -579,28 +587,27 @@ 参考文献处理后端。默认用传统的 \hologo{BibTeX} 处理参考文献\footnote{使用 \hologo{BibTeX} 引擎时加载 \pkg*{natbib} 宏包,使用 \hologo{biber} 时将加载 \pkg*{biblatex} 宏包。}。 \keychoice{bibstyle}{numerical,authoryear,other sty}\Default{numerical} 参考文献格式使用中国参考文献推荐标准 GB/T 7714-2015,对应顺序编码制和著者—出版年制两种风格。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \code{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg*{biblatex} 宏包支持的参考文献风格名称。 - \keyval-{citestyle}{标注风格}\Default + \keyval-{citestyle}{标注风格} 标注参考文献的风格。选项 \keyis-{backend}{bibtex} 下可使用 \option{super}(数字上标标注,默认)或 \option{numbers}(数字标注)等 \pkg*{natbib} 宏包带有的标注风格,选项 \keyis-{backend}{biblatex} 下可使用 \pkg*{biblatex} 宏包支持的标注风格名称。 - \keyval-{datafile}{参考文献数据库列表}\Default + \keyval-{datafile}{参考文献数据库列表} 参考文献数据库的文件名列表,文件列表以花括号包裹并以英文逗号分隔。使用 \hologo{biber} 处理时要带有 \code{bib} 后缀,若参考文献文件不在当前文件夹则文件名需要包含路径。不设置参考文献数据库名时 \module*{bibset} 模块中的选项会失效,即不自动载入 \pkg*{natbib} 或 \pkg*{biblatex} 宏包,此时需要手动载入相关宏包配置参考文献。 \end{options} -\subsubsection{配置参考文献} \begin{commands} \command{printbibliography}[\oarg{键值列表}] 两种方式\textbf{均使用}此命令打印参考文献,不同处理后端此命令的 \meta{键值列表} 不同。使用 \hologo{BibTeX} 处理时选项与\ref{sec:document command} 目录的选项相同,使用 \hologo{biber} 处理时常用的选项如下: \begin{options} \keychoice*{heading}{bibliography,subbibliography,bibintoc,subbibintoc}\Default{bibintoc} 参考文献通常有一个章标题或者节标题,该选项选择由 \cs*{defbibheading} 定义的标题名。 - \keyval*-{title}{参考文献标题名}\Default + \keyval*-{title}{参考文献标题名} 如果标题定义支持的话,该选项覆盖由 \option*{heading} 选项提供的缺省标题名。 - \keyval*-{prenote}{参考文献前注}\Default + \keyval*-{prenote}{参考文献前注} 该选项选择由 \cs*{defbibnote} 所定义的前注,缺省状态下不打印任何前注。 \keyval*-{section}{整数}\Default{0} 只打印在指定文节中引用的条目。该参考文献节从 1 开始编号,所有在 \env*{refsection} 环境外给出的引用标记为第零节。 - \keyval*-{type}{条目类型}\Default + \keyval*-{type}{条目类型} 指定条目的打印类型。 - \keyval*-{filter}{过滤器名}\Default + \keyval*-{filter}{过滤器名} 使用由 \cs*{defbibfilter} 定义的 \option*{filter} 来过滤条目。 \end{options} @@ -615,77 +622,68 @@ \subsection{定理样式} \label{subsec:theorem of style} -文档类已预置 12 个定理环境,环境名及对应的定理名见\ref{subsec:theorem},它们均使用预置的定理样式 \code{fancy}。下面 \module*{thmset} 模块选项的用法名称与 \pkg*{thmtools} 宏包基本一致,且仅对预置定理样式生效。如果下面的选项不满足需求,可使用支持完整选项的相关命令创建定理环境。 -\begin{options} - \keybool{tcbwrap}\Module{thmset}\Default{false} - 给定理环境使用彩色盒子。这个特殊选项在本模块中使用 \pkg*{tcolorbox} 宏包来支持,\meta{盒子风格} 默认为 \code{tc-theorem}。注意它应当在定理声明命令前使用。\pkg*{thmtools} 具有类似的选项 \option*{shaded}。 - \keyval-{headfont}{字体命令}\Default{\cs*{color}\Carg{ctex@emph}\cs*{sffamily}} - 定理标题部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 - \keyval-{notefont}{字体命令}\Default - 定理题注部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 - \keyval-{bodyfont}{字体命令}\Default - 定理内容部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 - \keychoice{within}{chapter,section,empty,counter} - 定理编号跟随的计数器。当计数器值递增时定理编号会从零开始,通常这是一个章节计数器。 - \keyval-{headpunct}{代码}\Default - 紧随定理标题末尾的标记代码,位于定理第一段内容的间距 \option{postheadspace} 之前,可以是字符或插入换行符 \cs*{newline} 等命令。 - \keyval-{headindent}{刚性长度}\Default{0em} - 定理标题的缩进,默认无缩进,可用 \cs*{parindent} 命令设置为段落缩进。 - \keyval-{postheadspace}{刚性长度}\Default{1em} - 定理标题后与定理第一段内容的间距。 - \keyval-{spaceabove}{弹性长度}\Default{0ex plus .1ex} - 定理环境前的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 - \keyval-{spacebelow}{弹性长度}\Default{0ex plus .1ex} - 定理环境后的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 - \kvsplit-{notebraces}{\marg{左括号}\marg{右括号}}\Default{\Carg{(}\Carg{)}} - 设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。 - \keyval-{headformat}{标题排列}\Default{\cs*{NAME}\cs*{NUMBER}\cs*{NOTE}} - 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 -\end{options} - -\subsubsection{新建定理环境} +模块 \module*{thmset} 由 \pkg*{thmtools} 宏包提供支持,主要提供了定理声明和样式声明两个命令。定理声明命令使用的定理样式由样式声明命令提供,文档类预置了一个定理样式 \code{fancy}。 \begin{commands} - \command{declaretheorem}[\oarg{键值列表1}\marg{环境名}\oarg{键值列表2}] - 定理环境声明命令,命令 \cs{newtheorem} 与它等效。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,用法与原来的同名命令一致。键值列表中常用的选项如下: + \command{declaretheorem}[\oarg{键值列表1}\marg{环境名}\oarg{键值列表2}]\Module{thmset} + 定理环境声明命令。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,其中常用的选项如下: \begin{options} \keyval*-{name}{定理名} - 预置定理环境的标题根据语言模式自动切换,也可以重新定义 \cs*{\black{\normalfont\meta{环境名}}name} 命令修改。 + 定理环境的标题名称,默认为英文首字母大写的环境名。 \keychoice*{numbered}{no,yes,unless unique} 定理可以被编号、不被编号或者只有在文档中多次出现时才被编号。 + \keychoice*{within}{chapter,section,empty,counter} + 定理编号跟随的计数器。当计数器值递增时定理编号会从零开始,通常这是一个章节计数器。 \keyval*-{numberlike}{计数器} 定理将使用此 \meta{计数器} 进行编号,通常这是另一个定理环境的名称。 \keyval*-{style}{定理样式} 选项的值为使用 \cs{declaretheoremstyle} 命令新定义的定理样式。 \end{options} - 使用 \cs{declaretheorem} 命令以\ref{exam:new theorem sty} 中的定理样式 \code{mythm} 新建一个定理环境猜想,这个命令新建的环境如果需要盒子边框可以手动添加: + 使用 \cs{declaretheorem} 命令以\ref{exam:new theorem sty} 中的定理样式 \code{mythm} 新建一个定理环境猜想,然后用一个基于 \pkg*{tcolorbox} 宏包的预置彩色盒子 \env{easybox} 增加背景: \begin{ctexexam}[labelref = exam:new theorem env] \declaretheorem[style = mythm,name = 猜想]{caixiang} - \tcolorboxenvironment{caixiang}{tc-theorem} + \addtotcbstyle{tc-easybox}{colback = GreenYellow} + \tcolorboxenvironment{caixiang}{tc-easybox} \end{ctexexam} - \command{deftheorem}[\marg{环境名}\oarg{英文标题}\marg{中文标题}\darg{盒子风格}\oarg{键值列表}] - 定理环境定义命令 \cs{deftheorem} 更加便捷,\meta{键值列表} 中支持的选项与命令 \cs{declaretheorem} 完全相同。但它与 \cs{declaretheorem} 命令有以下几点区别: \end{commands} -\begin{itemize} - \item 可以重复定义已存在的定理环境而不会报错。 - \item 自动定义交叉引用的格式,标签引用前缀为相应定理名。 - \item 新建定理环境默认使用的 \meta{定理样式} 为 \code{fancy},而不是 \pkg*{thmtools} 的默认样式。 - \item 定理盒子选项 \option{tcbwrap} 仍然生效,\meta{盒子风格} 可以使用 \cs{deftcbstyle} 命令创建。 - \item 定理标题根据语言自动切换,根据中文定理标题的特点将 \meta{中文标题} 设计为必选参数。 -\end{itemize} - -下面新建一个与\ref{exam:new theorem env} 相同的定理环境猜想,并使用 \cs{addtotcbstyle} 命令调整 \option{tcbwrap} 开启时默认的盒子风格。它的第一个参数为 \code{tc-theorem},关于命令的介绍在\ref{subsec:box}。 -\begin{ctexexam} - \deftheorem{caixiang}{猜想}[style = mythm] - \addtotcbstyle{tc-theorem}{colback = GreenYellow} -\end{ctexexam} - \begin{commands} \command{declaretheoremstyle}[\oarg{键值列表1}\marg{定理样式}\oarg{键值列表2}] - 定理样式声明命令,键值列表支持 \pkg*{thmtools} 宏包中原命令以及 \cs{declaretheorem} 的所有选项。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,用法与原来的同名命令一致。下面定义一个名为 \code{mythm} 的定理样式用于 \cs{declaretheorem} 的 \option*{style} 选项: + 定理样式声明命令,键值列表支持自身以及定理声明命令 \cs{declaretheorem} 的所有选项。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,其中支持的选项如下: + \begin{options} + \keyval-{headfont}{字体命令} + 定理标题部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 + \keyval-{notefont}{字体命令} + 定理题注部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 + \keyval-{bodyfont}{字体命令} + 定理内容部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 + \keyval-{headpunct}{代码} + 紧随定理标题末尾的标记代码,位于定理第一段内容的间距 \option{postheadspace} 之前,可以是字符或插入换行符 \cs*{newline} 等命令。 + \keyval-{headindent}{刚性长度} + 定理标题的缩进,默认无缩进,可用 \cs*{parindent} 命令设置为段落缩进。 + \keyval-{postheadspace}{刚性长度} + 定理标题后与定理第一段内容的间距。 + \keyval-{spaceabove}{弹性长度} + 定理环境前的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 + \keyval-{spacebelow}{弹性长度} + 定理环境后的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 + \kvsplit-{notebraces}{\marg{左括号}\marg{右括号}}\newline + 设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。 + \keyval-{headformat}{标题排列} + 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 + \end{options} + + 下面定义一个名为 \code{mythm} 的定理样式用于 \cs{declaretheorem} 的 \option*{style} 选项: \begin{ctexexam}[labelref = exam:new theorem sty] - \declaretheoremstyle[bodyfont = \rmfamily,spacepost = 0.5em]{mythm} + \declaretheoremstyle{mythm}[ + wihin = chapter, + spaceabove = 6pt, + spacebelow = 6pt, + headfont = \normalfont\bfseries, + notefont = \sffamily, + notebraces = {[}{]}, + bodyfont = \itshape + ] \end{ctexexam} \end{commands} @@ -693,12 +691,12 @@ \label{subsec:page margins} 模块 \module*{geoset} 会将除了前两个附加的选项交给页面尺寸宏包 \pkg*{geometry} 处理,并且支持它的键值列表,预置的页面尺寸与 \cls*{Word} 的默认值接近。下面列举几种代表性选项,其它选项可查阅宏包帮助文档。当在此设置纸张规格时,会覆盖文类选项 \option{paper} 的设置。 \begin{options}\noitemsep - \keyval-{headruleskip}{页眉线间距}\Module{geoset}\Default*{0pt} - \keyval-{footruleskip}{页脚线间距}\Default*{3.5pt} + \keyval-{headruleskip}{页眉线间距}\Module{geoset}\Default-{0pt} + \keyval-{footruleskip}{页脚线间距}\Default-{3.5pt} \kvsplit*{hdivide}{左边距,页面文本宽度,右边距} \kvsplit*{hmargin}{左边距,右边距} \keyval*-{textheight}{页面文本高度}\default{} - \keybool*{nofoot}\Default*{false} + \keybool*{nofoot}\Default-{false} \begin{ctexexam} \ebgeoset { @@ -720,7 +718,7 @@ 标题标记命令 \cs*{sectionmark} 的内容,包括了标签选项 \option{sec-label} 的内容。 \keyval-{subsec-mark}{标题标记} 标题标记命令 \cs*{subsectionmark} 的内容,包括了标签选项 \option{subsec-label} 的内容。 - \kvsplit-{chap-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Carg{1em}} + \kvsplit-{chap-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{1em}} 标题标记命令 \cs*{chaptermark} 内容的标签(标题有编号时),比标题标记选项更常用,可选参数是对应于章节编号计数器的输出命令,必选参数是编号与标题之间的距离命令: \begin{ctexexam} \ebhdrset @@ -729,13 +727,13 @@ sec-mark = \CTEXifname{\CTEXthesection——}{}#1 } \end{ctexexam} - \kvsplit-{sec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Carg{0.5em}} + \kvsplit-{sec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}} 标题标记命令 \cs*{sectionmark} 内容的标签,用法与 \option{chap-label} 类似。 - \kvsplit-{subsec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Carg{0.5em}} + \kvsplit-{subsec-label}{\oarg{数字输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}} 标题标记命令内容 \cs*{subsectionmark} 的标签,用法与 \option{chap-label} 类似。 \keyval-{headrule}{横线命令} 绘制页眉横线的选项,可以使用 \cs*{hrule} 或下述 \cs{markrule} 等画线命令来绘制横线。 - \keyval-{footrule}{横线命令}\Default + \keyval-{footrule}{横线命令} 绘制页脚横线的选项,可以使用 \cs*{hrule} 或下述 \cs{markrule} 等画线命令来绘制横线。 \keyval-{footnoterule}{横线命令} 绘制脚注横线的选项,可以使用 \cs*{hrule} 或下述 \cs{markrule} 等画线命令来绘制横线。 @@ -818,7 +816,7 @@ 脚注正文标记的水平偏移,可以设为刚性长度,或用 \code{match} 匹配 \option*{sphmove} 全局的值。 \keychoice{fntext-vmove}{fixed length,match}\Default{0pt} 脚注内容标记的垂直偏移,可以设为刚性长度,或用 \code{match} 匹配 \option*{spvmove} 全局的值。 - \keychoice{fnmate-form}{format code,match}\Default + \keychoice{fnmate-form}{format code,match} 默认脚注标记的格式,选项 \code{match} 可以匹配 \option*{spcmd} 全局的值。一般与 \keyis-{fnmate-num}{plain} 原生编号形式使用,例如用 \pkg*{circledsteps} 宏包的带圈符号命令 \cs*{Circled} 给脚注标记添加圆圈: \begin{ctexexam} \usepackage{circledsteps} @@ -844,7 +842,7 @@ \defupfntmark{\super[vmove = 2pt]{\theupfootnote}} \defdownfntmark{\notminipage{\textcolor{blue}{\thedownfootnote}}{}} \end{ctexexam} - \keychoice{fncust-form}{format code,match}\Default + \keychoice{fncust-form}{format code,match} 单独设定自定义脚注标记的格式,选项 \code{match} 可以匹配 \option*{spcmd} 全局的值。自定义脚注的命令与用法可以见下方的介绍。 \begin{commands}\noitemsep \command{Footnote}[\oarg{内容标记}\marg{正文标记}\marg{脚注文本}]\default{} @@ -855,9 +853,9 @@ \Footnote{*}{这是可以自定义标记的脚注。} \end{ctexexam} \end{commands} - \keychoice{fnboth-form}{format code,match}\Default + \keychoice{fnboth-form}{format code,match} 同时设定默认脚注标记 \option{fnmate-form} 和自定义脚注标记 \option{fncust-form} 的格式。两种脚注标记匹配上标格式 \option*{spcmd} 的值是独立的,使用 \code{match} 则可以同时匹配。标记格式选项含有字体命令会覆盖 \option{footnote} 的设置,最后一个格式命令可以带有一个参数接受脚注标记。 - \keyval-{fnpara-form}{格式代码}\Default + \keyval-{fnpara-form}{格式代码} 脚注内容的格式,在此设置字体命令会覆盖 \option{footnote} 的设置,最后一个格式命令可以带有一个参数接受脚注内容。 \kvsplit{fntext-code}{前代码,后代码}\newline 可以用 \meta{前代码} 与 \meta{后代码} 额外增加脚注内容标记前后的代码,也可以只有前部分,\meta{前代码} 中最后一个格式命令可以带有一个参数接受脚注内容标记。由于脚注标记处于水平模式,一般用于在脚注内容标记与脚注首行间插入一点距离,或与脚注正文标记的格式稍有不同。 @@ -872,19 +870,19 @@ \subsection{目录样式} \label{subsec:catalog style} -模块 \module*{tocset} 将使用 \pkg*{titletoc} 宏包处理目录样式。模块或扩展包括了 \module*{part}、\module*{chapter}、\module*{section}、\module*{subsection}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 二级路径,而使用 \module*{list} 路径可以统一设置图片、表格和代码目录的样式。模块中 \option{tocformat}、\option{tocformat+}、\option{tocindent}、\option{tocrule}、\option{tocafter} 和 \option{tocline} 这 6 个选项支持所有相应\textbf{标题级别}的路径,没有特别说明的其它选项则处于 \module*{tocset} 路径下。目前支持标准的论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。 +模块 \module*{tocset} 将使用 \pkg*{titletoc} 宏包处理目录样式。模块或扩展包括了 \module*{part}、\module*{chapter}、\module*{section}、\module*{subsection}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 二级路径,而使用 \module*{list} 路径可以统一设置图片、表格和代码目录的样式。默认值后带有星号的选项支持所有相应\textbf{标题级别}的路径,其它选项则处于 \module*{tocset} 路径下。目前支持标准的论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。 \begin{options} - \keyval-{tocformat}{条目格式}\Module{tocset} + \keyval-{tocformat}{条目格式}\Module{tocset}\Default*{} 目录中各级别条目的格式,可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。 - \keyval-{tocformat+}{条目格式} + \keyval-{tocformat+}{条目格式}\Default*{} 与 \option{tocformat} 用法一样,只是在已有的格式命令后附加代码。 - \keyval-{tocindent}{刚性长度} + \keyval-{tocindent}{刚性长度}\Default*{} 各级别目录中的标题左边缩进距离,通常标题级别越低缩进越大。 - \keyval-{tocrule}{目录引导线命令} + \keyval-{tocrule}{目录引导线命令}\Default*{} 引导线选项 \option{tocrule} 中一般可以使用基于 \cs*{xleaders} 命令的 \cs{tocrule} 绘制引导线。 - \keyval-{tocafter}{距离命令}\Default{\cs*{hspace}\Carg{1em}} + \keyval-{tocafter}{距离命令}\Default*{\cs*{hspace}\Marg{1em}} 在各级别目录中标签与标题间的代码,默认为插入 \code{1em} 横向距离。 - \keyval-{tocline}{目录中的标题} + \keyval-{tocline}{目录中的标题}\Default*{} 这个选项扩展了图片、表格或代码加入目录的题注。选项中参数 \code{\#1} 代表相应题注编号 \cs*{the}\meta{计数器} 的值,参数 \code{\#2} 代表相应题注内容。 \begin{ctexexam}[labelref = exam:list command usage] \ctexset @@ -927,7 +925,7 @@ 引导线选项 \option{dotalign} 可以使目录引导线右端对齐并与页码保持一定间距,否则会与页码相连。 \keyval-{pagenumwd}{刚性长度}\Default{1.55em} 目录条目页码的宽度。开启 \option{dotalign} 选项时宽度越大引导线与页码的距离就越大。 - \keyval-{tocafter-every}{距离命令}\Default{\cs*{hspace}\Carg{1em}} + \keyval-{tocafter-every}{距离命令}\Default{\cs*{hspace}\Marg{1em}} 统一设置所有级别在目录中标签与标题间的代码。 \keyval-{tocindent-every}{刚性长度} 统一设置所有级别的目录标题左边缩进。 @@ -1000,36 +998,6 @@ \end{ctexexam} \end{environments} -\subsection{定理} -\label{subsec:theorem} -\begin{environments}\noitemsep - \environment{theorem}\default{} - \environment{definition}\default{} - \environment{lemma}\default{} - \environment{corollary}\default{} - \environment{proposition}\default{} - \environment{example}\default{} - \environment{proof}\default{} - \environment{assumption}\default{} - \environment{axiom}\default{} - \environment{remark}\default{} - \environment{conjecture}\default{} - \environment{problem} - 这些是预置的定理环境,可使用选项 \option{tcbwrap} 为它们添加盒子边框和背景,其中注与证明环境不编号,证明末尾会自动添加证明结束符,声明新的定理环境或更改定理盒子样式见\ref{subsec:theorem of style}。环境名与之对应的定理名如下: - \insertblr - { - colspec = @{}*{6}{c}@{}, - hline{3} = {0.5pt,Blue}, - row{1,3} = {font = \sffamily,belowsep = 0pt}, - row{2,4} = {cmd = \env} - }{ - 定理 & 定义 & 引理 & 推论 & 性质 & 例 \\ - theorem & definition & lemma & corollary & proposition & example \\ - 证明 & 假设 & 公理 & 注 & 猜想 & 问题 \\ - proof & assumption & axiom & remark & conjecture & problem - } -\end{environments} - \subsection{悬挂缩进} \begin{commands} \command{hangpara}[\marg{缩进长度}\marg{缩进开始行数}] @@ -1219,7 +1187,7 @@ \begin{options} \keyval-{width}{符号宽度}\Default{10pt} 设置适当的符号宽度可以防止文字重叠和边界溢出等问题。 - \keyval-{delim}{引导符}\Default{\Carg{——}} + \keyval-{delim}{引导符}\Default{——} 全局的符号对照引导符。\cs{symb} 局部的 \meta{引导符} 和对齐方式是基于这个符号的宽度。 \keyval-{space}{符号间隙}\Default{0.25em} 符号间隙为引导符两侧与符号和说明文字间的距离。 @@ -1229,9 +1197,9 @@ 引导符的对齐方式,分为左 \code{l}、中 \code{c} 和右 \code{r} 三种对齐方式。 \keyval-{enumitem}{键值列表2} 可以使用选项 \option{enumitem} 或命令 \cs{seteqcomplist} 调整对照列表的水平和垂直间距。 - \keyval-{intro}{首行文字}\Default + \keyval-{intro}{首行文字} 符号对照的说明文字。应当为简短的几个字,只显示在第一行,其后为悬挂缩进的对照列表。 - \keyval-{font}{符号字体}\Default + \keyval-{font}{符号字体} 符号的字体。数学和文本符号模式应采用不同的字体命令,最后一个命令可以接受一个参数,这个参数为符号。 \keychoice{mode}{math,text}\Default{math} 符号字体模式,可以为数学字体或者文本字体。 @@ -1284,6 +1252,14 @@ \item 增加定义脚注正文和内容标记格式的命令 \cs{defupfntmark} 和 \cs{defdownfntmark}。 \item 新增文档主目录中双语标题列表的输出排列方式选项 \option{bilist}。 \end{version} + \begin{version}[v = 1.52,date = 2022/01/25] + \added + \item 新增文类选项 \option{theorem} 用于提供定理功能支持。 + \deprecated + \item 由于命令存在一些无法解决的问题弃用定理环境定义命令 \cs*{deftheorem}。 + \item 文档类移除预置的定理环境,改为由用户自行定义环境。 + \item 考虑到功能性和实用性不强弃用摘要环境 \env*{outline} 和习题环境 \env*{exercise}。 + \end{version} \end{changelog} \nocite{*} diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx index e23d540b27d..54be2275fb6 100644 --- a/Master/texmf-dist/source/latex/easybook/easybook.dtx +++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2022/01/24}{1.51} +\ProvidesExplClass{easybook}{2022/01/25}{1.52} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -37,9 +37,9 @@ font .value_required:n = true, font .initial:n = auto, cjkfont .code:n = \eb_put_ctexbook:n { fontset = #1 }, - paper .code:n = \PassOptionsToPackage{#1}{geometry}, mathfont .tl_set:N = \l__eb_mathfont_value_tl, mathfont .initial:n = times, + paper .code:n = \PassOptionsToPackage{#1}{geometry}, class .choice:, class .value_required:n = true, class/book .code:n = { }, @@ -52,7 +52,7 @@ article .meta:n = { class = article }, config .clist_gset:N = \g__eb_config_file_clist, floatpage .bool_set:N = \l__eb_float_page_bool, - floatpage .default:n = true, + theorem .bool_set:N = \l__eb_theorem_support_bool, unknown .code:n = \clist_gput_right:NV \g__eb_doc_options_clist \CurrentOption } @@ -305,7 +305,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2022/01/24}{1.51} +\ProvidesExplPackage{easybase}{2022/01/25}{1.52} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -421,6 +421,9 @@ floatpage .bool_set:N = \l__eb_float_page_bool, floatpage .default:n = true, floatpage .initial:n = false, + theorem .bool_set:N = \l__eb_theorem_support_bool, + theorem .default:n = true, + theorem .initial:n = true, paper .code:n = \PassOptionsToPackage{#1}{geometry}, paper .initial:n = a4paper, class .choice:, @@ -505,7 +508,6 @@ ulem[normalem]+ enumitem[shortlabels,inline]+ chemformula+siunitx+pifont+ - amsthm+thmtools+ geometry+marginnote+ pdfpages+multicol+ fancyhdr+titletoc+caption+ @@ -530,7 +532,6 @@ { expl3 } { 2020/10/27 }, { xparse } { 2020/10/27 }, { l3keys2e } { 2020/10/27 }, - { thmtools } { 2020/08/01 }, { caption } { 2020/08/24 }, { fancyhdr } { 2021/01/28 }, { siunitx } { 2021/06/22 }, @@ -1496,7 +1497,7 @@ hyphen-figure = #1,hyphen-table = #1, hyphen-listing = #1,hyphen-equation = #1 }, - hyphen-every .initial:n = { . }, + hyphen-every .initial:n = ., unknown .code:n = \eb_msg_abandon_option:n { style } } \eb_seq_map_inline:nn @@ -1873,7 +1874,7 @@ width .dim_set:N = \l__eb_eqsymb_width_dim, width .initial:n = 10pt, delim .tl_set:N = \l__eb_eqsymb_delim_tl, - delim .initial:n = { —— }, + delim .initial:n = ——, space .dim_set:N = \l__eb_eqsymb_space_dim, space .initial:n = 0.25em, item-align .tl_set:N = \l__eb_eqsymb_item_align_tl, @@ -1946,123 +1947,32 @@ \tl_clear:N \l__eb_eqsymb_intro_tl \ignorespaces } - -\cs_new_protected:Npn \eb_thm_biname_set:nnn #1#2#3 - { - \tl_if_eq:NnTF \l__ctex_scheme_tl { chinese } - { \tl_set:cn { #1name } {#3} } - { \tl_set:cn { #1name } {#2} } - } -\cs_set_eq:NN \eb@declaretheorem@save \declaretheorem -\cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle -\RenewDocumentCommand{\declaretheorem}{O{}mO{}} - {\AtBeginDocument{\eb@declaretheorem@save[#1,#3]{#2}}} -\RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} - {\eb@declaretheoremsyle@save[#1,#3]{#2}} -\cs_set_eq:NN \newtheorem \declaretheorem -\cs_new_protected:Npn \eb_tcbwrap_if_load_tcolorbox:TF #1#2 - { - \bool_if:NT \l__eb_thm_tcbwrap_bool - { \@ifpackageloaded{tcolorbox}{#1}{#2} } - } -\NewDocumentCommand{\deftheorem} - {mO{\text_titlecase_first:n {#1}}mD(){tc-theorem}O{}} - { - \AtBeginDocument - { - \cs_undefine:c {#1} - \cs_undefine:c { c@#1 } - \@ifpackageloaded{cleveref}{} - {\labelformat{#1}{\tl_use:c { #1name }~##1}} - } - \eb_thm_biname_set:nnn {#1} {#2} {#3} - \declaretheorem{#1}[ - name = \tl_use:c { #1name }, - style = fancy,#5 +\bool_if:NT \l__eb_theorem_support_bool + { + \LoadPackage{amsthm+thmtools} + \eb_package_date_check:nn { thmtools } { 2020/08/01 } + \cs_set_eq:NN \eb@declaretheorem@save \declaretheorem + \cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle + \RenewDocumentCommand{\declaretheorem}{O{}mO{}} + {\eb@declaretheorem@save[#1,#3]{#2}} + \RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} + {\eb@declaretheoremsyle@save[#1,#3]{#2}} + \ctex_define:nn { thmset } + { + tcbwrap .code:n = { }, + unknown .code:n = \eb_msg_abandon_option:n { thmset } + } + \cs_undefine:N \proof + \declaretheoremstyle{fancy}[ + spaceabove = 0ex plus .1ex, + spacebelow = 0ex plus .1ex, + headindent = 0em, + within = \bool_if:NT \l__eb_class_mode_book_bool { chapter }, + headpunct = {}, + headfont = \color{ctex@emph}\sffamily, + bodyfont = \normalfont, + postheadspace = 1em ] - \eb_tcbwrap_if_load_tcolorbox:TF - { - \bool_if_exist:cTF { l__eb_tcb_repeat_env_#1_bool } - { \bool_set_true:c { l__eb_tcb_repeat_env_#1_bool } } - { \bool_set_false:c { l__eb_tcb_repeat_env_#1_bool } } - \bool_if:cF { l__eb_tcb_repeat_env_#1_bool } - { \tcolorboxenvironment{#1}{#4} } - } { } - } - -\prop_new:N \l__eb_thmtools_entry_prop -\clist_const:Nn \c__eb_thmtools_entry_clist - { - within = \l__eb_thm_within_tl, - headfont = \l__eb_thm_headfont_tl, - notefont = \l__eb_thm_notefont_tl, - bodyfont = \l__eb_thm_bodyfont_tl, - headpunct = \l__eb_thm_headpunct_tl, - spaceabove = \l__eb_thm_spaceabove_tl, - spacebelow = \l__eb_thm_spacebelow_tl, - headindent = \l__eb_thm_headindent_tl, - headformat = \l__eb_thm_headformat_tl, - postheadspace = \l__eb_thm_postheadspace_tl - } -\prop_set_from_keyval:NV -\l__eb_thmtools_entry_prop \c__eb_thmtools_entry_clist -\prop_map_inline:Nn \l__eb_thmtools_entry_prop - { \ctex_define:nn { thmset } { #1 .tl_set:N = #2 } } -\ctex_define:nn { thmset } - { - tcbwrap .bool_set:N = \l__eb_thm_tcbwrap_bool, - tcbwrap .default:n = true, - tcbwrap .initial:n = false, - thmbox .meta:n = { tcbwrap = #1 }, - thmbox .default:n = true, - notebraces .tl_set:N = \l__eb_thm_notebraces_tl, - unknown .code:n = \eb_msg_abandon_option:n { thmset } - } -\eb_patch_cmd:wnn \thmt@setheadstyle - { \def\NAME{\the\thm@headfont ##1} } - { - \def\NAME - { - \the\thm@headfont ##1 - \peek_meaning:NT \NUMBER { \tl_if_blank:nF {##2} { \ } } - } - } -\ctex_set:nn { thmset } - { - spaceabove = 0ex plus .1ex, - spacebelow = 0ex plus .1ex, - headindent = 0em, - headfont = \color{ctex@emph}\sffamily, - postheadspace = 1em, - notebraces = {(}{)}, - within = \bool_if:NT \l__eb_class_mode_book_bool { chapter }, - headformat = \NAME\NUMBER\NOTE - } -\msg_new:nnn { easybase } { need-tcolorbox } - { - Now~that~the~option~tcbwrap~is~true. \\ - Please~load~the~tcolorbox~macro~package. - } -\eb_at_end_preamble:n - { - \eb_tcbwrap_if_load_tcolorbox:TF { } - { \msg_warning:nn { easybase } { need-tcolorbox } } - \clist_put_right:Nx - \c__eb_thmtools_entry_clist { notebraces = \l__eb_thm_notebraces_tl } - \exp_last_unbraced:NNV - \declaretheoremstyle[\c__eb_thmtools_entry_clist]{fancy} - \deftheorem{proof}{证明}[numbered = no,qed = \qedsymbol] - \deftheorem{remark}{注}[numbered = no] - \deftheorem{proposition}{性质} - \deftheorem{assumption}{假设} - \deftheorem{conjecture}{猜想} - \deftheorem{definition}{定义} - \deftheorem{corollary}{推论} - \deftheorem{problem}{问题} - \deftheorem{theorem}{定理} - \deftheorem{example}{例} - \deftheorem{axiom}{公理} - \deftheorem{lemma}{引理} } \setchemformula @@ -2433,7 +2343,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/24}{1.51} +\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/25}{1.52} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \addtotcbstyle #1#2 @@ -2444,15 +2354,6 @@ { \@ifstar{\deftcbstyle}{\addtotcbstyle} } \cs_set_eq:NN \newtcbstyle \deftcbstyle -\deftcbstyle{tc-theorem} - { - enhanced~jigsaw, - frame~hidden,boxrule = 0pt, - beforeafter~skip = 0.5\baselineskip, - left = 8pt,right = 8pt, - top = 0.5\baselineskip,bottom = 0.5\baselineskip, - middle = 0.5\baselineskip - } \deftcbstyle{tc-easybox} { enhanced~jigsaw, diff --git a/Master/texmf-dist/tex/latex/easybook/easybase.sty b/Master/texmf-dist/tex/latex/easybook/easybase.sty index a8286c70351..6e0d456dc5c 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}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2022/01/24}{1.51} +\ProvidesExplPackage{easybase}{2022/01/25}{1.52} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -136,6 +136,9 @@ floatpage .bool_set:N = \l__eb_float_page_bool, floatpage .default:n = true, floatpage .initial:n = false, + theorem .bool_set:N = \l__eb_theorem_support_bool, + theorem .default:n = true, + theorem .initial:n = true, paper .code:n = \PassOptionsToPackage{#1}{geometry}, paper .initial:n = a4paper, class .choice:, @@ -220,7 +223,6 @@ ulem[normalem]+ enumitem[shortlabels,inline]+ chemformula+siunitx+pifont+ - amsthm+thmtools+ geometry+marginnote+ pdfpages+multicol+ fancyhdr+titletoc+caption+ @@ -245,7 +247,6 @@ { expl3 } { 2020/10/27 }, { xparse } { 2020/10/27 }, { l3keys2e } { 2020/10/27 }, - { thmtools } { 2020/08/01 }, { caption } { 2020/08/24 }, { fancyhdr } { 2021/01/28 }, { siunitx } { 2021/06/22 }, @@ -1211,7 +1212,7 @@ hyphen-figure = #1,hyphen-table = #1, hyphen-listing = #1,hyphen-equation = #1 }, - hyphen-every .initial:n = { . }, + hyphen-every .initial:n = ., unknown .code:n = \eb_msg_abandon_option:n { style } } \eb_seq_map_inline:nn @@ -1588,7 +1589,7 @@ width .dim_set:N = \l__eb_eqsymb_width_dim, width .initial:n = 10pt, delim .tl_set:N = \l__eb_eqsymb_delim_tl, - delim .initial:n = { —— }, + delim .initial:n = ——, space .dim_set:N = \l__eb_eqsymb_space_dim, space .initial:n = 0.25em, item-align .tl_set:N = \l__eb_eqsymb_item_align_tl, @@ -1661,123 +1662,32 @@ \tl_clear:N \l__eb_eqsymb_intro_tl \ignorespaces } - -\cs_new_protected:Npn \eb_thm_biname_set:nnn #1#2#3 - { - \tl_if_eq:NnTF \l__ctex_scheme_tl { chinese } - { \tl_set:cn { #1name } {#3} } - { \tl_set:cn { #1name } {#2} } - } -\cs_set_eq:NN \eb@declaretheorem@save \declaretheorem -\cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle -\RenewDocumentCommand{\declaretheorem}{O{}mO{}} - {\AtBeginDocument{\eb@declaretheorem@save[#1,#3]{#2}}} -\RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} - {\eb@declaretheoremsyle@save[#1,#3]{#2}} -\cs_set_eq:NN \newtheorem \declaretheorem -\cs_new_protected:Npn \eb_tcbwrap_if_load_tcolorbox:TF #1#2 - { - \bool_if:NT \l__eb_thm_tcbwrap_bool - { \@ifpackageloaded{tcolorbox}{#1}{#2} } - } -\NewDocumentCommand{\deftheorem} - {mO{\text_titlecase_first:n {#1}}mD(){tc-theorem}O{}} - { - \AtBeginDocument - { - \cs_undefine:c {#1} - \cs_undefine:c { c@#1 } - \@ifpackageloaded{cleveref}{} - {\labelformat{#1}{\tl_use:c { #1name }~##1}} - } - \eb_thm_biname_set:nnn {#1} {#2} {#3} - \declaretheorem{#1}[ - name = \tl_use:c { #1name }, - style = fancy,#5 +\bool_if:NT \l__eb_theorem_support_bool + { + \LoadPackage{amsthm+thmtools} + \eb_package_date_check:nn { thmtools } { 2020/08/01 } + \cs_set_eq:NN \eb@declaretheorem@save \declaretheorem + \cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle + \RenewDocumentCommand{\declaretheorem}{O{}mO{}} + {\eb@declaretheorem@save[#1,#3]{#2}} + \RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} + {\eb@declaretheoremsyle@save[#1,#3]{#2}} + \ctex_define:nn { thmset } + { + tcbwrap .code:n = { }, + unknown .code:n = \eb_msg_abandon_option:n { thmset } + } + \cs_undefine:N \proof + \declaretheoremstyle{fancy}[ + spaceabove = 0ex plus .1ex, + spacebelow = 0ex plus .1ex, + headindent = 0em, + within = \bool_if:NT \l__eb_class_mode_book_bool { chapter }, + headpunct = {}, + headfont = \color{ctex@emph}\sffamily, + bodyfont = \normalfont, + postheadspace = 1em ] - \eb_tcbwrap_if_load_tcolorbox:TF - { - \bool_if_exist:cTF { l__eb_tcb_repeat_env_#1_bool } - { \bool_set_true:c { l__eb_tcb_repeat_env_#1_bool } } - { \bool_set_false:c { l__eb_tcb_repeat_env_#1_bool } } - \bool_if:cF { l__eb_tcb_repeat_env_#1_bool } - { \tcolorboxenvironment{#1}{#4} } - } { } - } - -\prop_new:N \l__eb_thmtools_entry_prop -\clist_const:Nn \c__eb_thmtools_entry_clist - { - within = \l__eb_thm_within_tl, - headfont = \l__eb_thm_headfont_tl, - notefont = \l__eb_thm_notefont_tl, - bodyfont = \l__eb_thm_bodyfont_tl, - headpunct = \l__eb_thm_headpunct_tl, - spaceabove = \l__eb_thm_spaceabove_tl, - spacebelow = \l__eb_thm_spacebelow_tl, - headindent = \l__eb_thm_headindent_tl, - headformat = \l__eb_thm_headformat_tl, - postheadspace = \l__eb_thm_postheadspace_tl - } -\prop_set_from_keyval:NV -\l__eb_thmtools_entry_prop \c__eb_thmtools_entry_clist -\prop_map_inline:Nn \l__eb_thmtools_entry_prop - { \ctex_define:nn { thmset } { #1 .tl_set:N = #2 } } -\ctex_define:nn { thmset } - { - tcbwrap .bool_set:N = \l__eb_thm_tcbwrap_bool, - tcbwrap .default:n = true, - tcbwrap .initial:n = false, - thmbox .meta:n = { tcbwrap = #1 }, - thmbox .default:n = true, - notebraces .tl_set:N = \l__eb_thm_notebraces_tl, - unknown .code:n = \eb_msg_abandon_option:n { thmset } - } -\eb_patch_cmd:wnn \thmt@setheadstyle - { \def\NAME{\the\thm@headfont ##1} } - { - \def\NAME - { - \the\thm@headfont ##1 - \peek_meaning:NT \NUMBER { \tl_if_blank:nF {##2} { \ } } - } - } -\ctex_set:nn { thmset } - { - spaceabove = 0ex plus .1ex, - spacebelow = 0ex plus .1ex, - headindent = 0em, - headfont = \color{ctex@emph}\sffamily, - postheadspace = 1em, - notebraces = {(}{)}, - within = \bool_if:NT \l__eb_class_mode_book_bool { chapter }, - headformat = \NAME\NUMBER\NOTE - } -\msg_new:nnn { easybase } { need-tcolorbox } - { - Now~that~the~option~tcbwrap~is~true. \\ - Please~load~the~tcolorbox~macro~package. - } -\eb_at_end_preamble:n - { - \eb_tcbwrap_if_load_tcolorbox:TF { } - { \msg_warning:nn { easybase } { need-tcolorbox } } - \clist_put_right:Nx - \c__eb_thmtools_entry_clist { notebraces = \l__eb_thm_notebraces_tl } - \exp_last_unbraced:NNV - \declaretheoremstyle[\c__eb_thmtools_entry_clist]{fancy} - \deftheorem{proof}{证明}[numbered = no,qed = \qedsymbol] - \deftheorem{remark}{注}[numbered = no] - \deftheorem{proposition}{性质} - \deftheorem{assumption}{假设} - \deftheorem{conjecture}{猜想} - \deftheorem{definition}{定义} - \deftheorem{corollary}{推论} - \deftheorem{problem}{问题} - \deftheorem{theorem}{定理} - \deftheorem{example}{例} - \deftheorem{axiom}{公理} - \deftheorem{lemma}{引理} } \setchemformula diff --git a/Master/texmf-dist/tex/latex/easybook/easybook.cls b/Master/texmf-dist/tex/latex/easybook/easybook.cls index c61a6a8143b..5f79c5e1de5 100644 --- a/Master/texmf-dist/tex/latex/easybook/easybook.cls +++ b/Master/texmf-dist/tex/latex/easybook/easybook.cls @@ -20,7 +20,7 @@ %% This work has the LPPL maintenance status `maintained'. \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2022/01/24}{1.51} +\ProvidesExplClass{easybook}{2022/01/25}{1.52} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -42,9 +42,9 @@ font .value_required:n = true, font .initial:n = auto, cjkfont .code:n = \eb_put_ctexbook:n { fontset = #1 }, - paper .code:n = \PassOptionsToPackage{#1}{geometry}, mathfont .tl_set:N = \l__eb_mathfont_value_tl, mathfont .initial:n = times, + paper .code:n = \PassOptionsToPackage{#1}{geometry}, class .choice:, class .value_required:n = true, class/book .code:n = { }, @@ -57,7 +57,7 @@ article .meta:n = { class = article }, config .clist_gset:N = \g__eb_config_file_clist, floatpage .bool_set:N = \l__eb_float_page_bool, - floatpage .default:n = true, + theorem .bool_set:N = \l__eb_theorem_support_bool, unknown .code:n = \clist_gput_right:NV \g__eb_doc_options_clist \CurrentOption } diff --git a/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg b/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg index 7974da809a4..1ad0843b3ef 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}{2022/01/24}{1.51} +\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/25}{1.52} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \addtotcbstyle #1#2 @@ -29,15 +29,6 @@ { \@ifstar{\deftcbstyle}{\addtotcbstyle} } \cs_set_eq:NN \newtcbstyle \deftcbstyle -\deftcbstyle{tc-theorem} - { - enhanced~jigsaw, - frame~hidden,boxrule = 0pt, - beforeafter~skip = 0.5\baselineskip, - left = 8pt,right = 8pt, - top = 0.5\baselineskip,bottom = 0.5\baselineskip, - middle = 0.5\baselineskip - } \deftcbstyle{tc-easybox} { enhanced~jigsaw, |