summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-03-16 22:09:48 +0000
committerKarl Berry <karl@freefriends.org>2021-03-16 22:09:48 +0000
commit118c5da4a566b493ffe01f96d740ffdf2809e3c7 (patch)
treefc21da607f8eef7396866db8c2ac09f54291a946 /Master/texmf-dist/tex
parent33cf7de4055d4a5d3fddd87a3739a6c6d296b506 (diff)
easybook (16mar21)
git-svn-id: svn://tug.org/texlive/trunk@58438 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/easybook/easybook.cls254
1 files changed, 167 insertions, 87 deletions
diff --git a/Master/texmf-dist/tex/latex/easybook/easybook.cls b/Master/texmf-dist/tex/latex/easybook/easybook.cls
index cfb30bc1caa..97f532796f2 100644
--- a/Master/texmf-dist/tex/latex/easybook/easybook.cls
+++ b/Master/texmf-dist/tex/latex/easybook/easybook.cls
@@ -7,9 +7,9 @@
%% conditions of the CC-BY 4.0 License.
%% The latest version of this license is in
%% https://creativecommons.org/licenses/by/4.0/legalcode
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/03/14}{1.23q}{}
+\ProvidesExplClass{easybook}{2021/03/16}{1.23s}{}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -29,6 +29,7 @@
\bool_set_true:N \l__zhtitle_bool
\bool_set_true:N \l__lang_chinese_bool
\bool_set_true:N \l__page_twoside_bool
+\bool_set_true:N \l__class_book_bool
\clist_new:N \g__options_clist
\keys_define:nn {easybook}
@@ -68,7 +69,13 @@
\__put_ctexbook:n {oneside}
},
- unknown .code:n =
+ class .choice:,
+ class .value_required:n = true,
+ class/book .code:n = {},
+ class/article .code:n = {\bool_set_false:N \l__class_book_bool},
+ class .initial:n = book,
+
+ unknown .code:n =
{\clist_gput_right:No \g__options_clist{\CurrentOption}}
}
@@ -93,7 +100,6 @@
\__put_ctexbook:n {\g__options_clist}
\LoadClass[UTF8]{ctexbook}
-\bool_new:N \l__capdash_bool
\bool_new:N \l__multoc_bool
\bool_new:N \l__chap_withpart_bool
\bool_new:N \l__foot_perpart_bool
@@ -107,7 +113,7 @@
style .meta:nn = {ctex/style}{#1},
link .meta:nn = {ctex/link}{#1},
spread .meta:nn = {ctex/spread}{#1},
- elfont .meta:nn = {ctex/elfont}{#1},
+ elsefont .meta:nn = {ctex/elsefont}{#1},
bibset .meta:nn = {ctex/bibset}{#1},
thmset .meta:nn = {ctex/thmset}{#1},
geoset .meta:nn = {ctex/geoset}{#1},
@@ -119,12 +125,8 @@
}
\__ctex_define:nn {style}
{
- capdash .bool_set:N = \l__capdash_bool,
- capdash .default:n = true,
- capdash .initial:n = false,
multoc .bool_set:N = \l__multoc_bool,
multoc .default:n = true,
- multoc .initial:n = false,
withpart .bool_set:N = \l__chap_withpart_bool,
withpart .default:n = true,
withpart .initial:n = false,
@@ -141,7 +143,17 @@
rulewidth .initial:n = 0.75pt,
uppercase .bool_set:N = \l__uppercase_bool,
uppercase .default:n = true,
- uppercase .initial:n = true
+ uppercase .initial:n = true,
+ figure-sep .tl_set:N = \l__figure_separator_tl,
+ table-sep .tl_set:N = \l__table_separator_tl,
+ listing-sep .tl_set:N = \l__lstlisting_separator_tl,
+ equation-sep .tl_set:N = \l__equation_separator_tl,
+ number-sep .meta:n =
+ {
+ figure-sep = {#1},table-sep = {#1},
+ listing-sep = {#1},equation-sep = {#1}
+ },
+ number-sep .initial:n = {.}
}
\RequirePackage
@@ -531,91 +543,113 @@
}{}
}
}
+
+\tl_set:Nn \l__toc_type_tl{book}
+\keys_define:nn {listoc}
+ {
+ article .code:n = \tl_set:Nn \l__toc_type_tl{article},
+ book .code:n = {},
+ multoc .bool_set:N = \l__multoc_bool,
+ multoc .default:n = true,
+ multoc .initial:n = false
+ }
+
\cs_new_protected:Npn \__title_mark_intoc:n #1
{
- \chapter*{\phantomsection#1}
- \CTEX@addtocline{chapter}{#1}
+ \tl_if_eq:NnTF \l__toc_type_tl{book}
+ {
+ \chapter*{\phantomsection#1}
+ \CTEX@addtocline{chapter}{#1}
+ }{
+ \section*{\phantomsection#1}
+ \CTEX@addtocline{section}{#1}
+ }
\__markboth:n {#1}
}
\cs_new_protected:Npn \__title_mark:n #1
{
- \chapter*{\phantomsection#1}
+ \tl_if_eq:NnTF \l__toc_type_tl{book}
+ {\chapter*{\phantomsection#1}}
+ {\section*{\phantomsection#1}}
\__markboth:n {#1}
}
-\cs_gset:Npn \tableofcontents
+\cs_new_protected:Npn \__ifmultoc_pre_set:
+ {
+ \bool_if:NTF \l__class_book_bool
+ {
+ \if@twocolumn
+ \@restonecoltrue
+ \onecolumn
+ \bool_if:NT \l__multoc_bool{\twocolumn}
+ \else
+ \@restonecolfalse
+ \bool_if:NT \l__multoc_bool{\twocolumn}
+ \fi
+ }{\tl_set:Nn \l__toc_type_tl{article}}
+ }
+\cs_new_protected:Npn \__ifmultoc_after_set:
+ {
+ \bool_if:NTF \l__class_book_bool
+ {
+ \if@restonecol
+ \twocolumn
+ \else
+ \onecolumn
+ \fi
+ }{\tl_set:Nn \l__toc_type_tl{article}}
+ }
+\RenewDocumentCommand{\tableofcontents}{o}
{
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
+ \group_begin:
+ \IfValueT {#1}{\keys_set:nn {listoc}{#1}}
+ \__ifmultoc_pre_set:
\__title_mark:n {\contentsname}
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{toc}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
- }
-\cs_gset:Npn \listoffigures
- {
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
- \__title_mark_intoc:n {\listfigurename}
+ \__ifmultoc_after_set:
+ \group_end:
+ }
+\RenewDocumentCommand{\listoffigures}{so}
+ {
+ \group_begin:
+ \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+ \__ifmultoc_pre_set:
+ \IfBooleanTF {#1}
+ {\__title_mark:n {\listfigurename}}
+ {\__title_mark_intoc:n {\listfigurename}}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lof}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
- }
-\cs_gset:Npn \listoftables
- {
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
- \__title_mark_intoc:n {\listtablename}
+ \__ifmultoc_after_set:
+ \group_end:
+ }
+\RenewDocumentCommand{\listoftables}{so}
+ {
+ \group_begin:
+ \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+ \__ifmultoc_pre_set:
+ \IfBooleanTF {#1}
+ {\__title_mark:n {\listtablename}}
+ {\__title_mark_intoc:n {\listtablename}}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lot}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
- }
-\cs_new:Npn \listoflistings
- {
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \else
- \@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
- \fi
- \__title_mark_intoc:n {\lstlistlistingname}
+ \__ifmultoc_after_set:
+ \group_end:
+ }
+\NewDocumentCommand{\listoflistings}{so}
+ {
+ \group_begin:
+ \IfValueT {#2}{\keys_set:nn {listoc}{#2}}
+ \__ifmultoc_pre_set:
+ \IfBooleanTF {#1}
+ {\__title_mark:n {\lstlistlistingname}}
+ {\__title_mark_intoc:n {\lstlistlistingname}}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lol}
- \if@restonecol
- \twocolumn
- \else
- \onecolumn
- \fi
+ \__ifmultoc_after_set:
+ \group_end:
}
\makeindex[
@@ -627,9 +661,9 @@
]
\indexsetup
{
- level = \chapter*,
- toclevel = chapter,
- firstpagestyle = plain
+ level = \bool_if:NTF \l__class_book_bool{\chapter*}{\section*},
+ toclevel = \bool_if:NTF \l__class_book_bool{chapter}{section},
+ firstpagestyle = \bool_if:NTF \l__class_book_bool{plain}{fancy}
}
\__patch_cmd:Nnn \imki@indexheaders
{\@mkboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}}
@@ -640,7 +674,7 @@
\tl_new:N \l__font_listing_tl
\tl_new:N \l__font_footnote_tl
-\__ctex_define:nn {elfont}
+\__ctex_define:nn {elsefont}
{
table-cap .tl_set:N = \l__font_table_tl,
table-cap .initial:n = \sffamily\small,
@@ -682,13 +716,46 @@
\captionsetup[figure][bi-second]{name = Figure}
\captionsetup[table][bi-second]{name = Table}
\cs_new:Npn \__arabic:n #1{\int_to_arabic:v {c@#1}}
-\AtBeginDocument
+\cs_new_protected:Npn \__separator_set:n #1
{
- \bool_if:NT \l__capdash_bool
+ \cs_set:cpn {the#1}
{
- \cs_gset:Npn \thefigure{\thechapter\textendash\__arabic:n {figure}}
- \cs_gset:Npn \thetable{\thechapter\textendash\__arabic:n {table}}
- \cs_gset:Npn \thelstlisting{\thechapter\textendash\__arabic:n {lstlisting}}
+ \int_compare:nT {\c@chapter > 0}
+ {
+ \thechapter
+ \use:c {l__#1_separator_tl}
+ }
+ \__arabic:n {#1}
+ }
+ }
+\cs_gset:cpn {thesection}
+ {
+ \int_compare:nT {\c@chapter > 0}{\thechapter.}
+ \__arabic:n {section}
+ }
+\clist_map_inline:nn
+ {{figure},{table},{lstlisting},{equation}}
+ {\__separator_set:n {#1}}
+\cs_gset_protected:Npn \appendix
+ {
+ \int_compare:nNnTF {\c@chapter} > {0}
+ {
+ \setcounter{chapter}{0}
+ \setcounter{section}{0}
+ \gdef\thechapter{\@Alph\c@chapter}
+ \gdef\CTEX@prechapter{\CTEX@preappendix}
+ \gdef\CTEX@thechapter{\CTEX@appendix@number}
+ \gdef\CTEX@postchapter{\CTEX@postappendix}
+ \gdef\CTEX@chapter@numbering{\CTEX@appendix@numbering}
+ }{
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \gdef\thesection{\@Alph\c@section}
+ \gdef\CTEX@presection{\CTEX@preappendix}
+ \gdef\CTEX@thesection{\CTEX@appendix@number}
+ \gdef\CTEX@postsection{\CTEX@postappendix}
+ \gdef\CTEX@section@numbering{\CTEX@appendix@numbering}
+ \ctex_set:nn {appendix}{number = {\@Alph\c@section},name = {}}
}
}
\AtBeginEnvironment{tabularx}
@@ -1094,10 +1161,22 @@
}
\tl_if_empty:NF \l__bib_citestyle_tl
{\exp_args:NV \setcitestyle\l__bib_citestyle_tl}
- \cs_set:Npn \bibsection{\__title_mark_intoc:n \bibname}
\skip_set:Nn \bibsep{0ex}
- \NewDocumentCommand{\printbibliography}{o}
- {\exp_args:NV \bibliography\l__bib_file_tl}
+ \NewDocumentCommand{\printbibliography}{so}
+ {
+ \group_begin:
+ \IfValueT {##2}{\keys_set:nn {listoc}{##2}}
+ \__ifmultoc_pre_set:
+ \cs_set:Npn \bibsection
+ {
+ \IfBooleanTF {##1}
+ {\__title_mark:n {\bibname}}
+ {\__title_mark_intoc:n {\bibname}}
+ }
+ \exp_args:NV \bibliography\l__bib_file_tl
+ \__ifmultoc_after_set:
+ \group_end:
+ }
}
\cs_new_protected:Npn \__put_biblatex:n #1
{\PassOptionsToPackage{#1}{biblatex}}
@@ -1119,7 +1198,8 @@
\cs_new_protected:Npn \__biblatex_after_set:
{
\exp_args:NV \addbibresource\l__bib_file_tl
- \defbibheading{bibliography}[\bibname]{\__title_mark_intoc:n {##1}}
+ \cs_gset:Npn \blx@default@theheading{bibintoc}
+ \defbibheading{bibintoc}[\bibname]{\__title_mark_intoc:n {##1}}
\skip_set:Nn \bibitemsep{0ex}
}
\ctex_at_end_preamble:n