From ca17f652236af2ce3a16cb0125fb6e190d59cc17 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Thu, 18 Mar 2021 03:01:43 +0000
Subject: CTAN sync 202103180301

---
 macros/latex/contrib/easybook/easybook.cls | 1512 ----------------------------
 1 file changed, 1512 deletions(-)
 delete mode 100644 macros/latex/contrib/easybook/easybook.cls

(limited to 'macros/latex/contrib/easybook/easybook.cls')

diff --git a/macros/latex/contrib/easybook/easybook.cls b/macros/latex/contrib/easybook/easybook.cls
deleted file mode 100644
index 97f532796f..0000000000
--- a/macros/latex/contrib/easybook/easybook.cls
+++ /dev/null
@@ -1,1512 +0,0 @@
-%%
-%% This is file `easybook.cls'.
-%%
-%% Copyright (C) 2021 by Qu Yi <texeasybook@foxmail.com>
-%%
-%% This work may be distributed and/or modified under the
-%% 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}[2020/10/01]
-\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/03/16}{1.23s}{}
-
-\cs_generate_variant:Nn \keys_define:nn {nx}
-\cs_generate_variant:Nn \int_to_arabic:n {v}
-\cs_generate_variant:Nn \dim_add:Nn {NV}
-\cs_new_protected:Npn \__ctex_define:nn #1
-  {\keys_define:nn {ctex/#1}}
-\cs_new_protected:Npn \__put_ctexbook:n #1
-  {\PassOptionsToClass{#1}{ctexbook}}
-\cs_new_protected:Npn \__patch_cmd:Nnn #1#2#3
-  {\ctex_patch_cmd_once:NnnnTF #1{}{#2}{#3}{}{\ctex_patch_failure:N #1}}
-\cs_new_protected:Npn \__appto_cmd:Nn #1#2
-  {\ctex_appto_cmd:NnnTF #1{}{#2}{}{\ctex_patch_failure:N #1}}
-
-\bool_set_false:N \l__draft_bool
-\bool_set_false:N \l__newline_bool
-\bool_set_false:N \l__font_noto_bool
-\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}
-  {
-    draft         .code:n = {\bool_set_true:N  \l__draft_bool},
-    newline       .code:n = {\bool_set_true:N  \l__newline_bool},
-    entitle       .code:n = {\bool_set_false:N \l__zhtitle_bool},
-    english       .code:n = {\bool_set_false:N \l__lang_chinese_bool},
-    enstyle       .meta:n = {newline,entitle,english},
-
-    font          .choice:,
-    font          .value_required:n = true,
-    font/overleaf .code:n = {},
-    font/adobe    .code:n = {\__put_ctexbook:n {fontset = #1}},
-    font/founder  .code:n = {\__put_ctexbook:n {fontset = #1}},
-    font/mac      .code:n = {\__put_ctexbook:n {fontset = #1}},
-    font/windows  .code:n = {\__put_ctexbook:n {fontset = #1}},
-    font/linux    .code:n = {\__put_ctexbook:n {fontset = ubuntu}},
-    font/none     .code:n = {\__put_ctexbook:n {fontset = #1}},
-    font/noto     .code:n =
-      {
-        \bool_set_true:N \l__font_noto_bool
-        \__put_ctexbook:n {fontset = none}
-      },
-    font          .initial:n = overleaf,
-
-    paper         .choice:,
-    paper         .value_required:n = true,
-    paper/unknown .code:n = {\PassOptionsToPackage{#1}{geometry}},
-    paper         .initial:n = a4paper,
-
-    oneside   .value_forbidden:n = true,
-    twoside   .value_forbidden:n = true,
-    oneside   .code:n =
-      {
-        \bool_set_false:N \l__page_twoside_bool
-        \__put_ctexbook:n {oneside}
-      },
-
-    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}}
-  }
-
-\ProcessKeysOptions{easybook}
-
-\bool_if:NTF \l__lang_chinese_bool
-  {\__put_ctexbook:n {scheme = chinese}}
-  {\__put_ctexbook:n {scheme = plain}}
-
-\clist_map_inline:nn
-  {
-    {svgnames}{xcolor},
-    {hang,stable}{footmisc},
-    {normalem}{ulem},
-    {protrusion = false}{microtype},
-    {shortlabels,inline}{enumitem},
-    {most}{tcolorbox},
-    {xindy}{imakeidx},
-    {CJKmath = true}{xeCJK},
-    {no-math}{fontspec}
-  }{\PassOptionsToPackage#1}
-\__put_ctexbook:n {\g__options_clist}
-\LoadClass[UTF8]{ctexbook}
-
-\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
-\bool_new:N \l__notomath_bool
-\bool_new:N \l__uppercase_bool
-\tl_new:N   \g__config_tl
-
-\ctex_define:n
-  {
-    style               .meta:nn = {ctex/style}{#1},
-    link                .meta:nn = {ctex/link}{#1},
-    spread              .meta:nn = {ctex/spread}{#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},
-    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
-  }
-\__ctex_define:nn {style}
-  {
-    multoc    .bool_set:N = \l__multoc_bool,
-    multoc    .default:n = true,
-    withpart  .bool_set:N = \l__chap_withpart_bool,
-    withpart  .default:n = true,
-    withpart  .initial:n = false,
-    perpart   .bool_set:N = \l__foot_perpart_bool,
-    perpart   .default:n = true,
-    perpart   .initial:n = false,
-    perpage   .bool_set:N = \l__foot_perpage_bool,
-    perpage   .default:n = true,
-    perpage   .initial:n = false,
-    notomath  .bool_set:N = \l__notomath_bool,
-    notomath  .default:n = true,
-    notomath  .initial:n = true,
-    rulewidth .dim_set:N = \l__rule_width_dim,
-    rulewidth .initial:n = 0.75pt,
-    uppercase .bool_set:N = \l__uppercase_bool,
-    uppercase .default: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
-  {
-    xcolor,
-    pdfpages,
-    footmisc,setspace,
-    amsmath,amsthm,thmtools,cases,
-    chemformula,siunitx,ulem,
-    geometry,marginnote,nccfoots,
-    rotfloat,graphicx,
-    fancyhdr,titletoc,
-    caption,bicaption,subcaption,
-    microtype,zhlipsum,pifont,
-    tabularx,multirow,makecell,booktabs,
-    paralist,tasks,enumitem,
-    tcolorbox,
-    imakeidx
-  }
-\RequirePackage[
-  lang = {chinese-utf8},
-  type = {CC},
-  modifier = {by},
-  version = {4.0}
-  ]{doclicense}
-\ctex_at_end_preamble:n
-  {
-    \bool_if:NT \l__notomath_bool
-      {
-        \RequirePackage[noto,upint]{newtxmath}
-        \RequirePackage{bm}
-      }
-    \tl_if_empty:NF \g__config_tl{\file_input:n {\g__config_tl}}
-  }
-
-\sys_if_engine_xetex:TF
-  {
-    \cs_new_eq:NN \__set_family:nnn  \xeCJK_set_family:nnn
-    \cs_new_eq:NN \__switch_family:n \xeCJK_switch_family:n
-  }{
-    \cs_new_eq:NN \__set_family:nnn  \ctex_ltj_set_family:nnn
-    \cs_new_eq:NN \__switch_family:n \ctex_ltj_switch_family:n
-  }
-
-\cs_new_protected:Npn \__setmainfont:nn #1#2
-  {\__fontspec_main_setmainfont:nn {#2}{#1}}
-\cs_new_protected:Npn \__setsansfont:nn #1#2
-  {\__fontspec_main_setsansfont:nn {#2}{#1}}
-\cs_new_protected:Npn \__setmonofont:nn #1#2
-  {\__fontspec_main_setmonofont:nn {#2}{#1}}
-\cs_new_protected:Npn \__setCJKmainfont:nn #1#2
-  {\__set_family:nnn {\CJKrmdefault}{#2}{#1}}
-\cs_new_protected:Npn \__setCJKsansfont:nn #1#2
-  {\__set_family:nnn {\CJKsfdefault}{#2}{#1}}
-\cs_new_protected:Npn \__setCJKmonofont:nn #1#2
-  {\__set_family:nnn {\CJKttdefault}{#2}{#1}}
-\cs_new_protected:Npn \__set_zhfont_songti:nn #1#2
-  {\__set_family:nnn {songti}{#2}{#1}}
-\cs_new_protected:Npn \__set_zhfont_heiti:nn #1#2
-  {\__set_family:nnn {heiti}{#2}{#1}}
-\cs_new_protected:Npn \__set_zhfont_kaishu:nn #1#2
-  {\__set_family:nnn {kaishu}{#2}{#1}}
-\cs_new_protected:Npn \__set_zhfont_fangsong:nn #1#2
-  {\__set_family:nnn {fangsong}{#2}{#1}}
-
-\tl_const:Nn \__option_zhfont_tl
-  {UprightFont = *,AutoFakeBold = 1.5,ItalicFont = *}
-\cs_new_protected:Npx \__setCJKmainfont:n #1
-  {\__setCJKmainfont:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__setCJKsansfont:n #1
-  {\__setCJKsansfont:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__setCJKmonofont:n #1
-  {\__setCJKmonofont:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_songti:n #1
-  {\__set_zhfont_songti:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_heiti:n #1
-  {\__set_zhfont_heiti:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_kaishu:n #1
-  {\__set_zhfont_kaishu:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_fangsong:n #1
-  {\__set_zhfont_fangsong:nn {#1}{\__option_zhfont_tl}}
-
-\bool_if:NT \l__font_noto_bool
-  {
-    \__setmainfont:nn {NotoSerif}
-      {
-        Extension = .ttf,
-        UprightFont = *-Regular,
-        BoldFont = *-Bold,
-        ItalicFont = *-Italic
-      }
-    \__setsansfont:nn {NotoSans}
-      {
-        Extension = .ttf,
-        UprightFont = *-Regular,
-        BoldFont = *-Bold,
-        ItalicFont = *-Italic
-      }
-    \__setmonofont:nn {NotoSansMono}
-      {
-        Extension = .ttf,
-        UprightFont = *-Regular,
-        BoldFont = *-Bold
-      }
-    \__setCJKmainfont:nn {FZShuSong-Z01S}
-      {
-        UprightFont = *,
-        BoldFont = FZHei-B01S,
-        ItalicFont = FZKai-Z03S
-      }
-    \__setCJKsansfont:n {FZHei-B01S}
-    \__setCJKmonofont:n {FZFangSong-Z02S}
-    \__set_zhfont_songti:n {FZShuSong-Z01S}
-    \__set_zhfont_heiti:n {FZHei-B01S}
-    \__set_zhfont_kaishu:n {FZKai-Z03S}
-    \__set_zhfont_fangsong:n {FZFangSong-Z02S}
-    \cs_new_protected:Npn \songti{\__switch_family:n {songti}}
-    \cs_new_protected:Npn \heiti{\__switch_family:n {heiti}}
-    \cs_new_protected:Npn \kaishu{\__switch_family:n {kaishu}}
-    \cs_new_protected:Npn \fangsong{\__switch_family:n {fangsong}}
-  }
-\cs_if_exist:NF \kaishu{\cs_gset_eq:NN \kaishu\normalfont}
-
-\includepdfset{fitpaper = true}
-\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
-  }
-\clist_new:N \g__geometry_clist
-\__ctex_define:nn {geoset}
-  {
-    unknown .code:n =
-      {
-        \clist_gput_right:Nx \g__geometry_clist
-          {
-            \l_keys_key_str
-            \tl_if_empty:NF \l_keys_value_tl{ = {#1}}
-          }
-      }
-  }
-
-\cs_gset:Npn \cleardoublepage
-  {
-    \clearpage
-    \bool_if:NT \l__page_twoside_bool
-      {
-        \int_if_odd:nF \c@page
-          {\hbox:n {}\thispagestyle{empty}\clearpage}
-      }
-  }
-\RenewDocumentCommand{\frontmatter}{sO{Roman}}
-  {
-    \IfBooleanTF{#1}{\clearpage}{\cleardoublepage}
-    \@mainmatterfalse
-    \pagenumbering{#2}
-  }
-\RenewDocumentCommand{\mainmatter}{s}
-  {
-    \IfBooleanTF{#1}{\clearpage}{\cleardoublepage}
-    \@mainmattertrue
-    \pagenumbering{arabic}
-  }
-\cs_gset_eq:NN \easyhead\fancyhead
-\cs_gset_eq:NN \easyfoot\fancyfoot
-\cs_gset_eq:NN \easypagestyle\fancypagestyle
-\__ctex_define:nn {hdrset}
-  {
-    head-foot .tl_set:N = \l__fancyhf_content_tl,
-    head-foot .initial:n =
-      {
-        \easyhead[EC]{\color{ctex@frame}\kaishu\leftmark}
-        \easyhead[OC]{\color{ctex@frame}\kaishu\rightmark}
-        \easyhead[EL,OR]{\color{ctex@frame}\thepage}
-      },
-    chap-mark .tl_set:N = \l__fancyhf_chap_mark_tl,
-    chap-mark .initial:n =
-      {
-        \int_compare:nT {\c@secnumdepth > -1}
-          {
-            \if@mainmatter
-              \ifodd\CTEX@chapter@numbering
-                \CTEXthechapter\hspace{\ccwd}
-              \fi
-            \fi
-          }
-      },
-    sec-mark  .tl_set:N = \l__fancyhf_sec_mark_tl,
-    sec-mark  .initial:n =
-      {
-        \int_compare:nT {\c@secnumdepth > 0}
-          {
-            \ifodd\CTEX@section@numbering
-              \CTEXthesection\hspace{0.5\ccwd}
-            \fi
-          }
-      },
-    headrule      .tl_gset:N = \headrule,
-    headrule      .initial:n =
-      {
-        \color{ctex@frame}\vspace{1.5pt}
-        \hrule width \textwidth height \l__rule_width_dim
-      },
-    footrule      .tl_gset:N = \footrule,
-    footrule      .initial:n = {},
-    footnoterule  .tl_gset:N = \footnoterule,
-    footnoterule  .initial:n =
-      {
-        \color{ctex@frame}
-        \hrule width 0.35\columnwidth height \l__rule_width_dim
-        \vspace*{2.6pt}\color{black}
-      }
-  }
-\ctex_at_end_preamble:n
-  {
-    \exp_args:NV \geometry\g__geometry_clist
-    \pagestyle{fancy}
-    \fancyhf{}
-    \bool_if:NTF \l__page_twoside_bool
-      {
-        \cs_gset:Npn \chaptermark#1
-          {
-            \markboth
-              {
-                \bool_if:NTF \l__uppercase_bool
-                  {\text_uppercase:n {\l__fancyhf_chap_mark_tl#1}}
-                  {\text_titlecase_first:n {\l__fancyhf_chap_mark_tl#1}}
-              }{
-                \bool_if:NTF \l__uppercase_bool
-                  {\text_uppercase:n {\l__fancyhf_chap_mark_tl#1}}
-                  {\text_titlecase_first:n {\l__fancyhf_chap_mark_tl#1}}
-              }
-          }
-        \l__fancyhf_content_tl
-        \cs_gset_eq:NN \ps@plain\ps@empty
-      }{
-        \cs_gset:Npn \chaptermark#1
-          {
-            \markboth
-              {
-                \bool_if:NTF \l__uppercase_bool
-                  {\text_uppercase:n {\l__fancyhf_chap_mark_tl#1}}
-                  {\text_titlecase_first:n {\l__fancyhf_chap_mark_tl#1}}
-              }{}
-          }
-        \l__fancyhf_content_tl
-        \cs_gset_eq:NN \ps@plain\ps@empty
-      }
-    \cs_gset:Npn \sectionmark#1
-      {
-        \markright
-          {
-            \bool_if:NTF \l__uppercase_bool
-              {\text_uppercase:n {\l__fancyhf_sec_mark_tl#1}}
-              {\text_titlecase_first:n {\l__fancyhf_sec_mark_tl#1}}
-          }
-      }
-    \bool_if:NT \l__draft_bool
-      {
-        \bool_if:NTF \l__page_twoside_bool
-          {\easyfoot[C]{\color{gray!60}\sffamily\today}}
-          {\easyhead[L]{\color{gray!60}\sffamily\today}}
-        \geometry{showframe}
-      }
-  }
-
-\ctex_define:n
-  {
-    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},
-  }
-\__ctex_define:nn {tocset}
-  {
-    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_chapter_format_tl,
-    chapter/format    .initial:n = \addvspace{1pc}\sffamily\large,
-    chapter/indent    .tl_set:N = \l__toc_chapter_indent_tl,
-    chapter/indent    .initial:n = 0\ccwd,
-    chapter/rule      .tl_set:N = \l__toc_chapter_rule_tl,
-    chapter/rule      .initial:n = \tocrule{$\cdot$}[\bfseries],
-
-    section/format    .tl_set:N = \l__toc_section_format_tl,
-    section/format    .initial:n = \addvspace{0.35pc},
-    section/indent    .tl_set:N = \l__toc_section_indent_tl,
-    section/indent    .initial:n = 1.5\ccwd,    
-    section/rule      .tl_set:N = \l__toc_section_rule_tl,
-    section/rule      .initial:n = \tocrule{$\cdot$},
-
-    subsection/format .tl_set:N = \l__toc_subsection_format_tl,
-    subsection/format .initial:n = \addvspace{0.35pc},
-    subsection/indent .tl_set:N = \l__toc_subsection_indent_tl,
-    subsection/indent .initial:n = 3.8\ccwd,
-    subsection/rule   .tl_set:N = \l__toc_subsection_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$},
-    lists/lolskip     .dim_set:N = \l__toc_lolskip_dim,
-    lists/lolskip     .initial:n = 0.8pc,
-    lists/belowoffset .dim_set:N = \l__toc_listsoffset_dim,
-    lists/belowoffset .initial:n = 0pc,
-
-    belowoffset       .dim_set:N = \l__toc_offset_dim,
-    belowoffset       .initial:n = -1pc
-  }
-
-\NewDocumentCommand{\tocrule}{O{0.7pc}O{1.2}mO{}}
-  {
-    \normalsize\normalfont
-    \titlerule*[#1]{\scalebox{#2}{#3}}#4\contentspage
-  }
-\cs_new_protected:Npn \__titlecontents_set:nn #1#2
-  {
-    \titlecontents{#1}
-      [\use:c {l__toc_#2_indent_tl}]
-      {\use:c {l__toc_#2_format_tl}}{}{}
-      {\use:c {l__toc_#2_rule_tl}}
-  }
-\contentsuse{lstlisting}{lol}
-\clist_map_inline:nn
-  {
-    {part}{part},
-    {chapter}{chapter},
-    {section}{section},
-    {subsection}{subsection},
-    {figure}{lists},
-    {table}{lists},
-    {lstlisting}{lists}
-  }{\__titlecontents_set:nn #1}
-\ctex_patch_cmd:Nnn \caption@@@addcontentsline
-  {\addcontentsline{#1}{#2}{\protect\numberline{#3}{#4}}}
-  {\addcontentsline{#1}{#2}{#3\hspace{\ccwd}#4}}
-\ctex_patch_cmd:Nnn \lst@MakeCaption
-  {
-    \addcontentsline{lol}{lstlisting}
-      {\protect\numberline{\thelstlisting}\lst@@caption}
-  }{
-    \addcontentsline{lol}{lstlisting}
-      {\thelstlisting\hspace{\ccwd}\lst@@caption}
-  }
-\__appto_cmd:Nn \@chapter
-  {
-    \addtocontents{lol}
-      {\protect\addvspace{\dim_use:N \l__toc_lolskip_dim}}
-  }
-
-\cs_new_protected:Npn \__markboth:n #1
-  {
-    \bool_if:NTF \l__page_twoside_bool
-      {
-        \markboth
-          {
-            \bool_if:NTF \l__uppercase_bool
-              {\text_uppercase:n {#1}}
-              {\text_titlecase_first:n {#1}}
-          }{
-            \bool_if:NTF \l__uppercase_bool
-              {\text_uppercase:n {#1}}
-              {\text_titlecase_first:n {#1}}
-          }
-      }{
-        \markboth
-          {
-            \bool_if:NTF \l__uppercase_bool
-              {\text_uppercase:n {#1}}
-              {\text_titlecase_first:n {#1}}
-          }{}
-      }
-  }
-
-\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
-  {
-    \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
-  {
-    \tl_if_eq:NnTF \l__toc_type_tl{book}
-      {\chapter*{\phantomsection#1}}
-      {\section*{\phantomsection#1}}
-    \__markboth:n {#1}
-  }
-\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}
-  {
-    \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}
-    \__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}
-    \__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}
-    \__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}
-    \__ifmultoc_after_set:
-    \group_end:
-  }
-
-\makeindex[
-  intoc,
-  options = -M~texindy~-C~utf8,
-  program = truexindy,
-  columns = 2,
-  columnsep = 2\ccwd
-  ]
-\indexsetup
-  {
-    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}}
-  {\__markboth:n {\indexname}}
-
-\tl_new:N \l__font_table_tl
-\tl_new:N \l__font_figure_tl
-\tl_new:N \l__font_listing_tl
-\tl_new:N \l__font_footnote_tl
-
-\__ctex_define:nn {elsefont}
-  {
-    table-cap   .tl_set:N = \l__font_table_tl,
-    table-cap   .initial:n = \sffamily\small,
-    figure-cap  .tl_set:N = \l__font_figure_tl,
-    figure-cap  .initial:n = \sffamily\small,
-    listing-cap .tl_set:N = \l__font_listing_tl,
-    listing-cap .initial:n = \sffamily\small,
-    footnote    .tl_set:N = \l__font_footnote_tl,
-    footnote    .initial:n = \rmfamily,
-    marginpar   .tl_set:N = \marginfont,
-    marginpar   .initial:n = \rmfamily\footnotesize
-  }
-
-\DeclareCaptionLabelSeparator{ccwd}{\hspace{\ccwd}}
-\DeclareCaptionLabelFormat{parens}{\bothIfFirst{#1}{~}(#2)}
-\DeclareCaptionFont{table@font}{\l__font_table_tl}
-\DeclareCaptionFont{figure@font}{\l__font_figure_tl}
-\DeclareCaptionFont{listing@font}{\l__font_listing_tl}
-\captionsetup
-  {
-    format = hang,
-    % figurewithin = section,
-    % tablewithin = section,
-    font = {stretch = {\fp_use:N \l__spread_caption_fp}},
-    labelfont = {color = ctex@frame},
-    labelsep = ccwd,
-    singlelinecheck = true,
-    belowskip = 0pt,aboveskip = 10pt
-  }
-\captionsetup[table]{font += table@font}
-\captionsetup[figure]{font += figure@font}
-\captionsetup[lstlisting]{font += listing@font}
-\captionsetup[subfigure]
-  {
-    labelformat = parens,
-    font += figure@font,
-    belowskip = 2pt,aboveskip = 6pt
-  }
-\captionsetup[figure][bi-second]{name = Figure}
-\captionsetup[table][bi-second]{name = Table}
-\cs_new:Npn \__arabic:n #1{\int_to_arabic:v {c@#1}}
-\cs_new_protected:Npn \__separator_set:n #1
-  {
-    \cs_set:cpn {the#1}
-      {
-        \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}
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}\selectfont\ignorespaces}
-\AtBeginEnvironment{tabular}
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}\selectfont\ignorespaces}
-
-\fp_new:N \l__spread_line_fp
-\fp_new:N \l__spread_table_fp
-\fp_new:N \l__spread_math_fp
-\fp_new:N \l__spread_caption_fp
-\fp_new:N \l__spread_footnote_fp
-
-\__ctex_define:nn {spread}
-  {
-    line      .fp_set:N = \l__spread_line_fp,
-    line      .initial:n = 1.3,
-    table     .fp_set:N = \l__spread_table_fp,
-    table     .initial:n = 1.05,
-    math      .fp_set:N = \l__spread_math_fp,
-    math      .initial:n = 1.05,
-    caption   .fp_set:N = \l__spread_caption_fp,
-    caption   .initial:n = 1,
-    footnote  .fp_set:N = \l__spread_footnote_fp,
-    footnote  .initial:n = 1
-  }
-
-\skip_set:Nn \parskip{0pt plus 2pt minus 1pt}
-\skip_set:Nn \floatsep{12pt plus 2pt minus 2pt}
-\skip_set:Nn \intextsep{14pt plus 2pt minus 2pt}
-\skip_set:Nn \textfloatsep{16pt plus 2pt minus 4pt}
-\skip_set:Nn \dbltextfloatsep{16pt plus 2pt minus 4pt}
-\skip_set:Nn \@fpsep{8pt plus 2.0fil}
-\setcounter{topnumber}{4}
-\setcounter{bottomnumber}{4}
-\setcounter{totalnumber}{8}
-\cs_gset:Npn \textfraction{0.18}
-\cs_gset:Npn \topfraction{0.85}
-\cs_gset:Npn \bottomfraction{0.65}
-\cs_gset:Npn \floatpagefraction{0.60}
-\ctex_after_end_preamble:n
-  {\exp_args:Nx \linespread{\fp_use:N \l__spread_line_fp}\selectfont}
-
-\newcolumntype{L}{X}
-\newcolumntype{C}{>{\centering\arraybackslash}X}
-\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
-\graphicspath{{figures/}}
-\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps,.tif}
-
-\setlist
-  {
-    labelsep = .75\ccwd,listparindent = 2\ccwd,
-    itemsep = .75ex plus .1ex,parsep = 0ex,topsep = .75ex plus .1ex,partopsep = 0ex
-  }
-\setlist[itemize,1]
-  {label = \color{ctex@emph}\ensuremath{\bullet},leftmargin = *}
-\setlist[itemize,2]
-  {label = \color{ctex@emph}\ensuremath{\circ},leftmargin = *}
-\setlist[enumerate,1]
-  {label = \color{ctex@emph}\arabic*.,ref = \arabic*,leftmargin = *}
-\setlist[enumerate,2]
-  {label = \color{ctex@emph}(\alph*),ref = \theenumi(\alph*),leftmargin = *}
-\setlist[description]
-  {font = \color{ctex@emph}\sf,labelwidth = *,leftmargin = 2\ccwd}
-\newlist{outlinelist}{itemize}{1}
-\setlist[outlinelist]
-  {label = \color{ctex@emph}\upshape\ding{111},itemsep = .5ex plus .1ex,leftmargin = *}
-\skip_set:Nn \pltopsep{.75ex plus .1ex}
-\skip_set:Nn \plpartopsep{0ex}
-\skip_set:Nn \plitemsep{.75ex plus .1ex}
-\skip_set:Nn \plparsep{0ex}
-
-\cs_new_protected:Npn \__thmname_set:nn #1#2
-  {\tl_const:cn {c__name_#1_tl}{#2}}
-\bool_if:NTF \l__lang_chinese_bool
-  {
-    \clist_map_inline:nn
-      {
-        {theorem}{定理},
-        {definition}{定义},
-        {lemma}{引理},
-        {corollary}{推论},
-        {proposition}{性质},
-        {example}{例},
-        {remark}{注},
-        {exercise}{练习}
-      }{\__thmname_set:nn #1}
-  }{
-    \clist_map_inline:nn
-      {
-        {theorem}{Theorem},
-        {definition}{Definition},
-        {lemma}{Lemma},
-        {corollary}{Corollary},
-        {proposition}{Proposition},
-        {example}{Example},
-        {remark}{Remark},
-        {exercise}{Exercise}
-      }{\__thmname_set:nn #1}
-  }
-
-\bool_new:N \l__thmbox_bool
-\tl_new:N \l__thm_numberwith_tl
-\tl_new:N \l__thm_headpunct_tl
-\tl_new:N \l__thm_bodyfont_tl
-\tl_new:N \l__thm_notefont_tl
-\tl_new:N \l__thm_headindent_tl
-\tl_new:N \l__thm_spaceabove_tl
-\tl_new:N \l__thm_spacebelow_tl
-
-\RenewDocumentCommand{\newtheorem}{O{}m}
-  {\AfterPreamble{\declaretheorem[#1]{#2}}}
-\__ctex_define:nn {thmset}
-  {
-    thmbox      .bool_set:N = \l__thmbox_bool,
-    thmbox      .default:n = true,
-    thmbox      .initial:n = false,
-    numberwith  .tl_set:N = \l__thm_numberwith_tl,
-    numberwith  .initial:n = {chapter},
-    headpunct   .tl_set:N = \l__thm_headpunct_tl,
-    headpunct   .initial:n = {},
-    bodyfont    .tl_set:N = \l__thm_bodyfont_tl,
-    bodyfont    .initial:n = {},
-    notefont    .tl_set:N = \l__thm_notefont_tl,
-    notefont    .initial:n = {},
-    headfont    .tl_set:N = \l__thm_headfont_tl,
-    headfont    .initial:n = {\color{ctex@emph}\sffamily},
-    headindent  .tl_set:N = \l__thm_headindent_tl,
-    headindent  .initial:n = {0\ccwd},
-    spaceabove  .tl_set:N = \l__thm_spaceabove_tl,
-    spaceabove  .initial:n = {.75ex plus .1ex},
-    spacebelow  .tl_set:N = \l__thm_spacebelow_tl,
-    spacebelow  .initial:n = {.75ex plus .1ex},
-    spacepost   .tl_set:N = \l__thm_spacepost_tl,
-    spacepost   .initial:n = {\ccwd}
-  }
-\ctex_at_end_preamble:n
-  {
-    \declaretheoremstyle[
-      spaceabove = \l__thm_spaceabove_tl,
-      spacebelow = \l__thm_spacebelow_tl,
-      headindent = \l__thm_headindent_tl,
-      headfont = \l__thm_headfont_tl,
-      notefont = \l__thm_notefont_tl,
-      notebraces = {}{},
-      bodyfont = \l__thm_bodyfont_tl,
-      headpunct = \l__thm_headpunct_tl,
-      postheadspace = \l__thm_spacepost_tl,
-      numberwithin = \l__thm_numberwith_tl,
-      headformat = \NAME\space\NUMBER\NOTE
-      ]{mythm}
-    \declaretheorem[style = mythm,name = \c__name_theorem_tl]{theorem}
-    \declaretheorem[style = mythm,name = \c__name_definition_tl]{definition}
-    \declaretheorem[style = mythm,name = \c__name_lemma_tl]{lemma}
-    \declaretheorem[style = mythm,name = \c__name_corollary_tl]{corollary}
-    \declaretheorem[style = mythm,name = \c__name_proposition_tl]{proposition}
-    \declaretheorem[style = mythm,name = \c__name_example_tl]{example}
-    \cs_gset_eq:NN \proof\relax
-    \declaretheorem{remark}[
-      style = mythm,
-      name = \c__name_remark_tl,
-      numbered = no
-      ]
-    \declaretheorem{proof}[
-      style = mythm,
-      name = \proofname,
-      numbered = no,
-      qed = \qedsymbol
-      ]
-  }
-
-\settasks
-  {
-    label = (\Alph*),
-    after-item-skip = 0ex plus .1ex,
-    column-sep = .5\ccwd,
-    item-indent = 2\ccwd,
-    label-width = 1.5\ccwd
-  }
-\setchemformula
-  {
-    math-scripts = false,
-    charge-hshift = 0.25\ccwd,
-    subscript-vshift = -0.2ex
-  }
-\sisetup
-  {
-    detect-family,
-    detect-weight,
-    detect-shape,
-    detect-inline-family = math,
-    detect-inline-weight = math,
-    detect-display-math,
-    range-phrase = \ensuremath{\sim},
-    range-units = single,
-    table-parse-only,
-    group-digits = false
-  }
-\allowdisplaybreaks[4]
-\cs_gset:Npn \ULthickness{.75pt}
-\skip_set:Nn \jot{4pt plus 1pt minus 1pt}
-\cs_new_protected:Npn \l__math_restore:n #1
-  {
-    \AtBeginEnvironment{#1}
-      {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\ignorespaces}
-  }
-\clist_map_inline:nn
-  {
-    {array},{matrix},{pmatrix},{bmatrix},{Bmatrix},{vmatrix},{Vmatrix},
-    {matrix*},{pmatrix*},{bmatrix*},{Bmatrix*},{vmatrix*},{Vmatrix*},
-    {cases},{cases*},{dcases},{dcases*},{rcases},{rcases*},{drcases},{drcases*},
-    {aligned},{alignedat},{gathered},{multlined},{lgathered},{rgathered}
-  }{\l__math_restore:n {#1}}
-\__patch_cmd:Nnn \start@gather
-  {\collect@body}
-  {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\collect@body}
-\__patch_cmd:Nnn \start@align
-  {\collect@body}
-  {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\collect@body}
-\__patch_cmd:Nnn \start@multline
-  {\collect@body}
-  {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\collect@body}
-\__patch_cmd:Nnn \gather@split
-  {\spread@equation}
-  {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\spread@equation}
-\ctex_after_end_preamble:n
-  {
-    \skip_set:Nn \abovedisplayskip{5pt plus 1pt minus 1pt}
-    \skip_set:Nn \belowdisplayskip{5pt plus 1pt minus 1pt}
-    \skip_set:Nn \abovedisplayshortskip{0pt}
-    \skip_set:Nn \belowdisplayshortskip{5pt plus 1pt minus 1pt}
-  }
-\cs_gset:Npn \tagform@#1
-  {\maketag@@@{\color{ctex@emph}(\ignorespaces#1\unskip\@@italiccorr)}}
-
-\tcbset
-  {
-    thmsty/.style =
-      {
-        enhanced~jigsaw,pad~at~break* = 3pt,
-        opacityback = 0,
-        colframe = ctex@emph,
-        left = .2pc,right = .2pc,top = .5pc,bottom = .5pc,middle= .5pc,
-        arc = 0pt
-      },
-    outlinesty/.style =
-      {
-        enhanced,nofloat,
-        tikznode~boxed~title,
-        interior~style = white,colframe = ctex@emph,
-        colbacktitle = white,coltitle = ctex@emph,
-        fonttitle = \large\sffamily,fontupper = \itshape,
-        boxed~title~style = {size = normal,opacityframe = 0,boxrule = 0pt},
-        attach~boxed~title~to~top~center = {yshift = -\tcboxedtitleheight/2},
-        arc = 3pt,
-        after~skip = 3ex,
-        left = 1.5pc,right = 1.5pc,top = 1pc,bottom = 0.5pc,
-        boxsep = 5pt
-      },
-    exersty/.style =
-      {
-        enhanced,on~line,
-        arc = 5pt,
-        fontupper = \sffamily\Large,
-        boxrule = 1pt,boxsep = 0pt,
-        left = 6pt,right = 6pt,top = 3.5pt,bottom = 3.5pt,
-        before~skip = 4ex,after~skip = 2.25ex
-      },
-    breakable,
-    boxrule = \l__rule_width_dim
-  }
-\ctex_at_end_preamble:n
-  {
-    \bool_if:NT \l__thmbox_bool
-      {
-        \tcolorboxenvironment{theorem}{thmsty}
-        \tcolorboxenvironment{definition}{thmsty}
-        \tcolorboxenvironment{lemma}{thmsty}
-        \tcolorboxenvironment{corollary}{thmsty}
-        \tcolorboxenvironment{proposition}{thmsty}
-        \tcolorboxenvironment{example}{thmsty}
-      }
-  }
-\NewDocumentEnvironment{outline}{O{\abstractname}o}
-  {
-    \begin{tcolorbox}[outlinesty,title = #1,IfValueT = {#2}{#2}]
-      \begin{outlinelist}
-  }{
-      \end{outlinelist}
-    \end{tcolorbox}
-  }
-\NewDocumentEnvironment{exercise}{sO{LightYellow}O{1.}O{\c__name_exercise_tl}o}
-  {
-    \begin{center}
-      \bool_if:NTF \l__thmbox_bool
-        {
-          \tcbox[
-            exersty,
-            colback = #2,colframe = black,
-            drop~fuzzy~shadow = #2,
-            IfValueT = {#5}{#5},
-            phantom =
-              \IfBooleanF{#1}
-                {
-                  \CTEX@ifnametrue
-                  \refstepcounter{section}
-                  \markright{\CTEXthesection\hspace{0.5\ccwd}#4}
-                  \CTEX@addtocline{section}{#4}
-                }
-            ]{\IfBooleanF{#1}{\CTEXthesection\hspace{0.5\ccwd}}#4}
-        }{
-          \sffamily\Large
-          \IfBooleanF{#1}
-            {
-              \CTEX@ifnametrue
-              \refstepcounter{section}
-              \markright{\CTEXthesection\hspace{0.5\ccwd}#4}
-              \CTEX@addtocline{section}{#4}
-              \CTEXthesection\hspace{0.5\ccwd}
-            }#4
-        }
-    \end{center}
-    \begin{compactenum}[#3]
-  }{
-    \end{compactenum}
-  }
-\DeclareTColorBox{mybox}{soO{MintCream}O{}}
-  {
-    enhanced~jigsaw,pad~at~break* = 3pt,
-    IfBooleanTF = {#1}{colback = #3}{opacityback = 0,colframe = ctex@emph},
-    IfValueT = {#2}{title = #2},
-    coltitle = black,colbacktitle = white,
-    fonttitle = \sffamily,
-    left = .2pc,right = .2pc,top = .5pc,bottom = .5pc,middle= .5pc,
-    arc = 0pt,
-    toptitle = 2pt,bottomtitle = 2pt,
-    beforeafter~skip=2ex,
-    halign~upper = left,halign~lower = left,
-    center~title,#4
-  }
-\DeclareTotalTCBox{\fuzzy}{O{DarkSeaGreen}vO{}}
-  {
-    nobeforeafter,tcbox~raise~base,
-    blank,fuzzy~halo = 2pt~with~#1,#3
-  }{#2}
-\DeclareTotalTCBox{\concise}{O{Aqua}vO{}}
-  {
-    nobeforeafter,tcbox~raise~base,
-    top = 2pt,bottom = 2.5pt,left = 2pt,right = 2pt,
-    boxsep = 0pt,boxrule = 0.75pt,arc = 1pt,
-    colback = #1!15!white,#3
-  }{#2}
-
-\bool_set_true:N \l__backend_bibtex_bool
-\tl_new:N \l__bib_style_tl
-\tl_new:N \l__bib_otherstyle_tl
-\tl_new:N \l__bib_citestyle_tl
-\tl_new:N \l__bib_file_tl
-
-\__ctex_define:nn {bibset}
-  {
-    backend           .choice:,
-    backend/bibtex    .code:n = {},
-    backend/biblatex  .code:n =
-      {\bool_set_false:N \l__backend_bibtex_bool},
-
-    bib-style             .choice:,
-    bib-style             .value_required:n = true,
-    bib-style/numerical   .code:n =
-      {
-        \tl_set:Nn  \l__bib_style_tl{#1}
-        \tl_clear:N \l__bib_otherstyle_tl
-      },
-    bib-style/authoryear  .code:n =
-      {
-        \tl_set:Nn  \l__bib_style_tl{#1}
-        \tl_clear:N \l__bib_otherstyle_tl
-      },
-    bib-style/unknown     .code:n =
-      {\tl_set_eq:NN \l__bib_otherstyle_tl\l_keys_value_tl},
-    bib-style             .initial:n = numerical,
-
-    cite-style  .code:n =
-      {\tl_set:Nn \l__bib_citestyle_tl{#1}},
-    bibfile     .tl_set:N = \l__bib_file_tl,
-    bibfile     .initial:n = refs.bib
-  }
-
-\cs_new_protected:Npn \__bibtex_set:
-  {
-    \tl_if_empty:NTF \l__bib_otherstyle_tl
-      {
-        \tl_if_eq:VnT \l__bib_style_tl{numerical}
-          {
-            \bibliographystyle{gbt7714-numerical}
-            \setcitestyle{comma,square,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_otherstyle_tl
-      }
-    \tl_if_empty:NF \l__bib_citestyle_tl
-      {\exp_args:NV \setcitestyle\l__bib_citestyle_tl}
-    \skip_set:Nn \bibsep{0ex}
-    \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}}
-\cs_new_protected:Npn \__biblatex_pre_set:
-  {
-    \tl_if_empty:NTF \l__bib_otherstyle_tl
-      {
-        \tl_if_eq:VnT \l__bib_style_tl{numerical}
-          {\__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_otherstyle_tl}
-      }
-    \tl_if_empty:NF \l__bib_citestyle_tl
-      {\__put_biblatex:n {citestyle = \l__bib_citestyle_tl}}
-    \__put_biblatex:n {backend = biber}
-  }
-\cs_new_protected:Npn \__biblatex_after_set:
-  {
-    \exp_args:NV \addbibresource\l__bib_file_tl
-    \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
-  {
-    \bool_if:NTF \l__backend_bibtex_bool
-      {
-        \RequirePackage[sort&compress]{natbib}
-        \__bibtex_set:
-      }{
-        \__biblatex_pre_set:
-        \RequirePackage{biblatex}
-        \__biblatex_after_set:
-      }
-  }
-
-\ctex_at_end_preamble:n
-  {
-    \skip_set:Nn \footnotemargin{0.5\ccwd}
-    \group_begin:
-    \footnotesize
-    \exp_args:Nx \linespread{\fp_use:N \l__spread_footnote_fp}\selectfont
-    \skip_gset:Nn \footnotesep{\ht\strutbox}
-    \group_end:
-    \cs_gset:Npn \hangfootparskip{0ex}
-    \bool_if:NT \l__lang_chinese_bool
-      {\cs_gset:Npn \hangfootparindent{2\ccwd}}
-    \bool_if:NT \l__chap_withpart_bool
-      {\counterwithin*{chapter}{part}}
-    \bool_if:NT \l__foot_perpart_bool
-      {
-        \counterwithout*{footnote}{chapter}
-        \counterwithin*{footnote}{part}
-      }
-    \bool_if:NT \l__foot_perpage_bool
-      {
-        \counterwithout*{footnote}{chapter}
-        \counterwithin*{footnote}{page}
-      }
-  }
-\__patch_cmd:Nnn \@footnotetext
-  {\reset@font}
-  {\def\baselinestretch{\fp_use:N \l__spread_footnote_fp}\l__font_footnote_tl}
-\__patch_cmd:Nnn \@mpfootnotetext
-  {\reset@font}
-  {\def\baselinestretch{\fp_use:N \l__spread_footnote_fp}\l__font_footnote_tl}
-\__patch_cmd:Nnn \@makefnmark
-  {\normalfont}{\l__font_footnote_tl}
-
-\lstdefinestyle{mystyle}
-  {
-    language = [LaTeX]TeX,
-    texcsstyle =
-      *\lst@ifdisplaystyle\bfseries\color{ctex@verb}\else\color{ctex@verb}\fi,
-    basicstyle =
-      \ttfamily\lst@ifdisplaystyle\small\else\color{ctex@verb}\fi,
-    framexleftmargin = 0pt,
-    framexrightmargin = 0pt,
-    xleftmargin = 3pt,
-    xrightmargin = 3pt,
-    numbersep = 10pt,
-    framesep = 3pt,
-    frame = single,
-    rulecolor = \color{ctex@frame},
-    commentstyle = \color{gray},
-    emphstyle = \color{ctex@emph},
-    emph = {caption,makecell,subcaption,tabularx},
-    keywordstyle =
-      \lst@ifdisplaystyle\bfseries\color{ctex@verb}\else\color{ctex@verb}\fi,
-    morekeywords =
-      {
-        includegraphics,setmainfont,setsansfont,setmonofont,setCJKmainfont,setCJKsansfont,setCJKmonofont,setCJKfamilyfont,RequirePackage
-      }
-  }
-\lstset
-  {
-    style = mystyle,
-    breaklines = true,
-    resetmargins = true,
-    % numbers = left,
-    numberstyle = \footnotesize,
-    abovecaptionskip = -1ex,
-    belowcaptionskip = 1.5ex,
-    aboveskip = 1.5ex plus .2ex minus .1ex,
-    belowskip = 0.55ex plus .2ex minus .1ex,
-    keepspaces = true,
-    framerule = \l__rule_width_dim,
-    columns = flexible
-  }
-\lstloadlanguages{C,C++,Java,Python,Matlab}
-\AtBeginEnvironment{verbatim}{\microtypesetup{activate = false}}
-
-\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}}
-\cs_new_protected:Npn \__define_themecolor:nnn #1#2#3
-  {\definecolorset{HTML}{ctex@}{}{frame,#1;emph,#2;verb,#3}}
-\cs_new:Npn \__linkcolor_set:n #1
-  {
-    linkcolor/\clist_item:nn {#1}{1} .code:n =
-      {
-        \__define_linkcolor:nnn
-          {\clist_item:nn {#1}{2}}
-          {\clist_item:nn {#1}{3}}
-          {\clist_item:nn {#1}{4}}
-        \__put_hyperref:n
-          {
-            linkcolor = ctex@link,linkbordercolor = ctex@link,
-            urlcolor = ctex@url,urlbordercolor = ctex@url,
-            citecolor = ctex@cite,citebordercolor = ctex@cite
-          }
-      },
-  }
-\cs_new:Npn \__themecolor_set:n #1
-  {
-    color/\clist_item:nn {#1}{1} .code:n =
-      {
-        \__define_themecolor:nnn
-          {\clist_item:nn {#1}{2}}
-          {\clist_item:nn {#1}{3}}
-          {\clist_item:nn {#1}{4}}
-      },
-  }
-
-\cs_new:Npn \__allow_urlbreak:
-  {
-    \cs_new:Npn \__add_urlbreak_points:
-      {\tl_map_function:NN \c__urlbreak_points_tl\do}
-    \__appto_cmd:Nn
-      \UrlBreaks{\UrlOrds\__add_urlbreak_points:}
-  }
-\tl_const:Nn \c__urlbreak_points_tl
-  {ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789}
-
-\keys_define:nx {ctex/link}
-  {
-    hyperlink         .choice:,
-    hyperlink/edge    .code:n = {},
-    hyperlink/various .code:n = {\__put_hyperref:n {colorlinks}},
-    hyperlink/none    .code:n = {\__put_hyperref:n {hidelinks}},
-    hyperlink         .default:n = edge,
-    hyperlink         .initial:n = edge,
-
-    linkcolor         .choice:,
-    \clist_map_function:nN
-      {
-        {fresh,     62d71f,0000B2,005752},
-        {cutepink,  ff69b4,9d5196,57b5e5},
-        {skyblue,   0000ff,004986,eb6877},
-        {crimson,   dc143c,00c1c9,afcd20}
-      }
-      \__linkcolor_set:n
-    linkcolor         .default:n = fresh,
-    linkcolor         .initial:n = fresh,
-
-    linktopage        .choice:,
-    linktopage/true   .code:n = {\__put_hyperref:n {linktocpage}},
-    linktopage/false  .code:n = {},
-    linktopage        .default:n = true,
-    linktopage        .initial:n = false
-  }
-\keys_define:nx {ctex/style}
-  {
-    color             .choice:,
-    color             .value_required:n = true,
-    \clist_map_function:nN
-      {
-        {none,      000000,000000,000000},
-        {seaside,   4682B4,004986,a40000},
-        {energy,    f39800,00a0e9,893895},
-        {cyberpunk, 601986,eb6877,a4005b}
-      }
-      \__themecolor_set:n
-    color             .initial:n = none
-  }
-
-\ctex_at_end_preamble:n
-  {
-    \RequirePackage[pdfstartview = FitH,bookmarksnumbered]{hyperref}
-    \RequirePackage{cleveref}
-    \urlstyle{same}
-    \exp_args:NV \hypersetup\l__hyperref_clist
-    \__allow_urlbreak:
-
-    \bool_if:NTF \l__lang_chinese_bool
-      {
-        \keys_set_known:nn {ctex}
-          {
-            contentsname = {目\hspace{\ccwd}录},
-            indexname = {索\hspace{\ccwd}引},
-            listfigurename = {图片索引},
-            listtablename = {表格索引},
-            abstractname = {摘\hspace{\ccwd}要},
-            lstlistlistingname = {代码索引},
-            lstlistingname = {代码}
-          }
-        \crefformat{equation}{#2式（#1）#3}
-        \crefformat{align}{#2式（#1）#3}
-        \crefformat{multline}{#2式（#1）#3}
-        \crefformat{gather}{#2式（#1）#3}
-        \crefformat{figure}{#2图#1#3}
-        \crefformat{table}{#2表#1#3}
-        \crefformat{chapter}{#2第#1章#3}
-        \crefformat{section}{#2节#1#3}
-        \crefformat{subsection}{#2小节#1#3}
-        \crefformat{theorem}{#2定理#1#3}
-        \crefformat{definition}{#2定义#1#3}
-        \crefformat{lemma}{#2引理#1#3}
-        \crefformat{corollary}{#2推论#1#3}
-        \crefformat{proposition}{#2性质#1#3}
-        \crefformat{example}{#2例#1#3}
-      }{
-        \keys_set_known:nn {ctex}
-          {
-            abstractname = {Abstract},
-            lstlistlistingname = {List~of~Listings},
-            lstlistingname = {Code}
-          }
-        \crefformat{equation}{#2Equation~(#1)#3}
-        \crefformat{align}{#2Equation~(#1)#3}
-        \crefformat{multline}{#2Equation~(#1)#3}
-        \crefformat{gather}{#2Equation~(#1)#3}
-        \crefformat{figure}{#2Figure~#1#3}
-        \crefformat{table}{#2Table~#1#3}
-        \crefformat{chapter}{#2Chapter~#1#3}
-        \crefformat{section}{#2Section~#1#3}
-        \crefformat{subsection}{#2Subsection~#1#3}
-        \crefformat{theorem}{#2Theorem~#1#3}
-        \crefformat{definition}{#2Definition~#1#3}
-        \crefformat{lemma}{#2Lemma~#1#3}
-        \crefformat{corollary}{#2Corollary~#1#3}
-        \crefformat{proposition}{#2Proposition~#1#3}
-        \crefformat{example}{#2Example~#1#3}
-      }
-  }
-
-\ctex_set:n
-  {
-    secnumdepth = 3,
-    tocdepth = 1,
-    part =
-      {
-        pagestyle = empty,
-        number =
-          {\bool_if:NTF \l__zhtitle_bool{\chinese{part}}{\thepart}},
-        format = {\color{ctex@frame}\sffamily\Huge},
-        aftername =
-          {\bool_if:NTF \l__newline_bool{\par\nobreak}{\hspace{\ccwd}}},
-        tocline = {\CTEXifname{\CTEXthepart\hspace{\ccwd}}{}#2}
-      },
-    chapter =
-      {
-        % pagestyle = fancy,
-        number =
-          {\bool_if:NTF \l__zhtitle_bool{\chinese{chapter}}{\thechapter}},
-        format =
-          {
-            \color{ctex@frame}\sffamily\LARGE
-            \bool_if:NF \l__newline_bool{\centering}
-          },
-        aftername =
-          {
-            \bool_if:NTF \l__newline_bool
-              {\par\nobreak\vskip 1.5pc}{\hspace{\ccwd}}
-          },
-        beforeskip = {-1.5ex},
-        afterskip = {3ex},
-        lotskip = {0.8pc},
-        lofskip = {0.8pc},
-        tocline = {\CTEXifname{\CTEXthechapter\hspace{\ccwd}}{}#2}
-      },
-    section =
-      {
-        hang = true,
-        format = {\color{ctex@frame}\sffamily\Large},
-        aftername = {\hspace{0.5\ccwd}},
-        beforeskip = {1.5ex plus .2ex minus .1ex},
-        afterskip = {1.5ex plus .2ex minus .1ex},
-        tocline = {\CTEXifname{\CTEXthesection\hspace{\ccwd}}{}#2}
-      },
-    subsection =
-      {
-        hang = true,
-        format = {\color{ctex@frame}\sffamily\large},
-        aftername = {\hspace{0.5\ccwd}},
-        beforeskip = {1.3ex plus .2ex minus .1ex},
-        afterskip = {1.3ex plus .2ex minus .1ex},
-        tocline = {\CTEXifname{\CTEXthesubsection\hspace{\ccwd}}{}#2}
-      },
-    subsubsection =
-      {
-        hang = true,
-        format = {\color{ctex@frame}\sffamily},
-        aftername = {\hspace{0.5\ccwd}},
-        beforeskip = {\parskip},
-        afterskip = {\parskip}
-      }
-  }
-
-\bool_if:NF \l__newline_bool
-  {
-    \ctex_set:n
-      {
-        part/hang = true,
-        chapter/hang = true
-      }
-  }
-%%
-%% End of file `easybook.cls'.
\ No newline at end of file
-- 
cgit v1.2.3

