From a365f4320519cd6ebeb512575849a4582aae4f45 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 17 Aug 2021 03:00:45 +0000 Subject: CTAN sync 202108170300 --- macros/latex/contrib/easybook/easybook.dtx | 144 ++++++++++++++--------------- macros/latex/contrib/easybook/easybook.pdf | Bin 586691 -> 587175 bytes macros/latex/contrib/easybook/easybook.tex | 34 +++---- 3 files changed, 86 insertions(+), 92 deletions(-) (limited to 'macros/latex/contrib/easybook') diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index 3672b124b9..29456c1287 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}{2021/08/15}{1.28p} +\ProvidesExplClass{easybook}{2021/08/16}{1.28q} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -95,14 +95,12 @@ { \eb_set_family:nnn { \CJKsfdefault } {#2} {#1} } \cs_new_protected:Npn \eb_setCJKmonofont:nn #1#2 { \eb_set_family:nnn { \CJKttdefault } {#2} {#1} } -\cs_new_protected:Npn \eb_font_double_engine_set:n #1 +\eb_clist_map_inline:nn + { main,sans,mono,CJKmain,CJKsans,CJKmono } { \exp_args:Nc \RenewDocumentCommand { set#1font }{O{}mO{}} {\use:c { eb_set#1font:nn } {##2} {##1,##3}} } -\eb_clist_map_function:nN - { main,sans,mono,CJKmain,CJKsans,CJKmono } - \eb_font_double_engine_set:n \RenewDocumentCommand{\newCJKfontfamily}{omO{}mO{}} { \tl_set:Nx \l_tmpa_tl @@ -299,7 +297,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/08/15}{1.28p} +\ProvidesExplPackage{easybase}{2021/08/16}{1.28q} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_add:Nn { NV,Nv } @@ -511,20 +509,6 @@ Your~document~class~is~in~article~mode. \\ The~\string\chapter\space~command~will~not~be~used. } -\ctex_define:nn { style } - { - multoc .bool_set:N = \l__eb_toc_multi_column_bool, - multoc .default:n = true, - withpart .bool_set:N = \l__eb_chap_counter_withpart_bool, - withpart .default:n = true, - withpart .initial:n = false, - rulewidth .dim_set:N = \l__eb_rule_width_dim, - rulewidth .initial:n = 0.75pt, - uppercase .bool_set:N = \l__eb_mark_uppercase_bool, - uppercase .default:n = true, - uppercase .initial:n = true, - figurepath .tl_set:N = \l_eb_graphics_path_tl - } \LoadPackage { @@ -566,6 +550,41 @@ } { \eb_package_date_check:nn #1 } +\NewDocumentCommand{\eb_assign_tag_brackets:n} + {>{\SplitArgument{1}{,}}m} + {\eb_assign_tag_brackets_pos:nn #1} +\cs_new_protected:Npn \eb_assign_tag_brackets_pos:nn #1#2 + { + \tl_set:Nn \eb@tag@brackets@left {#1} + \tl_set:Nn \eb@tag@brackets@right {#2} + } +\cs_gset:Npn \tagform@ #1 + { + \maketag@@@ + { + \color{ctex@emph} + \eb@tag@brackets@left + \ignorespaces #1\unskip\@@italiccorr + \eb@tag@brackets@right + } + } +\ctex_define:nn { style } + { + multoc .bool_set:N = \l__eb_toc_multi_column_bool, + multoc .default:n = true, + withpart .bool_set:N = \l__eb_chap_counter_withpart_bool, + withpart .default:n = true, + withpart .initial:n = false, + rulewidth .dim_set:N = \l__eb_rule_width_dim, + rulewidth .initial:n = 0.75pt, + uppercase .bool_set:N = \l__eb_mark_uppercase_bool, + uppercase .default:n = true, + uppercase .initial:n = true, + brackets .code:n = \eb_assign_tag_brackets:n {#1}, + brackets .initial:n = { (,) }, + figurepath .tl_set:N = \l_eb_graphics_path_tl + } + \includepdfset{fitpaper = true} \geometry { @@ -1757,20 +1776,14 @@ \selectfont\ignorespaces } -\cs_new_protected:Npn \eb_float_proportion_set:nn #1#2 - { \tl_gset:cn { #1fraction } {#2} } \bool_if:NF \l__eb_float_page_bool { - \clist_map_inline:nn - { - { text } { 0.1 }, - { top } { 0.9 }, - { bottom } { 0.9 }, - { floatpage } {0.9 }, - { dbltop } { 0.9 }, - { dblfloatpage } { 0.9 } - } - { \eb_float_proportion_set:nn #1 } + \tl_gset:Nn \textfraction { 0.1 } + \tl_gset:Nn \topfraction { 0.9 } + \tl_gset:Nn \bottomfraction { 0.9 } + \tl_gset:Nn \floatpagefraction { 0.9 } + \tl_gset:Nn \dbltopfraction { 0.9 } + \tl_gset:Nn \dblfloatpagefraction { 0.9 } } \skip_set:Nn \parskip { 0pt plus 2pt minus 1pt } \skip_set:Nn \intextsep { 14pt plus 2pt minus 2pt } @@ -1816,12 +1829,6 @@ itemsep = 0.75ex plus .1ex,topsep = 0.75ex plus .1ex, partopsep = 0ex,parsep = 0ex } -\newlist{eb@outline@list}{itemize}{1} -\newlist{eb@exercise@list}{enumerate}{2} -\newlist{eb@eqcomp@list}{description}{1} -\setlist[eb@outline@list]{label = outline,itemsep = 0.5ex plus .1ex} -\setlist[eb@exercise@list]{labelsep = 0.5em,nosep} -\setlist[eb@eqcomp@list]{labelsep = 0em,nosep} \setlist[itemize,1]{label = bullet} \setlist[itemize,2]{label = endash} \setlist[itemize,3]{label = asterisk} @@ -1829,6 +1836,12 @@ \setlist[enumerate,2]{label = alph,ref = enumii,labelwidth = *} \setlist[enumerate,3]{label = roman,ref = enumiii,labelwidth = *} \setlist[description]{font = sf,labelwidth = *,leftmargin = 2em} +\newlist{eb@outline@list}{itemize}{1} +\newlist{eb@exercise@list}{enumerate}{2} +\newlist{eb@eqcomp@list}{description}{1} +\setlist[eb@outline@list]{label = outline,itemsep = 0.5ex plus .1ex} +\setlist[eb@exercise@list]{labelsep = 0.5em,nosep} +\setlist[eb@eqcomp@list]{labelsep = 0em,nosep} \cs_new:Npn \setexerlist #1 { \setlist*[eb@exercise@list]{#1} } \cs_new:Npn \seteqcomplist #1 { \setlist*[eb@eqcomp@list]{#1} } \cs_new:Npn \setoutlinelist #1 { \setlist*[eb@outline@list]{#1} } @@ -1939,7 +1952,6 @@ headindent = \l__eb_thm_headindent_tl, headfont = \l__eb_thm_headfont_tl, notefont = \l__eb_thm_notefont_tl, - notebraces = \l__eb_thm_notebraces_tl, bodyfont = \l__eb_thm_bodyfont_tl, headpunct = \l__eb_thm_headpunct_tl, postheadspace = \l__eb_thm_postheadspace_tl, @@ -1950,32 +1962,13 @@ \l__eb_thmtools_entry_prop \c__eb_thmtools_entry_clist \prop_map_inline:Nn \l__eb_thmtools_entry_prop { \ctex_define:nn { thmset } { #1 .tl_set:N = #2 } } -\NewDocumentCommand{\eb_assign_tag_brackets:n} - {>{\SplitArgument{1}{,}}m} - {\eb_assign_tag_brackets_pos:nn #1} -\cs_new_protected:Npn \eb_assign_tag_brackets_pos:nn #1#2 - { - \tl_set:Nn \eb@tag@brackets@left {#1} - \tl_set:Nn \eb@tag@brackets@right {#2} - } -\cs_gset:Npn \tagform@ #1 - { - \maketag@@@ - { - \color{ctex@emph} - \eb@tag@brackets@left - \ignorespaces #1\unskip\@@italiccorr - \eb@tag@brackets@right - } - } \ctex_define:nn { thmset } { - thmbox .bool_set:N = \l__eb_thmbox_bool, - thmbox .default:n = true, - thmbox .initial:n = false, - brackets .code:n = \eb_assign_tag_brackets:n {#1}, - brackets .initial:n = { (,) }, - unknown .code:n = \eb_msg_unknown_option:n { thmset } + thmbox .bool_set:N = \l__eb_thmbox_bool, + thmbox .default:n = true, + thmbox .initial:n = false, + notebraces .tl_set:N = \l__eb_thm_notebraces_tl, + unknown .code:n = \eb_msg_unknown_option:n { thmset } } \ctex_set:nn { thmset } { @@ -1984,27 +1977,26 @@ headindent = 0em, headfont = \color{ctex@emph}\sffamily, postheadspace = 1em, + notebraces = {(}{)}, within = \bool_if:NT \l__eb_class_book_bool { chapter }, headformat = \NAME\space\NUMBER\NOTE } \eb_at_end_preamble:n { + \clist_put_right:Nx + \c__eb_thmtools_entry_clist { notebraces = \l__eb_thm_notebraces_tl } \exp_last_unbraced:NNV \declaretheoremstyle[\c__eb_thmtools_entry_clist]{easy-theorem} \eb_thm_name_set:nnn { exercise } { Exercise } { 练习 } \cs_undefine:N \proof - \clist_map_inline:nn - { - { lemma } { 引理 }, - { example } { 例 }, - { theorem } { 定理 }, - { corollary } { 推论 }, - { definition } { 定义 }, - { proposition } { 性质 }, - { remark } { 注 } [ numbered = no ], - { { proof } { 证明 } [ numbered = no,qed = \qedsymbol ] } - } - { \DeclareTheorem #1 } + \DeclareTheorem{lemma}{引理} + \DeclareTheorem{example}{例} + \DeclareTheorem{theorem}{定理} + \DeclareTheorem{corollary}{推论} + \DeclareTheorem{definition}{定义} + \DeclareTheorem{proposition}{性质} + \DeclareTheorem{remark}{注}[numbered = no] + \DeclareTheorem{proof}{证明}[numbered = no,qed = \qedsymbol] } \setchemformula @@ -2403,7 +2395,7 @@ } % %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/15}{1.28p} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/16}{1.28q} {Customization of tcolorbox for easybook} \tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip } diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf index f18fa673d2..e8462e7c52 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 7d57ff11e8..59ad7179cd 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -12,8 +12,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.28p, - date = 2021/08/15, + version = v1.28q, + date = 2021/08/16, authors = 瞿毅, info = 排版简体中文学位论文和书籍, email = quee123@foxmail.com, @@ -174,7 +174,7 @@ \opt{newline}\Default! 部分和章标题的样式为另起一行,符合一般英文书籍的习惯。 \keychoice{scheme}{chinese,plain}\Default{chinese} - 文档主题方案选项 \option{scheme} 扩展了 C\TeX 文档类中同名选项原有的作用范围,选项值 \code{plain} 可使各类标题变为英文形式。包括章节标题、图表标题和定理标题等。 + 文档主题方案选项 \option{scheme} 扩展了 C\TeX 文档类中同名选项原有的作用范围,选项值 \code{plain} 可使各类标题变为英文形式。包括章节标题、图表标题和定理名等。 \opt{enmode}\Default! 同时开启 \option{newline} 和 \keyis-{scheme}{plain} 选项以符合英文原生风格。 \keychoice{scheme}{a4paper,b5paper,c5paper,letterpaper,其它纸张}\Default{a4paper} @@ -367,6 +367,8 @@ 统一调整页眉、定理盒子以及代码框等线条的粗细。 \keybool{uppercase}\Default{true} 使用 \cs*{rightmark} 及 \cs*{leftmark} 标题标记命令获取标题内容时英文是否大写。 + \kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}} + 设置行间公式编号标签的括号,以英文逗号分隔,分别代表左右括号。 \kvsplit*{figurepath}{\meta{路径名1}\code{\}\{}\meta{路径名2}}\Default 设置插入图片的文件夹路径名,可以有多个路径名,每个路径包含在括号分隔,只有一个路径时需要包含在两层括号内。 \end{options} @@ -514,10 +516,10 @@ \subsection{定理样式} \label{subsec:theorem of style} -文档类已预置 8 个定理环境,环境名及对应的定理标题见小节 \ref{subsec:theorem},它们均使用预置的定理样式 \code{easy-theorem}。下面 \module*{thmset} 模块的选项仅对这个定理样式生效,由 \pkg*{thmtools} 宏包提供支持。 +文档类已预置 8 个定理环境,环境名及对应的定理名见小节 \ref{subsec:theorem},它们均使用预置的定理样式 \code{easy-theorem}。下面 \module*{thmset} 模块的选项仅对这个定理样式生效,由 \pkg*{thmtools} 宏包提供支持。 \begin{options} \keybool{thmbox}\Module{thmset}\Default{false} - 开启定理环境盒子的边框,需载入 \pkg*{tcolorbox} 宏包才生效。这个选项与 \pkg*{thmtools} 中并不一致,\pkg*{thmtools} 的同名选项包括 \code{L}、\code{M} 和 \code{S} 三个参数。 + 给定理环境使用彩色盒子。这个特殊选项在 \module*{thmset} 模块中使用 \pkg*{tcolorbox} 宏包来支持,\meta{盒子风格} 默认为 \code{tc-theorem}。新建定理命令的同名选项则包括 \code{L}、\code{M} 和 \code{S} 三个参数。 \keychoice{within}{chapter,section,其它环境,空置}\Default{chapter} 定理编号跟随的计数器,默认跟随章的编号,也可以跟随其它定理环境的编号,当计数器增加时定理编号会从零开始,空置时不跟随其它计数器编号。 \keyval-{headpunct}{代码}\Default @@ -536,10 +538,10 @@ 定理环境后的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 \keyval-{postheadspace}{刚性长度}\Default{1em} 定理标题后与定理第一段内容的间距。 - \keyval-{headformat}{标题格式}\Default{\cs*{NAME}\cs*{space}\cs*{NUMBER}\cs*{NOTE}} - 定理开头部分各组成元素的排列和格式,这个选项一般不需要使用,其中 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表标题、编号和题注。 - \kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}} - 设置行间公式编号标签的括号,以英文逗号分隔,分别为左右括号。 + \kvsplit*{notebraces}{\meta{左括号}\code{\}\{}\meta{右括号}}\Default{\Marg{(}\Marg{)}} + 设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。 + \keyval-{headformat}{标题排列}\Default{\cs*{NAME}\cs*{space}\cs*{NUMBER}\cs*{NOTE}} + 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中参数 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 \end{options} \subsubsection{新建定理样式} @@ -547,8 +549,8 @@ \command{declaretheorem}[\oarg{键值列表1}\marg{定理环境}\oarg{键值列表2}] 声明新的定理环境命令,\cs{newtheorem} 命令与它等效。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,用法与它们的同名命令一致。键值列表中常用的选项如下: \begin{options} - \keyval*-{name}{定理标题} - 定理标题的默认值是环境的名称,并且首字母大写(英文标题)。 + \keyval*-{name}{定理名} + 定理名的默认值是首字母大写的环境名称(英文标题)。 \keychoice*{numbered}{no,yes,unless unique}\Default{yes} 定理可以被编号、不被编号或者只有在文档中多次出现时才被编号。 \keyval*-{numberlike}{计数器}\Default @@ -560,8 +562,8 @@ 定理声明命令 \cs{DeclareTheorem} 更加便捷,同样定义一个新的定理环境,与 \cs{declaretheorem} 命令的键值列表支持相同的选项,但它们的区别有: \begin{itemize} \item 中英文模式下标题不同,英文标题为可选项,默认为首字母大写的 \meta{环境名}。 - \item 自动定义交叉引用的格式,引用标签前缀为定理标题名称。 - \item 定理盒子选项 \keyis-{thmbox}{true} 仍然生效,此时 \meta{盒子风格} 为定理盒子风格的名称,它需要由新建盒子风格命令 \cs{newtcbstyle} 定义,默认为 \code{tc-theorem}。 + \item 自动定义交叉引用的格式,引用标签前缀为定理名。 + \item 模块 \module*{thmset} 的定理盒子选项 \keyis-{thmbox}{true} 仍然生效,其中 \meta{盒子风格} 可以使用新建盒子风格命令 \cs{newtcbstyle} 定义。 \item 新建定理环境默认使用的 \meta{定理样式} 为 \code{easy-theorem},而不是 \pkg*{thmtools} 默认样式。 \end{itemize} \command{declaretheoremstyle}[\oarg{键值列表1}\marg{定理样式}\oarg{键值列表2}] @@ -853,7 +855,7 @@ \environment{example}\default{} \environment{remark}\default{} \environment{proof} - 这些是预置的定理环境,可使用选项 \module*{thmset/}\option{thmbox} 为它们添加盒子边框,其中注与证明环境不编号,证明末尾会自动添加证明结束符,声明新的定理环境或更改边框样式见小节 \ref{subsec:theorem of style}。环境名与之对应的定理标题名如下: + 这些是预置的定理环境,可使用选项 \module*{thmset/}\option{thmbox} 为它们添加盒子边框,其中注与证明环境不编号,证明末尾会自动添加证明结束符,声明新的定理环境或更改边框样式见小节 \ref{subsec:theorem of style}。环境名与之对应的定理名名如下: \begin{center} \begin{tabular}{*{8}{c}} \toprule @@ -1051,7 +1053,7 @@ \begin{ctexexam} \labelformat{eb@theorem}{定理 #1} \newcommand{\theoremhead}[1]{定理 \UseCounter[chapter]{theorem}{\hspace{1em}#1}} - \theoremhead{定理标题}\label{thm:theorem} + \theoremhead{定理内容}\label{thm:theorem} \end{ctexexam} \end{commands} @@ -1091,7 +1093,7 @@ \begin{options} \keyval-{width}{符号宽度}\Default{2em} 设置适当的符号宽度可以防止文字重叠和边界溢出等问题。 - \keyval-{delim}{引导符}\Default{——} + \keyval-{delim}{引导符}\Default{\Marg{——}} 全局的符号对照引导符,\cs{symb} 局部的 \meta{引导符} 和对齐方式是基于这个符号的宽度。 \keyval-{space}{符号间隙}\Default{0.25em} 符号间隙为引导符两侧与符号和说明文字间的距离。 -- cgit v1.2.3