summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/easybook/easybook.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/easybook/easybook.dtx')
-rw-r--r--Master/texmf-dist/source/latex/easybook/easybook.dtx169
1 files changed, 86 insertions, 83 deletions
diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx
index 0eebece9c54..1b187b7a0d7 100644
--- a/Master/texmf-dist/source/latex/easybook/easybook.dtx
+++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx
@@ -55,7 +55,7 @@ The latest version of this license is in
%
% \title{\sffamily easybook 书籍文档类}
% \author{瞿毅}
-% \date{2021/04/10\hskip\ccwd\relax v1.24j\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/04/11\hskip\ccwd\relax v1.24k\thanks{\url{https://gitee.com/texl3/easybook}}}
% \maketitle
% \begin{abstract}
% \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -152,17 +152,18 @@ The latest version of this license is in
%
% \subsection{文档命令}
% \label{subsec:document command}
-% \begin{function}[added = 2021-02-20,updated = 2021-04-04]{\frontmatter,\mainmatter,\backmatter,\tableofcontents,\listoffigures,\listoftables,\listoflistings}
+% \begin{function}[added = 2021-02-20,updated = 2021-04-11]{\frontmatter,\mainmatter,\backmatter,\cleardoublepage,\tableofcontents,\listoffigures,\listoftables,\listoflistings}
% \begin{syntax}
% \tn{frontmatter*}\oarg{编号格式|(Roman)}
% \tn{mainmatter*}
% \tn{backmatter}
+% \tn{cleardoublepage}\oarg{页面风格|(empty)}
% \tn{tableofcontents}\oarg{键值列表}
% \tn{listoffigures*}\oarg{键值列表}
% \tn{listoftables*}\oarg{键值列表}
% \tn{listoflistings*}\oarg{键值列表}
% \end{syntax}
-% \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从1开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。\tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不会添加进主文档目录中,目录的键值列表选项如下
+% \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用清双页命令 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从1开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。在奇数页使用命令 \tn{cleardoublepage} 时可选参数为下一页多出的空白偶数页的页面风格,默认为 \opt{empty} 即空的页眉页脚。\tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不会添加进主文档目录中,目录的键值列表选项如下
% \changes{v1.23}{2021/02/20}{重新定义文档结构划分命令。}
% \end{function}
%
@@ -173,7 +174,7 @@ The latest version of this license is in
% \end{syntax}
% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。已经预置了中英文的目录标题,可以使用 \opt{title} 选项更改目录标题的名称。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
% \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
-% \changes{v1.24j}{2021/04/04}{目录命令的可选参数增加标题键值。}
+% \changes{v1.24k}{2021/04/04}{目录命令的可选参数增加标题键值。}
% \end{function}
%
% \section{接口选项}
@@ -206,9 +207,10 @@ The latest version of this license is in
%
% \subsection{风格}
% \label{subsec:style}
-% \begin{function}[EXP,added = 2021-01-05,updated = 2021-03-18]{color,multoc,withpart,footwith,notomath,rulewidth,uppercase,figure-sep,table-sep,listing-sep,equation-sep,number-sep}
+% \begin{function}[EXP,added = 2021-01-05,updated = 2021-04-11]{color,color-all,multoc,withpart,footwith,notomath,rulewidth,uppercase,figure-sep,table-sep,listing-sep,equation-sep,number-sep}
% \begin{syntax}
% color = <(none)|seaside|energy|cyberpunk>
+% color-all = <HTML颜色代码>
% multoc = <true|(false)>
% withpart = <true|(false)>
% footwith = <part|(chapter)|page>
@@ -237,6 +239,7 @@ The latest version of this license is in
% 主题颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改,类似地更改超链接颜色见小节 \ref{subsec:hyperlinks}。
% \changes{v1.10}{2021/01/08}{可以自定义主题颜色。}
% \end{function}
+% \item[color-all] 统一设置主题的各部分颜色,参数是6个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
% \item[multoc] 开启双栏目录,可与 \opt{onecolumn} 和 \opt{twocolumn} 选项配合出单栏正文、单栏目录,双栏正文、单栏目录,单栏正文、双栏目录和双栏正文、双栏目录四种方式。
% \item[withpart] 使章跟随每一部分编号,默认不跟随。
% \item[footwith] 使脚注跟随编号的计数器,默认跟随章,当开启新的一章时脚注编号从1开始。
@@ -252,16 +255,17 @@ The latest version of this license is in
%
% \subsection{超链接}
% \label{subsec:hyperlinks}
-% \begin{function}[EXP,added = 2021-01-05,updated = 2021-04-05]{hyperlink,linkcolor,linktoc}
+% \begin{function}[EXP,added = 2021-01-05,updated = 2021-04-11]{hyperlink,linkcolor,linkcol-all,linktoc}
% \begin{syntax}
% hyperlink = <(edge)|various|none>
% linkcolor = <(fresh)|cutepink|skyblue|crimson>
+% linkcol-all = <HTML颜色代码>
% linktoc = <none|section|page|(all)>
% \end{syntax}
% \ding{229} 以上选项路径为 \opt{link/...} \\
% \opt{link} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
% \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
-% \changes{v1.24j}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
+% \changes{v1.24k}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
% \end{function}
%
% \begin{optdesc}
@@ -274,6 +278,7 @@ The latest version of this license is in
% 超链接颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改。
% \changes{v1.10}{2021/01/08}{可以自定义超链接颜色。}
% \end{function}
+% \item[linkcol-all] 统一设置超链接的各部分颜色,参数是6个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。
% \item[linktoc] 将目录中的超链接取消、置于标题上、置于页码上或置于标题和页码上。
% \end{optdesc}
%
@@ -337,7 +342,7 @@ The latest version of this license is in
% \ding{229} 以上选项路径为 \opt{bibset/...}
% \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
% \changes{v1.23}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
-% \changes{v1.24j}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
+% \changes{v1.24k}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
% \end{function}
%
% \begin{optdesc}
@@ -485,7 +490,7 @@ The latest version of this license is in
% \changes{v1.21}{2021/01/13}{增加配置页眉页脚的选项。}
% \changes{v1.23}{2021/03/08}{优化页眉页脚设置,增加 \opt{chap-mark} 和 \opt{sec-mark} 标志选项。}
% \changes{v1.23}{2021/03/14}{可以手动绘制页眉、页脚和脚注的横线。}
-% \changes{v1.24j}{2021/04/09}{增加 \opt{subsec-mark} 标志选项,仅在 \opt{article} 模式生效。}
+% \changes{v1.24k}{2021/04/09}{增加 \opt{subsec-mark} 标志选项,仅在 \opt{article} 模式生效。}
% \end{function}
%
% \begin{function}[added = 2021-01-13,updated = 2021-03-14]{\easyhead,\easyfoot}
@@ -555,8 +560,8 @@ The latest version of this license is in
% line-align = <(true)|false>
% \end{syntax}
% \opt{lolskip} 是代码目录中章之间的代码标题的距离,与\CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。目录标签整体使用 \opt{tocline} 设置,也可使用小节 \ref{subsec:page margins} 的 \opt{list-labelsep} 选项只设置编号与标题的间距。在图表标签的参数中,\#1与\#2分别代表编号和标题,代码标签的编号和标题则是 \tn{thelstlisting} 和 \tn{lstcaption},标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。下面举个设置标签的例子
-% \changes{v1.24j}{2021/04/05}{可以设置图、表和代码目录的标签。}
-% \changes{v1.24j}{2021/04/06}{增加目录引导线右边对齐方式。}
+% \changes{v1.24k}{2021/04/05}{可以设置图、表和代码目录的标签。}
+% \changes{v1.24k}{2021/04/06}{增加目录引导线右边对齐方式。}
% \end{function}
%
% \begin{ctexexam}
@@ -589,7 +594,7 @@ The latest version of this license is in
% \tn{end}\marg{环境名}
% \end{syntax}
% \pkg{enumitem} 宏包为系统预置的列表环境 \env{enumerate}、\env{itemize}和 \env{description} 提供了更灵活的标签以及间距的控制,可使用 \tn{setlist} 命令设置原有的三种列表格式。已为三种列表预置了三个级别的格式可相互嵌套,默认标签与 \cls{book} 文档类相同,若自定义标签可例如
-% \changes{v1.24j}{2021/04/08}{重新优化列表环境的配置。}
+% \changes{v1.24k}{2021/04/08}{重新优化列表环境的配置。}
% \end{function}
%
% \begin{ctexexam}
@@ -749,11 +754,13 @@ The latest version of this license is in
% \end{function}
%
% \subsection{引用}
-% \begin{function}[added = 2021-01-05]{\cref}
-% \begin{syntax}
-% \tn{cref}\marg{标签}
-% \end{syntax}
-% 使用 \pkg{cleveref} 宏包的 \tn{cref} 命令进行引用,将会自动检测环境并添加相应的前缀。
+% \begin{function}[added = 2021-01-05,updated = 2021-04-11]{\ref,\labelformat}
+% \begin{syntax}
+% \tn{ref}\marg{标签}
+% \tn{labelformat}\marg{计数器}\marg{标签引用格式}
+% \end{syntax}
+% 使用 \tn{ref} 命令进行引用将会自动检测环境并添加相应的前缀,\tn{labelformat} 可以设置标签引用格式,第二个参数中\#1代表 \tn{the}\meta{计数器},可以设置引用序号的前缀和后缀。
+% \changes{v1.24k}{2021/04/11}{取消载入 \pkg{cleveref} 宏包来交叉引用。}
% \end{function}
%
% \subsubsection{索引}
@@ -862,7 +869,7 @@ The latest version of this license is in
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/04/10}{1.24j}{beta}
+\ProvidesExplClass{easybook}{2021/04/11}{1.24k}{beta}
\cs_generate_variant:Nn \__ctex_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -1182,13 +1189,13 @@ The latest version of this license is in
}
}
-\cs_gset:Npn \cleardoublepage
+\RenewDocumentCommand{\cleardoublepage}{O{empty}}
{
\clearpage
\bool_if:NT \l__eb_page_twoside_bool
{
- \int_if_odd:nF \c@page
- {\hbox:n {}\thispagestyle{empty}\clearpage}
+ \int_if_odd:nF {\c@page}
+ {\hbox:n {}\thispagestyle{#1}\clearpage}
}
}
\RenewDocumentCommand{\frontmatter}{sO{Roman}}
@@ -1808,34 +1815,23 @@ The latest version of this license is in
\setlist*[enumerate,3]{labelwidth = *}
\setlist[description]{font = sf,labelwidth = *,leftmargin = 2\ccwd}
-\cs_new_protected:Npn \__eb_thmname_set:nn #1#2
- {\tl_const:cn {c__eb_name_#1_tl}{#2}}
-\tl_if_eq:NnTF \l__ctex_scheme_tl{chinese}
+\cs_new_protected:Npn \__eb_thmname_set:nnn #1#2#3
{
- \clist_map_inline:nn
- {
- {example}{例},
- {definition}{定义},
- {theorem}{定理},
- {proposition}{性质},
- {lemma}{引理},
- {corollary}{推论},
- {remark}{注},
- {exercise}{练习}
- }{\__eb_thmname_set:nn #1}
- }{
- \clist_map_inline:nn
- {
- {example}{Example},
- {definition}{Definition},
- {theorem}{Theorem},
- {proposition}{Proposition},
- {lemma}{Lemma},
- {corollary}{Corollary},
- {remark}{Remark},
- {exercise}{Exercise}
- }{\__eb_thmname_set:nn #1}
+ \tl_if_eq:NnTF \l__ctex_scheme_tl{chinese}
+ {\tl_const:cn {c__eb_name_#1_tl}{#2}}
+ {\tl_const:cn {c__eb_name_#1_tl}{#3}}
}
+\clist_map_inline:nn
+ {
+ {example}{例}{Example},
+ {definition}{定义}{Definition},
+ {theorem}{定理}{Theorem},
+ {proposition}{性质}{Proposition},
+ {lemma}{引理}{Lemma},
+ {corollary}{推论}{Corollary},
+ {remark}{注}{Remark},
+ {exercise}{练习}{Exercise}
+ }{\__eb_thmname_set:nnn #1}
\bool_new:N \l__eb_thmbox_bool
\tl_new:N \l__eb_thm_numberwith_tl
@@ -1854,7 +1850,7 @@ The latest version of this license is in
thmbox .default:n = true,
thmbox .initial:n = false,
within .tl_set:N = \l__eb_thm_numberwith_tl,
- within .initial:n = chapter,
+ within .initial:n = \bool_if:NT \l__eb_class_book_bool{chapter},
bodyfont .tl_set:N = \l__eb_thm_bodyfont_tl,
bodyfont .initial:n = {},
notefont .tl_set:N = \l__eb_thm_notefont_tl,
@@ -2197,6 +2193,7 @@ The latest version of this license is in
{
\exp_args:NV \addbibresource\l__eb_bib_file_tl
\cs_gset:Npn \blx@default@theheading{bibintoc}
+ \cs_gset:Npn \blx@warning@noline##1{}
\defbibheading{bibintoc}[\bibname]{\__eb_class_title_bool:n {##1}}
\skip_set:Nn \bibitemsep{0ex}
}
@@ -2216,7 +2213,7 @@ The latest version of this license is in
}
}
-\ctex_at_end_preamble:n
+\__eb_at_end_preamble:n
{
\group_begin:
\footnotesize
@@ -2319,6 +2316,10 @@ The latest version of this license is in
{\definecolorset{HTML}{ctex@}{}{link,#1;url,#2;cite,#3}}
\cs_new_protected:Npn \__eb_define_themecolor:nnn #1#2#3
{\definecolorset{HTML}{ctex@}{}{frame,#1;emph,#2;verb,#3}}
+\cs_new_protected:Npn \__eb_define_linkcolor:n #1
+ {\definecolorset{HTML}{ctex@}{}{link,#1;url,#1;cite,#1}}
+\cs_new_protected:Npn \__eb_define_themecolor:n #1
+ {\definecolorset{HTML}{ctex@}{}{frame,#1;emph,#1;verb,#1}}
\cs_new:Npn \__eb_linkcolor_set:n #1
{
linkcolor/\clist_item:nn {#1}{1} .code:n =
@@ -2380,6 +2381,7 @@ The latest version of this license is in
\__eb_linkcolor_set:n
linkcolor .default:n = fresh,
linkcolor .initial:n = fresh,
+ linkcol-all .code:n = \__eb_define_linkcolor:n {\exp_not:n {#1}},
linktoc .choice:,
linktoc/unknown .code:n =
@@ -2398,8 +2400,8 @@ The latest version of this license is in
}
\__ctex_define:nx {style}
{
- color .choice:,
- color .value_required:n = true,
+ color .choice:,
+ color .value_required:n = true,
\clist_map_function:nN
{
{none, 000000,000000,000000},
@@ -2408,16 +2410,19 @@ The latest version of this license is in
{cyberpunk, 601986,eb6877,a4005b}
}
\__eb_themecolor_set:n
- color .initial:n = none
+ color .initial:n = none,
+ color-all .code:n = \__eb_define_themecolor:n {\exp_not:n {#1}}
}
\ctex_at_end_preamble:n
{
- \RequirePackage{hyperref,cleveref}
+ \RequirePackage{hyperref}
\urlstyle{same}
\__eb_allow_urlbreak:
\ctex_hypersetup:n {pdfstartview = FitH}
\exp_args:NV \hypersetup\l__eb_hyperref_clist
+ \labelformat{part}{\CTEXthepart}
+ \labelformat{chapter}{\CTEXthechapter}
\tl_if_eq:NnTF \l__ctex_scheme_tl{chinese}
{
\keys_set_known:nn {ctex}
@@ -2430,21 +2435,20 @@ The latest version of this license is in
lstlistlistingname = 代码索引,
lstlistingname = 代码
}
- \crefformat{equation}{#2式(#1)#3}
- \crefformat{align}{#2式(#1)#3}
- \crefformat{multline}{#2式(#1)#3}
- \crefformat{gather}{#2式(#1)#3}
- \crefformat{figure}{#2图#1#3}
- \crefformat{table}{#2表#1#3}
- \crefformat{chapter}{#2第#1章#3}
- \crefformat{section}{#2节#1#3}
- \crefformat{subsection}{#2小节#1#3}
- \crefformat{theorem}{#2定理#1#3}
- \crefformat{definition}{#2定义#1#3}
- \crefformat{lemma}{#2引理#1#3}
- \crefformat{corollary}{#2推论#1#3}
- \crefformat{proposition}{#2性质#1#3}
- \crefformat{example}{#2例#1#3}
+ \labelformat{equation}{式(#1)}
+ \labelformat{align}{式(#1)}
+ \labelformat{multline}{式(#1)}
+ \labelformat{gather}{式(#1)}
+ \labelformat{figure}{图#1}
+ \labelformat{table}{表#1}
+ \labelformat{section}{节#1}
+ \labelformat{subsection}{小节#1}
+ \labelformat{theorem}{定理#1}
+ \labelformat{definition}{定义#1}
+ \labelformat{lemma}{引理#1}
+ \labelformat{corollary}{推论#1}
+ \labelformat{proposition}{性质#1}
+ \labelformat{example}{例#1}
}{
\keys_set_known:nn {ctex}
{
@@ -2452,21 +2456,20 @@ The latest version of this license is in
lstlistlistingname = List~of~Codes,
lstlistingname = Code
}
- \crefformat{equation}{#2Equation~(#1)#3}
- \crefformat{align}{#2Equation~(#1)#3}
- \crefformat{multline}{#2Equation~(#1)#3}
- \crefformat{gather}{#2Equation~(#1)#3}
- \crefformat{figure}{#2Figure~#1#3}
- \crefformat{table}{#2Table~#1#3}
- \crefformat{chapter}{#2Chapter~#1#3}
- \crefformat{section}{#2Section~#1#3}
- \crefformat{subsection}{#2Subsection~#1#3}
- \crefformat{theorem}{#2Theorem~#1#3}
- \crefformat{definition}{#2Definition~#1#3}
- \crefformat{lemma}{#2Lemma~#1#3}
- \crefformat{corollary}{#2Corollary~#1#3}
- \crefformat{proposition}{#2Proposition~#1#3}
- \crefformat{example}{#2Example~#1#3}
+ \labelformat{equation}{Equation~(#1)}
+ \labelformat{align}{Equation~(#1)}
+ \labelformat{multline}{Equation~(#1)}
+ \labelformat{gather}{Equation~(#1)}
+ \labelformat{figure}{Figure~#1}
+ \labelformat{table}{Table~#1}
+ \labelformat{section}{Section~#1}
+ \labelformat{subsection}{Subsection~#1}
+ \labelformat{theorem}{Theorem~#1}
+ \labelformat{definition}{Definition~#1}
+ \labelformat{lemma}{Lemma~#1}
+ \labelformat{corollary}{Corollary~#1}
+ \labelformat{proposition}{Proposition~#1}
+ \labelformat{example}{Example~#1}
}
}