summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easybook/easybook.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-12 03:00:50 +0000
committerNorbert Preining <norbert@preining.info>2021-06-12 03:00:50 +0000
commit73dcf554624f325ec90d02815c36d92a33c2667f (patch)
tree73c5f88e9a5aab31e07fef81cfe0144439d1d6aa /macros/latex/contrib/easybook/easybook.dtx
parentd6b2eaba6fe47c24603040934903c73535ff09ba (diff)
CTAN sync 202106120300
Diffstat (limited to 'macros/latex/contrib/easybook/easybook.dtx')
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx97
1 files changed, 44 insertions, 53 deletions
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 174913a769..244a0d49ac 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -23,12 +23,12 @@
%
% \changes{v1.20}{2021/01/09}{修改和完善用户文档。}
% \changes{v1.20}{2021/01/09}{模板更改为使用 CC-BY 许可协议。}
-% \changes{v1.25z}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
-% \changes{v1.25z}{2021/06/02}{将模块的代码独立出来为 \pkg{easybase} 宏包,适用于 \CTeX 文档类。}
+% \changes{v1.25}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
+% \changes{v1.25}{2021/06/02}{将模块的代码独立出来为 \pkg{easybase} 宏包,适用于 \CTeX 文档类。}
%
% \title{\sffamily easybook 文档类手册}
% \author{瞿毅}
-% \date{2021/06/10\hskip\ccwd\relax v1.25z\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/06/11\hskip\ccwd\relax v1.26\thanks{\url{https://gitee.com/texl3/easybook}}}
%
% \maketitle
% \begin{abstract}
@@ -134,7 +134,7 @@
% \end{syntax}
% 传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{subsec:font settings},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
% \changes{v1.21}{2021/01/12}{默认字体与 \CTeX 一致,不再是自定义字体。}
-% \changes{v1.25z}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
+% \changes{v1.25}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
% \end{function}
%
% \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
@@ -184,7 +184,7 @@
% \tn{listoflstlistings*+}\oarg{键值列表}
% \end{syntax}
% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflstlistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入目录样式和换页等命令。目录的键值列表选项如下
-% \changes{v1.25z}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
+% \changes{v1.25}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
% \end{function}
%
% \begin{function}{multoc,columns,title,format,aftertitle,pagestyle,chapter,section}
@@ -201,7 +201,7 @@
% 在书籍模式且 \opt{chapter} 选项开启或者文章模式的情况下,\opt{format} 用于设置目录标题的格式,\opt{aftertitle} 选项的代码将被插入到目录标题内容之后,\opt{pagestyle} 是目录标题所在页的页面格式,除此之外还支持 \opt{ctexset/chapter} 或 \opt{ctexset/section} 所有的章节标题样式选项。\opt{chapter} 选项使目录标题按照 chapter 级别输出,\opt{section} 选项使目录标题按照 section 级别输出,默认为 chapter 级别。
% \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
% \changes{v1.24}{2021/04/04}{目录命令的可选参数增加标题键值。}
-% \changes{v1.25z}{2021/06/02}{目录可设置多栏,并在 article 模式仍然生效。}
+% \changes{v1.25}{2021/06/02}{目录可设置多栏,并在 article 模式仍然生效。}
% \end{function}
%
% \subsubsection{标题命令}
@@ -214,7 +214,7 @@
% 双语目录的标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录,这个功能是为国内一些大学的学位论文模板的要求设计,在一般情况和英文模式下不需要使用。
%
% 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \tn{chapter*} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文标题,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。双语目录的格式是一致的,共享使用 \tn{tocset} 的设置,英文目录的章级别标题名及编号的修改方式如下
-% \changes{v1.25z}{2021/05/05}{增加与双语目录配合的标题命令。}
+% \changes{v1.25}{2021/05/05}{增加与双语目录配合的标题命令。}
% \end{function}
%
% \begin{function}{chapter/biname,chapter/binmuber}
@@ -314,7 +314,7 @@
% \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
% \changes{v1.23}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
% \changes{v1.24}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
-% \changes{v1.25z}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性保留。}
+% \changes{v1.25}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性保留。}
% \end{function}
%
% \begin{optdesc}
@@ -371,7 +371,7 @@
% \ding{229} 以上选项路径为 \opt{subfont/...}
% \changes{v1.10}{2021/01/08}{加入自定义非正文字体选项。}
% \changes{v1.23}{2021/02/08}{修复使用 \tn{zihao} 命令设置字体失效的问题。}
-% \changes{v1.25z}{2021/05/31}{其它字体模块名由 \opt{elsefont} 改为 \opt{subfont},并增加数学字体的选项 \opt{subfont/math}。}
+% \changes{v1.25}{2021/05/31}{其它字体模块名由 \opt{elsefont} 改为 \opt{subfont},并增加数学字体的选项 \opt{subfont/math}。}
% \end{function}
%
% \begin{optdesc}
@@ -396,7 +396,7 @@
% \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
% \changes{v1.23}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
% \changes{v1.24}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
-% \changes{v1.25z}{2021/05/12}{取消 \opt{bib-loadpkg} 选项,由是否设置参考文献数据库来决定载入宏包。}
+% \changes{v1.25}{2021/05/12}{取消 \opt{bib-loadpkg} 选项,由是否设置参考文献数据库来决定载入宏包。}
% \end{function}
%
% \begin{optdesc}
@@ -595,14 +595,14 @@
% fnhang = <(true)|false>
% fnmark-pos = <normal|(super)>
% fnmark-num = <(plain)|pifont|pifont*|pifont-sans|pifont-sans*>
-% fnmark-form = <脚注标记的格式>
+% 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。
%
% \opt{fnmark-form} 是脚注标记的格式,在此设置字体命令会覆盖 \opt{subfont/footnote} 的设置,最后一个格式命令可以带有一个参数,这个参数接受脚注编号,一般配合 \opt{fnmark-num = plain} 使用。\opt{afterfnmark} 是脚注标记后的代码,一般用于设置标记与文本间的距离。
-% \changes{v1.25z}{2021/05/12}{增加脚注样式设置选项。}
+% \changes{v1.25}{2021/05/12}{增加脚注样式设置选项。}
% \end{function}
%
% \subsection{目录样式}
@@ -621,15 +621,15 @@
% \opt{format} 是目录中标题的格式,可以设置字体和加入垂直间距等,垂直间距最好使用无间距重合的 \tn{addvspace} 命令,带有加号的 \opt{format+} 选项用于在已有的格式命令后附加内容。\opt{indent} 是目录中标题在页面左侧的缩进距离,应该有长度单位。\opt{rule} 选项中一般应当使用 \tn{tocrule} 命令,将会在接下来介绍。\opt{numsep} 是有编号的标题在目录中编号与标题的间距。
% \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
% \changes{v1.24}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。}
-% \changes{v1.25z}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。}
+% \changes{v1.25}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。}
% \end{function}
%
-% \begin{function}[added = 2021-01-13,updated = 2021-04-20]{\tocrule,\EBNumberLine}
+% \begin{function}[added = 2021-01-13,updated = 2021-06-11]{\tocrule,\EBNumberLine}
% \begin{syntax}
% \tn{tocrule}*\oarg{引导点间距|(0.7pc)}\parg{引导点大小|(1.2)}\marg{引导点}\oarg{页码格式}
% \tn{EBNumberLine}\marg{编号类型}
% \end{syntax}
-% \tn{tocrule} 命令生成目录引导线,需要在 \opt{rule} 选项中使用。带有星号的命令会使当前级别的目录引导线右边与页码连接而不是对齐。引导点间距需带有长度单位,引导点大小不带单位,为引导点符号正常大小的倍数,引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面,可以设置页码字体、距离。
+% \tn{tocrule} 命令生成目录引导线,需要在 \opt{rule} 选项中使用。带有星号的命令会使当前级别的目录引导线右边与页码连接而不是对齐。引导点间距需带有长度单位,引导点大小不带单位,为引导点符号正常大小的倍数,引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面,可以设置页码字体和距离等,最后一个格式命令可以带有一个参数,这个参数接受页码编号。
%
% \tn{EBNumberLine} 命令类似 \CTeX 的 \tn{CTEXnumberline} 命令,用于 \opt{tocline} 选项中设置目录标签的编号。区别是它需要在 \opt{tocset/hang = false} 时使用,否则目录中无法显示标题编号,使用它的时候 \opt{numsep} 选项仍然有效。\meta{编号类型} 为 \opt{chapter} 和 \opt{section} 等,也可用参数 \#1 代替当前级别类型,标题名用参数 \#2 代替一般不变。
% \end{function}
@@ -706,7 +706,7 @@
% \tn{end}\marg{环境名}
% \end{syntax}
% \pkg{tabularray} 是一个较新的宏包,不仅提供了 \pkg{tabularx}、\pkg{multirow}、和 \pkg{booktabs} 宏包的功能,并且不依赖其它宏包与它们同时使用不会产生冲突,还实现了用简便的键值列表方式设置表格样式。目前除了表头斜线以及跨页功能存在不足,其它方面已满足对表格绝大多数格式的需求,具体用法可见宏包的说明文档。
-% \changes{v1.25z}{2021/05/17}{使用功能更便捷齐全的 \pkg{tabularray} 宏包设置表格样式。}
+% \changes{v1.25}{2021/05/17}{使用功能更便捷齐全的 \pkg{tabularray} 宏包设置表格样式。}
% \end{function}
%
% \subsection{列表}
@@ -879,7 +879,7 @@
% \tn{qtyrange}\oarg{键值列表}\marg{数字1}\marg{数字2}\marg{单位}
% \end{syntax}
% \pkg{siunitx} 宏包的 \tn{num} 命令可以输出以科学计数法表示的数值,单位格式化命令 \tn{unit} 包含文字项目(例如字母或数字)时,使用 . 和 \~{} 放置在单元乘积中间,并使用 \_ 和 \^{} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。而 \tn{qty} 命令可用来输出带有单位的量,\tn{qtyrange} 可以输出带有范围和单位的量。
-% \changes{v1.25z}{2021/05/18}{\pkg{siunitx} 宏包 v3.0.0 更新后用法改变,修改相关配置选项。}
+% \changes{v1.25}{2021/05/18}{\pkg{siunitx} 宏包 v3.0.0 更新后用法改变,修改相关配置选项。}
% \end{function}
%
% \begin{ctexexam}
@@ -1062,7 +1062,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/06/10}{1.25z}{beta}
+\ProvidesExplClass{easybook}{2021/06/11}{1.26}{beta}
\bool_set_false:N \l__eb_compile_draft_bool
\bool_set_false:N \l__eb_title_newline_bool
@@ -1306,20 +1306,25 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2021/06/10}{1.25z}{beta}
+\ProvidesExplPackage{easybase}{2021/06/11}{1.26}{beta}
\cs_generate_variant:Nn \eb_ctex_define:nn { nx }
\cs_generate_variant:Nn \int_to_arabic:n { v }
+\cs_generate_variant:Nn \int_to_alph:n { v }
\cs_generate_variant:Nn \dim_add:Nn { NV }
\cs_generate_variant:Nn \eb_put_hyperref:n { x }
\cs_generate_variant:Nn \seq_set_from_clist:Nn { No }
\cs_generate_variant:Nn \int_compare:nNnT { oNnT }
\cs_new_protected:Npn \eb_ctex_define:nn #1
{ \keys_define:nn { ctex/#1 } }
-\cs_new_protected:Npn \eb_patch_cmd:Nnn #1#2#3
+\cs_new_protected:Npn \eb_patch_cmd:nnn #1#2#3
{
- \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
- { } { \ctex_patch_failure:N #1 }
+ \seq_set_from_clist:Nn \l__eb_control_sequence_seq {#1}
+ \seq_map_inline:Nn \l__eb_control_sequence_seq
+ {
+ \ctex_patch_cmd_once:NnnnTF ##1 { } {#2} {#3}
+ { } { \ctex_patch_failure:N ##1 }
+ }
}
\cs_new_protected:Npn \eb_preto_cmd:Nn #1#2
{
@@ -1734,14 +1739,7 @@
\bool_if:NTF \l__eb_footnote_hang_bool
{ \booltrue{FN@hangfoot} } { \boolfalse{FN@hangfoot} }
}
-\eb_patch_cmd:Nnn \@footnotetext
- { \reset@font }
- {
- \linespread{\fp_use:N \l__eb_spread_footnote_fp}
- \selectfont\ignorespaces
- \l__eb_subfont_footnote_tl
- }
-\eb_patch_cmd:Nnn \@mpfootnotetext
+\eb_patch_cmd:nnn { \@footnotetext,\@mpfootnotetext }
{ \reset@font }
{
\linespread{\fp_use:N \l__eb_spread_footnote_fp}
@@ -1751,12 +1749,14 @@
\ctex_after_end_preamble:n
{
\ExplSyntaxOn\char_set_catcode_letter:N \@
- \eb_patch_cmd:Nnn \@footnotemark
+ \eb_patch_cmd:nnn { \H@@footnotemark,\@footnotemark }
{ \@makefnmark }
{
+ \group_begin:
\tl_use:N \l__eb_subfont_footnote_tl
\tl_use:N \l__eb_fnmark_format_tl
{\hbox:n { \textsuperscript{\@thefnmark} }}
+ \group_end:
}
\ExplSyntaxOff\char_set_catcode_other:N \@
}
@@ -1773,8 +1773,9 @@
}
}
}
+\cs_new:Npn \eb_alph:n #1 { \int_to_alph:v { c@#1 } }
\cs_set:Npn \thefootnote { \eb_footnote_counter:N \c@footnote }
-\cs_set:Npn \thempfootnote { \int_to_alph:n { \c@mpfootnote } }
+\cs_set:Npn \thempfootnote { \eb_alph:n { mpfootnote } }
\cs_new_protected:Npn \eb_fnmark_number_set:nn #1#2
{ \tl_const:cn { c__eb_fnmark_number_#1_tl } {#2} }
@@ -1974,11 +1975,13 @@
{
\normalsize\normalfont
\titlerule*[#2]{\scalebox{#3}{#4}}#5
- \IfBooleanTF{#1}
- {\thecontentspage}
{
- \bool_if:NTF \l__eb_toc_line_align_bool
- { \contentspage } { \thecontentspage }
+ \IfBooleanTF{#1}
+ {\thecontentspage}
+ {
+ \bool_if:NTF \l__eb_toc_line_align_bool
+ { \contentspage } { \thecontentspage }
+ }
}
}
\ctex_set:nn { tocset }
@@ -2299,7 +2302,7 @@
\int_compare:nNnTF { \c@chapter } > { 0 }
{
\ExplSyntaxOn\char_set_catcode_letter:N \@
- \eb_patch_cmd:Nnn \CTEX@addbitocline
+ \eb_patch_cmd:nnn { \CTEX@addbitocline }
{
\def\CTEX@prechapter{\CTEX@prebichapter}
\def\CTEX@thechapter{\CTEX@bichapter@number}
@@ -2471,7 +2474,7 @@
}
\cs_new:Npn \eb_arabic:n #1 { \int_to_arabic:v { c@#1 } }
-\cs_gset:cpn { thesection }
+\cs_gset:Npn \thesection
{
\int_compare:nNnT { \c@chapter } > { 0 } { \thechapter. }
\eb_arabic:n { section }
@@ -2667,25 +2670,13 @@
\linespread{\fp_use:N \l__eb_spread_math_fp}
\selectfont\ignorespaces
}
-\eb_patch_cmd:Nnn \start@gather
- { \collect@body }
- {
- \linespread{\fp_use:N \l__eb_spread_math_fp}
- \selectfont\collect@body
- }
-\eb_patch_cmd:Nnn \start@align
- { \collect@body }
- {
- \linespread{\fp_use:N \l__eb_spread_math_fp}
- \selectfont\collect@body
- }
-\eb_patch_cmd:Nnn \start@multline
+\eb_patch_cmd:nnn { \start@gather,\start@align,\start@multline }
{ \collect@body }
{
\linespread{\fp_use:N \l__eb_spread_math_fp}
\selectfont\collect@body
}
-\eb_patch_cmd:Nnn \gather@split
+\eb_patch_cmd:nnn { \gather@split }
{ \spread@equation }
{
\linespread{\fp_use:N \l__eb_spread_math_fp}
@@ -2853,7 +2844,7 @@
{
standard~jigsaw,
nobeforeafter,tcbox~raise~base,
- top = 1.25zt,bottom = 1.25zt,left = 1.25zt,right = 1.25zt,
+ top = 1.25t,bottom = 1.25t,left = 1.25t,right = 1.25t,
boxrule = 0.75pt,arc = 1pt,
colback = #1,opacityback = 0.12,colframe = #1,#3
}{#2}