diff options
author | Norbert Preining <norbert@preining.info> | 2024-04-24 03:03:08 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-04-24 03:03:08 +0000 |
commit | a1bae2c92d8b9b9cbd26c71b0feb7abd276e5993 (patch) | |
tree | b1d5947913d3965ae86732f1813084c57b289b3d /macros/latex/contrib/easybook | |
parent | b5598758830c291828e8dcf4693b17f97d2bf3b9 (diff) |
CTAN sync 202404240303
Diffstat (limited to 'macros/latex/contrib/easybook')
-rw-r--r-- | macros/latex/contrib/easybook/easybook.dtx | 35 | ||||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.pdf | bin | 618466 -> 639377 bytes | |||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.tex | 53 |
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 Binary files differindex c186d69e7a..34d5b0f5ee 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf 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{*} |