summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easybook
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-04-24 03:03:08 +0000
committerNorbert Preining <norbert@preining.info>2024-04-24 03:03:08 +0000
commita1bae2c92d8b9b9cbd26c71b0feb7abd276e5993 (patch)
treeb1d5947913d3965ae86732f1813084c57b289b3d /macros/latex/contrib/easybook
parentb5598758830c291828e8dcf4693b17f97d2bf3b9 (diff)
CTAN sync 202404240303
Diffstat (limited to 'macros/latex/contrib/easybook')
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx35
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin618466 -> 639377 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex53
3 files changed, 75 insertions, 13 deletions
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index ed8abf47f5..b6c3eceaaa 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2024/04/22}{2024aw}
+\ProvidesExplClass{easybook}{2024/04/23}{2024ax}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -297,7 +297,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2024/04/22}{2024aw}
+\ProvidesExplPackage{easybase}{2024/04/23}{2024ax}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -1559,6 +1559,7 @@
#1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
#1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
#1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocformat* .tl_set:c = l__eb_toc_#1_entry_nolabel_tl,
#1/tocindent .tl_set:c = l__eb_toc_#1_indent_tl,
#1/toclabel .cs_set:cp = { eb_toc_entry_#1:nnn } ##1##2##3,
#1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
@@ -1584,7 +1585,8 @@
{#2}
[\tl_use:c { l__eb_toc_#2_indent_tl }]
{\tl_use:c { l__eb_toc_#2_format_tl }}
- {\use:c { eb_toc_entry_#2:nnn } { \thecontentslabel } {#2} {#1}}{}
+ {\use:c { eb_toc_entry_#2:nnn } { \thecontentslabel } {#2} {#1}}
+ {\tl_use:c { l__eb_toc_#2_entry_nolabel_tl }}
{\tl_use:c { l__eb_toc_#2_rule_tl }}
[\tl_use:c { l__eb_toc_#2_below_tl }]
}
@@ -2082,6 +2084,25 @@
]
\theoremstyle{default}
\cs_undefine:N \proof
+ \DeclareFloatList{theorem}{loe}
+ \eb_preto_cmd:nn { listoftheorems }
+ { \def\contentsline #1 {\use:c { thmt@contentsline@#1 }{#1}} }
+ \def\thmtname{\thmt@thmname}
+ \def\thmtenvname{\thmt@envname}
+ \def\thmtnote{\thmt@shortoptarg}
+ \def\thmtformatoptarg #1 {#1}
+ \def\thmtifname #1#2 {\ifbool{thmt@isstarred}{#2}{#1}}
+ \def\thmtifnote #1#2
+ {
+ \tl_if_empty:NTF \thmt@shortoptarg
+ { \protect\thmtformatoptarg{#2} }
+ { \protect\thmtformatoptarg{#1} }
+ }
+ \NewDocumentCommand{\settheoremtocline}{smm}
+ {
+ \IfBooleanT{#1}{\def\thmt@contentslineIgnore{\thmt@contentsline}}
+ \cs_set:cpn { ll@#2 } {#3}
+ }
}
\setchemformula
@@ -2418,7 +2439,8 @@
\ctex_define:n
{
lstlistlistingname .tl_set:N = \listlstlistingname,
- lstlistingname .tl_set:N = \lstlistingname
+ lstlistingname .tl_set:N = \lstlistingname,
+ listtheoremname .tl_set:N = \listtheoremname
}
\tl_if_eq:NnTF \l__ctex_scheme_tl { chinese }
{
@@ -2428,7 +2450,8 @@
listfigurename = 插图清单,
listtablename = 附表清单,
lstlistlistingname = 代码清单,
- lstlistingname = 代码
+ lstlistingname = 代码,
+ listtheoremname = 定理清单
}
}
{
@@ -2440,7 +2463,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/04/22}{2024aw}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/04/23}{2024ax}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index c186d69e7a..34d5b0f5ee 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 38eed7aa2b..5cef727432 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024aw,
- date = 2024/04/22,
+ version = v2024ax,
+ date = 2024/04/23,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -204,9 +204,12 @@
\begin{itemize}
\item 使用 \hologo{XeLaTeX}(推荐)或 \hologo{LuaLaTeX} 两种编译方式。
\item 由于文档类用到了一些 \LaTeX 和依赖宏包较新的功能,需要版本至少在\textbf{2021/11/15}以后的 \LaTeX 内核支持。建议您安装最新的 \TeX 发行版。
- \item 虽然手册对基本用法做了介绍,但这并不是入门教程,所涉及到宏包的用法与命令也需要有了解。您应当具有一定的 \LaTeX 使用基础,可以在 \TeX 综合网站 \href{https://www.ctan.org/}{CTAN} 查看相关资源。
+ \item 虽然手册对基本用法做了介绍,但这并不是入门教程,所涉及到宏包的用法与命令并未进行详细介绍,需要对它们有所了解。您应当具有一定的 \LaTeX 使用基础,可以在 \TeX 综合网站 \href{https://www.ctan.org/}{CTAN} 查看相关资源。
\end{itemize}
+\subsection{前言}
+对于排版外文文档已有诸如 \cls*{KOMA-Script} 和 \cls*{memoir} 等应用广泛的文档类,但这些文档类并不是为中文用户设计的,难免有些水土不符,且用户手册繁杂,对于普通用户来说学习成本高,难以快速上手。中文文档的解决方案 \pkg*{ctex} 宏集解决了中文输出和章节标题格式的设置问题,但在编写文档过程中往往需要更多基本的定制功能,例如目录、图表标题、页眉页脚、脚注和页面边距等,这往往需要额外加载不同功能的宏包。\easybook{} 文档类在 \cls*{ctexbook} 基础上载入了一些使用频率较高且基本稳定的宏包,对它们的功能进行整合并优化联动使用,模块化的改装提供统一的接口兼容 \pkg*{ctex} 文档类,可以满足学术类文档例如中国学位论文模板的基本需求。\easybook{} 提供了与 \CTeX 相同现代化风格的键值设置,支持不同类型的选项与层次化的选项设置。
+
\subsection{基本用法}
\label{subsec:basic usage}
以下一份简单的 \TeX 文档演示了 \easybook{} 的最基本用法,在导言区进行宏包载入与文档设置,一些详细的使用样例会不定期上传在 \href{https://www.latexstudio.net/}{\LaTeX 工作室} 的网站。
@@ -644,6 +647,26 @@
\end{ctexexam}
\end{commands}
+\begin{commands}\noitemsep
+ \command{listoftheorems}[\sarg\oarg{键值列表}]\default{}
+ \item\key{listoftheorems}{定理目录标题名}
+ \command{settheoremtocline}[\sarg\marg{环境名}\marg{标题定义}]\newtagv{2024ax}%
+ 对 \pkg*{thmtools} 宏包的定理环境目录命令 \cs{listoftheorems} 进行了兼容调整,\ref{subsec:directory command} 和\ref{subsec:catalog style} 中的选项机制均可用,但标题定义选项 \option{tocline} 较为特殊,需用 \cs{settheoremtocline} 命令单独设置。在 \meta{标题定义} 中有三个命令 \cs{thmtname}、\cs{thmtenvname} 和 \cs{thmtnote} 分别代表定理名、定理环境名和题注用于排版目录条目。
+ \command{thmtifnote}[\marg{存在题注代码}\marg{不存在题注代码}]
+ 默认情况下 \meta{标题定义} 中需包含 \cs{thmtifnote} 命令用于判断是否存在题注从而输出不同的内容,若使用 \cs*{settheoremtocline}\code{*} 命令则没有这个限制。
+ \command{thmtifname}[\marg{存在编号代码}\marg{不存在编号代码}]
+ 在 \meta{标题定义} 中测试当前定理是否有编号从而输出不同的内容,定理风格选项 \keyis{numbered}{no} 设置当前定理环境没有编号。
+ \begin{ctexexam}
+ \contentsuse{caixiang}{loe}
+ \RegisterTocName{caixiang}
+ \settheoremtocline{caixiang}
+ {%
+ \listnumberline{caixiang}
+ \thmtname\thmtifnote{[\thmtnote]}{}
+ }
+ \end{ctexexam}
+\end{commands}
+
\subsection[页面尺寸]{页面尺寸\smodule{geoset}}
\label{subsec:page margins}
模块 \module*{geoset} 会将选项(除了前两个为附加)交给页面尺寸宏包 \pkg*{geometry} 处理,并且支持它的键值列表,预置的页面尺寸与 \textsf{Word} 的默认值接近。下面列举几种代表性选项,其它选项可查阅宏包帮助文档。当在此设置纸张规格时,会覆盖文类选项 \option{paper} 的设置。
@@ -701,6 +724,16 @@
\end{options}
\begin{commands}\noitemsep
+ \command{fancyhead}[\marg{风格名}\oarg{基础风格}\marg{风格定义}]
+ 定义名为 \meta{风格名} 的页面风格。\meta{风格定义} 中可包含设置页眉页脚不同位置格式的命令,如果为空则等于 \code{fancy} 风格。如果存在 \meta{基础风格},则在它的基础上进行定义。
+ \begin{ctexexam}
+ \fancypagestyle{plain}
+ {
+ \fancyhf{}
+ \fancyfoot[C]{\textbf{--~\thepage~--}}
+ \ebhdrset{headrule = {}}
+ }
+ \end{ctexexam}
\command{fancyhead}[\oarg{位置}\marg{内容}]\default{}
\command{fancyfoot}[\oarg{位置}\marg{内容}]
为了确保页面显示正确,使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时需要在页边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面打印时,含有偶数位置的命令无效。
@@ -839,6 +872,8 @@
目录中各类型条目的格式。可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。如果是段落型目录,格式代码仅在段落中当前级别条目前执行一次。
\keyval{tocformat+}{条目格式}\dtag
与选项 \option{tocformat} 用法一样,只是在已有的格式命令后附加代码。
+ \keyval{tocformat*}{条目格式}\dtag
+ 没有编号/名字标题的附加格式代码。目录中判断标题是否有编号/名字的依据为:如果在 \option{tocline} 选项中使用了 \cs{numberline} 命令输出标签,则判定为有编号/名字。格式最后的命令可带有一个参数,用于接受标题内容。
\keyval{tocindent}{刚性长度}\dtag
目录条目左边的缩进距离,通常标题级别越低缩进越大。如果是段落型目录,仅在当前条目级别为段落中最高时有效。
\keyval{tocrule}{引导线命令}\dtag
@@ -1032,7 +1067,7 @@
\end{options}
\end{commands}
-\subsection{双语章节标题与新建标题}
+\subsection{双语章节标题和新建标题}
双语目录标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{number} 选项更改英文目录中标题的编号格式。这个功能是为国内一些高校的学位论文模板的要求设计,在一般情况和英文模式下\textbf{不需要使用}。
\begin{commands}
\command{bichapter}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}]
@@ -1274,9 +1309,10 @@
\section{扩展功能}
\subsection{物理量}
+使用 \pkg*{siunitx} 宏包提供国际单位制的物理量支持。\pkg*{siunitx} 宏包旨在为 \LaTeX 用户提供一种统一的方法,以便正确、轻松地排版数字和单位。\pkg*{siunitx} 的设计理念是默认遵循约定的规则,但允许通过选项设置进行更改。
\begin{commands}
\command{num}[\oarg{键值列表}\marg{数字}]
- \pkg*{siunitx} 宏包的 \cs{num} 命令可以输出以科学计数法表示的数值。
+ \cs{num} 命令可以输出以科学计数法表示的数值。
\command{unit}[\oarg{键值列表}\marg{单位}]
单位格式化命令 \cs{unit} 包含文字元素(例如字母或数字)时,使用 \Marg{.} 和 \code{\~{}} 放置在单元乘积中间,并使用 \code{\_{}} 和 \code{\^{}} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。
\command{qty}[\oarg{键值列表}\marg{数字}\oarg{前缀}\marg{单位}]
@@ -1292,9 +1328,10 @@
\end{commands}
\subsection{化学式}
+除了以普通公式的方式,化学式的输出还可用 \pkg*{chemformula} 宏包实现。\pkg*{chemformula} 的工作原理与 \pkg*{mhchem} 非常相似,但对化合物、化学计量数和箭头的输入方式更为严格。同时 \pkg*{chemformula} 提供了多种自定义输出的可能性。
\begin{commands}
\command{ch}[\oarg{键值列表}\marg{化学式}]
- 除了以普通公式的方式,化学式还可用 \pkg*{chemformula} 实现。无机化学式使用 \cs{ch} 命令书写。化合物表达式中的原子数不需要加下标符号,化学计量数与表达式间隔一个空格。
+ 无机化学式使用 \cs{ch} 命令书写。化合物表达式中的原子数不需要加下标符号,化学计量数与表达式间隔一个空格。
\begin{ctexexam}
\ch{[Cu(NH3)4]^2+}
\ch{Cu2S + 2 O2 - 2 e^- == 2 Cu^2+ + SO4^2-}
@@ -1331,6 +1368,7 @@
\end{commands}
\subsection{图表题注}
+\pkg*{caption} 宏包提供了多种方法来定制浮动环境(例如 \env{figure} 和 \env{table})中的标题,并可与许多其它宏包配合使用。功能包括旋转题注、侧向题注和连续题注等。
\begin{commands}
\command{captionsetup}[\oarg{条目名}\marg{键值列表}]
这是 \pkg*{caption} 宏包的接口命令,\meta{键值列表} 提供多个选项更改图表题注的格式。题注主要由三部分组成:标题标签即图表名与题注编号的组合,标题文本本身通常是内容的简短描述,以及将文本与标签分开的题注分隔符。可以在导言区设置整体格式,也可以在正文使用局部更改格式。
@@ -1346,7 +1384,7 @@
\subsection{索引}
\begin{commands}
\command{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
+ \pkg*{imakeidx} 宏包增强了索引的功能,可使用户在制作和排版文档的同时制作一个或多个索引。这是 \pkg*{imakeidx} 宏包的接口命令,用于设置索引表的整体格式。
\command{index}[\oarg{索引名}\marg{标签}]
索引标签命令的可选参数可以用不同的 \meta{索引名} 给多个索引表设置标签。
\command{makeindex}[\oarg{键值列表}]
@@ -1476,6 +1514,7 @@
\item 新增段落型目录条目附加代码的选项 \option{tocbegin}、\option{tocsep} 和 \option{tocend}。
\end{version}
\shortversion{v = 2024aw,date = 2022/04/22,changes = 新增新建章节标题命令 \cs{NewTitleCommand} 和 \cs{NewTitleEntryCommand}。}
+ \shortversion{v = 2024ax,date = 2022/04/23,changes = 增加对 \pkg*{thmtools} 宏包定理环境目录 \cs{listoftheorems} 的支持。}
\end{changelog}
\nocite{*}