summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easybook
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-08-17 03:00:45 +0000
committerNorbert Preining <norbert@preining.info>2021-08-17 03:00:45 +0000
commita365f4320519cd6ebeb512575849a4582aae4f45 (patch)
tree54e0db40d13fe14db56914dc1f554f23a41694e3 /macros/latex/contrib/easybook
parentd6ac6a6734f56dafac6d47e4a2d409d287fb668c (diff)
CTAN sync 202108170300
Diffstat (limited to 'macros/latex/contrib/easybook')
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx144
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin586691 -> 587175 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex34
3 files changed, 86 insertions, 92 deletions
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 @@
}
%</package>
%<*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
--- 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 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}
符号间隙为引导符两侧与符号和说明文字间的距离。