diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/easybook/easybook.pdf | bin | 569332 -> 568439 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/easybook/easybook.dtx | 419 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/easybook/easybase.sty | 185 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/easybook/easybook.cls | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg | 63 |
5 files changed, 321 insertions, 348 deletions
diff --git a/Master/texmf-dist/doc/latex/easybook/easybook.pdf b/Master/texmf-dist/doc/latex/easybook/easybook.pdf Binary files differindex 9126c42467a..017c449994f 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/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx index 28934e5a5f5..2070d0dfd9d 100644 --- a/Master/texmf-dist/source/latex/easybook/easybook.dtx +++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx @@ -28,7 +28,7 @@ % % \title{\sffamily easybook 文档类手册} % \author{瞿毅} -% \date{2021/07/12\hskip\ccwd\relax v1.27c\thanks{\url{https://gitee.com/texl3/easybook}}} +% \date{2021/07/13\hskip\ccwd\relax v1.27d\thanks{\url{https://gitee.com/texl3/easybook}}} % % \maketitle % \begin{abstract} @@ -90,7 +90,7 @@ % % \section{文档类选项} % \label{sec:document class options} -% 标准 \cls{book} 文类与 \cls{ctexbook} 文类的选项同样适用于本文档。除此之外选项分为两类 +% 标准文档类与 \CTeX 文档类的选项和命令同样适用于本文档,除此之外选项分为两类: % \begin{itemize} % \item 带有 \rexptarget\rexpstar{} 号的选项,需要在引入文档类的时候设定。 % \item 带有 \exptarget\expstar{} 号的选项,需要通过 \CTeX 宏集提供的用户接口命令 \tn{ctexset} 或节 \ref{sec:interface options} 中此选项所属模块接口命令设定。 @@ -148,7 +148,7 @@ % cjkfont = <adobe|fandol|founder|mac|macnew|macold|ubuntu|windows|none> % \end{syntax} % 中文字体采用 \CTeX 宏集包含的字库并与其一致,具体配置方案可以查看 \CTeX 使用手册。它与 \opt{fontset} 选项是等效的,如果没有指定 \opt{cjkfont} 的值,将会自动检测用户的操作系统并选择相应的字体。 -% \changes{v1.27c}{2021/07/12}{新增 \opt{cjkfont} 选项设置中文字体,原 \opt{font} 选项设置英文字体,中文字体使用 \CTeX 的字库。} +% \changes{v1.27d}{2021/07/12}{新增 \opt{cjkfont} 选项设置中文字体,原 \opt{font} 选项设置英文字体,中文字体使用 \CTeX 的字库。} % \end{function} % % 如果需要使用其它中文字体,可以在启用选项 \opt{cjkfont = none} 后,再使用 \pkg{xeCJK} 宏包的相关命令设置字体以及声明字体族: @@ -188,7 +188,7 @@ % \begin{syntax} % class = <(book)|article> % \end{syntax} -% 使用 \cls{easybook} 文档类可以有两种模式,默认为 \cls{book} 模式。选用 \opt{article} 会变为 \opt{oneside} 单面排版,同时使文档编号、结构等与标准 \cls{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \tn{chapter} 命令,此时节 \ref{sec:document command} 中目录命令的 \opt{chapter} 选项会失效,将以 \opt{section} 标题级别输出目录。也可以使用 \opt{book} 或 \opt{article} 选项指定文档类型。如果使用 \cls{ctexart} 配合 \pkg{easybase} 宏包,则 \opt{book} 宏包选项会失效。 +% 使用 \cls{easybook} 文档类可以有两种模式,默认为 \cls{book} 模式。选用 \opt{article} 会变为 \opt{oneside} 单面排版,同时使文档编号、结构等与标准 \cls{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \tn{chapter} 命令,此时节 \ref{sec:document command} 中目录命令的 \opt{chapter} 选项会失效,将以 \opt{section} 标题级别输出目录。也可以使用 \opt{book} 或 \opt{article} 选项指定文档类型。如果使用 \cls{ctexart} 配合 \pkg{easybase} 宏包,则宏包选项 \opt{book} 会失效。 % \changes{v1.23}{2021/03/16}{增加 article 文章模式,可用于短篇幅的文章。} % \end{function} % @@ -280,7 +280,7 @@ % \changes{v1.26}{2021/06/28}{增加可以调整相对位置和格式的上标和下标命令 \tn{super}、\tn{sub} 和 \tn{supersub}。} % \end{function} % -% 垂直和水平偏移默认值都是 0 pt,\meta{对齐方式} 的参数与 \opt{supersubalign} 相同。\meta{格式代码} 用于格式化上标和下标,可以插入字体或颜色等命令。代码中的最后一个命令可以接受一个为上标或下标的参数。上标和下标命令还分别具有更简短的等价命令 \tn{sp}、\tn{sb} 和 \tn{spb}。 +% 默认没有垂直和水平偏移,\meta{对齐方式} 的参数与 \opt{supersubalign} 相同。\meta{格式代码} 用于格式化上标和下标,可以插入字体或颜色等命令。代码中的最后一个命令可以接受一个为上标或下标的参数。上标和下标命令还分别具有更简短的等价命令 \tn{sp}、\tn{sb} 和 \tn{spb}。 % % \section{接口选项} % \label{sec:interface options} @@ -317,19 +317,19 @@ % \end{syntax} % \ding{229} 以上选项路径为 \opt{style/...} % \changes{v1.10}{2021/01/08}{更改颜色实现方式与选项名。} -% \changes{v1.23}{2021/02/02}{noto风格的数学字体独立出来,可自定义设置。} +% \changes{v1.23}{2021/02/02}{noto 风格的数学字体独立出来,可自定义设置。} % \changes{v1.23}{2021/02/09}{增加控制页面横线粗细的选项 \opt{rulewidth}。} % \end{function} % % \begin{optdesc} % \item[color] 预置了四种主题颜色,默认主题 \opt{none} 为黑白页面,主题颜色不包括超链接。 -% \begin{function}{\DeclareThemeColor} -% \begin{syntax} -% \tn{DeclareThemeColor}\{<风格名称>,<ctex@frame>,<ctex@emph>,<ctex@verb>\} -% \end{syntax} -% 可以使用 \tn{DeclareThemeColor} 命令声明新的主题颜色,它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 HTML 颜色代码,构成主题颜色。类似地更改超链接颜色见小节 \ref{subsec:hyperlinks}。 -% \changes{v1.26}{2021/07/03}{使用 \tn{DeclareThemeColor} 命令声明新的颜色风格。} -% \end{function} +% \begin{function}{\DeclareThemeColor} +% \begin{syntax} +% \tn{DeclareThemeColor}\{<风格名称>,<ctex@frame>,<ctex@emph>,<ctex@verb>\} +% \end{syntax} +% 可以使用 \tn{DeclareThemeColor} 命令声明新的主题颜色,它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 HTML 颜色代码,构成主题颜色。类似地更改超链接颜色见小节 \ref{subsec:hyperlinks}。 +% \changes{v1.26}{2021/07/03}{使用 \tn{DeclareThemeColor} 命令声明新的颜色风格。} +% \end{function} % \item[color-all] 统一设置主题的各部分颜色,参数是 6 个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 % \item[multoc] 开启多栏目录,与节 \ref{sec:document command} 中目录命令的同名选项有相同效果。 % \item[withpart] 使章跟随每一部分编号,默认不跟随。 @@ -388,13 +388,13 @@ % \begin{optdesc} % \item[linktype] \opt{edge} 使超链接为边框形式,\opt{various} 使超链接变为彩色,预置了四种颜色样式。\opt{none} 关闭超链接边框与颜色,此时 \opt{linkcolor} 选项无效。 % \item[linkcolor] 超链接颜色样式。 -% \begin{function}{\DeclareLinkColor} -% \begin{syntax} -% \tn{DeclareLinkColor}\{<风格名称>,<ctex@link>,<ctex@url>,<ctex@cite>\} -% \end{syntax} -% 可以使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色样式,它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 HTML 颜色代码,构成超链接颜色。 -% \changes{v1.26}{2021/07/03}{使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色。} -% \end{function} +% \begin{function}{\DeclareLinkColor} +% \begin{syntax} +% \tn{DeclareLinkColor}\{<风格名称>,<ctex@link>,<ctex@url>,<ctex@cite>\} +% \end{syntax} +% 可以使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色样式,它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 HTML 颜色代码,构成超链接颜色。 +% \changes{v1.26}{2021/07/03}{使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色。} +% \end{function} % \item[linkcol-all] 统一设置超链接的各部分颜色,参数是 6 个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 % \item[linktoc] 将目录中的超链接取消、置于标题上、置于页码上或置于标题和页码上。 % \end{optdesc} @@ -434,7 +434,7 @@ % listing-cap = <(\tn{sffamily}\tn{small})> % footnote = <(\tn{rmfamily})> % marginpar = <(\tn{rmfamily}\tn{footnotesize})> -% math = <times|(noto)|notosans|nc|stix|charter|garamond|libertine|none> +% math = <(times)|noto|notosans|nc|stix|charter|garamond|libertine|none> % \end{syntax} % \ding{229} 以上选项路径为 \opt{subfont/...} % \changes{v1.10}{2021/01/08}{加入自定义非正文字体选项。} @@ -474,7 +474,7 @@ % \item[datafile] 参考文献数据库的文件名,可以是单个文件也可以是以括号包裹并以英文逗号分隔的文件列表,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,若不在当前文件夹名称需要包含路径。只有设置数据库的文件名才会载入 \pkg{natbib} 或 \pkg{biblatex} 宏包,之后才可使用相关配置命令,否则需要手动载入相关宏包配置参考文献。 % \end{optdesc} % -% \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\BibtexPostset,\BiblatexPreset,\BiblatexPostset} +% \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\BibtexPreSet,\BibtexPostSet,\BiblatexPreSet,\BiblatexPostSet} % \begin{syntax} % \tn{printbibliography}\oarg{键值列表} % \end{syntax} @@ -483,16 +483,17 @@ % % \begin{optdesc} % \item[\tn{printbibliography}] 两种方式 \textbf{均使用} 此命令打印参考文献,不同处理后端此命令的 \meta{键值列表} 不同。使用 \hologo{BibTeX} 处理时选项与节 \ref{sec:document command} 目录的选项相同,使用 \hologo{biber} 处理时常用的选项如下: -% \begin{function}{heading,title} -% \begin{syntax} -% heading = <bibliography|subbibliography|(bibintoc)|subbibintoc> -% title = <参考文献标题名> -% \end{syntax} -% \opt{heading} 为参考文献标题的处理方式,\opt{bibliography} 选项以 \opt{chapter} 级别输出参考文献,不加进目录,\opt{subbibliography} 选项以 \opt{section} 级别输出参考文献,不加进目录,\opt{bibintoc} 选项以 \opt{chapter} 级别输出参考文献,加进目录,\opt{subbibintoc} 选项以 \opt{section} 级别输出参考文献,加进目录。\opt{title} 选项覆盖由 \opt{heading} 选项提供的缺省标题名。除此之外其他支持选项可见 \pkg{biblatex} 宏包说明文档。 -% \end{function} -% \item[\tn{BibtexPostset}] 这是 \pkg{natbib} 宏包的配置命令,需要与 \pkg{natbib} 配合并放在载入其之后使用,默认保存了参考文献风格和标题的设置。 -% \item[\tn{BiblatexPreset}] 这是 \pkg{biblatex} 宏包的前配置命令,需要与 \pkg{biblatex} 配合并放在载入其之前使用,默认保存了参考文献风格的设置。若重新定义可使用 \tn{PassOptionsToPackage} 命令向 \pkg{biblatex} 传递它支持的各种参考文献选项。 -% \item[\tn{BiblatexPostset}] 这是 \pkg{biblatex} 宏包的后配置命令,需要与 \pkg{biblatex} 配合并放在载入其之后使用,默认保存了参考文献标题的设置。 +% \begin{function}{heading,title} +% \begin{syntax} +% heading = <bibliography|subbibliography|(bibintoc)|subbibintoc> +% title = <参考文献标题名> +% \end{syntax} +% \opt{heading} 为参考文献标题的处理方式,\opt{bibliography} 选项以 \opt{chapter} 级别输出参考文献,不加进目录,\opt{subbibliography} 选项以 \opt{section} 级别输出参考文献,不加进目录,\opt{bibintoc} 选项以 \opt{chapter} 级别输出参考文献,加进目录,\opt{subbibintoc} 选项以 \opt{section} 级别输出参考文献,加进目录。\opt{title} 选项覆盖由 \opt{heading} 选项提供的缺省标题名。除此之外其他支持选项可见 \pkg{biblatex} 宏包说明文档。 +% \end{function} +% \item[\tn{BibtexPreSet}] 这是 \pkg{natbib} 宏包的前配置命令,需要与 \pkg{natbib} 配合并放在载入其之前使用,可以重新定义它向 \pkg{natbib} 传递宏包选项。 +% \item[\tn{BibtexPostSet}] 这是 \pkg{natbib} 宏包的后配置命令,需要与 \pkg{natbib} 配合并放在载入其之后使用,默认保存了参考文献风格和标题的设置。 +% \item[\tn{BiblatexPreSet}] 这是 \pkg{biblatex} 宏包的前配置命令,需要与 \pkg{biblatex} 配合并放在载入其之前使用,默认保存了参考文献风格的设置。若重新定义可使用 \tn{PassOptionsToPackage} 命令向 \pkg{biblatex} 传递它支持的各种参考文献选项。 +% \item[\tn{BiblatexPostSet}] 这是 \pkg{biblatex} 宏包的后配置命令,需要与 \pkg{biblatex} 配合并放在载入其之后使用,默认保存了参考文献标题的设置。 % \end{optdesc} % % \subsection{定理样式} @@ -532,26 +533,27 @@ % \item[brackets] 设置行间公式编号标签的括号,以英文逗号分隔,分别为左右括号。 % \end{optdesc} % -% \begin{function}[added = 2021-01-12,updated = 2021-06-15]{\declaretheorem,\DeclareTheorem,\declaretheoremstyle} +% \subsubsection{新建定理样式} +% \begin{function}[added = 2021-01-12,updated = 2021-07-13]{\declaretheorem,\DeclareTheorem,\declaretheoremstyle} % \begin{syntax} -% \tn{declaretheorem}\oarg{键值列表}\marg{定理环境名} +% \tn{declaretheorem}\oarg{键值列表}\marg{定理环境名}\oarg{键值列表} % \tn{DeclareTheorem}\marg{定理环境名}\oarg{英文标题}\marg{中文标题}\parg{盒子样式|(tc-theorem)}\oarg{键值列表} -% \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名} +% \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名}\oarg{键值列表} % \end{syntax} -% 文档类已预置 8 个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这两个命令,由 \pkg{thmtools} 提供支持,用法与它的同名命令一致。 +% 文档类已预置 8 个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这三个命令,由 \pkg{thmtools} 提供支持,其中两个命令各自前后可选参数的 \meta{键值列表} 是等效的,用法与它们的同名命令一致。 % \changes{v1.23}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。} % \changes{v1.24}{2021/04/25}{增加定义定理环境命令 \tn{DeclareTheorem}。} % \changes{v1.26}{2021/06/15}{定义新定理环境的命令调整为 \tn{declaretheorem}。} % \end{function} % % \begin{optdesc} -% \item[\tn{declaretheorem}] 定义新的定理类环境,\tn{newtheorem} 命令与它等效。\meta{键值列表} 中常用的选项如下 -% \begin{description} -% \item[name] 定理的标题。默认值是环境的名称,并且首字母大写(英文标题)。 -% \item[numbered] 值为 \opt{no}、\opt{yes} 或 \opt{unless unique}。定理可以被编号、不被编号或者只有在文档中多次出现时才被编号。 -% \item[numberlike] 定理将使用此计数器进行编号,通常这是另一个定理环境的名称。 -% \item[style] 用 \tn{declaretheoremstyle} 定义的定理样式的名称,定理将使用这种样式的设置。 -% \end{description} +% \item[\tn{declaretheorem}] 定义新的定理类环境,\tn{newtheorem} 命令与它等效。\meta{键值列表} 中常用的选项如下: +% \begin{optdesc} +% \item[name] 定理的标题。默认值是环境的名称,并且首字母大写(英文标题)。 +% \item[numbered] 值为 \opt{no}、\opt{yes} 或 \opt{unless unique}。定理可以被编号、不被编号或者只有在文档中多次出现时才被编号。 +% \item[numberlike] 定理将使用此计数器进行编号,通常这是另一个定理环境的名称。 +% \item[style] 用 \tn{declaretheoremstyle} 定义的定理样式的名称,定理将使用这种样式的设置。 +% \end{optdesc} % \item[\tn{DeclareTheorem}] \tn{DeclareTheorem} 是更便捷的定理命令,它定义一个新的定理环境,\meta{键值列表} 支持的选项与 \tn{declaretheorem} 相同,但它们的区别有: % \begin{itemize} % \item 中英文模式下标题不同,英文标题为可选项,默认为首字母大写的环境名。 @@ -562,10 +564,9 @@ % \item[\tn{declaretheoremstyle}] 定义新的定理样式,\meta{键值列表} 中包括上述定理样式以及 \tn{declaretheorem} 的所有选项。 % \end{optdesc} % -% \subsubsection{新的定理样式} -% 预置定理的样式为 \opt{easy-theorem},上述定理样式选项将对这个定理样式生效。如果使用这个样式而只是增加新的定理名称,可以这样: +% 下面简单列举定理命令的用法,预置定理的样式为 \opt{easy-theorem},上述定理样式选项将对这个定理样式生效。如果使用这个样式而只是增加新的定理名称,可以这样: % \begin{ctexexam} -% \DeclareTheorem{定理环境名}{中文标题}[style = other theorem] +% \DeclareTheorem{定理环境名}{中文标题}[style = easy-theorem] % \declaretheorem[style = easy-theorem,name = 定理名]{定理环境名} % \end{ctexexam} % \tn{declaretheorem} 定义的定理环境需要手动增加盒子边框,可以如下进行设置: @@ -667,21 +668,29 @@ % \subsubsection{脚注格式} % \begin{function}[EXP,added = 2021-05-12]{fnmargin,fnparskip,fnparindent,fnhang,fnmark-pos,fnmark-num,fnmark-num,fnmark-form,afterfnmark} % \begin{syntax} -% fnmargin = <脚注首段缩进|(0.75\tn{ccwd})> -% fnparskip = <脚注段落间距|(0ex)> -% fnparindent = <脚注段落缩进|(2\tn{ccwd})> +% fnmargin = <刚性长度|(0.75\tn{ccwd})> +% fnparskip = <弹性长度|(0ex)> +% fnparindent = <刚性长度|(2\tn{ccwd})> % fnhang = <(true)|false> % fnmark-pos = <normal|(super)> % fnmark-num = <(plain)|pifont|pifont*|pifont-sans|pifont-sans*> -% fnmark-form = <脚注标记格式> -% afterfnmark = <脚注标记后的代码> +% fnmark-form = <格式代码> +% 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。 % \changes{v1.25}{2021/05/12}{增加脚注样式设置选项。} % \end{function} % -% \opt{fnmark-form} 是脚注标记的格式,在此设置字体命令会覆盖 \opt{subfont/footnote} 的设置,最后一个格式命令可以带有一个参数,这个参数接受脚注编号,一般配合 \opt{fnmark-num = plain} 使用。\opt{afterfnmark} 是脚注标记后的代码,一般用于设置标记与文本间的距离。 +% \begin{optdesc} +% \item[fnmargin] 脚注首段缩进距离,等于长度 \tn{footnotemargin} 的值。 +% \item[fnparskip] 脚注段落间距,仅在脚注为悬挂缩进时有效。 +% \item[fnparindent] 脚注段落缩进,仅在脚注为悬挂缩进时有效。 +% \item[fnhang] 脚注是否为悬挂缩进的格式,默认开启。 +% \item[fnmark-pos] 设置脚注编号的位置,正常文本或是上标形式。 +% \item[fnmark-num] 脚注编号的格式,默认为原生样式 \opt{plain},还可以改为 \opt{pifont} 的各个版本,从左往右依次为普通版、阴文衬线版、阳文无衬线版和阴文无衬线版,缺点是它们的编号仅包括 1-10。 +% \item[fnmark-form] 脚注标记的格式,在此设置字体命令会覆盖 \opt{subfont/footnote} 的设置,最后一个格式命令可以带有一个参数,这个参数接受脚注编号,一般配合 \opt{fnmark-num = plain} 使用。 +% \item[afterfnmark] 脚注标记后的代码,由于脚注标记处于水平盒子中,它一般用于设置标记与文本间的距离。 +% \end{optdesc} % % \subsection{目录样式} % \label{subsec:catalog style} @@ -694,7 +703,7 @@ % numsep = <编号后间距|(\tn{ccwd})> % \end{syntax} % \ding{229} 以上选项路径为 \opt{tocset/(level)/...} \\ -% \opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,\opt{(level)} 代表 part、chapter、section、subsection、figure、table 和 lstlisting 级别的目录,而使用 \opt{list} 级别可以统一设置图片、表格和代码目录的样式。 +% \opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,\opt{(level)} 代表 part、chapter、section、subsection、figure、table 和 lstlisting 级别的目录,而使用 list 级别可以统一设置图片、表格和代码目录的样式。 % \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。} % \changes{v1.24}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。} % \changes{v1.25}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。} @@ -794,40 +803,19 @@ % \ \tn{item} <列表内容> % \tn{end}\marg{环境名} % \end{syntax} -% \pkg{enumitem} 宏包为系统预置的列表环境 \env{enumerate}、\env{itemize}和 \env{description} 提供了更灵活的标签以及间距的控制,可使用 \tn{setlist} 命令设置原有的三种列表格式,也可以直接使用可选参数的 \meta{键值列表},具体选项见 \pkg{enumitem} 宏包文档。已为三种列表预置了三个级别的格式可相互嵌套,默认标签与 \cls{book} 文档类相同,若自定义标签可例如: +% \pkg{enumitem} 宏包为系统预置的三种列表环境即排序列表 \env{enumerate}、常规列表 \env{itemize} 和 主题列表 \env{description} 提供了更灵活的标签以及间距的控制,可使用 \tn{setlist} 命令设置三种列表格式,或者直接使用可选参数的 \meta{键值列表},具体选项见 \pkg{enumitem} 宏包文档。 +% +% 已为三种列表预置了三个级别,同种列表或不同种列表间的不同级别可相互嵌套,带有星号的环境为行内列表。默认列表标签与标准 \cls{book} 文档类一致,下面举几个更改列表标签以及其它格式的例子: % \changes{v1.24}{2021/04/08}{重新优化列表环境的配置。} % \end{function} % % \begin{ctexexam} +% \setlist{nosep} % 取消所有列表额外的垂直间距 % \begin{enumerate}[label = \arabic*(a),leftmargin = 1cm,resume] % \begin{itemize}[label = \textbullet] % \begin{description}[font = \sffamily\bfseries,style = nextline] % \end{ctexexam} % -% \subsubsection{排序列表} -% \label{subsec:sort list} -% 使用 \opt{enumerate} 环境可创建排序列表,使用 \env{enumerate*} 环境产生行内部列表,可以使用 \textbf{A、a、I、i和1} 作为可选项为 \env{enumerate} 与 \env{enumerate*} 格式化标签。若生成 \textbf{Item I、Item II、Item III} 格式可以这样: -% \begin{ctexexam} -% \begin{enumerate*}[(a)] -% \begin{enumerate}[\bfseries{Item} I] -% \end{ctexexam} -% -% \subsubsection{常规列表} -% 使用 \env{itemize} 环境可创建不计数列表,列表环境中若换行不缩进,若在列表中分段后则缩进两字符。 \opt{itemize*} 为行内常规列表,举一个用$\star$取代默认的符号的例子: -% \begin{ctexexam} -% \begin{itemize*}[$\star$] -% \begin{itemize}[$\star$] -% \end{ctexexam} -% -% \subsubsection{主题列表} -% 使用 \env{description} 环境可创建带有主题词的列表: -% \begin{ctexexam} -% \begin{description} -% \item[主题一] 内容一 -% \item[主题二] 内容二 -% \end{description} -% \end{ctexexam} -% % \subsection{定理} % \label{subsec:theorem} % \begin{function}[added = 2021-01-05,updated = 2021-01-08]{theorem,definition,lemma,corollary,proposition,example,remark,proof} @@ -856,7 +844,7 @@ % \tn{end}\{hangparas\} % \end{syntax} % \tn{hangpara} 命令使其后的一个段落保持悬挂缩进,\env{hangparas} 环境使其中的段落均保持悬挂缩进。缩进将以 \meta{缩进长度} 从每个段落的 \meta{缩进开始行数} 开始。 -% \changes{v1.27c}{2021/07/11}{增加悬挂缩进段落命令 \tn{hangpara} 和环境 \env{hangparas}。} +% \changes{v1.27d}{2021/07/11}{增加悬挂缩进段落命令 \tn{hangpara} 和环境 \env{hangparas}。} % \end{function} % % \subsection{代码} @@ -906,8 +894,8 @@ % \tcphanifname{\markright{\UseCounter{tcbcounter}{\quad 习题}}}{} % \exerprologue{习题前的一段文本} % \begin{exercise}+[color = LightSkyBlue](after skip = 3.75ex)[itemsep = 1ex] -% \item 习题内容 -% \item 习题内容 +% \item 第一题 +% \item 第二题 % \end{exercise} % \end{ctexexam} % @@ -944,9 +932,9 @@ % % \begin{ctexexam} % \begin{easybox}*[DarkCyan](段落标题) -% 盒子内容 -% \tcblower % 盒子上下部分分界线 -% 盒子内容 +% 上半盒子内容 +% \tcblower % 盒子上下部分分界线 +% 下半盒子内容 % \end{easybox} % \end{ctexexam} % @@ -956,17 +944,18 @@ % \ <盒子内容> % \tn{end}\{ebparbox\} % \end{syntax} -% 环境 \env{ebparbox} 与 \env{easybox} 类似,同样带有三个可选参数。当使用星号参数时盒子左边带有一条竖线,\meta{颜色名} 选项可以自定义竖线颜色,使用不带有星号的环境则盒子带有竖线颜色的浅色背景。\meta{段落标题} 选项可以设置标题,默认无标题。 +% 环境 \env{ebparbox} 与 \env{easybox} 类似,同样带有三个可选参数。当使用星号参数时盒子左边带有一条竖线,\meta{颜色名} 选项可以自定义竖线颜色,使用带有星号的环境则盒子带有竖线颜色的浅色背景。\meta{段落标题} 选项可以设置标题,默认无标题。 % \changes{v1.24}{2021/04/19}{优化盒子环境的选项,增加可带有标题的扁平盒子 \env{ebparbox}。} % \end{function} % % \subsubsection{行内盒子} -% \begin{function}[added = 2021-03-13,updated = 2021-04-21]{\eblink,\ebemph} +% \begin{function}[added = 2021-03-13,updated = 2021-07-13]{\eblink,\ebemph,\ebfbox} % \begin{syntax} % \tn{eblink}\oarg{颜色名|(Aqua)}\marg{内容}\oarg{配置选项} % \tn{ebemph}\oarg{颜色名|(DarkSeaGreen)}\marg{内容}\oarg{配置选项} +% \tn{ebfbox}\oarg{颜色名|(Lime)}\marg{内容}\oarg{配置选项} % \end{syntax} -% 设置了两个参数选项相同的行内盒子,盒子 \opt{eblink} 为抄录盒子有三个参数,行内盒子内容是必选参数其他可选。盒子 \opt{ebemph} 也是抄录盒子,具有模糊边缘类似高亮的效果。 +% 使用 \pkg{tcolorbox} 预置了三个参数选项相同的行内盒子,它们均为抄录命令。盒子 \opt{eblink} 具有类似超链接边框的效果,盒子 \opt{ebemph} 具有模糊边缘类似高亮的效果,盒子 \opt{ebfbox} 则有直角边缘并带有上下框线。 % \end{function} % % \section{更多用法} @@ -1043,11 +1032,11 @@ % \subsubsection{自定义脚注} % \begin{function}[added = 2021-01-05]{\Footnote,\Footnotetext,\Footnotemark} % \begin{syntax} -% \tn{Footnote}\marg{标记}\marg{插入文本} -% \tn{Footnotetext}\marg{标记}\marg{插入文本} +% \tn{Footnote}\marg{标记}\marg{脚注文本} +% \tn{Footnotetext}\marg{标记}\marg{脚注文本} % \tn{Footnotemark}\marg{标记} % \end{syntax} -% 自定义标记且不影响正常编号的脚注命令。 +% 这些是自定义 \meta{标记} 且不影响正常编号的脚注命令,用法与它们对应首字母小写的命令类似。如果 \meta{标记} 为空,那么将会使用上一个脚注标记。 % \end{function} % % \begin{ctexexam} @@ -1102,7 +1091,7 @@ % % \section{载入的宏包} % 以下为 \cls{easybook} 直接调用的关键宏包,带有 \ding{75} 符号的宏包并未载入它们,仅做了预配置和兼容性处理,可根据需要在导言区手动载入以实现相关的功能。 -% \begin{description} +% \begin{description}[font = \normalfont\sffamily] % \item[ctex] 提供中文排版的通用框架。 % \item[xcolor] 提供任意颜色的设定与混合,已载入了 \opt{svgnames} 颜色库。 % \item[footmisc] 更改脚注排版的方法的集合。 @@ -1185,7 +1174,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/07/12}{1.27c} +\ProvidesExplClass{easybook}{2021/07/13}{1.27d} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -1480,7 +1469,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/07/12}{1.27c} +\ProvidesExplPackage{easybase}{2021/07/13}{1.27d} {Typeset Chinese theses or books} \cs_generate_variant:Nn \ctex_define:nn { nx } @@ -1585,8 +1574,8 @@ \bool_set_false:N \l__eb_page_twoside_bool }, class .initial:n = book, - book .meta:n = { class = #1 }, - article .meta:n = { class = #1 }, + book .meta:n = { class = book }, + article .meta:n = { class = article }, unknown .code:n = { \clist_gput_right:NV \g__eb_ctex_options_clist \CurrentOption } @@ -1725,7 +1714,7 @@ headruleskip .tl_set:N = \headruleskip, headruleskip .initial:n = 1.5pt, footruleskip .tl_set:N = \footruleskip, - unknown .code:n = + unknown .code:n = { \clist_gput_right:Nx \g__eb_geometry_clist { @@ -2419,8 +2408,8 @@ \cs_new_protected:Npn \eb_biber_title_level_bool:n #1 { \bool_if:NTF \l__eb_class_book_bool - { \bichapter*{#1}{\l__eb_bib_bitoc_title} } - { \bisection*{#1}{\l__eb_bib_bitoc_title} } + { \bichapter*{#1}{\l__eb_bib_en_bitoc_title_tl} } + { \bisection*{#1}{\l__eb_bib_en_bitoc_title_tl} } \eb@level@section@mark{#1} } \cs_new_protected:Npn \eb_toc_start_multicol_bool:n #1 @@ -2575,7 +2564,7 @@ \l__eb_subfont_math_choice_tl \l_keys_choice_tl }, math .value_required:n = true, - math .initial:n = noto + math .initial:n = times } \cs_new_protected:Npn \eb_put_newtxmath:n #1 @@ -2753,30 +2742,32 @@ { \tl_const:cn { c__eb_name_#1_tl } {#3} } { \tl_const:cn { c__eb_name_#1_tl } {#2} } } +\cs_set_eq:NN \eb@declaretheorem@save \declaretheorem +\cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle +\RenewDocumentCommand{\declaretheorem}{O{}mO{}} + {\AfterPreamble{\eb@declaretheorem@save[#1,#3]{#2}}} +\cs_new_protected:Npn \eb@declaretheorem #1#2 + { \declaretheorem[#2]{#1} } +\RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} + {\eb@declaretheoremsyle@save[#1,#3]{#2}} +\cs_set_eq:NN \newtheorem \declaretheorem \NewDocumentCommand{\DeclareTheorem} {mO{\text_titlecase_first:n {#1}}mD(){tc-theorem}O{}} { - \ctex_at_end_preamble:n + \eb_thm_name_set:nnn {#1} {#2} {#3} + \eb@declaretheorem{#1} { - \eb_thm_name_set:nnn {#1} {#2} {#3} - \exp_args:No \declaretheorem@i - { - name = \tl_use:c { c__eb_name_#1_tl }, - style = easy-theorem,#5 - }{#1}[] - \bool_if:NT \l__eb_thmbox_bool - { - \@ifpackageloaded{tcolorbox} - {\tcolorboxenvironment{#1}{#4}}{} - } - \labelformat{#1}{\tl_use:c { c__eb_name_#1_tl }~##1} + name = \tl_use:c { c__eb_name_#1_tl }, + style = easy-theorem,#5 + } + \bool_if:NT \l__eb_thmbox_bool + { + \@ifpackageloaded{tcolorbox} + {\tcolorboxenvironment{#1}{#4}}{} } + \labelformat{#1}{\tl_use:c { c__eb_name_#1_tl }~##1} } \cs_set_eq:NN \EBNewTheorem \DeclareTheorem -\cs_set_eq:NN \eb@declare@theorem@save \declaretheorem -\RenewDocumentCommand{\declaretheorem}{O{}m} - {\AfterPreamble{\eb@declare@theorem@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 { @@ -2928,58 +2919,48 @@ } \bool_set_true:N \l__eb_backend_bibtex_bool -\tl_new:N \l__eb_bib_style_tl -\tl_new:N \l__eb_bib_otherstyle_tl -\tl_new:N \l__eb_bib_citestyle_tl +\tl_new:N \l__eb_bib_all_style_tl +\tl_new:N \l__eb_bib_cite_style_tl \clist_new:N \l__eb_bib_datafile_clist \ctex_define:nn { bibset } { backend .choice:, - backend .value_required:n = true, - backend/bibtex .code:n = { }, - backend/biblatex .code:n = + backend .value_required:n = true, + backend/bibtex .code:n = { }, + backend/biblatex .code:n = { \bool_set_false:N \l__eb_backend_bibtex_bool }, - bib-style .choice:, - bib-style .value_required:n = true, - bib-style/numerical .code:n = - { - \tl_set:Nn \l__eb_bib_style_tl {#1} - \tl_clear:N \l__eb_bib_otherstyle_tl - }, - bib-style/authoryear .code:n = - { - \tl_set:Nn \l__eb_bib_style_tl {#1} - \tl_clear:N \l__eb_bib_otherstyle_tl - }, - bib-style/unknown .code:n = - { \tl_set_eq:NN \l__eb_bib_otherstyle_tl \l_keys_value_tl }, - bib-style .initial:n = numerical, + bib-style .code:n = + { \tl_set:Nn \l__eb_bib_all_style_tl {#1} }, + bib-style .value_required:n = true, + bib-style .initial:n = numerical, cite-style .code:n = - { \tl_set:Nn \l__eb_bib_citestyle_tl {#1} }, + { \tl_set:Nn \l__eb_bib_cite_style_tl {#1} }, datafile .clist_set:N = \l__eb_bib_datafile_clist, - bitoc-title .tl_set:N = \l__eb_bib_bitoc_title, + bitoc-title .tl_set:N = \l__eb_bib_en_bitoc_title_tl, bitoc-title .initial:n = Reference } -\cs_new_protected:Npn \BibtexPostset +\cs_new_protected:Npn \BibtexPreSet + { \PassOptionsToPackage{sort&compress}{natbib} } +\cs_new_protected:Npn \BibtexPostSet { - \tl_if_empty:NTF \l__eb_bib_otherstyle_tl + \str_case:VnTF \l__eb_bib_all_style_tl { - \tl_if_eq:NnT \l__eb_bib_style_tl { numerical } - { - \bibliographystyle{gbt7714-numerical} - \setcitestyle{comma,square,super} - } - \tl_if_eq:NnT \l__eb_bib_style_tl { authoryear } - { \bibliographystyle{gbt7714-author-year} } - \cs_set_eq:NN \cite \citep + { numerical } + { + \bibliographystyle{gbt7714-numerical} + \setcitestyle{comma,square,super} + } + { authoryear } + { \bibliographystyle{gbt7714-author-year} } } + { \cs_set_eq:NN \cite \citep } { \exp_args:NV \bibliographystyle \l__eb_bib_otherstyle_tl } - \tl_if_empty:NF \l__eb_bib_citestyle_tl - { \exp_args:NV \setcitestyle \l__eb_bib_citestyle_tl } + \tl_if_empty:NF \l__eb_bib_cite_style_tl + { \exp_args:NV \setcitestyle \l__eb_bib_cite_style_tl } \skip_zero:N \bibsep \AtEndEnvironment{thebibliography} {\bool_if:NT \l__eb_toc_multi_column_bool { \end{multicols} }} @@ -3000,21 +2981,22 @@ } \cs_new_protected:Npn \eb_put_biblatex:n #1 { \PassOptionsToPackage{#1}{biblatex} } -\cs_new_protected:Npn \BiblatexPreset +\cs_new_protected:Npn \BiblatexPreSet { - \tl_if_empty:NTF \l__eb_bib_otherstyle_tl + \str_case:VnF \l__eb_bib_all_style_tl { - \tl_if_eq:NnT \l__eb_bib_style_tl { numerical } - { \eb_put_biblatex:n { style = gb7714-2015 } } - \tl_if_eq:NnT \l__eb_bib_style_tl { authoryear } - { \eb_put_biblatex:n { style = gb7714-2015ay } } + { numerical } { \use_i:nnn } + { authoryear } { \use_ii:nnn } } - { \eb_put_biblatex:n { style = \l__eb_bib_otherstyle_tl } } - \tl_if_empty:NF \l__eb_bib_citestyle_tl - { \eb_put_biblatex:n { citestyle = \l__eb_bib_citestyle_tl } } + { \use_iii:nnn } + { \eb_put_biblatex:n { style = gb7714-2015 } } + { \eb_put_biblatex:n { style = gb7714-2015ay } } + { \eb_put_biblatex:n { style = \l__eb_bib_all_style_tl } } + \tl_if_empty:NF \l__eb_bib_cite_style_tl + { \eb_put_biblatex:n { citestyle = \l__eb_bib_cite_style_tl } } \eb_put_biblatex:n { backend = biber } } -\cs_new_protected:Npn \BiblatexPostset +\cs_new_protected:Npn \BiblatexPostSet { \clist_map_function:NN \l__eb_bib_datafile_clist \addbibresource \tl_gset:Nn \blx@default@theheading { bibintoc } @@ -3028,43 +3010,33 @@ { \bool_if:NTF \l__eb_backend_bibtex_bool { - \LoadPackage[sort&compress]{natbib} - \BibtexPostset + \BibtexPreSet + \LoadPackage{natbib} + \BibtexPostSet } { - \BiblatexPreset + \BiblatexPreSet \LoadPackage{biblatex} - \BiblatexPostset + \BiblatexPostSet } } } +\cs_new:Npn \eb@lst@if@display #1#2 + { \lst@ifdisplaystyle #1\else #2\fi } \lstdefinestyle{easy-listings} { language = [LaTeX]TeX, - texcsstyle = - { - *\lst@ifdisplaystyle - \bfseries\color{ctex@verb} - \else - \color{ctex@verb} - \fi - }, + texcsstyle = {*}, basicstyle = { - \ttfamily\lst@ifdisplaystyle - \small - \else - \color{ctex@verb} - \fi + \ttfamily + \eb@lst@if@display{\small}{\color{ctex@verb}} }, keywordstyle = { - \lst@ifdisplaystyle - \bfseries\color{ctex@verb} - \else - \color{ctex@verb} - \fi + \color{ctex@verb} + \eb@lst@if@display{\bfseries}{} }, framexleftmargin = 0pt, framexrightmargin = 0pt, @@ -3075,12 +3047,7 @@ frame = single, rulecolor = \color{ctex@frame}, commentstyle = \color{SlateGray}, - emphstyle = \color{ctex@emph}, - % emph = {}, - morekeywords = - { - includegraphics,setmainfont,setsansfont,setmonofont,setCJKmainfont,setCJKsansfont,setCJKmonofont,setCJKfamilyfont,RequirePackage - } + emphstyle = \color{ctex@emph} } \lstset { @@ -3203,7 +3170,7 @@ \clist_map_function:nN { { none, 000000,000000,000000 }, - { seaside, 4169e1,007130,9932cc }, + { seaside, 4169e1,9932cc,eb6100 }, { energy, f39800,00a0e9,893895 }, { cyberpunk, 601986,eb6877,a4005b } } @@ -3215,10 +3182,11 @@ \cs_new:Npn \eb_allow_urlbreak: { - \cs_new:Npn \eb_add_urlbreak_points: - { \tl_map_function:NN \c__eb_urlbreak_points_tl \do } \eb_appto_cmd:Nn \UrlBreaks - { \UrlOrds\eb_add_urlbreak_points: } + { + \UrlOrds + \tl_map_function:NN \c__eb_urlbreak_points_tl \do + } } \tl_const:Nn \c__eb_urlbreak_points_tl { @@ -3274,7 +3242,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/12}{1.27c} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/13}{1.27d} {Customization of tcolorbox for easybook} \cs_new_protected:Npn \eb_tcb_theorem_set:n #1 @@ -3283,13 +3251,17 @@ { \tcbset{tc-outline/.style = {#1}} } \cs_new_protected:Npn \eb_tcb_exercise_set:n #1 { \tcbset{tc-exercise/.style = {#1}} } +\tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip } \eb_tcb_theorem_set:n { enhanced~jigsaw,pad~at~break* = 3pt, opacityback = 0, colframe = ctex@emph, sharpish~corners, - left = 6pt,right = 6pt,top = 8pt,bottom = 8pt,middle= 8pt + beforeafter~skip = 1.75ex plus .2ex minus .1ex, + left = 8pt,right = 8pt, + top = \eb@tc@line@skip,bottom = \eb@tc@line@skip, + middle = \eb@tc@line@skip } \eb_tcb_outline_set:n { @@ -3300,7 +3272,8 @@ fonttitle = \large\sffamily,fontupper = \itshape, boxed~title~style = {size = normal,opacityframe = 0,boxrule = 0pt}, attach~boxed~title~to~top~center = {yshift = -\tcboxedtitleheight/2}, - after~skip = 3ex,arc = 3pt, + after~skip = 3ex plus .2ex minus .1ex, + arc = 3pt, left = 2pc,right = 2pc,top = 1.5pc,bottom = 1pc } \eb_tcb_exercise_set:n @@ -3308,7 +3281,7 @@ blank,on~line,center, sharpish~corners, fontupper = \Large\sffamily, - before~skip = 3.75ex, + before~skip = 3.75ex plus.2ex minus .1ex, after~skip = 3ex\tl_if_empty:NF \eb@tc@list@prologue { + 0.75ex } } \tcbset @@ -3404,16 +3377,20 @@ { enhanced~jigsaw,pad~at~break* = 3pt, IfBooleanTF = {#1} - {toptitle = 8pt,top = 8pt} - {frame~hidden,boxrule = 0pt,toptitle = 8pt,top = 0pt}, + {toptitle = \eb@tc@line@skip,top = \eb@tc@line@skip} + { + frame~hidden,boxrule = 0pt, + toptitle = \eb@tc@line@skip,top = 0pt + }, IfValueT = {#3}{title = #3}, colback = #2,colbacktitle = #2, opacityback = 0.2,opacitybacktitle = 0.2, coltitle = black,colframe = black, sharpish~corners, - left = 6pt,right = 6pt,bottom = 8pt,middle= 8pt, - bottomtitle = 8pt, - beforeafter~skip = 2ex, + left = 8pt,right = 8pt, + bottom = \eb@tc@line@skip,middle = \eb@tc@line@skip, + bottomtitle = \eb@tc@line@skip, + beforeafter~skip = 1.75ex plus .2ex minus .1ex, halign~upper = left,halign~lower = left, center~title,#4 } @@ -3425,33 +3402,37 @@ borderline~west = {3pt}{0pt}{#2}, IfBooleanTF = {#1} { - colback = white, - IfValueT = {#3}{title = #3}, - top = 0pt,bottom = 0pt,toptitle = 0pt - }{ colback = #2,colbacktitle = #2, opacityback = 0.2,opacitybacktitle = 0.2, - IfValueTF = {#3}{title = #3,top = 0pt}{top = 8pt}, - bottom = 8pt,toptitle = 8pt + IfValueTF = {#3}{title = #3,top = 0pt}{top = \eb@tc@line@skip}, + bottom = \eb@tc@line@skip,toptitle = \eb@tc@line@skip, + right = 8pt + }{ + colback = white, + IfValueT = {#3}{title = #3}, + top = 0pt,bottom = 0pt,right = 0pt,toptitle = 0pt }, - left = 8pt,right = 8pt,middle= 8pt, sharpish~corners, - bottomtitle = 8pt, - beforeafter~skip = 2ex, + left = 8pt, + middle = \eb@tc@line@skip,bottomtitle = \eb@tc@line@skip, + beforeafter~skip = 1.75ex plus .2ex minus .1ex, colframe = #2,coltitle = #2,#4 } \DeclareTotalTCBox{\ebemph}{O{DarkSeaGreen}vO{}} - { - nobeforeafter,tcbox~raise~base, - blank,fuzzy~halo = 2pt~with~#1,#3 - }{#2} + {on~line,blank,fuzzy~halo = 2pt~with~#1,#3}{#2} \DeclareTotalTCBox{\eblink}{O{Aqua}vO{}} { - standard~jigsaw, - nobeforeafter,tcbox~raise~base, - top = 1.25pt,bottom = 1.25pt,left = 1.25pt,right = 1.25pt, + standard~jigsaw,on~line, + top = 1.5pt,bottom = 1.5pt,left = 1.5pt,right = 1.5pt, boxrule = 0.75pt,arc = 1pt, colback = #1,opacityback = 0.2,colframe = #1,#3 }{#2} +\DeclareTotalTCBox{\ebfbox}{O{Lime}vO{}} + { + on~line,sharpish~corners, + top = 2pt,bottom = 2pt,left = 1pt,right = 1pt, + leftrule = 0pt,rightrule = 0pt, + colback = #1!10!white,colframe = #1!50!black,#3 + }{#2} %</tcolorbox> \endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/easybook/easybase.sty b/Master/texmf-dist/tex/latex/easybook/easybase.sty index 2a7e98a7335..fe061543ac1 100644 --- a/Master/texmf-dist/tex/latex/easybook/easybase.sty +++ b/Master/texmf-dist/tex/latex/easybook/easybase.sty @@ -13,7 +13,7 @@ %% https://creativecommons.org/licenses/by/4.0/legalcode \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/07/12}{1.27c} +\ProvidesExplPackage{easybase}{2021/07/13}{1.27d} {Typeset Chinese theses or books} \cs_generate_variant:Nn \ctex_define:nn { nx } @@ -118,8 +118,8 @@ \bool_set_false:N \l__eb_page_twoside_bool }, class .initial:n = book, - book .meta:n = { class = #1 }, - article .meta:n = { class = #1 }, + book .meta:n = { class = book }, + article .meta:n = { class = article }, unknown .code:n = { \clist_gput_right:NV \g__eb_ctex_options_clist \CurrentOption } @@ -258,7 +258,7 @@ headruleskip .tl_set:N = \headruleskip, headruleskip .initial:n = 1.5pt, footruleskip .tl_set:N = \footruleskip, - unknown .code:n = + unknown .code:n = { \clist_gput_right:Nx \g__eb_geometry_clist { @@ -952,8 +952,8 @@ \cs_new_protected:Npn \eb_biber_title_level_bool:n #1 { \bool_if:NTF \l__eb_class_book_bool - { \bichapter*{#1}{\l__eb_bib_bitoc_title} } - { \bisection*{#1}{\l__eb_bib_bitoc_title} } + { \bichapter*{#1}{\l__eb_bib_en_bitoc_title_tl} } + { \bisection*{#1}{\l__eb_bib_en_bitoc_title_tl} } \eb@level@section@mark{#1} } \cs_new_protected:Npn \eb_toc_start_multicol_bool:n #1 @@ -1108,7 +1108,7 @@ \l__eb_subfont_math_choice_tl \l_keys_choice_tl }, math .value_required:n = true, - math .initial:n = noto + math .initial:n = times } \cs_new_protected:Npn \eb_put_newtxmath:n #1 @@ -1286,30 +1286,32 @@ { \tl_const:cn { c__eb_name_#1_tl } {#3} } { \tl_const:cn { c__eb_name_#1_tl } {#2} } } +\cs_set_eq:NN \eb@declaretheorem@save \declaretheorem +\cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle +\RenewDocumentCommand{\declaretheorem}{O{}mO{}} + {\AfterPreamble{\eb@declaretheorem@save[#1,#3]{#2}}} +\cs_new_protected:Npn \eb@declaretheorem #1#2 + { \declaretheorem[#2]{#1} } +\RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} + {\eb@declaretheoremsyle@save[#1,#3]{#2}} +\cs_set_eq:NN \newtheorem \declaretheorem \NewDocumentCommand{\DeclareTheorem} {mO{\text_titlecase_first:n {#1}}mD(){tc-theorem}O{}} { - \ctex_at_end_preamble:n + \eb_thm_name_set:nnn {#1} {#2} {#3} + \eb@declaretheorem{#1} { - \eb_thm_name_set:nnn {#1} {#2} {#3} - \exp_args:No \declaretheorem@i - { - name = \tl_use:c { c__eb_name_#1_tl }, - style = easy-theorem,#5 - }{#1}[] - \bool_if:NT \l__eb_thmbox_bool - { - \@ifpackageloaded{tcolorbox} - {\tcolorboxenvironment{#1}{#4}}{} - } - \labelformat{#1}{\tl_use:c { c__eb_name_#1_tl }~##1} + name = \tl_use:c { c__eb_name_#1_tl }, + style = easy-theorem,#5 } + \bool_if:NT \l__eb_thmbox_bool + { + \@ifpackageloaded{tcolorbox} + {\tcolorboxenvironment{#1}{#4}}{} + } + \labelformat{#1}{\tl_use:c { c__eb_name_#1_tl }~##1} } \cs_set_eq:NN \EBNewTheorem \DeclareTheorem -\cs_set_eq:NN \eb@declare@theorem@save \declaretheorem -\RenewDocumentCommand{\declaretheorem}{O{}m} - {\AfterPreamble{\eb@declare@theorem@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 { @@ -1461,58 +1463,48 @@ } \bool_set_true:N \l__eb_backend_bibtex_bool -\tl_new:N \l__eb_bib_style_tl -\tl_new:N \l__eb_bib_otherstyle_tl -\tl_new:N \l__eb_bib_citestyle_tl +\tl_new:N \l__eb_bib_all_style_tl +\tl_new:N \l__eb_bib_cite_style_tl \clist_new:N \l__eb_bib_datafile_clist \ctex_define:nn { bibset } { backend .choice:, - backend .value_required:n = true, - backend/bibtex .code:n = { }, - backend/biblatex .code:n = + backend .value_required:n = true, + backend/bibtex .code:n = { }, + backend/biblatex .code:n = { \bool_set_false:N \l__eb_backend_bibtex_bool }, - bib-style .choice:, - bib-style .value_required:n = true, - bib-style/numerical .code:n = - { - \tl_set:Nn \l__eb_bib_style_tl {#1} - \tl_clear:N \l__eb_bib_otherstyle_tl - }, - bib-style/authoryear .code:n = - { - \tl_set:Nn \l__eb_bib_style_tl {#1} - \tl_clear:N \l__eb_bib_otherstyle_tl - }, - bib-style/unknown .code:n = - { \tl_set_eq:NN \l__eb_bib_otherstyle_tl \l_keys_value_tl }, - bib-style .initial:n = numerical, + bib-style .code:n = + { \tl_set:Nn \l__eb_bib_all_style_tl {#1} }, + bib-style .value_required:n = true, + bib-style .initial:n = numerical, cite-style .code:n = - { \tl_set:Nn \l__eb_bib_citestyle_tl {#1} }, + { \tl_set:Nn \l__eb_bib_cite_style_tl {#1} }, datafile .clist_set:N = \l__eb_bib_datafile_clist, - bitoc-title .tl_set:N = \l__eb_bib_bitoc_title, + bitoc-title .tl_set:N = \l__eb_bib_en_bitoc_title_tl, bitoc-title .initial:n = Reference } -\cs_new_protected:Npn \BibtexPostset - { - \tl_if_empty:NTF \l__eb_bib_otherstyle_tl - { - \tl_if_eq:NnT \l__eb_bib_style_tl { numerical } - { - \bibliographystyle{gbt7714-numerical} - \setcitestyle{comma,square,super} - } - \tl_if_eq:NnT \l__eb_bib_style_tl { authoryear } - { \bibliographystyle{gbt7714-author-year} } - \cs_set_eq:NN \cite \citep +\cs_new_protected:Npn \BibtexPreSet + { \PassOptionsToPackage{sort&compress}{natbib} } +\cs_new_protected:Npn \BibtexPostSet + { + \str_case:VnTF \l__eb_bib_all_style_tl + { + { numerical } + { + \bibliographystyle{gbt7714-numerical} + \setcitestyle{comma,square,super} + } + { authoryear } + { \bibliographystyle{gbt7714-author-year} } } + { \cs_set_eq:NN \cite \citep } { \exp_args:NV \bibliographystyle \l__eb_bib_otherstyle_tl } - \tl_if_empty:NF \l__eb_bib_citestyle_tl - { \exp_args:NV \setcitestyle \l__eb_bib_citestyle_tl } + \tl_if_empty:NF \l__eb_bib_cite_style_tl + { \exp_args:NV \setcitestyle \l__eb_bib_cite_style_tl } \skip_zero:N \bibsep \AtEndEnvironment{thebibliography} {\bool_if:NT \l__eb_toc_multi_column_bool { \end{multicols} }} @@ -1533,21 +1525,22 @@ } \cs_new_protected:Npn \eb_put_biblatex:n #1 { \PassOptionsToPackage{#1}{biblatex} } -\cs_new_protected:Npn \BiblatexPreset +\cs_new_protected:Npn \BiblatexPreSet { - \tl_if_empty:NTF \l__eb_bib_otherstyle_tl + \str_case:VnF \l__eb_bib_all_style_tl { - \tl_if_eq:NnT \l__eb_bib_style_tl { numerical } - { \eb_put_biblatex:n { style = gb7714-2015 } } - \tl_if_eq:NnT \l__eb_bib_style_tl { authoryear } - { \eb_put_biblatex:n { style = gb7714-2015ay } } + { numerical } { \use_i:nnn } + { authoryear } { \use_ii:nnn } } - { \eb_put_biblatex:n { style = \l__eb_bib_otherstyle_tl } } - \tl_if_empty:NF \l__eb_bib_citestyle_tl - { \eb_put_biblatex:n { citestyle = \l__eb_bib_citestyle_tl } } + { \use_iii:nnn } + { \eb_put_biblatex:n { style = gb7714-2015 } } + { \eb_put_biblatex:n { style = gb7714-2015ay } } + { \eb_put_biblatex:n { style = \l__eb_bib_all_style_tl } } + \tl_if_empty:NF \l__eb_bib_cite_style_tl + { \eb_put_biblatex:n { citestyle = \l__eb_bib_cite_style_tl } } \eb_put_biblatex:n { backend = biber } } -\cs_new_protected:Npn \BiblatexPostset +\cs_new_protected:Npn \BiblatexPostSet { \clist_map_function:NN \l__eb_bib_datafile_clist \addbibresource \tl_gset:Nn \blx@default@theheading { bibintoc } @@ -1561,43 +1554,33 @@ { \bool_if:NTF \l__eb_backend_bibtex_bool { - \LoadPackage[sort&compress]{natbib} - \BibtexPostset + \BibtexPreSet + \LoadPackage{natbib} + \BibtexPostSet } { - \BiblatexPreset + \BiblatexPreSet \LoadPackage{biblatex} - \BiblatexPostset + \BiblatexPostSet } } } +\cs_new:Npn \eb@lst@if@display #1#2 + { \lst@ifdisplaystyle #1\else #2\fi } \lstdefinestyle{easy-listings} { language = [LaTeX]TeX, - texcsstyle = - { - *\lst@ifdisplaystyle - \bfseries\color{ctex@verb} - \else - \color{ctex@verb} - \fi - }, + texcsstyle = {*}, basicstyle = { - \ttfamily\lst@ifdisplaystyle - \small - \else - \color{ctex@verb} - \fi + \ttfamily + \eb@lst@if@display{\small}{\color{ctex@verb}} }, keywordstyle = { - \lst@ifdisplaystyle - \bfseries\color{ctex@verb} - \else - \color{ctex@verb} - \fi + \color{ctex@verb} + \eb@lst@if@display{\bfseries}{} }, framexleftmargin = 0pt, framexrightmargin = 0pt, @@ -1608,12 +1591,7 @@ frame = single, rulecolor = \color{ctex@frame}, commentstyle = \color{SlateGray}, - emphstyle = \color{ctex@emph}, - % emph = {}, - morekeywords = - { - includegraphics,setmainfont,setsansfont,setmonofont,setCJKmainfont,setCJKsansfont,setCJKmonofont,setCJKfamilyfont,RequirePackage - } + emphstyle = \color{ctex@emph} } \lstset { @@ -1736,7 +1714,7 @@ \clist_map_function:nN { { none, 000000,000000,000000 }, - { seaside, 4169e1,007130,9932cc }, + { seaside, 4169e1,9932cc,eb6100 }, { energy, f39800,00a0e9,893895 }, { cyberpunk, 601986,eb6877,a4005b } } @@ -1748,10 +1726,11 @@ \cs_new:Npn \eb_allow_urlbreak: { - \cs_new:Npn \eb_add_urlbreak_points: - { \tl_map_function:NN \c__eb_urlbreak_points_tl \do } \eb_appto_cmd:Nn \UrlBreaks - { \UrlOrds\eb_add_urlbreak_points: } + { + \UrlOrds + \tl_map_function:NN \c__eb_urlbreak_points_tl \do + } } \tl_const:Nn \c__eb_urlbreak_points_tl { diff --git a/Master/texmf-dist/tex/latex/easybook/easybook.cls b/Master/texmf-dist/tex/latex/easybook/easybook.cls index 3ece1ab9add..6e4e5082af8 100644 --- a/Master/texmf-dist/tex/latex/easybook/easybook.cls +++ b/Master/texmf-dist/tex/latex/easybook/easybook.cls @@ -13,7 +13,7 @@ %% https://creativecommons.org/licenses/by/4.0/legalcode \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/07/12}{1.27c} +\ProvidesExplClass{easybook}{2021/07/13}{1.27d} {Typeset Chinese theses or books} \bool_set_false: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 a5e142e7bc1..82cf72e7fd0 100644 --- a/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg +++ b/Master/texmf-dist/tex/latex/easybook/eb-tcolorbox.cfg @@ -11,7 +11,7 @@ %% conditions of the CC-BY 4.0 License. %% The latest version of this license is in %% https://creativecommons.org/licenses/by/4.0/legalcode -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/12}{1.27c} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/13}{1.27d} {Customization of tcolorbox for easybook} \cs_new_protected:Npn \eb_tcb_theorem_set:n #1 @@ -20,13 +20,17 @@ { \tcbset{tc-outline/.style = {#1}} } \cs_new_protected:Npn \eb_tcb_exercise_set:n #1 { \tcbset{tc-exercise/.style = {#1}} } +\tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip } \eb_tcb_theorem_set:n { enhanced~jigsaw,pad~at~break* = 3pt, opacityback = 0, colframe = ctex@emph, sharpish~corners, - left = 6pt,right = 6pt,top = 8pt,bottom = 8pt,middle= 8pt + beforeafter~skip = 1.75ex plus .2ex minus .1ex, + left = 8pt,right = 8pt, + top = \eb@tc@line@skip,bottom = \eb@tc@line@skip, + middle = \eb@tc@line@skip } \eb_tcb_outline_set:n { @@ -37,7 +41,8 @@ fonttitle = \large\sffamily,fontupper = \itshape, boxed~title~style = {size = normal,opacityframe = 0,boxrule = 0pt}, attach~boxed~title~to~top~center = {yshift = -\tcboxedtitleheight/2}, - after~skip = 3ex,arc = 3pt, + after~skip = 3ex plus .2ex minus .1ex, + arc = 3pt, left = 2pc,right = 2pc,top = 1.5pc,bottom = 1pc } \eb_tcb_exercise_set:n @@ -45,7 +50,7 @@ blank,on~line,center, sharpish~corners, fontupper = \Large\sffamily, - before~skip = 3.75ex, + before~skip = 3.75ex plus.2ex minus .1ex, after~skip = 3ex\tl_if_empty:NF \eb@tc@list@prologue { + 0.75ex } } \tcbset @@ -141,16 +146,20 @@ { enhanced~jigsaw,pad~at~break* = 3pt, IfBooleanTF = {#1} - {toptitle = 8pt,top = 8pt} - {frame~hidden,boxrule = 0pt,toptitle = 8pt,top = 0pt}, + {toptitle = \eb@tc@line@skip,top = \eb@tc@line@skip} + { + frame~hidden,boxrule = 0pt, + toptitle = \eb@tc@line@skip,top = 0pt + }, IfValueT = {#3}{title = #3}, colback = #2,colbacktitle = #2, opacityback = 0.2,opacitybacktitle = 0.2, coltitle = black,colframe = black, sharpish~corners, - left = 6pt,right = 6pt,bottom = 8pt,middle= 8pt, - bottomtitle = 8pt, - beforeafter~skip = 2ex, + left = 8pt,right = 8pt, + bottom = \eb@tc@line@skip,middle = \eb@tc@line@skip, + bottomtitle = \eb@tc@line@skip, + beforeafter~skip = 1.75ex plus .2ex minus .1ex, halign~upper = left,halign~lower = left, center~title,#4 } @@ -162,34 +171,38 @@ borderline~west = {3pt}{0pt}{#2}, IfBooleanTF = {#1} { - colback = white, - IfValueT = {#3}{title = #3}, - top = 0pt,bottom = 0pt,toptitle = 0pt - }{ colback = #2,colbacktitle = #2, opacityback = 0.2,opacitybacktitle = 0.2, - IfValueTF = {#3}{title = #3,top = 0pt}{top = 8pt}, - bottom = 8pt,toptitle = 8pt + IfValueTF = {#3}{title = #3,top = 0pt}{top = \eb@tc@line@skip}, + bottom = \eb@tc@line@skip,toptitle = \eb@tc@line@skip, + right = 8pt + }{ + colback = white, + IfValueT = {#3}{title = #3}, + top = 0pt,bottom = 0pt,right = 0pt,toptitle = 0pt }, - left = 8pt,right = 8pt,middle= 8pt, sharpish~corners, - bottomtitle = 8pt, - beforeafter~skip = 2ex, + left = 8pt, + middle = \eb@tc@line@skip,bottomtitle = \eb@tc@line@skip, + beforeafter~skip = 1.75ex plus .2ex minus .1ex, colframe = #2,coltitle = #2,#4 } \DeclareTotalTCBox{\ebemph}{O{DarkSeaGreen}vO{}} - { - nobeforeafter,tcbox~raise~base, - blank,fuzzy~halo = 2pt~with~#1,#3 - }{#2} + {on~line,blank,fuzzy~halo = 2pt~with~#1,#3}{#2} \DeclareTotalTCBox{\eblink}{O{Aqua}vO{}} { - standard~jigsaw, - nobeforeafter,tcbox~raise~base, - top = 1.25pt,bottom = 1.25pt,left = 1.25pt,right = 1.25pt, + standard~jigsaw,on~line, + top = 1.5pt,bottom = 1.5pt,left = 1.5pt,right = 1.5pt, boxrule = 0.75pt,arc = 1pt, colback = #1,opacityback = 0.2,colframe = #1,#3 }{#2} +\DeclareTotalTCBox{\ebfbox}{O{Lime}vO{}} + { + on~line,sharpish~corners, + top = 2pt,bottom = 2pt,left = 1pt,right = 1pt, + leftrule = 0pt,rightrule = 0pt, + colback = #1!10!white,colframe = #1!50!black,#3 + }{#2} \endinput %% %% End of file `eb-tcolorbox.cfg'. |