summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/easybook/easybook.dtx121
1 files changed, 79 insertions, 42 deletions
diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx
index 338c72d9b45..80c214a5277 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/04\hskip\ccwd\relax v1.24d\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/04/05\hskip\ccwd\relax v1.24e\thanks{\url{https://gitee.com/texl3/easybook}}}
% \maketitle
% \begin{abstract}
% \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -78,11 +78,7 @@ The latest version of this license is in
% xelatex -shell-escape easybook-demo
% xelatex -shell-escape easybook-demo
% \end{frameverb}
-%
-% 需注意,正确\textbf{编译索引}需要增加 \opt{-shell-escape} 命令行选项。若不需要索引和参考文献,可以在正文中注释掉命令。若出现以下警告,再编译一次即可。
-% \begin{frameverb}
-% LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
-% \end{frameverb}
+% 需注意,正确\textbf{编译索引}需要增加 \opt{-shell-escape} 命令行选项。
%
% \subsection{字体设置}
% \label{subsec:font settings}
@@ -172,7 +168,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.24d}{2021/04/04}{目录命令的可选参数增加标题键值。}
+% \changes{v1.24e}{2021/04/04}{目录命令的可选参数增加标题键值。}
% \end{function}
%
% \section{接口选项}
@@ -251,14 +247,16 @@ The latest version of this license is in
%
% \subsection{超链接}
% \label{subsec:hyperlinks}
-% \begin{function}[EXP,added = 2021-01-05,updated = 2021-01-08]{hyperlink,linkcolor,linktopage}
+% \begin{function}[EXP,added = 2021-01-05,updated = 2021-04-05]{hyperlink,linkcolor,linktoc}
% \begin{syntax}
% hyperlink = <(edge)|various|none>
% linkcolor = <(fresh)|cutepink|skyblue|crimson>
-% linktopage = <true|(false)>
+% linktoc = <none|section|page|(all)>
% \end{syntax}
-% \ding{229} 以上选项路径为 \opt{link/...}
+% \ding{229} 以上选项路径为 \opt{link/...} \\
+% \opt{link} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
% \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
+% \changes{v1.24e}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
% \end{function}
%
% \begin{optdesc}
@@ -271,7 +269,7 @@ The latest version of this license is in
% 超链接颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改。
% \changes{v1.10}{2021/01/08}{可以自定义超链接颜色。}
% \end{function}
-% \item[linktopage] 将目录中的超链接置于页码上,默认是置于标题上。
+% \item[linktoc] 将目录中的超链接取消、置于标题上、置于页码上或置于标题和页码上。
% \end{optdesc}
%
% \subsection{行距}
@@ -410,9 +408,9 @@ The latest version of this license is in
% \end{optdesc}
%
% \subsubsection{新的定理样式}
-% 定理由 \pkg{thmtools} 设置,预置定理的样式为 \opt{easythm},上述定理样式选项将对这个定理样式生效。如果使用这个样式而只是增加新的定理名称,可以这样
+% 定理由 \pkg{thmtools} 设置,预置定理的样式为 \opt{easy-thm-sty},上述定理样式选项将对这个定理样式生效。如果使用这个样式而只是增加新的定理名称,可以这样
% \begin{ctexexam}
-% \newtheorem[style = easythm,name = 定理名]{定理环境名}
+% \newtheorem[style = easy-thm-sty,name = 定理名]{定理环境名}
% \end{ctexexam}
% 若要给定理环境增加边框,可以如下进行设置
% \begin{ctexexam}
@@ -507,13 +505,26 @@ The latest version of this license is in
% \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
% \end{function}
%
-% \begin{function}[EXP,added = 2021-01-13,updated = 2021-01-15]{lists/lolskip,lists/belowoffset,tocset/belowoffset}
+% \begin{function}[EXP,added = 2021-01-13,updated = 2021-04-05]{lists/lolskip,lists/labelname-fig,lists/labelname-tab,lists/labelname-lst,lists/belowoffset,tocset/belowoffset}
% \begin{syntax}
% lolskip = <(0.8pc)>
+% labelname-fig = <图片目录标签>
+% labelname-tab = <表格目录标签>
+% labelname-lst = <代码目录标签>
% belowoffset = <(0pc)>
% belowoffset = <(-1pc)>
% \end{syntax}
-% \opt{lolskip} 是代码目录中章之间的代码标题的距离,与\CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。\opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{lists} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{lists/lolskip(0.8pc) + lists/format/addvspace(0.2pc) + lists/belowoffset(0pc) = belowoffset(-1pc)}。
+% \opt{lolskip} 是代码目录中章之间的代码标题的距离,与\CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。目录标签整体使用 \opt{labelname} 设置,也可使用小节 \ref{subsec:page margins} 的 \opt{list-labelsep} 选项只设置编号与标题的间距。在图表标签的参数中,\#1与\#2分别代表编号和标题,代码标签的编号和标题则是 \tn{thelstlisting} 和 \tn{lst@@caption},标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。下面举个设置标签的例子
+% \begin{ctexexam}
+% \tocset
+% {
+% lists/labelname-fig = 图#1\hspace{\ccwd}#2
+% lists/labelname-lst = 代码\thelstlisting\hspace{\ccwd}\lst@@caption
+% }
+% \end{ctexexam}
+%
+% \opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{lists} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{lists/lolskip(0.8pc) + lists/format/addvspace(0.2pc) + lists/belowoffset(0pc) = belowoffset(-1pc)}。
+% \changes{v1.24e}{2021/04/05}{可以设置图、表和代码目录的标签。}
% \end{function}
%
% \begin{function}[added = 2021-01-13,updated = 2021-01-15]{\tocrule}
@@ -790,11 +801,12 @@ The latest version of this license is in
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/04/04}{1.24d}{beta}
+\ProvidesExplClass{easybook}{2021/04/05}{1.24e}{beta}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
\cs_generate_variant:Nn \dim_add:Nn {NV}
+\cs_generate_variant:Nn \__put_hyperref:n {x}
\cs_new_protected:Npn \__ctex_define:nn #1
{\keys_define:nn {ctex/#1}}
\cs_new_protected:Npn \__put_ctexbook:n #1
@@ -869,6 +881,7 @@ The latest version of this license is in
{hang,stable}{footmisc},
{normalem}{ulem},
{protrusion = false}{microtype},
+ {list = off}{bicaption},
{shortlabels,inline}{enumitem},
{many}{tcolorbox},
{xindy}{imakeidx},
@@ -1242,12 +1255,25 @@ The latest version of this license is in
}
\__ctex_define:nn {tocset}
{
- lists/lolskip .skip_set:N = \l__toc_lolskip_skip,
- lists/lolskip .initial:n = 0.8pc,
- lists/belowoffset .dim_set:N = \l__toc_listsoffset_dim,
- lists/belowoffset .initial:n = 0pc,
- belowoffset .dim_set:N = \l__toc_offset_dim,
- belowoffset .initial:n = -1pc
+ lists/lolskip .skip_set:N = \l__toc_lolskip_skip,
+ lists/lolskip .initial:n = 0.8pc,
+ lists/belowoffset .dim_set:N = \l__toc_listsoffset_dim,
+ lists/belowoffset .initial:n = 0pc,
+ lists/labelname-fig .cs_set:Np = \labelname@lof#1#2,
+ lists/labelname-fig .initial:n =
+ {\figurename\space#1\hspace{\list@labelsep}#2},
+ lists/labelname-tab .cs_set:Np = \labelname@lot#1#2,
+ lists/labelname-tab .initial:n =
+ {\tablename\space#1\hspace{\list@labelsep}#2},
+ lists/labelname-lst .tl_set:N = \labelname@lol,
+ lists/labelname-lst .initial:n =
+ {
+ \lstlistingname\space
+ \thelstlisting\hspace{\list@labelsep}
+ \lst@@caption
+ },
+ belowoffset .dim_set:N = \l__toc_offset_dim,
+ belowoffset .initial:n = -1pc
}
\ctex_set:nn {tocset}
{
@@ -1295,17 +1321,22 @@ The latest version of this license is in
{table}{lists},
{lstlisting}{lists}
}{\__titlecontents_set:nn #1}
-\ctex_patch_cmd:Nnn \caption@@@addcontentsline
- {\addcontentsline{#1}{#2}{\protect\numberline{#3}{#4}}}
- {\addcontentsline{#1}{#2}{#3\hspace{\list@labelsep}#4}}
+\prop_new:N \l_label_name_prop
+\prop_set_from_keyval:Nn \l_label_name_prop
+ {
+ figure = \labelname@lof,
+ table = \labelname@lot
+ }
+\cs_gset:Npn \caption@@@addcontentsline#1#2#3#4
+ {
+ \addcontentsline{#1}{#2}
+ {\prop_item:Nn \l_label_name_prop{#2}{#3}{#4}}
+ }
\ctex_patch_cmd:Nnn \lst@MakeCaption
{
\addcontentsline{lol}{lstlisting}
{\protect\numberline{\thelstlisting}\lst@@caption}
- }{
- \addcontentsline{lol}{lstlisting}
- {\thelstlisting\hspace{\list@labelsep}\lst@@caption}
- }
+ }{\addcontentsline{lol}{lstlisting}{\labelname@lol}}
\__appto_cmd:Nn \@chapter
{
\skip_if_eq:nnF {\l__toc_lolskip_skip}{\c_zero_skip}
@@ -1729,25 +1760,25 @@ The latest version of this license is in
postheadspace = \l__thm_spacepost_tl,
within = \l__thm_numberwith_tl,
headformat = \NAME\space\NUMBER\NOTE
- ]{easythm}
+ ]{easy-thm-sty}
\clist_map_inline:nn
{
example,definition,theorem,
proposition,lemma,corollary
}{
\declaretheorem[
- style = easythm,
+ style = easy-thm-sty,
name = \use:c {c__name_#1_tl}
]{#1}
}
\cs_gset_eq:NN \proof\relax
\declaretheorem[
- style = easythm,
+ style = easy-thm-sty,
name = \c__name_remark_tl,
numbered = no
]{remark}
\declaretheorem[
- style = easythm,
+ style = easy-thm-sty,
name = \proofname,
numbered = no,
qed = \qedsymbol
@@ -1993,9 +2024,7 @@ The latest version of this license is in
\tl_if_eq:VnT \l__bib_style_tl{authoryear}
{\bibliographystyle{gbt7714-author-year}}
\cs_set_eq:NN \cite\citep
- }{
- \exp_args:NV \bibliographystyle\l__bib_otherstyle_tl
- }
+ }{\exp_args:NV \bibliographystyle\l__bib_otherstyle_tl}
\tl_if_empty:NF \l__bib_citestyle_tl
{\exp_args:NV \setcitestyle\l__bib_citestyle_tl}
\skip_set:Nn \bibsep{0ex}
@@ -2200,11 +2229,19 @@ The latest version of this license is in
linkcolor .default:n = fresh,
linkcolor .initial:n = fresh,
- linktopage .choice:,
- linktopage/true .code:n = \__put_hyperref:n {linktocpage},
- linktopage/false .code:n = {},
- linktopage .default:n = true,
- linktopage .initial:n = false
+ linktoc .choice:,
+ linktoc/unknown .code:n = \__put_hyperref:n {linktoc = \exp_not:n {#1}},
+ linktoc .default:n = all,
+ linktoc .initial:n = all,
+ unknown .code:n =
+ {
+ \__put_hyperref:x
+ {
+ \exp_not:N \l_keys_key_str
+ \exp_not:N \tl_if_empty:NF
+ \exp_not:N \l_keys_value_tl{ = \exp_not:n {#1}}
+ }
+ }
}
\keys_define:nx {ctex/style}
{
@@ -2226,7 +2263,7 @@ The latest version of this license is in
\RequirePackage{hyperref,cleveref}
\urlstyle{same}
\__allow_urlbreak:
- \ctex_hypersetup:n {pdfstartview = FitH,bookmarksnumbered}
+ \ctex_hypersetup:n {pdfstartview = FitH}
\exp_args:NV \hypersetup\l__hyperref_clist
\bool_if:NTF \l__lang_chinese_bool
{