summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easybook
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-03-17 03:01:06 +0000
committerNorbert Preining <norbert@preining.info>2021-03-17 03:01:06 +0000
commitbb51b61cfc3fcb367f52d31948039a1468fbcf80 (patch)
tree2c9be8de7fa3daaf6064452aaecc8ed6a0f8d567 /macros/latex/contrib/easybook
parent4947a16af6c8e33f697a8da222db7f3ad027ba94 (diff)
CTAN sync 202103170301
Diffstat (limited to 'macros/latex/contrib/easybook')
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.pdfbin287389 -> 287470 bytes
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.tex3
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.pdfbin254087 -> 254673 bytes
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.tex133
-rw-r--r--macros/latex/contrib/easybook/easybook.cls185
5 files changed, 164 insertions, 157 deletions
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.pdf b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
index 8fbd749d60..b4c9858e55 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.tex b/macros/latex/contrib/easybook/doc/easybook-demo.tex
index 2babe3b6b1..a8a4d2e0e9 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.tex
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.tex
@@ -1,4 +1,5 @@
\documentclass[
+ class = book,
zihao = -4,
font = noto,
paper = a4paper,
@@ -97,7 +98,7 @@
\url{https://latexstudio.net} \\
\url{https://gitee.com/texl3/easybook}\thanks{Gitee为项目的主要发布地址。}
}
-\date{2021/03/15\hskip\ccwd\relax v1.23r}
+\date{2021/03/16\hskip\ccwd\relax v1.23s}
\frontmatter[roman]
\maketitle
diff --git a/macros/latex/contrib/easybook/doc/easybook.pdf b/macros/latex/contrib/easybook/doc/easybook.pdf
index 6a2c1e0cd2..7ff104be61 100644
--- a/macros/latex/contrib/easybook/doc/easybook.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/doc/easybook.tex b/macros/latex/contrib/easybook/doc/easybook.tex
index 7d5f6e30e2..bd6c66ebc8 100644
--- a/macros/latex/contrib/easybook/doc/easybook.tex
+++ b/macros/latex/contrib/easybook/doc/easybook.tex
@@ -2,7 +2,7 @@
\title{\sffamily easybook书籍文档类}
\author{瞿毅}
-\date{2021/03/15\hskip\ccwd\relax v1.23r\thanks{\url{https://gitee.com/texl3/easybook}}}
+\date{2021/03/16\hskip\ccwd\relax v1.23s\thanks{\url{https://gitee.com/texl3/easybook}}}
\begin{document}
\maketitle
@@ -36,8 +36,8 @@
\end{frameverb}
\subsection{字体设置}
-\label{font settings}
-默认使用\CTeX 预置中文字库,当开启 \opt{font = noto} 选项时需要安装开源字体,中文使用方正系列的{\songti 方正书宋}、{\heiti 方正黑体}、{\kaishu 方正楷体}和{\fangsong 方正仿宋},英文使用思源系列的{\rmfamily Noto Serif}、{\sffamily Noto Sans}和{\ttfamily Noto Sans Mono},数学字体使用 \pkg{notomath}。相关选项可以见小节 \ref{document class options} 中的 \opt{font} 选项,字体点击此处下载\href{https://wws.lanzous.com/b01ns361i}{下载地址}。
+\label{subsec:font settings}
+默认使用\CTeX 预置中文字库,当开启 \opt{font = noto} 选项时需要安装开源字体,中文使用方正系列的{\songti 方正书宋}、{\heiti 方正黑体}、{\kaishu 方正楷体}和{\fangsong 方正仿宋},英文使用思源系列的{\rmfamily Noto Serif}、{\sffamily Noto Sans}和{\ttfamily Noto Sans Mono},数学字体使用 \pkg{notomath}。相关选项可以见节 \ref{sec:document class options} 中的 \opt{font} 选项,字体点击此处下载\href{https://wws.lanzous.com/b01ns361i}{下载地址}。
如果您不想使用\CTeX 默认字体和方正、思源字体,\textbf{自定义字体}需启用选项 \opt{font = none},并可在导言区设置中文字体,粗体与斜体不设置会产生警告。
\begin{ctexexam}
@@ -47,7 +47,7 @@
\end{ctexexam}
\section{文档类选项}
-\label{document class options}
+\label{sec:document class options}
标准 \cls{book} 文类与 \cls{ctexbook} 文类的选项同样适用于本文档。除此之外选项分为两类
\begin{itemize}
\item 带有 \rexptarget\rexpstar{} 号的选项,需要在引入文档类的时候设定。
@@ -80,7 +80,7 @@
\begin{syntax}
font = <adobe|founder|mac|windows|linux|(overleaf)|noto|none>
\end{syntax}
-传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{font settings},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
+传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{subsec:font settings},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
\changes{v1.21}{2021/01/12}{默认字体与\CTeX 一致,不再是自定义字体。}
\end{function}
@@ -91,28 +91,37 @@
设置页面大小,交给 \pkg{geometry} 宏包处理,可使用它支持的所有规格。建议选项 \opt{b5paper} 和 \opt{zihao = 5},选项 \opt{a4paper} 和 \opt{zihao = -4} 配合。
\end{function}
+\subsection{article 风格}
+\begin{function}[rEXP,added = 2021-03-16]{class}
+\begin{syntax}
+ class = <(book)|article>
+\end{syntax}
+设置文类风格,默认为 \opt{book} 文档类。选用 \opt{article} 使文档编号、结构等与 \cls{article} 文档类的特性相似,可用于短篇幅的文章,不要再使用 \tn{chapter} 命令,此时设置双栏目录的 \opt{style/multoc} 选项、小节 \ref{subsec:document command} 中打印目录命令的 \opt{multoc} 及 \opt{book} 选项均会失效,会以 \opt{section} 标题级别输出目录。
+\changes{v1.23s}{2021/03/16}{增加 article 文章风格,可用于短篇幅的文章。}
+\end{function}
+
\subsection{文档命令}
-\label{document command}
+\label{subsec:document command}
\begin{function}[added = 2021-02-20,updated = 2021-03-15]{\frontmatter,\mainmatter,\backmatter,\tableofcontents,\listoffigures,\listoftables,\listoflistings}
\begin{syntax}
\tn{frontmatter*}\oarg{编号格式|(Roman)}
\tn{mainmatter*}
\tn{backmatter}
- \tn{tableofcontents*}\oarg{键值列表}
+ \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} 命令输出代码目录。带有星号的目录命令不会添加进主文档目录中,目录的键值列表选项如下
-\changes{v1.23r}{2021/02/20}{重新定义文档结构划分命令。}
+\changes{v1.23s}{2021/02/20}{重新定义文档结构划分命令。}
\end{function}
\begin{function}{multoc,book,article}
\begin{syntax}
multoc = <true|(false)>
\end{syntax}
-\opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{book} 选项使目录按照 \opt{chapter} 级别输出,\opt{article} 选项使目录按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
-\changes{v1.23r}{2021/03/15}{为几个目录增加键值列表的选项,可设置输出级别以及是否加入主目录。}
+\opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
+\changes{v1.23s}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
\end{function}
\section{接口选项}
@@ -150,9 +159,9 @@
number-sep = <(.)>
\end{syntax}
\changes{v1.10}{2021/01/08}{更改颜色实现方式与选项名。}
-\changes{v1.23r}{2021/02/02}{noto风格的数学字体独立出来,可自定义设置。}
-\changes{v1.23r}{2021/02/09}{增加控制页面横线粗细的选项。}
-\changes{v1.23r}{2021/03/15}{增加控制编号连接符的选项。}
+\changes{v1.23s}{2021/02/02}{noto风格的数学字体独立出来,可自定义设置。}
+\changes{v1.23s}{2021/02/09}{增加控制页面横线粗细的选项。}
+\changes{v1.23s}{2021/03/15}{增加控制编号连接符的选项。}
\end{function}
\begin{optdesc}
@@ -161,7 +170,7 @@
\begin{syntax}
\tn{definecolor}\oarg{类型}\marg{名称}\marg{模式列表}\marg{参数列表}
\end{syntax}
- 主题颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改,类似地更改超链接颜色见小节 \ref{hyperlinks}。
+ 主题颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改,类似地更改超链接颜色见小节 \ref{subsec:hyperlinks}。
\changes{v1.10}{2021/01/08}{可以自定义主题颜色。}
\end{function}
\item[multoc] 开启双栏目录,可与 \opt{onecolumn} 和 \opt{twocolumn} 选项配合出单栏正文、单栏目录,双栏正文、单栏目录,单栏正文、双栏目录和双栏正文、双栏目录四种方式 。
@@ -179,7 +188,7 @@
\end{optdesc}
\subsection{超链接}
-\label{hyperlinks}
+\label{subsec:hyperlinks}
\begin{function}[EXP,added = 2021-01-05,updated = 2021-01-08]{link/...,hyperlink,linkcolor,linktopage}
\begin{syntax}
以下选项路径为 \tn{ctexset}\marg{link/...}
@@ -215,7 +224,7 @@
\end{syntax}
行距因子用于设置各种行距倍数,只能是浮点数,不能带有长度单位。\tn{ctexset} 原有的行距选项 \opt{linespread} 失效。各行距既可在导言区全局设置也可正文中设置对后面生效,行距的意义为
\changes{v1.21}{2021/01/12}{增加脚注线间的距离选项。}
-\changes{v1.23r}{2021/02/09}{取消使用 \pkg{zhlineskip} 宏包设置数学间距。}
+\changes{v1.23s}{2021/02/09}{取消使用 \pkg{zhlineskip} 宏包设置数学间距。}
\end{function}
\begin{optdesc}
@@ -237,7 +246,7 @@
marginpart = <\tn{rmfamily}\tn{footnotesize}>
\end{syntax}
\changes{v1.10}{2021/01/08}{加入自定义非正文字体选项。}
-\changes{v1.23r}{2021/02/08}{修复使用 \tn{zihao} 命令设置字体失效的问题。}
+\changes{v1.23s}{2021/02/08}{修复使用 \tn{zihao} 命令设置字体失效的问题。}
\end{function}
\begin{optdesc}
@@ -249,17 +258,16 @@
\end{optdesc}
\subsection{参考文献}
-\begin{function}[EXP,added = 2021-01-11,updated = 2021-03-15]{bibset/...,backend,bib-style,cite-style,bibfile,\printbibliography}
+\begin{function}[EXP,added = 2021-01-11,updated = 2021-03-15]{bibset/...,backend,bib-style,cite-style,bibfile}
\begin{syntax}
以下选项路径为 \tn{ctexset}\marg{bibset/...}
backend = <(bibtex)|biblatex>
bib-style = <(numerical)|authoryear|其它格式>
cite-style = <标注风格>
bibfile = <refs.bib>
- \tn{printbibliography}\oarg{键值列表}
\end{syntax}
\changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
-\changes{v1.23r}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
+\changes{v1.23s}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
\end{function}
\begin{optdesc}
@@ -267,18 +275,25 @@
\item[bib-style] 参考文献格式为中国的参考文献推荐标准GB/T 7714-2015,有顺序编码制和著者-出版年制两种风格,理工科类一般使用顺序编码制,文科类一般使用著者-出版年制。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \opt{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg{biblatex} 宏包支持的参考文献风格名称。
\item[cite-style] 标注参考文献的风格,\opt{backend = bibtex} 选项下可使用 \opt{super}(数字上标标注,默认)或 \opt{numbers}(数字标注)等 \pkg{natbib} 宏包带有的标注风格,\opt{backend = biblatex} 选项下可使用 \pkg{biblatex} 宏包支持的标注风格名称。
\item[bibfile] 参考文献的数据文件,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,默认为一个以 \opt{refs.bib} 命名的文件。
- \item[\tn{printbibliography}] 两种方式\textbf{均使用}此命令打印参考文献,不同处理后端此命令的键值列表不同。使用 \hologo{BibTeX} 处理时选项与小节 \ref{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}
\end{optdesc}
+\begin{function}[added = 2021-01-11,updated = 2021-03-15]{\printbibliography}
+\begin{syntax}
+ \tn{printbibliography}\oarg{键值列表}
+\end{syntax}
+两种方式\textbf{均使用}此命令打印参考文献,不同处理后端此命令的键值列表不同。使用 \hologo{BibTeX} 处理时选项与小节 \ref{subsec:document command} 目录的选项相同,使用 \hologo{biber} 处理时常用的选项如下
+\end{function}
+
+\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}
+
\subsection{定理样式}
-\begin{function}[EXP,added = 2021-01-12,updated = 2021-03-13]{thmset/...,thmbox,numberwith,headpunct,bodyfont,notefont,headfont,headindent,spaceabove,spacebelow,spacepost,\newtheorem, \declaretheoremstyle}
+\begin{function}[EXP,added = 2021-01-12,updated = 2021-03-13]{thmset/...,thmbox,numberwith,headpunct,bodyfont,notefont,headfont,headindent,spaceabove,spacebelow,spacepost}
\begin{syntax}
以下选项路径为 \tn{ctexset}\marg{thmset/...}
thmbox = <true|(false)>
@@ -291,11 +306,8 @@
spaceabove = <(0.75ex plus .1ex)>
spacebelow = <(0.75ex plus .1ex)>
spacepost = <(\tn{ccwd})>
- \tn{newtheorem}\oarg{键值列表}\marg{定理环境名}
- \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名}
\end{syntax}
\changes{v1.21}{2021/01/12}{增加配置定理环境样式的选项。}
-\changes{v1.23r}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
\end{function}
\begin{optdesc}
@@ -309,6 +321,17 @@
\item[spaceabove] 定理环境前的间距。
\item[spacebelow] 定理环境后的间距。
\item[spacepost] 定理标题后与内容的间距。
+\end{optdesc}
+
+\begin{function}[added = 2021-01-12,updated = 2021-03-13]{\newtheorem, \declaretheoremstyle}
+\begin{syntax}
+ \tn{newtheorem}\oarg{键值列表}\marg{定理环境名}
+ \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名}
+\end{syntax}
+\changes{v1.23s}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。}
+\end{function}
+
+\begin{optdesc}
\item[\tn{newtheorem}] 定义新的定理类环境,可选参数与 \pkg{thmtools} 宏包定理命令 \tn{declaretheorem} 的参数一致。常用的选项如下
\begin{description}
\item[name] 定理的标题。默认值是环境的名称,并且首字母大写(英文标题)。
@@ -360,7 +383,7 @@
\end{function}
\subsection{页眉页脚}
-\begin{function}[EXP,added = 2021-01-13,updated = 2021-03-14]{hdrset/...,head-foot,chap-mark,sec-mark,headrule,footrule,footnoterule,\easyhead,\easyfoot,...}
+\begin{function}[EXP,added = 2021-01-13,updated = 2021-03-14]{hdrset/...,head-foot,chap-mark,sec-mark,headrule,footrule,footnoterule}
\begin{syntax}
以下选项路径为 \tn{ctexset}\marg{hdrset/...}
head-foot = <页眉页脚中的内容>
@@ -369,12 +392,20 @@
headrule = <页眉横线格式>
footrule = <页脚横线格式>
footnoterule = <脚注横线格式>
+\end{syntax}
+\opt{hdrset} 设置的命令由 \pkg{fancyhdr} 宏包提供支持,\opt{headrule}、\opt{footrule} 和 \opt{footnoterule} 三个横线选项一般可以使用 \tn{hrule} width \meta{长度} height \meta{高度} 命令来绘制,脚注横线默认为空。当然,手动绘制横线时线条粗细选项 \opt{style/rulewidth} 会失效。
+\changes{v1.21}{2021/01/11}{修复单面文档时页眉横线消失的问题。}
+\changes{v1.21}{2021/01/13}{增加配置页眉页脚的选项。}
+\changes{v1.23s}{2021/03/08}{优化页眉页脚设置,增加 \opt{chap-mark} 和 \opt{sec-mark} 选项。}
+\changes{v1.23s}{2021/03/14}{可以手动绘制页眉、页脚和脚注的横线。}
+\end{function}
+
+\begin{function}[added = 2021-01-13,updated = 2021-03-14]{,\easyhead,\easyfoot}
+\begin{syntax}
\tn{easyhead}\oarg{位置}\marg{内容}
\tn{easyfoot}\oarg{位置}\marg{内容}
\end{syntax}
-\opt{hdrset} 设置的命令由 \pkg{fancyhdr} 宏包提供支持,命令 \tn{easyhead} 和 \tn{easyfoot} 的含义与 \tn{fancyhead} 和 \tn{fancyfoot} 相同,它们用于 \opt{head-foot} 选项中,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中E、O代表偶数、奇数,L、C、R代表左、中、右部分。单面打印时,含有偶数的选项无效。
-
-\opt{headrule}、\opt{footrule} 和 \opt{footnoterule} 三个横线选项一般可以使用 \tn{hrule} width \meta{长度} height \meta{高度} 命令来绘制,脚注横线默认为空。当然,手动绘制横线时线条粗细选项 \opt{style/rulewidth} 会失效。
+命令 \tn{easyhead} 和 \tn{easyfoot} 的含义与 \tn{fancyhead} 和 \tn{fancyfoot} 相同,它们用于 \opt{head-foot} 选项中,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中E、O代表偶数、奇数,L、C、R代表左、中、右部分。单面打印时,含有偶数的选项无效。
\begin{ctexexam}
\ctexset
{
@@ -391,14 +422,10 @@
}
}
\end{ctexexam}
-\changes{v1.21}{2021/01/11}{修复单面文档时页眉横线消失的问题。}
-\changes{v1.21}{2021/01/13}{增加配置页眉页脚的选项。}
-\changes{v1.23r}{2021/03/08}{优化页眉页脚设置,增加 \opt{chap-mark} 和 \opt{sec-mark} 选项。}
-\changes{v1.23r}{2021/03/14}{可以手动绘制页眉、页脚和脚注的横线。}
\end{function}
\subsection{目录样式}
-\begin{function}[EXP,added = 2021-01-13,updated = 2021-01-15]{tocset/.../format,tocset/.../indent,tocset/.../rule,lists/lolskip,lists/belowoffset,tocset/belowoffset,\tocrule}
+\begin{function}[EXP,added = 2021-01-13,updated = 2021-01-15]{tocset/.../format,tocset/.../indent,tocset/.../rule,lists/lolskip,lists/belowoffset,tocset/belowoffset}
\begin{syntax}
format = <目录标题格式>
indent = <目录标题左边缩进>
@@ -406,12 +433,17 @@
lolskip = <(0.8pc)>
lists/belowoffset = <(0pc)>
belowoffset = <(-1pc)>
- \tn{tocrule} = \oarg{引导点间距|(0.7pc)}\oarg{引导点大小|(1.2)}\marg{引导点}\oarg{页码格式}
\end{syntax}
\opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,预置了 \opt{part}、\opt{chapter}、\opt{section}、\opt{subsection} 和 \opt{lists} 五种级别的目录标题,键值列表中的...代表它们。\opt{lists} 为图片、表格和代码目录格式的级别。
\opt{lolskip} 是代码目录中章之间的代码标题的距离,使用刚性间距,与\CTeX 的 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8pc。\opt{belowoffset} 选项为目录总标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的间距。\opt{lists} 中的 \opt{belowoffset} 意义类似,但是一般为正值,在 \opt{lolskip = 0pc} 时使用。建议 \opt{lolskip+lists/format/addvspace = -belowoffset}。
+\changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
+\end{function}
+\begin{function}[added = 2021-01-13,updated = 2021-01-15]{\tocrule}
+\begin{syntax}
+ \tn{tocrule} = \oarg{引导点间距|(0.7pc)}\oarg{引导点大小|(1.2)}\marg{引导点}\oarg{页码格式}
+\end{syntax}
\tn{tocrule} 命令生成目录引导线,需要在 \opt{rule} 选项中使用,其中引导线间距需带有长度单位,引导点大小不带单位,为引导点符号正常大小的倍数,引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面,可以设置页码字体、距离。
\begin{ctexexam}
\ctexset
@@ -427,7 +459,6 @@
}
}
\end{ctexexam}
-\changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
\end{function}
\section{常用环境}
@@ -458,7 +489,7 @@
\end{function}
\subsubsection{排序列表}
-\label{sort list}
+\label{subsec:sort list}
使用 \opt{enumerate} 环境可创建排序列表,使用 \opt{enumerate*} 环境产生行内部列表,可以使用\textbf{A、a、I、i和1}作为可选项为 \opt{enumerate} 与 \opt{enumerate*} 格式化标签。若生成\textbf{Item I、Item II、Item III}格式可以这样
\begin{ctexexam}
\begin{enumerate*}[(a)]
@@ -494,25 +525,25 @@
\end{function}
\subsection{习题}
-\label{exercise}
+\label{subsec:exercise}
\begin{function}[added = 2021-01-05,updated = 2021-03-13]{exercise}
\begin{syntax}
\tn{begin}\marg{exercise}\oarg{颜色名|(LightYellow)}\oarg{编号|(1.)}\oarg{标题|(习题)}\oarg{配置选项}
\tn{item} <习题内容>
\tn{end}\marg{exercise}
\end{syntax}
-习题环境 \opt{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号环境时不进行编号。三个可选参数中颜色为自定义或 \pkg{xcolor} 包含的颜色名称,正文编号格式与小节 \ref{sort list} 排序列表相同,标题名默认为摘要,参数只能\textbf{从右往左}省略。
+习题环境 \opt{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号环境时不进行编号。三个可选参数中颜色为自定义或 \pkg{xcolor} 包含的颜色名称,正文编号格式与小节 \ref{subsec:sort list} 排序列表相同,标题名默认为摘要,参数只能\textbf{从右往左}省略。
\begin{ctexexam}
\begin{exercise}[LightYellow][1.][习题]
\item 习题内容
\item 习题内容
\end{exercise}
\end{ctexexam}
-\changes{v1.23r}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
+\changes{v1.23s}{2021/02/08}{增加准确的习题盒子标题目录锚点。}
\end{function}
\subsection{盒子}
-盒子以及小节 \ref{exercise} 中 \opt{exercise} 环境配置的选项由 \pkg{tcolorbox} 提供支持,具体选项可见宏包文档的 Option Keys 一节,可以进行边距、字体及背景颜色等各种个性化设置,一些配置会覆盖之前预置的设置。
+盒子以及小节 \ref{subsec:exercise} 中 \opt{exercise} 环境配置的选项由 \pkg{tcolorbox} 提供支持,具体选项可见宏包文档的 Option Keys 一节,可以进行边距、字体及背景颜色等各种个性化设置,一些配置会覆盖之前预置的设置。
\subsubsection{摘要盒子}
\begin{function}[added = 2021-01-05,updated = 2021-03-13]{outline}
@@ -558,10 +589,6 @@
\section{其它用法}
-\subsection{article 风格}
-当最高级别的标题命令使用 \tn{section} 而不使用 \tn{chapter} 时,会自动转变为 \opt{article} 风格,与 \cls{article} 文档类的特性相似,可用于短篇幅的文章,此时输出目录时需要配合 \opt{article} 选项使目录以 \opt{section} 级别输出,详情见小节 \ref{document command}。
-\changes{v1.23r}{2021/03/15}{增加 article 文章风格,可用于短篇幅的文章。}
-
\subsection{代码}
\begin{function}[added = 2021-01-05]{\lstinline,lstlisting,\listoflistings}
\begin{syntax}
@@ -642,7 +669,7 @@
\begin{syntax}
\tn{includepdf}\oarg{键值列表}\marg{文档名}
\end{syntax}
-该命令由 \pkg{pdfpages} 提供,将其他 pdf 文档插入当前文档,可以指定插入页数、逻辑页和横向等,详情查看宏包文档。
+该命令由 \pkg{pdfpages} 提供,将其他 pdf 文档插入当前文档,比如插入封面,可以指定插入页数、逻辑页和横向等,详情查看宏包文档。
\end{function}
\subsection{横向页面}
diff --git a/macros/latex/contrib/easybook/easybook.cls b/macros/latex/contrib/easybook/easybook.cls
index 4d3c1759ca..97f532796f 100644
--- a/macros/latex/contrib/easybook/easybook.cls
+++ b/macros/latex/contrib/easybook/easybook.cls
@@ -7,9 +7,9 @@
%% conditions of the CC-BY 4.0 License.
%% The latest version of this license is in
%% https://creativecommons.org/licenses/by/4.0/legalcode
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/03/15}{1.23r}{}
+\ProvidesExplClass{easybook}{2021/03/16}{1.23s}{}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -29,6 +29,7 @@
\bool_set_true:N \l__zhtitle_bool
\bool_set_true:N \l__lang_chinese_bool
\bool_set_true:N \l__page_twoside_bool
+\bool_set_true:N \l__class_book_bool
\clist_new:N \g__options_clist
\keys_define:nn {easybook}
@@ -68,7 +69,13 @@
\__put_ctexbook:n {oneside}
},
- unknown .code:n =
+ class .choice:,
+ class .value_required:n = true,
+ class/book .code:n = {},
+ class/article .code:n = {\bool_set_false:N \l__class_book_bool},
+ class .initial:n = book,
+
+ unknown .code:n =
{\clist_gput_right:No \g__options_clist{\CurrentOption}}
}
@@ -566,97 +573,82 @@
{\section*{\phantomsection#1}}
\__markboth:n {#1}
}
+\cs_new_protected:Npn \__ifmultoc_pre_set:
+ {
+ \bool_if:NTF \l__class_book_bool
+ {
+ \if@twocolumn
+ \@restonecoltrue
+ \onecolumn
+ \bool_if:NT \l__multoc_bool{\twocolumn}
+ \else
+ \@restonecolfalse
+ \bool_if:NT \l__multoc_bool{\twocolumn}
+ \fi
+ }{\tl_set:Nn \l__toc_type_tl{article}}
+ }
+\cs_new_protected:Npn \__ifmultoc_after_set:
+ {
+ \bool_if:NTF \l__class_book_bool
+ {
+ \if@restonecol
+ \twocolumn
+ \else
+ \onecolumn
+ \fi
+ }{\tl_set:Nn \l__toc_type_tl{article}}
+ }
\RenewDocumentCommand{\tableofcontents}{o}
{
\group_begin:
\IfValueT {#1}{\keys_set:nn {listoc}{#1}}
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
+ \__ifmultoc_pre_set:
\__title_mark:n {\contentsname}
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{toc}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
+ \__ifmultoc_after_set:
\group_end:
}
\RenewDocumentCommand{\listoffigures}{so}
{
\group_begin:
\IfValueT {#2}{\keys_set:nn {listoc}{#2}}
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
+ \__ifmultoc_pre_set:
\IfBooleanTF {#1}
{\__title_mark:n {\listfigurename}}
{\__title_mark_intoc:n {\listfigurename}}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lof}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
+ \__ifmultoc_after_set:
\group_end:
}
\RenewDocumentCommand{\listoftables}{so}
{
\group_begin:
\IfValueT {#2}{\keys_set:nn {listoc}{#2}}
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
+ \__ifmultoc_pre_set:
\IfBooleanTF {#1}
{\__title_mark:n {\listtablename}}
{\__title_mark_intoc:n {\listtablename}}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lot}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
+ \__ifmultoc_after_set:
\group_end:
}
\NewDocumentCommand{\listoflistings}{so}
{
\group_begin:
\IfValueT {#2}{\keys_set:nn {listoc}{#2}}
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
+ \__ifmultoc_pre_set:
\IfBooleanTF {#1}
{\__title_mark:n {\lstlistlistingname}}
{\__title_mark_intoc:n {\lstlistlistingname}}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lol}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
+ \__ifmultoc_after_set:
\group_end:
}
@@ -669,9 +661,9 @@
]
\indexsetup
{
- level = \int_compare:nTF {\c@chapter > 0}{\chapter*}{\section*},
- toclevel = \int_compare:nTF {\c@chapter > 0}{chapter}{section},
- firstpagestyle = \int_compare:nTF {\c@chapter > 0}{plain}{fancy}
+ level = \bool_if:NTF \l__class_book_bool{\chapter*}{\section*},
+ toclevel = \bool_if:NTF \l__class_book_bool{chapter}{section},
+ firstpagestyle = \bool_if:NTF \l__class_book_bool{plain}{fancy}
}
\__patch_cmd:Nnn \imki@indexheaders
{\@mkboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}}
@@ -724,49 +716,46 @@
\captionsetup[figure][bi-second]{name = Figure}
\captionsetup[table][bi-second]{name = Table}
\cs_new:Npn \__arabic:n #1{\int_to_arabic:v {c@#1}}
-\AtBeginDocument
+\cs_new_protected:Npn \__separator_set:n #1
{
- \cs_new_protected:Npn \__separator_set:n #1
+ \cs_set:cpn {the#1}
{
- \cs_set:cpn {the#1}
+ \int_compare:nT {\c@chapter > 0}
{
- \int_compare:nT {\c@chapter > 0}
- {
- \thechapter
- \use:c {l__#1_separator_tl}
- }
- \__arabic:n {#1}
+ \thechapter
+ \use:c {l__#1_separator_tl}
}
+ \__arabic:n {#1}
}
- \cs_gset:cpn {thesection}
- {
- \int_compare:nT {\c@chapter > 0}{\thechapter.}
- \__arabic:n {section}
- }
- \clist_map_inline:nn
- {{figure},{table},{lstlisting},{equation}}
- {\__separator_set:n {#1}}
- \cs_gset_protected:Npn \appendix
+ }
+\cs_gset:cpn {thesection}
+ {
+ \int_compare:nT {\c@chapter > 0}{\thechapter.}
+ \__arabic:n {section}
+ }
+\clist_map_inline:nn
+ {{figure},{table},{lstlisting},{equation}}
+ {\__separator_set:n {#1}}
+\cs_gset_protected:Npn \appendix
+ {
+ \int_compare:nNnTF {\c@chapter} > {0}
{
- \int_compare:nNnTF {\c@chapter} > {0}
- {
- \setcounter{chapter}{0}
- \setcounter{section}{0}
- \gdef\thechapter{\@Alph\c@chapter}
- \gdef\CTEX@prechapter{\CTEX@preappendix}
- \gdef\CTEX@thechapter{\CTEX@appendix@number}
- \gdef\CTEX@postchapter{\CTEX@postappendix}
- \gdef\CTEX@chapter@numbering{\CTEX@appendix@numbering}
- }{
- \setcounter{section}{0}
- \setcounter{subsection}{0}
- \gdef\thesection{\@Alph\c@section}
- \gdef\CTEX@presection{\CTEX@preappendix}
- \gdef\CTEX@thesection{\CTEX@appendix@number}
- \gdef\CTEX@postsection{\CTEX@postappendix}
- \gdef\CTEX@section@numbering{\CTEX@appendix@numbering}
- \ctex_set:nn {appendix}{number = {\@Alph\c@section},name = {}}
- }
+ \setcounter{chapter}{0}
+ \setcounter{section}{0}
+ \gdef\thechapter{\@Alph\c@chapter}
+ \gdef\CTEX@prechapter{\CTEX@preappendix}
+ \gdef\CTEX@thechapter{\CTEX@appendix@number}
+ \gdef\CTEX@postchapter{\CTEX@postappendix}
+ \gdef\CTEX@chapter@numbering{\CTEX@appendix@numbering}
+ }{
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \gdef\thesection{\@Alph\c@section}
+ \gdef\CTEX@presection{\CTEX@preappendix}
+ \gdef\CTEX@thesection{\CTEX@appendix@number}
+ \gdef\CTEX@postsection{\CTEX@postappendix}
+ \gdef\CTEX@section@numbering{\CTEX@appendix@numbering}
+ \ctex_set:nn {appendix}{number = {\@Alph\c@section},name = {}}
}
}
\AtBeginEnvironment{tabularx}
@@ -1177,13 +1166,7 @@
{
\group_begin:
\IfValueT {##2}{\keys_set:nn {listoc}{##2}}
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
+ \__ifmultoc_pre_set:
\cs_set:Npn \bibsection
{
\IfBooleanTF {##1}
@@ -1191,11 +1174,7 @@
{\__title_mark_intoc:n {\bibname}}
}
\exp_args:NV \bibliography\l__bib_file_tl
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
+ \__ifmultoc_after_set:
\group_end:
}
}