summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/easybook/easybook.cls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-01-13 22:14:08 +0000
committerKarl Berry <karl@freefriends.org>2021-01-13 22:14:08 +0000
commit6da255ad9866692554851503a48c7bd5f5183f13 (patch)
tree91ea8d2a55e29799b449236d753394a6260028c3 /Master/texmf-dist/tex/latex/easybook/easybook.cls
parentc5c9d84654116f6d7b6dc4aefbb9da3ee7a5dfa9 (diff)
easybook (13jan21)
git-svn-id: svn://tug.org/texlive/trunk@57413 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/easybook/easybook.cls')
-rw-r--r--Master/texmf-dist/tex/latex/easybook/easybook.cls380
1 files changed, 231 insertions, 149 deletions
diff --git a/Master/texmf-dist/tex/latex/easybook/easybook.cls b/Master/texmf-dist/tex/latex/easybook/easybook.cls
index 3102ff922fa..5806182a9e7 100644
--- a/Master/texmf-dist/tex/latex/easybook/easybook.cls
+++ b/Master/texmf-dist/tex/latex/easybook/easybook.cls
@@ -9,7 +9,7 @@
%% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/01/12}{v1.21b}{}
+\ProvidesExplClass{easybook}{2021/01/13}{v1.21c}{}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -28,7 +28,6 @@
\bool_set_false:N \l__myfont_bool
\bool_set_true:N \l__zhtitle_bool
\bool_set_true:N \l__lang_chinese_bool
-\bool_set_true:N \l__paper_afour_bool
\bool_set_true:N \l__page_twoside_bool
\clist_new:N \g__options_clist
@@ -64,10 +63,9 @@
paper .choice:,
paper .value_required:n = true,
- paper/a4 .code:n = {},
- paper/b5 .code:n =
- {\bool_set_false:N \l__paper_afour_bool},
- paper .initial:n = a4,
+ paper/unknown .code:n =
+ {\PassOptionsToPackage{#1}{geometry}},
+ paper .initial:n = a4paper,
oneside .value_forbidden:n = true,
twoside .value_forbidden:n = true,
@@ -95,13 +93,12 @@
\LoadClass[UTF8]{ctexbook}
\bool_set_true:N \l__backend_bibtex_bool
-\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
-\bool_new:N \l__foot_perpage_bool
-\clist_new:N \l__hyperref_clist
-\tl_new:N \g__config_tl
+\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
+\bool_new:N \l__foot_perpage_bool
+\tl_new:N \g__config_tl
\ctex_define:n
{
@@ -111,6 +108,9 @@
elfont .meta:nn = {ctex/elfont}{#1},
bibset .meta:nn = {ctex/bibset}{#1},
thmset .meta:nn = {ctex/thmset}{#1},
+ geoset .meta:nn = {ctex/geoset}{#1},
+ hdrset .meta:nn = {ctex/hdrset}{#1},
+ tocset .meta:nn = {ctex/tocset}{#1},
config .tl_set:N = \g__config_tl,
lstlistlistingname .tl_set:N = \lstlistlistingname,
lstlistingname .tl_set:N = \lstlistingname
@@ -218,7 +218,7 @@
{\__set_zhfont_kaishu:nn {#1}{\__option_zhfont:}}
\cs_new_protected:Npx \__set_zhfont_fangsong:n #1
{\__set_zhfont_fangsong:nn {#1}{\__option_zhfont:}}
-
+
\bool_if:NT \l__myfont_bool
{
\__setmainfont:nn {NotoSerif}
@@ -260,35 +260,30 @@
}
\cs_if_exist:NF \kaishu{\cs_gset_eq:NN \kaishu\normalfont}
-\bool_if:NTF \l__paper_afour_bool
+\clist_new:N \g__geometry_clist
+\__ctex_define:n {geoset}
{
- \geometry
+ unknown .code:n =
{
- a4paper,
- columnsep = 2\ccwd,
- vmargin = 2.54cm,
- hmargin = 3.17cm,
- headheight = 2.04cm,
- headsep = 0.5cm,
- footskip = 0.79cm,
- footnotesep = 0.5cm,
- marginparsep = 8pt,
- marginparwidth = 2.54cm
- }
- }{
- \geometry
- {
- b5paper,
- columnsep = 2\ccwd,
- margin = 2.54cm,
- headheight = 2.09cm,
- headsep = 0.45cm,
- footskip = 0.7cm,
- footnotesep = 0.45cm,
- marginparsep = 0.25cm,
- marginparwidth = 2.25cm
+ \clist_gput_right:Nx \g__geometry_clist
+ {
+ \l_keys_key_str
+ \tl_if_empty:NF \l_keys_value_tl{ = {#1}}
+ }
}
}
+\geometry
+ {
+ vmargin = 2.54cm,
+ hmargin = 3.17cm,
+ columnsep = 2\ccwd,
+ headheight = 2.04cm,
+ headsep = 0.5cm,
+ footskip = 0.79cm,
+ footnotesep = 0.5cm,
+ marginparsep = 8pt,
+ marginparwidth = 2.54cm
+ }
\cs_gset:Npn \cleardoublepage
{
@@ -305,127 +300,214 @@
\@mainmatterfalse
\pagenumbering{Roman}
}
-\pagestyle{fancy}
-\fancyhf{}
-\bool_if:NTF \l__page_twoside_bool
+
+\__ctex_define:n {hdrset}
+ {
+ elhead .tl_set:N = \l__fancyhead_EL_tl,
+ elhead .initial:n = \color{ctex@frame}\thepage,
+ echead .tl_set:N = \l__fancyhead_EC_tl,
+ echead .initial:n = \color{ctex@frame}\kaishu\leftmark,
+ erhead .tl_set:N = \l__fancyhead_ER_tl,
+ erhead .initial:n = {},
+ olhead .tl_set:N = \l__fancyhead_OL_tl,
+ olhead .initial:n = {},
+ ochead .tl_set:N = \l__fancyhead_OC_tl,
+ ochead .initial:n = \color{ctex@frame}\kaishu\rightmark,
+ orhead .tl_set:N = \l__fancyhead_OR_tl,
+ orhead .initial:n = \color{ctex@frame}\thepage,
+ elfoot .tl_set:N = \l__fancyfoot_EL_tl,
+ elfoot .initial:n = {},
+ ecfoot .tl_set:N = \l__fancyfoot_EC_tl,
+ ecfoot .initial:n = {},
+ erfoot .tl_set:N = \l__fancyfoot_ER_tl,
+ erfoot .initial:n = {},
+ olfoot .tl_set:N = \l__fancyfoot_OL_tl,
+ olfoot .initial:n = {},
+ ocfoot .tl_set:N = \l__fancyfoot_OC_tl,
+ ocfoot .initial:n = {},
+ orfoot .tl_set:N = \l__fancyfoot_OR_tl,
+ orfoot .initial:n = {}
+ }
+
+\ctex_at_end_preamble:n
{
- \cs_gset:Npn \chaptermark#1
+ \exp_args:NV \geometry\g__geometry_clist
+ \pagestyle{fancy}
+ \fancyhf{}
+ \bool_if:NTF \l__page_twoside_bool
{
- \markboth
+ \cs_gset:Npn \chaptermark#1
{
- \MakeUppercase
+ \markboth
{
- \ifnum\c@secnumdepth>\m@ne
- \if@mainmatter
- \ifodd\CTEX@chapter@numbering
- \CTEXthechapter\hspace{\ccwd}
- \fi
- \fi
- \fi#1
+ \MakeUppercase
+ {
+ \ifnum\c@secnumdepth>\m@ne
+ \if@mainmatter
+ \ifodd\CTEX@chapter@numbering
+ \CTEXthechapter\hspace{\ccwd}
+ \fi
+ \fi
+ \fi#1
+ }
+ }{
+ \MakeUppercase
+ {
+ \ifnum\c@secnumdepth>\m@ne
+ \if@mainmatter
+ \ifodd\CTEX@chapter@numbering
+ \CTEXthechapter\hspace{\ccwd}
+ \fi
+ \fi
+ \fi#1
+ }
}
- }{
- \MakeUppercase
+ }
+ \fancyhead[EL]{\l__fancyhead_EL_tl}
+ \fancyhead[EC]{\l__fancyhead_EC_tl}
+ \fancyhead[ER]{\l__fancyhead_ER_tl}
+ \fancyhead[OL]{\l__fancyhead_OL_tl}
+ \fancyhead[OC]{\l__fancyhead_OC_tl}
+ \fancyhead[OR]{\l__fancyhead_OR_tl}
+ \fancyfoot[EL]{\l__fancyfoot_EL_tl}
+ \fancyfoot[EC]{\l__fancyfoot_EC_tl}
+ \fancyfoot[ER]{\l__fancyfoot_ER_tl}
+ \fancyfoot[OL]{\l__fancyfoot_OL_tl}
+ \fancyfoot[OC]{\l__fancyfoot_OC_tl}
+ \fancyfoot[OR]{\l__fancyfoot_OR_tl}
+ \cs_gset_eq:NN \ps@plain\ps@empty
+ }{
+ \cs_gset:Npn \chaptermark#1
+ {
+ \markboth
{
- \ifnum\c@secnumdepth>\m@ne
- \if@mainmatter
- \ifodd\CTEX@chapter@numbering
- \CTEXthechapter\hspace{\ccwd}
- \fi
- \fi
- \fi#1
- }
+ \MakeUppercase
+ {
+ \ifnum\c@secnumdepth>\m@ne
+ \if@mainmatter
+ \ifodd\CTEX@chapter@numbering
+ \CTEXthechapter\hspace{\ccwd}
+ \fi
+ \fi
+ \fi#1
+ }
+ }{}
}
+ \fancyhead[L]{\l__fancyhead_OL_tl}
+ \fancyhead[C]{\l__fancyhead_OC_tl}
+ \fancyhead[R]{\l__fancyhead_OR_tl}
+ \fancyfoot[L]{\l__fancyfoot_OL_tl}
+ \fancyfoot[C]{\l__fancyfoot_OC_tl}
+ \fancyfoot[R]{\l__fancyfoot_OR_tl}
+ \cs_gset_eq:NN \ps@plain\ps@empty
}
- \fancyhead[EC]{\color{ctex@frame}\kaishu\leftmark}
- \fancyhead[OC]{\color{ctex@frame}\kaishu\rightmark}
- \fancyhead[EL,OR]{\color{ctex@frame}\thepage}
- \cs_gset_eq:NN \ps@plain\ps@empty
- }{
- \cs_gset:Npn \chaptermark#1
+ \cs_gset:Npn \sectionmark#1
{
- \markboth
+ \markright
{
- \MakeUppercase
- {
- \ifnum\c@secnumdepth>\m@ne
- \if@mainmatter
- \ifodd\CTEX@chapter@numbering
- \CTEXthechapter\hspace{\ccwd}
- \fi
- \fi
- \fi#1
- }
- }{}
+ \ifnum\c@secnumdepth>\z@
+ \ifodd\CTEX@section@numbering
+ \CTEXthesection\hspace{0.5\ccwd}
+ \fi
+ \fi#1
+ }
}
- \fancyhead[L]{\color{ctex@frame}\kaishu\leftmark}
- \fancyhead[R]{\color{ctex@frame}\kaishu\rightmark}
- \fancyfoot[C]{\color{ctex@frame}\thepage}
- \fancypagestyle{plain}
+ \cs_gset:Npn \headrule
{
- \fancyhf{}\cs_set:Npn \headrule{}
- \fancyfoot[C]{\color{ctex@frame}\thepage}
+ \color{ctex@frame}\vspace{2.5pt}
+ \hrule width\textwidth height 0.75pt
}
- }
-\cs_gset:Npn \sectionmark#1
- {
- \markright
+ \bool_if:NT \l__draft_bool
{
- \ifnum\c@secnumdepth>\z@
- \ifodd\CTEX@section@numbering
- \CTEXthesection\hspace{0.5\ccwd}
- \fi
- \fi#1
+ \bool_if:NTF \l__page_twoside_bool
+ {\fancyfoot[C]{\color{gray!60}\sffamily\today}}
+ {\fancyhead[L]{\color{gray!60}\sffamily\today}}
+ \geometry{showframe}
}
}
-\cs_gset:Npn \headrule
+
+\ctex_define:n
{
- \color{ctex@frame}\vspace{2.5pt}
- \hrule width\textwidth height 0.75pt
+ tocset/part .meta:nn = {ctex/tocset/part}{#1},
+ tocset/chapter .meta:nn = {ctex/tocset/chapter}{#1},
+ tocset/section .meta:nn = {ctex/tocset/section}{#1},
+ tocset/subsection .meta:nn = {ctex/tocset/subsection}{#1},
+ tocset/list .meta:nn = {ctex/tocset/list}{#1},
}
-\bool_if:NT \l__draft_bool
+\__ctex_define:n {tocset}
{
- \bool_if:NTF \l__page_twoside_bool
- {\fancyfoot[C]{\color{gray!60}\sffamily\today}}
- {\fancyhead[C]{\color{gray!60}\sffamily\today}}
- \geometry{showframe}
+ part/format .tl_set:N = \l__toc_part_format_tl,
+ part/format .initial:n =
+ {\addvspace{1pc}\sffamily\large},
+ part/indent .tl_set:N = \l__toc_part_indent_tl,
+ part/indent .initial:n = 0\ccwd,
+ part/rule .tl_set:N = \l__toc_part_rule_tl,
+ part/rule .initial:n = \tocrule{}[\bfseries],
+
+ chapter/format .tl_set:N = \l__toc_chap_format_tl,
+ chapter/format .initial:n =
+ {\addvspace{1pc}\sffamily\large},
+ chapter/indent .tl_set:N = \l__toc_chap_indent_tl,
+ chapter/indent .initial:n = 0\ccwd,
+ chapter/rule .tl_set:N = \l__toc_chap_rule_tl,
+ chapter/rule .initial:n = \tocrule{$\cdot$}[\bfseries],
+
+ section/format .tl_set:N = \l__toc_sec_format_tl,
+ section/format .initial:n = \addvspace{0.35pc},
+ section/indent .tl_set:N = \l__toc_sec_indent_tl,
+ section/indent .initial:n = 1.5\ccwd,
+ section/rule .tl_set:N = \l__toc_sec_rule_tl,
+ section/rule .initial:n = \tocrule{$\cdot$},
+
+ subsection/format .tl_set:N = \l__toc_subsec_format_tl,
+ subsection/forma .initial:n = \addvspace{0.35pc},
+ subsection/indent .tl_set:N = \l__toc_subsec_indent_tl,
+ subsection/indent .initial:n = 3.8\ccwd,
+ subsection/rule .tl_set:N = \l__toc_subsec_rule_tl,
+ subsection/rule .initial:n = \tocrule{$\cdot$},
+
+ lists/format .tl_set:N = \l__toc_lists_format_tl,
+ lists/format .initial:n = \addvspace{0.2pc},
+ lists/indent .tl_set:N = \l__toc_lists_indent_tl,
+ lists/indent .initial:n = 0\ccwd,
+ lists/rule .tl_set:N = \l__toc_lists_rule_tl,
+ lists/rule .initial:n = \tocrule{$\cdot$}
}
+\NewDocumentCommand{\tocrule}{O{0.7pc}O{1.2}mO{}}
+ {
+ \normalsize\normalfont
+ \titlerule*[#1]{\scalebox{#2}{#3}}#4\contentspage
+ }
\titlecontents{part}
- [0\ccwd]
- {\addvspace{1pc}\sffamily\large}
- {}{}
- {\normalsize\titlerule*{}\bf\contentspage}
+ [\l__toc_part_indent_tl]
+ {\l__toc_part_format_tl}{}{}
+ {\l__toc_part_rule_tl}
\titlecontents{chapter}
- [0\ccwd]
- {\addvspace{1pc}\sffamily\large}
- {}{}
- {\normalsize\titlerule*[0.65pc]{\scalebox{1.2}{$\cdot$}}\bf\contentspage}
+ [\l__toc_chap_indent_tl]
+ {\l__toc_chap_format_tl}{}{}
+ {\l__toc_chap_rule_tl}
\titlecontents{section}
- [1.5\ccwd]
- {\addvspace{0.35pc}}
- {}{}
- {\titlerule*[0.65pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+ [\l__toc_sec_indent_tl]
+ {\l__toc_sec_format_tl}{}{}
+ {\l__toc_sec_rule_tl}
\titlecontents{subsection}
- [3.8\ccwd]
- {\addvspace{0.35pc}}
- {}{}
- {\titlerule*[0.65pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+ [\l__toc_subsec_indent_tl]
+ {\l__toc_subsec_format_tl}{}{}
+ {\l__toc_subsec_rule_tl}
\titlecontents{figure}
- [0\ccwd]
- {\addvspace{0.2pc}}
- {}{}
- {\titlerule*[0.65pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+ [\l__toc_lists_indent_tl]
+ {\l__toc_lists_format_tl}{}{}
+ {\l__toc_lists_rule_tl}
\titlecontents{table}
- [0\ccwd]
- {\addvspace{0.2pc}}
- {}{}
- {\titlerule*[0.65pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+ [\l__toc_lists_indent_tl]
+ {\l__toc_lists_format_tl}{}{}
+ {\l__toc_lists_rule_tl}
\contentsuse{lstlisting}{lol}
\titlecontents{lstlisting}
- [0\ccwd]
- {\addvspace{0.2pc}}
- {}{}
- {\titlerule*[0.65pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+ [\l__toc_lists_indent_tl]
+ {\l__toc_lists_format_tl}{}{}
+ {\l__toc_lists_rule_tl}
\ctex_patch_cmd:Nnn \caption@@@addcontentsline
{\addcontentsline{#1}{#2}{\protect\numberline{#3}{#4}}}
{\addcontentsline{#1}{#2}{#3\hspace{\ccwd}#4}}
@@ -951,6 +1033,7 @@
backend/bibtex .code:n = {},
backend/biblatex .code:n =
{\bool_set_false:N \l__backend_bibtex_bool},
+
bibstyle .choice:,
bibstyle .value_required:n = true,
bibstyle/number .code:n =
@@ -966,6 +1049,7 @@
bibstyle/unknown .code:n =
{\tl_set_eq:NN \l__bib_mysty_tl\l_keys_value_tl},
bibstyle .initial:n = number,
+
citestyle .code:n =
{\tl_set:Nn \l__bib_citesty_tl{#1}},
bibfile .tl_set:N = \l__bib_file_tl,
@@ -976,14 +1060,14 @@
{
\tl_if_empty:NTF \l__bib_mysty_tl
{
- \tl_if_eq:VnTF \l__bib_style_tl{numerber}
+ \tl_if_eq:VnT \l__bib_style_tl{number}
{
\bibliographystyle{gbt7714-numerical}
- }{
- \tl_if_eq:VnT \l__bib_style_tl{authoryear}
- {\bibliographystyle{gbt7714-author-year}}
- \cs_set_eq:NN \cite\citep
+ \setcitestyle{square,comma,super}
}
+ \tl_if_eq:VnT \l__bib_style_tl{authoryear}
+ {\bibliographystyle{gbt7714-author-year}}
+ \cs_set_eq:NN \cite\citep
}{
\exp_args:NV \bibliographystyle\l__bib_mysty_tl
}
@@ -998,13 +1082,10 @@
{
\tl_if_empty:NTF \l__bib_mysty_tl
{
- \tl_if_eq:VnTF \l__bib_style_tl{number}
- {
- \__put_biblatex:n {style = gb7714-2015}
- }{
- \tl_if_eq:VnT \l__bib_style_tl{authoryear}
- {\__put_biblatex:n {style = gb7714-2015ay}}
- }
+ \tl_if_eq:VnT \l__bib_style_tl{number}
+ {\__put_biblatex:n {style = gb7714-2015}}
+ \tl_if_eq:VnT \l__bib_style_tl{authoryear}
+ {\__put_biblatex:n {style = gb7714-2015ay}}
}{
\__put_biblatex:n {style = \l__bib_mysty_tl}
}
@@ -1021,7 +1102,7 @@
{
\bool_if:NTF \l__backend_bibtex_bool
{
- \RequirePackage[sort&compress]{gbt7714}
+ \RequirePackage[sort&compress]{natbib}
\__bibtex_set:
}{
\__biblatex_pre_set:
@@ -1107,7 +1188,8 @@
\lstloadlanguages{C,C++,Java,Python,Matlab}
\AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}}
-\cs_new_protected:Npn \__clist_put_hyperref:n #1
+\clist_new:N \l__hyperref_clist
+\cs_new_protected:Npn \__put_hyperref:n #1
{\clist_put_right:Nn \l__hyperref_clist{#1}}
\cs_new_protected:Npn \__define_linkcolor:nnn #1#2#3
{\definecolorset{HTML}{ctex@}{}{link,#1;url,#2;cite,#3}}
@@ -1121,7 +1203,7 @@
{\clist_item:nn {#1}{2}}
{\clist_item:nn {#1}{3}}
{\clist_item:nn {#1}{4}}
- \__clist_put_hyperref:n
+ \__put_hyperref:n
{
linkcolor = ctex@link,linkbordercolor = ctex@link,
urlcolor = ctex@url,urlbordercolor = ctex@url,
@@ -1154,8 +1236,8 @@
{
hyperlink .choice:,
hyperlink/edge .code:n = {},
- hyperlink/various .code:n = {\__clist_put_hyperref:n {colorlinks}},
- hyperlink/none .code:n = {\__clist_put_hyperref:n {hidelinks}},
+ hyperlink/various .code:n = {\__put_hyperref:n {colorlinks}},
+ hyperlink/none .code:n = {\__put_hyperref:n {hidelinks}},
hyperlink .default:n = edge,
hyperlink .initial:n = edge,
@@ -1172,7 +1254,7 @@
linkcolor .initial:n = graphite,
linktopage .choice:,
- linktopage/true .code:n = {\__clist_put_hyperref:n {linktocpage}},
+ linktopage/true .code:n = {\__put_hyperref:n {linktocpage}},
linktopage/false .code:n = {},
linktopage .default:n = true,
linktopage .initial:n = false