diff options
author | Karl Berry <karl@freefriends.org> | 2024-04-24 20:19:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-04-24 20:19:11 +0000 |
commit | 41f716c942ca6db8d18267801f5fc12752993914 (patch) | |
tree | 574acf5d45bae488805d62545c48fecaa06954da /Master/texmf-dist/source/latex/easybook/easybook.dtx | |
parent | 26e2aa5630cce49e4cc226c6a17bf1727e576be5 (diff) |
easybook (24apr24)
git-svn-id: svn://tug.org/texlive/trunk@71062 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/easybook/easybook.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/easybook/easybook.dtx | 187 |
1 files changed, 113 insertions, 74 deletions
diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx index ed8abf47f56..08b7136aac3 100644 --- a/Master/texmf-dist/source/latex/easybook/easybook.dtx +++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2021/11/15] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2024/04/22}{2024aw} +\ProvidesExplClass{easybook}{2024/04/24}{2024az} {Easily typesetting Chinese theses or books} \bool_new:N \l__eb_compile_draft_bool @@ -297,7 +297,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2021/11/15] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2024/04/22}{2024aw} +\ProvidesExplPackage{easybase}{2024/04/24}{2024az} {Easily typesetting Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -310,6 +310,7 @@ \cs_generate_variant:Nn \ctex_define:nn { nx } \cs_generate_variant:Nn \eb_set_hyperref:n { x } \cs_generate_variant:Nn \eb_at_begin_environment:nn { on } +\cs_generate_variant:Nn \tl_if_novalue:nF { V } \cs_set_protected:Npn \ctex_define:nn #1 { \keys_define:nn { ctex/#1 } } @@ -373,7 +374,7 @@ {\IfFileExists{#2.sty}{\RequirePackage{#2}[#3]}{}} {\IfFileExists{#2.sty}{\RequirePackage[#1]{#2}[#3]}{}} } -\cs_new_protected:Npn \LoadPackage #1 +\cs_new_protected:Npn \ebloadpackage #1 { \int_compare:nTF { \clist_count:n {#1} <= 1 } { \RequirePackage } @@ -433,14 +434,20 @@ \seq_set_from_clist:Nn \l__eb_module_paths_seq { - style,subfont,spread, - bibset,thmset,tocset, - hdrset,refset,geoset,float + tools,font,spread, + bib,thmt,toc, + hdr,ref,geo,float } \seq_map_inline:Nn \l__eb_module_paths_seq { \ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} } - \cs_new_protected:cpn { eb#1 } ##1 { \ctex_set:nn {#1} {##1} } + \cs_new_protected:cpn { eb#1set } ##1 { \ctex_set:nn {#1} {##1} } + } +\RenewDocumentCommand{\ctexset}{om} + { + \IfValueTF{#1} + {\ctex_set:nn {#1} {#2}} + {\ctex_set:n {#2}} } \bool_until_do:nn { \int_compare_p:nNn { \seq_count:N \l__eb_module_paths_seq } < { 8 } } @@ -481,7 +488,7 @@ The~'\string\chapter'\ command~will~not~be~used. } -\LoadPackage +\ebloadpackage { [text]{spbmark}, [normalem]{ulem}, @@ -525,7 +532,7 @@ \eb@tag@brackets@right } } -\ctex_define:nn { style } +\ctex_define:nn { tools } { multoc .int_set:N = \l__eb_toc_columns_int, multoc .default:n = 2, @@ -554,20 +561,20 @@ marginparsep = 8pt, marginparwidth = 2.54cm } -\ctex_define:nn { geoset } +\cs_new:Npn \eb_unknown_kv_handle: + { + \str_use:N \l_keys_key_str + \tl_if_novalue:VF \l_keys_value_tl + { = {\exp_not:V \l_keys_value_tl} } + } +\ctex_define:nn { geo } { headruleskip .tl_set:N = \headruleskip, headruleskip .initial:n = 0pt, footruleskip .tl_set:N = \footruleskip, footruleskip .initial:n = 3.5pt, - unknown .code:n = - { - \exp_args:Nx \geometry - { - \str_use:N \l_keys_key_str - \tl_if_empty:NF \l_keys_value_tl { = \exp_not:n { {#1} } } - } - } + unknown .code:n = \exp_args:Nx \geometry { \eb_unknown_kv_handle: }, + unknown .default:V = \c_novalue_tl } \cs_new_protected:Npn \blankpagestyle #1 @@ -628,7 +635,7 @@ { none* } { \text_lowercase:n } } } -\ctex_define:nn { hdrset } +\ctex_define:nn { hdr } { chap-mark .cs_set:Np = \eb@mark@chapter@whole #1, chap-mark .initial:n = @@ -710,7 +717,7 @@ \providecommand{\kaishu}{\itshape} } -\ctex_define:nn { style } +\ctex_define:nn { tools } { fntnumwith .choices:nn = { part,page,chapter } @@ -866,7 +873,7 @@ \tl_new:N \l__eb_fnmarktext_format_tl \tl_new:N \l__eb_fncustom_format_tl \clist_new:N \l__eb_footnote_value_clist -\ctex_define:nn { hdrset } +\ctex_define:nn { hdr } { fnfirstindent .tl_set:N = \fnfirstindent, fnfirstindent .initial:n = 1em, @@ -907,7 +914,7 @@ fntext-num/unknown .code:n = \eb_fnmarktext_short_label_set:Nn \thefootnote {#1}, fnmarktext-num .meta:n = { fntext-num = #1,fnmark-num = #1 }, fnmarktext-num .initial:n = plain, - unknown .code:n = \eb_msg_deprecated_option:n { hdrset } + unknown .code:n = \eb_msg_deprecated_option:n { hdr } } \eb_at_end_preamble:n @@ -1033,7 +1040,7 @@ { \reset@font } { \setspread{\eb@spread@footnote} - \eb@subfont@footnote + \eb@font@footnote } } \cs_set_eq:NN \eb@@makefntext \@makefntext @@ -1150,7 +1157,7 @@ { \tl_clear:N \l__eb_fnmarktext_format_tl } } \bool_if:NF \l__eb_fnmarktext_format_match_bool { \spbset{spcmd = { }} } - \eb@subfont@footnote + \eb@font@footnote } \cs_new_protected:Npn \defupfntmark #1 { \cs_set:Npn \@makefnmark { \hbox:n {#1} } } @@ -1241,7 +1248,7 @@ \@addtoreset{#3}{#5} \IfBooleanF{#1} { - \exp_args:Nc \cs_gset:Npn { the#3 } + \cs_gset:cpn { the#3 } { \use:c { the#5 }#4#2{#3} } } } @@ -1255,20 +1262,21 @@ \cs_set:Npn \thebisection { \eb_section_counter_prefix:n { bi } } \cs_set:Npn \thebisubsection { \thebisection.\@arabic\c@bisubsection } \cs_set:Npn \thesection { \eb_section_counter_prefix:n { } } -\tl_new:N \eb@before@addbitoc@hook -\NewDocumentCommand{\BeforeAddBitoc}{sm} +\tl_new:N \eb@before@bitocline@hook +\NewDocumentCommand{\BeforeAddtoBitoc}{sm} { \IfBooleanTF{#1} - {\tl_gset:Nn \eb@before@addbitoc@hook {#2}} - {\tl_gput_right:Nn \eb@before@addbitoc@hook {#2}} + {\tl_gset:Nn \eb@before@bitocline@hook {#2}} + {\tl_gput_right:Nn \eb@before@bitocline@hook {#2}} } +\cs_set_eq:NN \BeforeAddBitoc \BeforeAddtoBitoc \cs_new_protected:Npn \CTEX@addbitocline #1#2 { \group_begin: \def\CTEX@prechapter{\CTEX@prebichapter} \def\CTEX@thechapter{\CTEX@bichapter@number} \def\CTEX@postchapter{\CTEX@postbichapter} - \eb@before@addbitoc@hook + \eb@before@bitocline@hook \tl_if_eq:NnTF \g__eb_bilist_permute_value_tl { mix } { \addcontentsline{toc}{#1} } { \addcontentsline{tec}{#1} } @@ -1332,7 +1340,7 @@ } } -\ctex_define:nn { style } +\ctex_define:nn { tools } { hyphen-figure .tl_set:N = \l__eb_hyphen_figure_tl, hyphen-table .tl_set:N = \l__eb_hyphen_table_tl, @@ -1344,7 +1352,7 @@ hyphen-listing = #1,hyphen-equation = #1 }, hyphen-every .initial:n = ., - unknown .code:n = \eb_msg_deprecated_option:n { style } + unknown .code:n = \eb_msg_deprecated_option:n { tools } } \eb_seq_map_inline:nn { figure,table,lstlisting,equation } @@ -1559,6 +1567,7 @@ #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl, #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1}, #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1}, + #1/tocformat* .tl_set:c = l__eb_toc_#1_entry_nolabel_tl, #1/tocindent .tl_set:c = l__eb_toc_#1_indent_tl, #1/toclabel .cs_set:cp = { eb_toc_entry_#1:nnn } ##1##2##3, #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl, @@ -1584,7 +1593,8 @@ {#2} [\tl_use:c { l__eb_toc_#2_indent_tl }] {\tl_use:c { l__eb_toc_#2_format_tl }} - {\use:c { eb_toc_entry_#2:nnn } { \thecontentslabel } {#2} {#1}}{} + {\use:c { eb_toc_entry_#2:nnn } { \thecontentslabel } {#2} {#1}} + {\tl_use:c { l__eb_toc_#2_entry_nolabel_tl }} {\tl_use:c { l__eb_toc_#2_rule_tl }} [\tl_use:c { l__eb_toc_#2_below_tl }] } @@ -1611,7 +1621,7 @@ { \IfBooleanT{#1} { - \ctex_set:nn { tocset } { between = { },bibetween = { } } + \ctex_set:nn { toc } { between = { },bibetween = { } } \tl_set:Nn \l__eb_toc_tmpa_tl {*} \tl_set:Nn \l__eb_toc_tmpb_tl { @@ -1644,7 +1654,7 @@ \eb_seq_map_inline:nn { tocafter,tocindent,tocrule } { - \ctex_define:nn { tocset } + \ctex_define:nn { toc } { #1-every .code:n = { @@ -1657,7 +1667,7 @@ } } } -\ctex_define:nn { tocset } +\ctex_define:nn { toc } { lolskip .skip_set:N = \eb@toc@lol@skip, lolskip .initial:n = 10pt, @@ -1673,7 +1683,7 @@ hang .initial:n = true, pagenumwd .code:n = \contentsmargin{#1}, pagenumwd .initial:n = 1.55em, - unknown .code:n = \eb_msg_deprecated_option:n { tocset } + unknown .code:n = \eb_msg_deprecated_option:n { toc } } \NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}} { @@ -1769,7 +1779,7 @@ \ctex_assign_heading_name:nn { biappendix } {#1} \bool_if:NTF \l__eb_class_mode_book_bool { - \eb_preto_cmd:nn { eb@before@addbitoc@hook } + \eb_preto_cmd:nn { eb@before@bitocline@hook } { \def\CTEX@prechapter{\CTEX@prebiappendix} \def\CTEX@thechapter{#2} @@ -1795,40 +1805,40 @@ } } -\ctex_define:nn { subfont } +\ctex_define:nn { font } { - caption-table .tl_set:N = \l__eb_subfont_caption_table_tl, - caption-figure .tl_set:N = \l__eb_subfont_caption_figure_tl, - caption-listing .tl_set:N = \l__eb_subfont_caption_listing_tl, + caption-table .tl_set:N = \l__eb_font_caption_table_tl, + caption-figure .tl_set:N = \l__eb_font_caption_figure_tl, + caption-listing .tl_set:N = \l__eb_font_caption_listing_tl, caption-every .meta:n = { caption-table = #1,caption-figure = #1, caption-listing = #1 }, caption-every .initial:n = \sffamily\small, - footnote .tl_set:N = \eb@subfont@footnote, + footnote .tl_set:N = \eb@font@footnote, marginpar .tl_set:N = \marginfont, marginpar .initial:n = \footnotesize, - unknown .code:n = \eb_msg_deprecated_option:n { subfont } + unknown .code:n = \eb_msg_deprecated_option:n { font } } -\cs_new_protected:Npn \addtosubfont #1#2 +\cs_new_protected:Npn \ebaddtofont #1#2 { \str_case:nnF {#1} { { table } - { \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2} } + { \tl_put_right:Nn \l__eb_font_caption_table_tl {#2} } { figure } - { \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2} } + { \tl_put_right:Nn \l__eb_font_caption_figure_tl {#2} } { listing } - { \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2} } + { \tl_put_right:Nn \l__eb_font_caption_listing_tl {#2} } { every } { - \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2} - \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2} - \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2} + \tl_put_right:Nn \l__eb_font_caption_table_tl {#2} + \tl_put_right:Nn \l__eb_font_caption_figure_tl {#2} + \tl_put_right:Nn \l__eb_font_caption_listing_tl {#2} } } - { \tl_put_right:cn { l__eb_subfont_#1_tl } {#2} } + { \tl_put_right:cn { l__eb_font_#1_tl } {#2} } } \ctex_define:nn { spread } { @@ -1890,7 +1900,7 @@ \DeclareCaptionFont{eb@#1@font} { \setspread{\fp_use:c { l__eb_spread_caption_#1_fp }} - \tl_use:c { l__eb_subfont_caption_#1_tl } + \tl_use:c { l__eb_font_caption_#1_tl } } } \captionsetup @@ -1973,7 +1983,7 @@ \SetEnumitemValue{ref}{enumii}{\arabic{enumi}.\alph*} \SetEnumitemValue{ref}{enumiii}{\arabic{enumi}.\alph{enumii}.\roman*} \setlist{nosep,labelsep = 0.5em,listparindent = \parindent} -\setlist[1]{leftmargin = *,align = left,mode = unboxed} +\setlist[1]{leftmargin = *,align = left} \setlist[itemize,1]{label = bullet} \setlist[itemize,2]{label = endash} \setlist[itemize,3]{label = asterisk} @@ -2068,8 +2078,12 @@ \cs_set_eq:NN \eb@declaretheoremsyle@save \declaretheoremstyle \RenewDocumentCommand{\declaretheoremstyle}{O{}mO{}} {\eb@declaretheoremsyle@save[#1,#3]{#2}} - \ctex_define:nn { thmset } - { unknown .code:n = \eb_msg_deprecated_option:n { thmset } } + \ctex_define:nn { thmt } + { + loeskip .skip_set:N = \eb@thmt@loe@skip, + loeskip .initial:n = 10pt, + unknown .code:n = \eb_msg_deprecated_option:n { thmt } + } \declaretheoremstyle{default}[ spaceabove = 0ex plus .1ex, spacebelow = 0ex plus .1ex, @@ -2082,6 +2096,35 @@ ] \theoremstyle{default} \cs_undefine:N \proof + \DeclareFloatList{theorem}{loe} + \eb_preto_cmd:nn { listoftheorems } + { + \group_begin: + \def\contentsline #1 {\use:c { thmt@contentsline@#1 }{#1}} + } + \eb_appto_cmd:nn { listoftheorems } { \group_end: } + \eb_preto_cmd:nn { @chapter } + { + \skip_if_eq:nnF { \eb@thmt@loe@skip } { \c_zero_skip } + { \addtocontents{loe}{\protect\addvspace{\skip_use:N \eb@thmt@loe@skip}} } + } + \def\thmtlo@chaptervspacehack{} + \def\thmtname{\thmt@thmname} + \def\thmtenvname{\thmt@envname} + \def\thmtnote{\thmt@shortoptarg} + \def\thmtformatoptarg #1 {#1} + \def\thmtifname #1#2 {\ifbool{thmt@isstarred}{#2}{#1}} + \def\thmtifnote #1#2 + { + \tl_if_empty:NTF \thmt@shortoptarg + {#2} + { \protect\thmtformatoptarg{#1} } + } + \NewDocumentCommand{\settheoremtocline}{smm} + { + \IfBooleanT{#1}{\def\thmt@contentslineIgnore{\thmt@contentsline}} + \cs_set:cpn { ll@#2 } {#3} + } } \setchemformula @@ -2132,7 +2175,7 @@ { \file_if_exist_input:n { eb-tcolorbox.cfg } } \bool_set_true:N \l__eb_backend_bibtex_bool -\ctex_define:nn { bibset } +\ctex_define:nn { bib } { backend .choice:, backend .value_required:n = true, @@ -2144,7 +2187,7 @@ datafile .clist_set:N = \l__eb_bib_datafile_clist, bititle .tl_set:N = \eb@bib@bitoc@title, bititle .initial:n = Bibliography, - unknown .code:n = \eb_msg_deprecated_option:n { bibset } + unknown .code:n = \eb_msg_deprecated_option:n { bib } } \cs_new_protected:Npn \eb_bibtex_natbib_set: @@ -2273,9 +2316,9 @@ \cs_new_protected:Npn \eb_define_theme_color:n #1 { \definecolorset{HTML}{ctex@}{}{frame,#1;emph,#1;verb,#1} } \cs_new_protected:Npn \DeclareLinkColor #1 - { \ctex_define:nx { refset } { \eb_link_color_set:n {#1} } } + { \ctex_define:nx { ref } { \eb_link_color_set:n {#1} } } \cs_new_protected:Npn \DeclareThemeColor #1 - { \ctex_define:nx { style } { \eb_theme_color_set:n {#1} } } + { \ctex_define:nx { tools } { \eb_theme_color_set:n {#1} } } \cs_new_protected:Npn \eb_color_assign_cmd_set:nn #1#2 { \cs_new:cpn { eb_#2_color_set:n } ##1 @@ -2295,7 +2338,7 @@ { color } { theme } } { \eb_color_assign_cmd_set:nn #1 } -\ctex_define:nx { refset } +\ctex_define:nx { ref } { linkcolor .choice:, linkcolor .value_required:n = true, @@ -2310,7 +2353,7 @@ linkcolor .initial:n = navyblue, linkcolor-every .code:n = \eb_define_link_color:n { \exp_not:n {#1} } } -\ctex_define:nx { style } +\ctex_define:nx { tools } { color .choice:, color .value_required:n = true, @@ -2340,7 +2383,7 @@ { \eb_set_hyperref:n { colorlinks } } \cs_new_protected:Npn \eb_link_toc_put:n #1 { \eb_set_hyperref:n { linktoc = #1 } } -\ctex_define:nn { refset } +\ctex_define:nn { ref } { linktype .choice:, linktype .value_required:n = true, @@ -2353,14 +2396,8 @@ linktoc .value_required:n = true, linktoc/unknown .code:n = \eb_link_toc_put:n {#1}, linktoc .initial:n = all, - unknown .code:n = - { - \eb_set_hyperref:x - { - \str_use:N \l_keys_key_str - \tl_if_empty:NF \l_keys_value_tl { = \exp_not:n { {#1} } } - } - } + unknown .code:n = \eb_set_hyperref:x { \eb_unknown_kv_handle: }, + unknown .default:V = \c_novalue_tl } \cs_new_protected:Npn \eb_allow_url_break: @@ -2418,7 +2455,8 @@ \ctex_define:n { lstlistlistingname .tl_set:N = \listlstlistingname, - lstlistingname .tl_set:N = \lstlistingname + lstlistingname .tl_set:N = \lstlistingname, + listtheoremname .tl_set:N = \listtheoremname } \tl_if_eq:NnTF \l__ctex_scheme_tl { chinese } { @@ -2428,7 +2466,8 @@ listfigurename = 插图清单, listtablename = 附表清单, lstlistlistingname = 代码清单, - lstlistingname = 代码 + lstlistingname = 代码, + listtheoremname = 定理清单 } } { @@ -2440,7 +2479,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2024/04/22}{2024aw} +\ProvidesExplFile{eb-tcolorbox.cfg}{2024/04/24}{2024az} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \addtotcbstyle #1#2 |