From 01b69c78ff33854f7f28149e8167cb4219fcb416 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 14 Feb 2022 03:01:43 +0000 Subject: CTAN sync 202202140301 --- macros/latex/contrib/easybook/easybook.dtx | 138 +++++++++++------------------ macros/latex/contrib/easybook/easybook.pdf | Bin 576202 -> 578140 bytes macros/latex/contrib/easybook/easybook.tex | 53 ++++++----- 3 files changed, 79 insertions(+), 112 deletions(-) (limited to 'macros/latex/contrib/easybook') diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index d242a6773b..0e348a84ed 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2022/02/12}{1.624} +\ProvidesExplClass{easybook}{2022/02/13}{1.625} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -48,8 +48,6 @@ \bool_set_false:N \l__eb_class_mode_book_bool \eb_put_ctexbook:n { oneside } }, - book .meta:n = { class = book }, - article .meta:n = { class = article }, config .clist_gset:N = \g__eb_config_file_clist, floatpage .bool_set:N = \l__eb_float_page_bool, theorem .bool_set:N = \l__eb_theorem_support_bool, @@ -305,7 +303,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2022/02/12}{1.624} +\ProvidesExplPackage{easybase}{2022/02/13}{1.625} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -384,13 +382,13 @@ \msg_new:nnn { easybase } { package-repeat-load-ii } { The~macro~package~'#1'~has~been~loaded~repeatedly. } \cs_set_eq:NN \eb@usepackage@save \usepackage -\RenewDocumentCommand{\usepackage}{O{}m} +\RenewDocumentCommand{\usepackage}{O{}mO{}} { \PassOptionsToPackage{#1}{#2} \eb_seq_map_inline:nn {#2} { \eb_if_package_loaded:nnF {##1} {#1} - { \eb@usepackage@save{##1} } + { \eb@usepackage@save{##1}[#3] } } } \NewDocumentCommand{\LoadPackage}{O{}m} @@ -492,7 +490,7 @@ \msg_new:nnn { easybase } { no-chapter } { Your~document~class~is~in~'article'~mode. \\ - The~\string\chapter\ command~will~not~be~used. + The~'\string\chapter'\ command~will~not~be~used. } \LoadPackage @@ -1425,12 +1423,7 @@ \CTEX@addtocline{#1}{##2} \tl_if_empty:oF {##4} { \CTEX@addbitocline{#1}{##4} } \tl_set:Nn \l__eb__bitoc_mark_title_level_tl {#1} - \str_case:nn {#1} - { - { chapter } { \chaptermark{##2} } - { section } { \sectionmark{##2} } - { subsection } { \subsectionmark{##2} } - } + \use:c { #1mark }{##2} }{ \stepcounter{bi#1} \use:c {#1}[##2]{##3} @@ -1472,16 +1465,19 @@ } } -\tl_set:Nx \l__eb_toc_title_level_tl - { \bool_if:NTF \l__eb_class_mode_book_bool { chapter } { section } } \tl_new:N \eb@bitoc@title \keys_define:nn { eb/listoc } { - section .code:n = \tl_set:Nn \l__eb_toc_title_level_tl { section }, - chapter .code:n = \tl_set:Nn \l__eb_toc_title_level_tl { chapter }, - none .code:n = \tl_set:Nn \l__eb_toc_title_level_tl { none }, - article .meta:n = section, - book .meta:n = chapter, + level .tl_set:N = \eb@toc@title@level, + level .initial:n = + { + \bool_if:NTF \l__eb_class_mode_book_bool + { \bichapter* } + { \bisection* } + }, + section .meta:n = { level = \bisection* }, + chapter .meta:n = { level = \bichapter* }, + none .code:n = { }, multoc .int_set:N = \l__eb_toc_columns_int, multoc .default:n = 2, multoc .initial:n = 1, @@ -1502,48 +1498,7 @@ { \tl_clear:N \eb@bitoc@title } { \tl_set:Nn \eb@bitoc@title {#2} } } - -\cs_new_protected:Npn \eb_toc_title_level_initial: - { - \bool_if:NF \l__eb_class_mode_book_bool - { - \tl_if_eq:NnT \l__eb_toc_title_level_tl { chapter } - { \tl_set:Nn \l__eb_toc_title_level_tl { section } } - } - } -\cs_new_protected:Npn \eb_title_mark_intoc:n #1 - { - \str_case:Vn \l__eb_toc_title_level_tl - { - { chapter } { \bichapter*{#1}{\eb@bitoc@title} } - { section } { \bisection*{#1}{\eb@bitoc@title} } - } - } -\cs_new_protected:Npn \eb_title_mark_notoc:n #1 - { - \str_case:Vn \l__eb_toc_title_level_tl - { - { chapter } { \chapter*{\phantomsection #1}\chaptermark{#1} } - { section } { \section*{\phantomsection #1}\sectionmark{#1} } - } - } -\cs_new_protected:Npn \eb_title_number_intoc_spec:nn #1#2 - { - \eb_toc_title_level_initial: - \IfBooleanTF{#1} - { - \str_case:Vn \l__eb_toc_title_level_tl - { - { chapter } { \bichapter{\eb@toc@title}{\eb@bitoc@title} } - { section } { \bisection{\eb@toc@title}{\eb@bitoc@title} } - } - }{ - \IfBooleanTF{#2} - {\eb_title_mark_notoc:n { \eb@toc@title }} - {\eb_title_mark_intoc:n { \eb@toc@title }} - } - } -\cs_new_protected:Npn \eb_biber_title_level_spec:n #1 +\cs_new_protected:Npn \eb_biber_toc_title:n #1 { \bool_if:NTF \l__eb_class_mode_book_bool { \bichapter*{#1}{\eb@bib@bitoc@title} } @@ -1560,18 +1515,23 @@ } { \@starttoc{#1} } } -\cs_new_protected:Npn \eb_toc_if_title_between_hook:n #1 +\cs_new_protected:Npn \eb_toc_if_title_between_hook:nn #1#2 + { + \IfBooleanF{#1} + {\tl_use:c { l__eb_toc_#2_between_hook_tl }} + } +\cs_new_protected:Npn \eb_toc_title_level_cmd:n #1 { - \tl_if_eq:NnF \l__eb_toc_title_level_tl { none } - { \tl_use:c { l__eb_toc_#1_between_hook_tl } } + \IfBooleanF{#1} + {\eb@toc@title@level{\eb@toc@title}{\eb@bitoc@title}} } \cs_new_protected:Npn \eb_toc_list_parse:nnnnn #1#2#3#4#5 { \group_begin: \tl_set_eq:Nc \eb@toc@title { list#4name } \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}} - \eb_title_number_intoc_spec:nn {#2} {#1} - \eb_toc_if_title_between_hook:n {#4} + \eb_toc_title_level_cmd:n {#1} + \eb_toc_if_title_between_hook:nn {#1} {#4} \eb_toc_start_multi_column_ext:n {#5} \group_end: } @@ -1588,20 +1548,25 @@ } { \eb_list_content_cmd_set:nn #1 } \cs_set_eq:NN \listoflistings \listoflstlistings -\RenewDocumentCommand{\tableofcontents}{t+oD(){}} +\RenewDocumentCommand{\tableofcontents}{st+oD(){}} { \group_begin: \tl_set_eq:NN \eb@toc@title \contentsname \tl_set:Nn \eb@bitoc@title { Contents } - \IfValueT{#2}{\keys_set:nn { eb/listoc } {#2}} - \eb_toc_title_level_initial: - \eb_title_mark_notoc:n { \eb@toc@title } - \eb_toc_if_title_between_hook:n { main } - \eb_toc_start_multi_column_ext:n { toc }#3 - \IfBooleanT{#1} - { - \eb_title_mark_notoc:n { \eb@bitoc@title } - \eb_toc_if_title_between_hook:n { main } + \tl_set:Nn \eb@toc@title@level + { + \bool_if:NTF \l__eb_class_mode_book_bool + { \chapter* } + { \section* } + } + \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}} + \IfBooleanF{#1}{\eb@toc@title@level{\eb@toc@title}{}} + \eb_toc_if_title_between_hook:nn {#1} { main } + \eb_toc_start_multi_column_ext:n { toc }#4 + \IfBooleanT{#2} + { + \IfBooleanF{#1}{\eb@toc@title@level{\eb@bitoc@title}{}} + \eb_toc_if_title_between_hook:nn {#1} { main } \eb_toc_start_multi_column_ext:n { tec } } \group_end: @@ -1619,7 +1584,7 @@ \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}} \cs_set_protected:Npn \imki@indexheaders { - \eb_title_number_intoc_spec:nn {#2} {#1} + \eb_toc_title_level_cmd:n {#1} \cs_set_eq:NN \thispagestyle \use_none:n \cs_undefine:N \imki@firstpagestyle } @@ -1727,7 +1692,7 @@ caption-listing = #1 }, caption-every .initial:n = 1.2, - every .meta:n = + every .meta:n = { line = #1,table = #1,math = #1, caption-every = #1,footnote = #1 @@ -2025,7 +1990,7 @@ \IfValueT{##3}{ \keys_set:nn { eb/listoc } {##3} } \cs_set_protected:Npn \bibsection { - \eb_title_number_intoc_spec:nn {##2} {##1} + \eb_toc_title_level_cmd:n {##1} \int_compare:nNnT { \l__eb_toc_columns_int } > { 1 } { \begin{multicols}{\int_use:N \l__eb_toc_columns_int} } } @@ -2054,7 +2019,7 @@ \LoadPackage[backend = biber]{biblatex} \clist_map_function:NN \l__eb_bib_datafile_clist \addbibresource \tl_gset:Nn \blx@default@theheading { bibintoc } - \defbibheading{bibintoc}[\bibname]{\eb_biber_title_level_spec:n {##1}} + \defbibheading{bibintoc}[\bibname]{\eb_biber_toc_title:n {##1}} \skip_zero:N \bibitemsep } \eb_at_end_preamble:n @@ -2281,25 +2246,22 @@ \keys_set_known:nn { ctex } { contentsname = 目\hspace{1em}录, - indexname = 索\hspace{1em}引, - abstractname = 摘\hspace{1em}要, - listfigurename = 图片索引, - listtablename = 表格索引, - lstlistlistingname = 代码索引, + listfigurename = 插图清单, + listtablename = 附表清单, + lstlistlistingname = 代码清单, lstlistingname = 代码 } } { \keys_set_known:nn { ctex } { - abstractname = Abstract, lstlistlistingname = List~of~Codes, lstlistingname = Code } } % %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2022/02/12}{1.624} +\ProvidesExplFile{eb-tcolorbox.cfg}{2022/02/13}{1.625} {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 2afdd2a192..a1d8867b06 100644 Binary files a/macros/latex/contrib/easybook/easybook.pdf and b/macros/latex/contrib/easybook/easybook.pdf differ diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index c007570fa9..55f6bfda13 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -21,8 +21,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.624, - date = 2022/02/12, + version = v1.625, + date = 2022/02/13, authors = 瞿毅, info = 排版简体中文学位论文和书籍, email = q1jx@foxmail.com, @@ -331,24 +331,24 @@ \subsection{目录命令} \begin{commands} - \command{tableofcontents}[\parg\oarg{键值列表}\darg{附加代码}] - 文档主目录命令。带有 \parg{} 号参数的命令输出双语目录,需要与双语目录标题命令 \cs{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入目录样式和换页等命令。 - \command{listoffigures}[\sarg\parg\oarg{键值列表}] - 输出图片目录命令。带有星号的目录命令不将目录标题添加进文档主目录,带有 \parg{} 号的目录命令可以使当前标题编号。 - \command{listoftables}[\sarg\parg\oarg{键值列表}] - 输出表格目录命令。带有星号的目录命令不将目录标题添加进文档主目录,带有 \parg{} 号的目录命令可以使当前标题编号。 - \command{listoflstlistings}[\sarg\parg\oarg{键值列表}] - 输出代码目录命令。带有星号的目录命令不将目录标题添加进文档主目录,带有 \parg{} 号的目录命令可以使当前标题编号。 + \command{tableofcontents}[\sarg\oarg{键值列表}\darg{附加代码}] + 文档主目录命令。带有星号参数的命令不输出目录标题。带有 \parg{} 号参数的命令输出双语目录,需要与双语目录标题命令 \cs{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用。附加代码是中文与英文主目录之间的代码,可以插入目录样式和换页等命令。 + \command{listoffigures}[\sarg\oarg{键值列表}] + 输出图片目录命令。带有星号参数的命令不输出目录标题。 + \command{listoftables}[\sarg\oarg{键值列表}] + 输出表格目录命令。带有星号参数的命令不输出目录标题。 + \command{listoflstlistings}[\sarg\oarg{键值列表}] + 输出代码目录命令。带有星号参数的命令不输出目录标题。 \end{commands} -上面目录命令的可选参数改进了原本单一的功能,其中 \meta{键值列表} 的选项如下: +如果需要部分而不是全文的目录或其它类型的目录,可以查看 \pkg*{titletoc} 宏包的相关命令。上面目录命令的可选参数改进了原本单一的功能,其中 \meta{键值列表} 的选项如下: \begin{options} - \opt{chapter} - 使当前目录标题按照 \code{chapter} 章级别输出。 - \opt{section} - 使当前目录标题按照 \code{section} 节级别输出。 - \opt{none} - 使当前目录没有 \code{chapter} 或 \code{section} 级别的标题,仅输出目录原始内容。 + \keyval{level}{标题命令}\newtag + 设定输出目录标题的命令。如果使用 \option{title} 选项设置了双语标题则需要配合双语标题命令。 + \begin{ctexexam} + \tableofcontents[level = \chapter*] + \listoffigures[level = \bichapter,title = {图片索引,List of Figures}] + \end{ctexexam} \keyval{multoc}{整数}\Default{2} 与 \module*{style} 模块的 \option{multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同类型目录的排版栏数。\meta{整数} 为目录栏数,不指定栏数值则默认为双栏。 \kvsplit{title}{中文目录标题,英文目录标题} @@ -356,10 +356,10 @@ \keychoice{bilist}{mix,new}\Default{new} 确定文档主目录中双语标题列表的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出,\code{new} 则新建一个英文目录输出英文标题。 \keyval{format}{目录标题格式} - 在 \cls*{book} 模式且 \option{chapter} 选项开启或者 \cls*{article} 模式的情况下,\option{format} 用于设置目录标题的格式。 - \keyval{aftertitle}{目录标题格式} - 目录标题文本之后插入的代码。 - \keyval{pagestyle}{标题页的页面格式}\Default{empty} + 设置目录标题的格式,在标题级别为 \code{chapter} 或者 \cls*{article} 模式且标题级别为 \code{section} 时有效。 + \keyval{aftertitle}{标题后代码} + 目录标题文本之后插入的代码,生效情形同上。 + \keyval{pagestyle}{页面风格}\Default{empty} 目录标题所在页的页面格式,仅当目录以 \code{chapter} 级别输出时有效。除了上述选项还支持 C\TeX 键值列表路径 \module*{chapter} 或 \module*{section} 所有的章节标题样式选项。 \end{options} @@ -937,7 +937,7 @@ \keyval{lolskip}{弹性长度}\Default{10pt} 代码目录中每章第一个条目上方增加的垂直距离。与 C\TeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。 \keyval{between}{代码钩子} - 目录标题与内容间的钩子,一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。一级路径此选项对应文档主目录的钩子,二级路径为 \module*{figure}、\module*{table} 和 \module*{lstlisting},或者用位于 \module*{list} 路径的此选项统一设置相应类型目录的钩子。 + 目录标题与内容间的钩子(作用于标题下方间距之后),一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。一级路径此选项对应文档主目录的钩子,二级路径为 \module*{figure}、\module*{table} 和 \module*{lstlisting},或者用位于 \module*{list} 路径的此选项统一设置相应类型目录的钩子。 \keybool{dotalign}\Default{true} 引导线选项 \option{dotalign} 可以使目录引导线右端对齐并与页码保持一定间距,否则会与页码相连。 \keyval{pagenumwd}{刚性长度}\Default{1.55em} @@ -1231,7 +1231,7 @@ 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引打印命令 \cs{printindex} 一致,可以存在多个索引表。 \command*{makeindex}[\oarg{键值列表}] 使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。 - \command{printindex}[\sarg\parg\oarg{键值列表}\darg{索引名}] + \command{printindex}[\sarg\oarg{键值列表}\darg{索引名}] 现在索引表生成命令 \cs{printindex} 被重新定义,\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。 \end{commands} @@ -1277,7 +1277,12 @@ \item 文档类移除预置的定理环境,改为由用户自行定义环境。 \item 考虑到功能性和实用性不强弃用摘要环境 \env*{outline} 和习题环境 \env*{exercise}。 \end{version} - \shortversion{v = 1.624,date = 2022/02/12,changes = 增加目录条目下方执行的代码选项 \option{tocbelow}。} + \begin{version}[v = 1.625,date = 2022/02/13] + \added + \item 增加目录条目下方执行的代码选项 \option{tocbelow}。 + \changed + \item 目录改用标题级别选项 \option{level} 设定标题命令,不输出标题则使用星号参数。 + \end{version} \end{changelog} \nocite{*} -- cgit v1.2.3