summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/colorist/README.md7
-rw-r--r--macros/latex/contrib/colorist/colorart.cls340
-rw-r--r--macros/latex/contrib/colorist/colorbook.cls340
-rw-r--r--macros/latex/contrib/colorist/colorist-doc.pdfbin104178 -> 99093 bytes
-rw-r--r--macros/latex/contrib/colorist/colorist-doc.tex114
-rw-r--r--macros/latex/contrib/colorist/colorist-fancy.sty1026
-rw-r--r--macros/latex/contrib/colorist/colorist.sty1518
-rw-r--r--macros/latex/contrib/minimalist/minimalist-classical.sty72
-rw-r--r--macros/latex/contrib/minimalist/minimalist-doc.pdfbin112379 -> 104579 bytes
-rw-r--r--macros/latex/contrib/minimalist/minimalist-doc.tex113
-rw-r--r--macros/latex/contrib/minimalist/minimalist-plain.sty100
-rw-r--r--macros/latex/contrib/minimalist/minimalist.sty2
-rw-r--r--macros/latex/contrib/minimalist/minimart.cls2
-rw-r--r--macros/latex/contrib/minimalist/minimbook.cls2
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx215
-rw-r--r--macros/latex/contrib/projlib/README.md8
-rw-r--r--macros/latex/contrib/seu-ml-assign/README.md30
-rw-r--r--macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.pdfbin0 -> 483948 bytes
-rw-r--r--macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.tex214
-rw-r--r--macros/latex/contrib/seu-ml-assign/seu-ml-assign-sample.tex384
-rw-r--r--macros/latex/contrib/seu-ml-assign/seu-ml-assign.cls298
21 files changed, 2587 insertions, 2198 deletions
diff --git a/macros/latex/contrib/colorist/README.md b/macros/latex/contrib/colorist/README.md
index 2b54c97fa2..b40c6088b2 100644
--- a/macros/latex/contrib/colorist/README.md
+++ b/macros/latex/contrib/colorist/README.md
@@ -1,14 +1,17 @@
-<!-- Copyright (C) 2021 by Jinwen XU -->
+<!-- Copyright (C) 2021-2022 by Jinwen XU -->
# `colorist` bundle: write you documents in a colorful way
+**The whole series have been rewritten with `expl3`. Please note that the documentations are not yet up-to-date. The syntax of some commands have been changed since the last version, especially the declaration of theorem-like environments by `\CreateTheorem`. For the moment, you can refer to the documentation of the package `create-theorem`.**
+
## Introduction
`colorist` is a collection of styles and classes that helps you typesetting articles and books
with a colorful design. It mainly consists of two parts.
- Main part:
- - `colorist.sty` : the main style
+ - `colorist.sty` : interface of the main style
+ - `colorist-fancy.sty` : the fancy style
- `colorart.cls` : class for typesetting articles
- `colorbook.cls` : class for typesetting books
diff --git a/macros/latex/contrib/colorist/colorart.cls b/macros/latex/contrib/colorist/colorart.cls
index abd20901e2..cbacee3853 100644
--- a/macros/latex/contrib/colorist/colorart.cls
+++ b/macros/latex/contrib/colorist/colorart.cls
@@ -2,7 +2,7 @@
%% This is file `colorist/colorart.cls',
%% generated with the docstrip utility.
-%% Copyright (C) 2021 by Jinwen XU
+%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
%%
@@ -16,211 +16,157 @@
%% 2005/12/01 or later.
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\ProvidesClass{colorart}
- [2021/12/16 A colorful article style]
-\def\colorclass@baseclass{article}
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-\SetupKeyvalOptions{
- family = @colorclass,
- prefix = @colorclass@,
-}
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{useosf}
-\DeclareBoolOption[false]{lmodern}
-\DeclareBoolOption[false]{palatino}
-\DeclareBoolOption[false]{times}
-\DeclareBoolOption[false]{garamond}
-\DeclareBoolOption[false]{noto}
-\DeclareBoolOption[false]{biolinum}
-\DeclareBoolOption[false]{customfont}
-\DeclareStringOption{thmnum}[PJL@thmnum@default]
-
-\newif\if@colorclass@bfivepaper\@colorclass@bfivepaperfalse
-\DeclareVoidOption{b5paper}{\@colorclass@bfivepapertrue}
-\newif\if@colorclass@afourpaper\@colorclass@afourpaperfalse
-\DeclareVoidOption{a4paper}{\@colorclass@afourpapertrue}
-
-\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{\colorclass@baseclass}}
-\ProcessKeyvalOptions*\relax
-\LoadClass{\colorclass@baseclass}
-
-\if@colorclass@draft
- \@colorclass@fasttrue
-\fi
-\if@colorclass@lmodern
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@palatino
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@times
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@garamond
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@noto
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@biolinum
- \@colorclass@customfonttrue
-\fi
+\RequirePackage{l3keys2e}
+\ProvidesExplClass
+ {colorart}
+ {2022/03/19} {}
+ {A colorful article style}
+
+\tl_const:Nn \l__colorclass_base_class_tl { article }
+
+
+\bool_new:N \l__colorclass_load_custom_font_file_bool
+\bool_set_false:N \l__colorclass_load_custom_font_file_bool
+
+
+\keys_define:nn { colorclass }
+ {
+ , draft .bool_set:N = \l__colorclass_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__colorclass_fast_bool
+
+
+ , load custom font file .code:n = {
+ \bool_set_true:N \l__colorclass_load_custom_font_file_bool
+ \str_set:Nn \l__colorclass_custom_font_file_str { #1 }
+ }
+ , load custom font file .default:n = { colorist.font }
+ , load~custom~font~file .code:n = {
+ \bool_set_true:N \l__colorclass_load_custom_font_file_bool
+ \str_set:Nn \l__colorclass_custom_font_file_str { #1 }
+ }
+ , load~custom~font~file .default:n = { colorist.font }
+ , load-custom-font-file .code:n = {
+ \bool_set_true:N \l__colorclass_load_custom_font_file_bool
+ \str_set:Nn \l__colorclass_custom_font_file_str { #1 }
+ }
+ , load-custom-font-file .default:n = { colorist.font }
+
+
+ , a4paper .bool_set:N = \l__colorclass_a_four_paper_bool
+ , a4paper .initial:n = { false }
+ , b5paper .bool_set:N = \l__colorclass_b_five_paper_bool
+ , b5paper .initial:n = { false }
+
+ , 11pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+ , 12pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { colorist }
+ }
+ }
+\ProcessKeysOptions { colorclass }
+
+\LoadClass{\l__colorclass_base_class_tl}
%%================================
-%% Page layout
+%% Page layout
%%================================
-\RequirePackage{silence}
-\WarningFilter{geometry}{Over-specification in}
-\RequirePackage[heightrounded]{geometry}
-\geometry{
- papersize={8.5in,11in},
- % total={47em,66em},
- total={6.500in,9.130in},
- hmarginratio=1:1,
- vmarginratio=1:1,
- footnotesep=2em plus 2pt minus 2pt,
-}
-\if@colorclass@bfivepaper
-\geometry{
- b5paper,
- % total={40em,59em},
- total={5.535in,8.160in},
- hmarginratio=1:1,
- vmarginratio=1:1,
- footnotesep=2em plus 2pt minus 2pt,
-}
-\fi
-\if@colorclass@afourpaper
-\geometry{
- a4paper,
- % total={47em,70em},
- total={6.500in,9.685in},
- hmarginratio=1:1,
- vmarginratio=1:1,
- footnotesep=2em plus 2pt minus 2pt,
-}
-\fi
-
-\RequirePackage{indentfirst}
-
-\if@colorclass@fast
- \PassOptionsToPackage{fast}{colorist}
- \RequirePackage{draftwatermark}
- \DraftwatermarkOptions{text={\normalfont DRAFT},color=paper!95!-paper}
-\fi
-
-\RequirePackage{colorist}
+\RequirePackage { silence }
+\WarningFilter { geometry } { Over-specification }
+
+\PassOptionsToPackage { heightrounded } { geometry }
+\RequirePackage { geometry }
+
+\geometry
+ {
+ papersize = { 8.5in, 11in },
+ total = { 6.500in, 9.130in },
+ centering,
+ footnotesep = 2em plus 2pt minus 2pt,
+ }
+
+\bool_if:NT \l__colorclass_b_five_paper_bool
+ {
+ \geometry
+ {
+ b5paper,
+ total = { 5.535in, 8.160in },
+ centering,
+ footnotesep = 2em plus 2pt minus 2pt,
+ }
+ }
+
+\bool_if:NT \l__colorclass_a_four_paper_bool
+ {
+ \geometry
+ {
+ a4paper,
+ total = { 6.500in, 9.685in },
+ centering,
+ footnotesep = 2em plus 2pt minus 2pt,
+ }
+ }
+
+\bool_if:NT \l__colorclass_fast_bool
+ {
+ \PassOptionsToPackage { fast } { colorist }
+ \RequirePackage { draftwatermark }
+ \DraftwatermarkOptions { text = { \normalfont DRAFT }, color = paper!97!-paper }
+ }
+
+\RequirePackage { indentfirst }
+
+\RequirePackage { colorist }
+
+\hfuzz=2pt
+\vfuzz=2pt
%%================================
-%% Fonts
+%% Fonts
%%================================
-\RequirePackage{iftex}
-\ifPDFTeX
-\RequirePackage[T1]{fontenc}
-\RequirePackage{inputenc}
-\fi
-\if@colorclass@customfont\else
-\RequirePackage{mathpazo}
-\RequirePackage{newpxtext}
-\fi
-\RequirePackage{amssymb}
-
-\if@colorclass@lmodern
- \RequirePackage{amssymb}
- \if@colorclass@useosf
- \RequirePackage{cfr-lm}
- \else
- \RequirePackage{lmodern}
- \fi
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@colorclass@palatino
- \RequirePackage{amssymb}
- \RequirePackage{mathpazo}
- \PassOptionsToPackage{defaultsups}{newpxtext}
- \RequirePackage{newpxtext}
- % \RequirePackage{newpxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.07}}
- \if@colorclass@useosf\useosf\fi
-\fi
-
-\if@colorclass@times
- \RequirePackage{amssymb}
- \PassOptionsToPackage{defaultsups}{newtxtext}
- \RequirePackage{newtxtext}
- \RequirePackage{newtxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.00}}
- \if@colorclass@useosf\useosf\fi
- \let\colorist@textsc\relax
-\fi
-
-\if@colorclass@garamond
- \RequirePackage{amssymb}
- \if@colorclass@useosf\else
- \PassOptionsToPackage{lining}{ebgaramond}
- \fi
- \RequirePackage{ebgaramond-maths}
- \RequirePackage{ebgaramond}
- % \RequirePackage{garamondlibre}
- \PJLsetlinespacing{\setstretch{1.00}}
- \let\colorist@textsc\relax
-\fi
-
-\if@colorclass@noto
- \RequirePackage{amssymb}
- \if@colorclass@useosf
- \PassOptionsToPackage{oldstyle}{notomath}
- \fi
- \RequirePackage{anyfontsize}
- \RequirePackage{notomath}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@colorclass@biolinum
- \RequirePackage{amssymb}
- % \RequirePackage{mathpazo}
- % \RequirePackage[sansmath]{libertinust1math}
- \ifPDFTeX
- \if@colorclass@useosf
- \PassOptionsToPackage{osf}{biolinum}
- \fi
- \RequirePackage{biolinum}
- \renewcommand*\familydefault{\biolinum@family}
- \else
- \PassOptionsToPackage{no-math}{fontspec}
- \RequirePackage{fontspec}
- \setmainfont{LinBiolinum_R.otf}[
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf,
- \if@colorclass@useosf Numbers = OldStyle\fi ]
- \fi
- \PJLsetlinespacing{\setstretch{1.05}}
- \RequirePackage[italic,defaultmathsizes]{mathastext}
-\fi
-
-\def\PJL@font@alreadyset{}
-
-\PassOptionsToPackage{verbose=silent}{microtype}
-\RequirePackage{microtype}
-\PassOptionsToPackage{all}{nowidow}
-\RequirePackage{nowidow}
-\RequirePackage{embrac}
+\WarningFilter { latexfont } { Font~shape }
+\WarningFilter { latexfont } { Some~font }
+
+\cs_new_protected:Nn \__colorclass_load_file_or_config:Nnn
+ {
+ \bool_if:NT #1
+ {
+ \exp_args:Nx \file_if_exist:nT { #2 }
+ {
+ \exp_args:Nx \file_input:n { #2 }
+ \use_none:nn
+ }
+ }
+ \use:n { #3 }
+ }
+
+
+\__colorclass_load_file_or_config:Nnn \l__colorclass_load_custom_font_file_bool { \l__colorclass_custom_font_file_str }
+ {
+ \RequirePackage { projlib-font }
+
+ \bool_if:NF \g_projlib_font_already_set_bool
+ {
+ \RequirePackage { mathpazo }
+ \RequirePackage { newpxtext }
+ \RequirePackage { amssymb }
+ }
+ }
+
+\PassOptionsToPackage { all } { nowidow }
+\RequirePackage { nowidow }
+\RequirePackage { embrac }
%%================================
-%% Graphics
+%% Graphics
%%================================
-\RequirePackage{graphicx}
-\graphicspath{{images/}}
-\RequirePackage{wrapfig}
-\RequirePackage{float}
-\RequirePackage{caption}
-\captionsetup{font=small}
+\RequirePackage { graphicx }
+\graphicspath { { images/ } }
+\RequirePackage { wrapfig }
+\RequirePackage { float }
+\RequirePackage { caption }
+\captionsetup { font = small }
\endinput
%%
diff --git a/macros/latex/contrib/colorist/colorbook.cls b/macros/latex/contrib/colorist/colorbook.cls
index a2ee22f3de..ce2d27ce8b 100644
--- a/macros/latex/contrib/colorist/colorbook.cls
+++ b/macros/latex/contrib/colorist/colorbook.cls
@@ -2,7 +2,7 @@
%% This is file `colorist/colorbook.cls',
%% generated with the docstrip utility.
-%% Copyright (C) 2021 by Jinwen XU
+%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
%%
@@ -16,211 +16,157 @@
%% 2005/12/01 or later.
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\ProvidesClass{colorbook}
- [2021/12/16 A colorful book style]
-\def\colorclass@baseclass{book}
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-\SetupKeyvalOptions{
- family = @colorclass,
- prefix = @colorclass@,
-}
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{useosf}
-\DeclareBoolOption[false]{lmodern}
-\DeclareBoolOption[false]{palatino}
-\DeclareBoolOption[false]{times}
-\DeclareBoolOption[false]{garamond}
-\DeclareBoolOption[false]{noto}
-\DeclareBoolOption[false]{biolinum}
-\DeclareBoolOption[false]{customfont}
-\DeclareStringOption{thmnum}[PJL@thmnum@default]
-
-\newif\if@colorclass@bfivepaper\@colorclass@bfivepaperfalse
-\DeclareVoidOption{b5paper}{\@colorclass@bfivepapertrue}
-\newif\if@colorclass@afourpaper\@colorclass@afourpaperfalse
-\DeclareVoidOption{a4paper}{\@colorclass@afourpapertrue}
-
-\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{\colorclass@baseclass}}
-\ProcessKeyvalOptions*\relax
-\LoadClass{\colorclass@baseclass}
-
-\if@colorclass@draft
- \@colorclass@fasttrue
-\fi
-\if@colorclass@lmodern
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@palatino
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@times
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@garamond
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@noto
- \@colorclass@customfonttrue
-\fi
-\if@colorclass@biolinum
- \@colorclass@customfonttrue
-\fi
+\RequirePackage{l3keys2e}
+\ProvidesExplClass
+ {colorbook}
+ {2022/03/19} {}
+ {A colorful book style}
+
+\tl_const:Nn \l__colorclass_base_class_tl { book }
+
+
+\bool_new:N \l__colorclass_load_custom_font_file_bool
+\bool_set_false:N \l__colorclass_load_custom_font_file_bool
+
+
+\keys_define:nn { colorclass }
+ {
+ , draft .bool_set:N = \l__colorclass_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__colorclass_fast_bool
+
+
+ , load custom font file .code:n = {
+ \bool_set_true:N \l__colorclass_load_custom_font_file_bool
+ \str_set:Nn \l__colorclass_custom_font_file_str { #1 }
+ }
+ , load custom font file .default:n = { colorist.font }
+ , load~custom~font~file .code:n = {
+ \bool_set_true:N \l__colorclass_load_custom_font_file_bool
+ \str_set:Nn \l__colorclass_custom_font_file_str { #1 }
+ }
+ , load~custom~font~file .default:n = { colorist.font }
+ , load-custom-font-file .code:n = {
+ \bool_set_true:N \l__colorclass_load_custom_font_file_bool
+ \str_set:Nn \l__colorclass_custom_font_file_str { #1 }
+ }
+ , load-custom-font-file .default:n = { colorist.font }
+
+
+ , a4paper .bool_set:N = \l__colorclass_a_four_paper_bool
+ , a4paper .initial:n = { false }
+ , b5paper .bool_set:N = \l__colorclass_b_five_paper_bool
+ , b5paper .initial:n = { false }
+
+ , 11pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+ , 12pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { colorist }
+ }
+ }
+\ProcessKeysOptions { colorclass }
+
+\LoadClass{\l__colorclass_base_class_tl}
%%================================
-%% Page layout
+%% Page layout
%%================================
-\RequirePackage{silence}
-\WarningFilter{geometry}{Over-specification in}
-\RequirePackage[heightrounded]{geometry}
-\geometry{
- papersize={8.5in,11in},
- % total={47em,66em},
- total={6.500in,9.130in},
- hmarginratio=1:1,
- vmarginratio=1:1,
- footnotesep=2em plus 2pt minus 2pt,
-}
-\if@colorclass@bfivepaper
-\geometry{
- b5paper,
- % total={40em,59em},
- total={5.535in,8.160in},
- hmarginratio=1:1,
- vmarginratio=1:1,
- footnotesep=2em plus 2pt minus 2pt,
-}
-\fi
-\if@colorclass@afourpaper
-\geometry{
- a4paper,
- % total={47em,70em},
- total={6.500in,9.685in},
- hmarginratio=1:1,
- vmarginratio=1:1,
- footnotesep=2em plus 2pt minus 2pt,
-}
-\fi
-
-\RequirePackage{indentfirst}
-
-\if@colorclass@fast
- \PassOptionsToPackage{fast}{colorist}
- \RequirePackage{draftwatermark}
- \DraftwatermarkOptions{text={\normalfont DRAFT},color=paper!95!-paper}
-\fi
-
-\RequirePackage{colorist}
+\RequirePackage { silence }
+\WarningFilter { geometry } { Over-specification }
+
+\PassOptionsToPackage { heightrounded } { geometry }
+\RequirePackage { geometry }
+
+\geometry
+ {
+ papersize = { 8.5in, 11in },
+ total = { 6.500in, 9.130in },
+ centering,
+ footnotesep = 2em plus 2pt minus 2pt,
+ }
+
+\bool_if:NT \l__colorclass_b_five_paper_bool
+ {
+ \geometry
+ {
+ b5paper,
+ total = { 5.535in, 8.160in },
+ centering,
+ footnotesep = 2em plus 2pt minus 2pt,
+ }
+ }
+
+\bool_if:NT \l__colorclass_a_four_paper_bool
+ {
+ \geometry
+ {
+ a4paper,
+ total = { 6.500in, 9.685in },
+ centering,
+ footnotesep = 2em plus 2pt minus 2pt,
+ }
+ }
+
+\bool_if:NT \l__colorclass_fast_bool
+ {
+ \PassOptionsToPackage { fast } { colorist }
+ \RequirePackage { draftwatermark }
+ \DraftwatermarkOptions { text = { \normalfont DRAFT }, color = paper!97!-paper }
+ }
+
+\RequirePackage { indentfirst }
+
+\RequirePackage { colorist }
+
+\hfuzz=2pt
+\vfuzz=2pt
%%================================
-%% Fonts
+%% Fonts
%%================================
-\RequirePackage{iftex}
-\ifPDFTeX
-\RequirePackage[T1]{fontenc}
-\RequirePackage{inputenc}
-\fi
-\if@colorclass@customfont\else
-\RequirePackage{mathpazo}
-\RequirePackage{newpxtext}
-\fi
-\RequirePackage{amssymb}
-
-\if@colorclass@lmodern
- \RequirePackage{amssymb}
- \if@colorclass@useosf
- \RequirePackage{cfr-lm}
- \else
- \RequirePackage{lmodern}
- \fi
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@colorclass@palatino
- \RequirePackage{amssymb}
- \RequirePackage{mathpazo}
- \PassOptionsToPackage{defaultsups}{newpxtext}
- \RequirePackage{newpxtext}
- % \RequirePackage{newpxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.07}}
- \if@colorclass@useosf\useosf\fi
-\fi
-
-\if@colorclass@times
- \RequirePackage{amssymb}
- \PassOptionsToPackage{defaultsups}{newtxtext}
- \RequirePackage{newtxtext}
- \RequirePackage{newtxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.00}}
- \if@colorclass@useosf\useosf\fi
- \let\colorist@textsc\relax
-\fi
-
-\if@colorclass@garamond
- \RequirePackage{amssymb}
- \if@colorclass@useosf\else
- \PassOptionsToPackage{lining}{ebgaramond}
- \fi
- \RequirePackage{ebgaramond-maths}
- \RequirePackage{ebgaramond}
- % \RequirePackage{garamondlibre}
- \PJLsetlinespacing{\setstretch{1.00}}
- \let\colorist@textsc\relax
-\fi
-
-\if@colorclass@noto
- \RequirePackage{amssymb}
- \if@colorclass@useosf
- \PassOptionsToPackage{oldstyle}{notomath}
- \fi
- \RequirePackage{anyfontsize}
- \RequirePackage{notomath}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@colorclass@biolinum
- \RequirePackage{amssymb}
- % \RequirePackage{mathpazo}
- % \RequirePackage[sansmath]{libertinust1math}
- \ifPDFTeX
- \if@colorclass@useosf
- \PassOptionsToPackage{osf}{biolinum}
- \fi
- \RequirePackage{biolinum}
- \renewcommand*\familydefault{\biolinum@family}
- \else
- \PassOptionsToPackage{no-math}{fontspec}
- \RequirePackage{fontspec}
- \setmainfont{LinBiolinum_R.otf}[
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf,
- \if@colorclass@useosf Numbers = OldStyle\fi ]
- \fi
- \PJLsetlinespacing{\setstretch{1.05}}
- \RequirePackage[italic,defaultmathsizes]{mathastext}
-\fi
-
-\def\PJL@font@alreadyset{}
-
-\PassOptionsToPackage{verbose=silent}{microtype}
-\RequirePackage{microtype}
-\PassOptionsToPackage{all}{nowidow}
-\RequirePackage{nowidow}
-\RequirePackage{embrac}
+\WarningFilter { latexfont } { Font~shape }
+\WarningFilter { latexfont } { Some~font }
+
+\cs_new_protected:Nn \__colorclass_load_file_or_config:Nnn
+ {
+ \bool_if:NT #1
+ {
+ \exp_args:Nx \file_if_exist:nT { #2 }
+ {
+ \exp_args:Nx \file_input:n { #2 }
+ \use_none:nn
+ }
+ }
+ \use:n { #3 }
+ }
+
+
+\__colorclass_load_file_or_config:Nnn \l__colorclass_load_custom_font_file_bool { \l__colorclass_custom_font_file_str }
+ {
+ \RequirePackage { projlib-font }
+
+ \bool_if:NF \g_projlib_font_already_set_bool
+ {
+ \RequirePackage { mathpazo }
+ \RequirePackage { newpxtext }
+ \RequirePackage { amssymb }
+ }
+ }
+
+\PassOptionsToPackage { all } { nowidow }
+\RequirePackage { nowidow }
+\RequirePackage { embrac }
%%================================
-%% Graphics
+%% Graphics
%%================================
-\RequirePackage{graphicx}
-\graphicspath{{images/}}
-\RequirePackage{wrapfig}
-\RequirePackage{float}
-\RequirePackage{caption}
-\captionsetup{font=small}
+\RequirePackage { graphicx }
+\graphicspath { { images/ } }
+\RequirePackage { wrapfig }
+\RequirePackage { float }
+\RequirePackage { caption }
+\captionsetup { font = small }
\endinput
%%
diff --git a/macros/latex/contrib/colorist/colorist-doc.pdf b/macros/latex/contrib/colorist/colorist-doc.pdf
index 4059849823..6320e9f13e 100644
--- a/macros/latex/contrib/colorist/colorist-doc.pdf
+++ b/macros/latex/contrib/colorist/colorist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/colorist/colorist-doc.tex b/macros/latex/contrib/colorist/colorist-doc.tex
index 560dcb2796..98804ad9b3 100644
--- a/macros/latex/contrib/colorist/colorist-doc.tex
+++ b/macros/latex/contrib/colorist/colorist-doc.tex
@@ -1,7 +1,7 @@
-\documentclass[English,Chinese,French,allowbf]{colorart}
+\documentclass[English,Chinese,French,use boldface,simple name]{colorart}
\setsansfont{texgyreheros}[
- Scale=MatchLowercase,
+ Scale=MatchUppercase,
UprightFont=*-regular,
BoldFont=*-bold,
ItalicFont=*-italic,
@@ -45,7 +45,7 @@
\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
\lstset{moretexcs=%
{part,parttext,chapter,section,subsection,subsubsection,frontmatter,mainmatter,backmatter,tableofcontents,href,
- color,NameTheorem,CreateTheorem,proofideanameEN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PLdate,ProjLib,qedhere
+ color,NameTheorem,CreateTheorem,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,TheDate,ProjLib,qedhere
}
}
\lstnewenvironment{code}%
@@ -99,11 +99,13 @@
%%================================
\begin{document}
-\title{{\normalfont\bfseries\color{maintext}\colorist{}}\\write your articles or books in a colorful way}
+\def\PackageVersion{2022/03/19}
+
+\title{{\normalfont\bfseries\color{main-text}\colorist{}}\\write your articles or books in a colorful way}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\colorist{} 2021/12/16}}
+\thanks{Corresponding to: \texttt{\colorist{} \PackageVersion}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{December 2021, in Paris}
+\date{\TheDate{\PackageVersion}[only-year-month], in Paris}
\maketitle
@@ -114,6 +116,10 @@
\end{abstract}
+\begin{tip}
+ This documentation has not been fully up-to-date with the new \texttt{expl3} version of this class series. Some options or commands introduced here might be obsolete.
+\end{tip}
+
\setcounter{tocdepth}{2}
\tableofcontents
@@ -125,7 +131,7 @@ In order to use the package or classes described here, you need to:
\begin{itemize}
\item install TeX Live or MikTeX of the latest possible version, and make sure that \texttt{colorist} and \texttt{projlib} are correctly installed in your \TeX{} system.
\item download and install the required fonts if needed.
- \item be familiar with the basic usage of \LaTeX{}, and knows how to compile your document with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}.
+ \item be familiar with the basic usage of \LaTeX{}, and know how to compile your document with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}.
\end{itemize}
\LevelOneTitle{Introduction}
@@ -172,7 +178,7 @@ Let's first look at a complete example of \colorart{} (the same works for \lebha
\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
-\date{\PLdate{2022-04-01}}
+\date{\TheDate{2022-04-01}}
\maketitle
@@ -222,7 +228,7 @@ For detailed description of this command and more related commands, please refer
\begin{code}
\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
-\date{\PLdate{2022-04-01}}
+\date{\TheDate{2022-04-01}}
\maketitle
\begin{abstract}
@@ -255,7 +261,7 @@ In addition, you may also write in the \AmS{} fashion, i.e.:
\author{(*\meta{author 2}*)}
\address{(*\meta{address 2}*)}
\email{(*\meta{email 2}*)}
-\date{\PLdate{2022-04-01}}
+\date{\TheDate{2022-04-01}}
\subjclass{*****}
\keywords{(*\meta{keywords}*)}
@@ -359,7 +365,7 @@ There is no much differences with \colorart{}, only that the title and author in
In the next section, we will go through the options available.
-\clearpage
+% \clearpage
\LevelOneTitle{The options}
\colorist{} offers the following options:
@@ -390,17 +396,13 @@ In the next section, we will go through the options available.
\begin{itemize}
\item Use the ``runin'' style for \lstinline|\subsubsection|
\end{itemize}
- \item \texttt{puretext} or \texttt{nothms}
+ \item \texttt{nothms}
\begin{itemize}
\item Pure text mode. Do not load theorem-like environments.
\end{itemize}
- \item \texttt{delaythms}
- \begin{itemize}
- \item Defer the definition of theorem-like environments to the end of the preamble. Use this option if you want the theorem-like environments to be numbered within a custom counter.
- \end{itemize}
\item \texttt{nothmnum}, \texttt{thmnum} or \texttt{thmnum=}\meta{counter}
\begin{itemize}
- \item Theorem-like environments will not be numbered / numbered in order 1, 2, 3... / numbered within \meta{counter}. Here, \meta{counter} should be a built-in counter (such as \texttt{subsection}) or a custom counter defined in the preamble (with the option \texttt{delaythms} enabled). If no option is used, they will be numbered within \texttt{chapter} (book) or \texttt{section} (article).
+ \item Theorem-like environments will not be numbered / numbered in order 1, 2, 3... / numbered within \meta{counter}. If no option is used, they will be numbered within \texttt{chapter} (book) or \texttt{section} (article).
\end{itemize}
\item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
@@ -530,75 +532,10 @@ For aesthetics, adjacent definitions will be connected together automatically:
Second definition.
\end{definition}
-\LevelTwoTitle{Define a new theorem-like environment}
-
-If you need to define a new theorem-like environment, you must first define the name of the environment in the language to use:
-\begin{itemize}
- \item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
-\end{itemize}
-
-For \meta{language name}, please refer to the section on language configuration. When \meta{language name} is not specified, the name will be set for all supported languages. In addition, environments with or without asterisk share the same name, therefore, \lstinline|\NameTheorem{envname*}{...}| has the same effect as \lstinline|\NameTheorem{envname}{...}| .
-
-\medskip
-And then define this environment in one of following five ways:
-\begin{itemize}
- \item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
- \begin{itemize}
- \item Define an unnumbered environment \meta{name of environment}
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}|
- \begin{itemize}
- \item Define a numbered environment \meta{name of environment}, numbered in order 1,2,3,\dots
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}[|\meta{numbered like}\lstinline|]|
- \begin{itemize}
- \item Define a numbered environment \meta{name of environment}, which shares the counter \meta{numbered like}
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}<|\meta{numbered within}\lstinline|>|
- \begin{itemize}
- \item Define a numbered environment \meta{name of environment}, numbered within the counter \meta{numbered within}
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|\\
- \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|
- \begin{itemize}
- \item Identify \meta{name of environment} with \meta{existed environment} or \meta{existed environment}\lstinline|*|.
- \item This method is usually useful in the following two situations:
- \begin{enumerate}
- \item To use a more concise name. For example, with \lstinline|\CreateTheorem{thm}(theorem)|, one can then use the name \texttt{thm} to write theorem.
- \item To remove the numbering of some environments. For example, one can remove the numbering of the \texttt{remark} environment with \lstinline|\CreateTheorem{remark}(remark*)|.
- \end{enumerate}
- \end{itemize}
-\end{itemize}
-
\begin{tip}
- This macro utilizes the feature of \textsf{amsthm} internally, so the traditional \texttt{theoremstyle} is also applicable to it. One only needs declare the style before the relevant definitions.
+ Please refer to the documentation of the package \textsf{create-theorem} to see how to declare new theorem-like environments.
\end{tip}
-\NameTheorem[EN]{proofidea}{Idea}
-\CreateTheorem*{proofidea*}
-\CreateTheorem{proofidea}<subsection>
-
-\bigskip
-Here is an example. The following code:
-
-\begin{code}
-\NameTheorem[EN]{proofidea}{Idea}
-\CreateTheorem*{proofidea*}
-\CreateTheorem{proofidea}<subsection>
-\end{code}
-defines an unnumbered environment \lstinline|proofidea*| and a numbered environment \lstinline|proofidea| (numbered within subsection) respectively. They can be used in English context.
-The effect is as follows:
-
-\vspace{-0.3\baselineskip}
-\begin{proofidea*}
- The \lstinline|proofidea*| environment.
-\end{proofidea*}
-
-\vspace{-\baselineskip}
-\begin{proofidea}
- The \lstinline|proofidea| environment.
-\end{proofidea}
-
\LevelTwoTitle{Draft mark}
You can use \lstinline|\dnf| to mark the unfinished part. For example:
@@ -606,13 +543,6 @@ You can use \lstinline|\dnf| to mark the unfinished part. For example:
\item \lstinline|\dnf| or \lstinline|\dnf<...>|. The effect is: \dnf~ or \dnf<...>. \\The prompt text changes according to the current language. For example, it will be displayed as \UseOtherLanguage{French}{\dnf} in French mode.
\end{itemize}
-Similarly, there is \lstinline|\needgraph| :
-\begin{itemize}
- \item \lstinline|\needgraph| or \lstinline|\needgraph<...>|. The effect is: \needgraph or \needgraph<...>
-\clearpage
- The prompt text changes according to the current language. For example, in French mode, it will be displayed as \UseOtherLanguage{French}{\needgraph}
-\end{itemize}
-
\LevelTwoTitle{Title, abstract and keywords}
\colorart{} has both the features of standard classes and that of the \AmS{} classes.
@@ -664,10 +594,10 @@ The author information can contain multiple groups, written as:
Among them, the mutual order of \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| is not important.
\bigskip
-\clearpage
+% \clearpage
\LevelOneTitle{Known issues}
-\begin{itemize}[itemsep=.6em]
+\begin{itemize}
\item The font settings are still not perfect.
\item The TOC design does not look very nice.
\item Since many features are based on the \ProjLib{} toolkit, \colorist{} (and hence \colorart{}, \lebhart{} and \colorbook{}, \beaulivre{}) inherits all its problems. For details, please refer to the ``Known Issues'' section of the \ProjLib{} documentation.
diff --git a/macros/latex/contrib/colorist/colorist-fancy.sty b/macros/latex/contrib/colorist/colorist-fancy.sty
new file mode 100644
index 0000000000..2161c7065d
--- /dev/null
+++ b/macros/latex/contrib/colorist/colorist-fancy.sty
@@ -0,0 +1,1026 @@
+%%
+%% This is file `colorist/colorist-fancy.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021-2022 by Jinwen XU
+%%
+%% This is part of the colorist class series.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {colorist-fancy}
+ {2022/03/19} {}
+ {The fancy style of colorist}
+
+\@ifpackageloaded { colorist } {}
+ {
+ \msg_new:nnn { \@currname }
+ { colorist-not-loaded }
+ { "#1"~is~an~internal~style~of~"colorist".~To~use~it,~you~must~load~the~package~"colorist"~first. }
+ \msg_warning:nnx { \@currname } { colorist-not-loaded } { \@currname }
+ \endinput
+ }
+
+%%================================
+%% Title fonts
+%%================================
+\RequirePackage { anyfontsize }
+
+\bool_if:NTF \l__colorist_use_boldface_bool
+ {
+ \cs_new:Nn \colorist_bfseries: { \bfseries \colorlet{colorist-temp-color}{.} \color{colorist-temp-color!90!paper} }
+ }
+ {
+ \cs_new:Nn \colorist_bfseries: {}
+ }
+
+\tl_new:N \g_colorist_title_font_common_tl
+
+\tl_new:N \g_colorist_title_font_part_tl
+\tl_new:N \g_colorist_title_font_chapter_tl
+\tl_new:N \g_colorist_title_font_section_tl
+\tl_new:N \g_colorist_title_font_subsection_tl
+\tl_new:N \g_colorist_title_font_subsubsection_tl
+\tl_new:N \g_colorist_title_font_paragraph_tl
+
+\tl_gset:Nn \g_colorist_title_font_common_tl { \sffamily }
+\tl_gset:Nn \g_colorist_title_font_part_tl { \colorist_bfseries: \g_colorist_title_font_common_tl }
+\tl_gset:Nn \g_colorist_title_font_chapter_tl { \colorist_bfseries: \g_colorist_title_font_common_tl }
+\tl_gset:Nn \g_colorist_title_font_section_tl { \colorist_bfseries: \g_colorist_title_font_common_tl }
+\tl_gset:Nn \g_colorist_title_font_subsection_tl { \colorist_bfseries: \g_colorist_title_font_common_tl }
+\tl_gset:Nn \g_colorist_title_font_subsubsection_tl { \colorist_bfseries: \g_colorist_title_font_common_tl }
+\tl_gset:Nn \g_colorist_title_font_paragraph_tl { \colorist_bfseries: \g_colorist_title_font_common_tl }
+
+%%================================
+%% Color
+%%================================
+\definecolor{maintheme}{RGB}{70,130,180}
+\definecolor{forestgreen}{RGB}{21,122,81}
+\definecolor{lightorange}{RGB}{255,185,88}
+
+%%================================
+%% Footer
+%%================================
+\RequirePackage { geometry }
+\RequirePackage { fancyhdr }
+\RequirePackage { extramarks }
+
+\hook_gput_code:nnn { begindocument/before } { colorist }
+ {
+ \fancyhfoffset { 0pt }
+ }
+
+\tl_new:N \l_colorist_leftmark_tl
+\tl_new:N \l_colorist_rightmark_tl
+
+\tl_set:Nn \l_colorist_leftmark_tl
+ {
+ \begin{minipage}[t]{.833\textwidth}
+ \lastleftmark
+ \end{minipage}
+ }
+\tl_set:Nn \l_colorist_rightmark_tl
+ {
+ \begin{minipage}[t]{.833\textwidth}
+ \filleft
+ \lastrightmark
+ \end{minipage}
+ }
+
+\fancypagestyle { fancy }
+ {
+ \fancyhf{}
+ \if@twoside
+ \fancyfoot[RO]{\sffamily\textcolor{main-text!30!paper}{ \small \l_colorist_rightmark_tl }
+ \rlap{\nobreakspace\nobreakspace\nobreakspace\nobreakspace\textcolor{main-text!75!paper}{\textbf{\thepage}}}}
+ \fancyfoot[LE]{\leavevmode\sffamily\llap{\textcolor{main-text!75!paper}{\textbf{\thepage}}
+ \nobreakspace\nobreakspace\nobreakspace\nobreakspace}
+ \textcolor{main-text!30!paper}{ \l_colorist_leftmark_tl }}
+ \else
+ \fancyfoot[R]{\textcolor{main-text!30!paper}{ \l_colorist_rightmark_tl }
+ \rlap{\nobreakspace\nobreakspace\nobreakspace\nobreakspace\textcolor{main-text!75!paper}{\textbf{\thepage}}}}
+ \fi
+ \renewcommand{\headrulewidth}{0pt}
+ }
+\pagestyle{fancy}
+
+\fancypagestyle { plain }
+ {
+ \fancyhf{}
+ \if@twoside
+ \fancyfoot[RO]{\sffamily
+ \nobreakspace\rlap{\nobreakspace\nobreakspace\nobreakspace\nobreakspace\textcolor{main-text!75!paper}{\textbf{\thepage}}}}
+ \fancyfoot[LE]{\leavevmode\sffamily\llap{\textcolor{main-text!75!paper}{\textbf{\thepage}}
+ \nobreakspace\nobreakspace}}
+ \else
+ \fancyfoot[R]{\sffamily
+ \nobreakspace\nobreakspace\nobreakspace\rlap{\textcolor{main-text!75!paper}{\textbf{\thepage}}}}
+ \fi
+ \renewcommand{\headrulewidth}{0pt}
+ }
+
+\bool_if:NTF \l__colorist_is_book_bool
+ {
+ \if@twoside
+ \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{}}
+ \else
+ \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
+ \fi
+ \renewcommand*{\sectionmark}[1]{
+ \markright{\thesection\nobreakspace\nobreakspace#1}}
+ }
+ {
+ \if@twoside
+ \renewcommand*{\sectionmark}[1]{\markboth{\textsc{#1}}{}}
+ \else
+ \renewcommand*{\sectionmark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
+ \fi
+ }
+
+%%================================
+%% Title format
+%%================================
+\RequirePackage [ explicit, newparttoc ] { titlesec }
+\PassOptionsToPackage { normalem } { ulem }
+\RequirePackage { ulem }
+
+\PassOptionsToPackage { many } { tcolorbox }
+\RequirePackage { tcolorbox }
+\bool_if:NT \l__colorist_fast_bool { \tcbstartdraftmode }
+
+\newcommand{\partstring}{\MakeUppercase{{\partname\nobreakspace\protect\thepart}}}
+
+\AddLanguageSetting
+ {
+ \renewcommand{\partstring}{\MakeUppercase{{\partname\nobreakspace\protect\thepart}}}
+ }
+\AddLanguageSetting [ schinese ]
+ {
+ \renewcommand{\partstring}{第 \nobreakspace\thepart\nobreakspace 部分}
+ }
+\AddLanguageSetting [ tchinese ]
+ {
+ \renewcommand{\partstring}{第 \nobreakspace\thepart\nobreakspace 部分}
+ }
+\AddLanguageSetting [ japanese ]
+ {
+ \renewcommand{\partstring}{第 \nobreakspace\thepart\nobreakspace 部}
+ }
+
+\bool_if:NTF \l__colorist_is_book_bool
+ {
+ \setcounter{secnumdepth}{3}
+
+ %% Part
+ \titleclass{\part}{top} % make part like a chapter
+ \titleformat{\part}[display]
+ { \g_colorist_title_font_part_tl \filleft}
+ {
+ \thispagestyle{empty}
+ \begin{tikzpicture}[remember~picture,overlay]
+ \fill[maintheme!10!paper] (current~page.north~west) rectangle (current~page.south~east);
+ \node at ($(current~page.north~west)+(15em,-15em)$) {\normalfont\textcolor{maintheme}{\scalebox{12}{\thepart}}};
+ \end{tikzpicture}
+ }
+ {1em}
+ {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ \titleformat{name=\part,numberless}[display]
+ {% \phantomsection\addcontentsline{toc}{part}{#1}%
+ \g_colorist_title_font_part_tl \filleft}
+ {
+ \thispagestyle{empty}
+ \begin{tikzpicture}[remember~picture,overlay]
+ \fill[maintheme!10!paper] (current~page.north~west) rectangle (current~page.south~east);
+ \node at ($(current~page.north~west)+(15em,-15em)$) {\normalfont\textcolor{maintheme}{\scalebox{12}{$*$}}};
+ \end{tikzpicture}
+ }
+ {1em}
+ {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ \titlespacing*{\part}{0pt}{5em}{6em}
+ %% Text after part
+ \newcommand{\parttext}[1]{
+ \vfill
+ \begin{flushright}
+ \begin{minipage}{0.833\textwidth}
+ \color{main-text!80!paper}\raggedleft#1
+ \end{minipage}
+ \end{flushright}
+ \vfill\vfill
+ \cleardoublepage
+ }
+
+ %% Chapter
+ % Numbered chapter title: \TheChapter{<number>}{<title>}
+ \newcommand{\TheChapter}[2]
+ {
+ \tcbsidebyside[enhanced,sidebyside~adapt=right,sidebyside~align=bottom,
+ colback=paper,frame~hidden,
+ segmentation~code={
+ \filldraw[maintheme] (segmentation.north)
+ -- ($(segmentation.east)-(12pt,0)$)
+ -- ($(segmentation.west)+(12pt,0)$)
+ -- (segmentation.south);}
+ ]{\filleft#2}{\normalfont\textcolor{maintheme}{\scalebox{4}{#1}}}
+ }
+ % Numberless chapter title: \TheChapterSingle{<title>}
+ \newcommand{\TheChapterSingle}[1]
+ {
+ \begin{tcolorbox}[
+ enhanced,
+ width = 0.67\textwidth,
+ colback=paper,frame~hidden,
+ halign=center]
+ #1
+ \vspace{-.6em}
+ \begin{center}
+ \begin{tikzpicture}
+ \filldraw[maintheme] (-4em,0) -- (4em,0) -- (0,-.1em) -- (0,.1em);
+ \end{tikzpicture}
+ \end{center}
+ \end{tcolorbox}
+ }
+
+ \titleformat{name=\chapter}
+ { \g_colorist_title_font_chapter_tl \scshape\huge} % Format
+ {} % Label
+ {0mm} % Sep
+ {\TheChapter{\thechapter}{#1}} % Before-code
+ \titlespacing*{name=\chapter}
+ {0em}{*2}{0em} % {left}{before-sep}{after-sep}
+
+ \titleformat{name=\chapter, numberless}
+ {\filcenter \g_colorist_title_font_chapter_tl \scshape\huge}
+ {}
+ {0mm}
+ {\TheChapterSingle{#1}}
+ \titlespacing*{name=\chapter, numberless}
+ {0em}{*2}{0em}
+
+ %% Section
+ \titleformat{\section}
+ {\color{maintheme} \g_colorist_title_font_section_tl \large}
+ {\thesection}{.75em}{#1}
+
+ %% Subsection
+ \titleformat{\subsection}
+ { \g_colorist_title_font_subsection_tl }{\thesubsection}{.75em}
+ {#1}
+ }
+ {
+ %% Part
+ \titleformat{\part}[display]
+ { \g_colorist_title_font_part_tl \filleft}
+ {\partstring}
+ {.3em}
+ {\fontsize{16}{0}\selectfont\MakeUppercase{#1}}
+ \titleformat{name=\part,numberless}[display]
+ {% \phantomsection\addcontentsline{toc}{part}{#1}
+ \g_colorist_title_font_part_tl \filleft}
+ {\phantom{\MakeUppercase{\partname}}}
+ {.3em}
+ {\fontsize{16}{0}\selectfont\MakeUppercase{#1}}
+ %% Text after part
+ \newcommand{\parttext}[1]
+ {
+ \begin{flushright}
+ \begin{minipage}{0.833\textwidth}
+ \color{main-text!80!paper}\raggedleft#1
+ \end{minipage}
+ \end{flushright}
+ }
+
+ %% Section
+ \titleformat{\section}
+ {\color{maintheme} \g_colorist_title_font_section_tl \large}
+ {\thesection}{.75em}{\scshape #1}
+
+ %% Subsection
+ \titleformat{\subsection}
+ { \g_colorist_title_font_subsection_tl }{\thesubsection}{.75em}
+ {#1}
+ }
+
+%% Subsubsection
+\bool_if:NTF \l__colorist_runin_bool
+ {
+ \titleformat{\subsubsection}[runin]
+ {\color{main-text!70!paper} \g_colorist_title_font_subsubsection_tl }
+ {\thesubsubsection}
+ {.5em}
+ {#1.}
+ [\hspace*{.3em}]
+ }
+ {
+ \titleformat{\subsubsection}
+ {\color{main-text!70!paper} \g_colorist_title_font_subsubsection_tl }
+ {\thesubsubsection}
+ {.5em}
+ {#1}
+ }
+
+%% Paragraph
+\titleformat{\paragraph}[runin]
+ { \g_colorist_title_font_paragraph_tl }{\theparagraph}{1em}{#1}
+
+\titlespacing{\section}{0pt}{\baselineskip}{.6\baselineskip}
+\titlespacing{\subsection}{0pt}{.75\baselineskip}{.4\baselineskip}
+\titlespacing{\subsubsection}{0pt}{.5\baselineskip}{.3\baselineskip}
+
+%%================================
+%% ToC format
+%%================================
+\RequirePackage { titletoc }
+\titlecontents{part}
+ [0em]
+ {\addvspace{1.5pc}\large\filcenter\sffamily \colorist_bfseries: }
+ {\textcolor{maintheme}{\bfseries\thecontentslabel}\nopagebreak\\\nopagebreak\uppercase}
+ {}
+ {} % without page number
+ [\addvspace{.5pc}]
+
+\bool_if:NTF \l__colorist_is_book_bool
+ {
+ \titlecontents{chapter}
+ [2em] % i.e., 0em (part) + 2em
+ {\addvspace{1pc}\normalfont\color{maintheme}\sffamily \colorist_bfseries: }
+ {\contentslabel{2em}}
+ {\scshape\hspace*{-2em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\hspace*{-.25pt}\textcolor{main-text!15!paper}{.}}}\color{maintheme}\contentspage}
+ \titlecontents{section}
+ [4em] % i.e., 2em (chapter) + 2em
+ {\addvspace{.3pc}\normalfont\color{maintheme}\sffamily}
+ {\contentslabel{1.75em}}
+ {\hspace*{-1.75em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{maintheme}\contentspage}
+ \titlecontents{subsection}
+ [7em] % i.e., 4em (section) + 3em
+ {\addvspace{.15pc}\normalfont\sffamily}
+ {\contentslabel{2.75em}}
+ {\hspace*{-2.75em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{main-text!45!paper}\contentspage}
+ \titlecontents{subsubsection}
+ [10em] % i.e., 7em (subsection) + 3em
+ {\normalfont\sffamily}
+ {\contentslabel{3.25em}}
+ {\hspace*{-3.25em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{main-text!45!paper}\contentspage}
+ }
+ {
+ \titlecontents{section}
+ [2em] % i.e., 0em (part) + 2em
+ {\addvspace{.3pc}\normalfont\color{maintheme}\sffamily}
+ {\contentslabel{1.75em}}
+ {\hspace*{-1.75em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{maintheme}\contentspage}
+ \titlecontents{subsection}
+ [4.5em] % i.e., 2em (section) + 2.5em
+ {\addvspace{.15pc}\normalfont\sffamily}
+ {\contentslabel{2.15em}}
+ {\hspace*{-2.15em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{main-text!45!paper}\contentspage}
+ \titlecontents{subsubsection}
+ [7.75em] % i.e., 5em (subsection) + 3.25em
+ {\normalfont\sffamily}
+ {\contentslabel{2.75em}}
+ {\hspace*{-2.75em}}
+ {\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{main-text!45!paper}\contentspage}
+ }
+
+%%================================
+%% Lists
+%%================================
+\RequirePackage { enumitem }
+\setlist{noitemsep}
+\setlist[enumerate]{labelsep=*, leftmargin=*}
+\setlist[enumerate,1]{label=\arabic*$)$,
+ ref = \arabic*$)$}
+\setlist[enumerate,2]{label=\emph{\roman*}$)$,
+ ref = \arabic{enumi}.\emph{\roman*}$)$}
+\setlist[enumerate,3]{label=\emph{\alph*}$)$,
+ ref = \arabic{enumi}.\emph{\roman{enumii}}.\emph{\alph*}$)$}
+\setlist[description]{font=\normalfont\colorist_bfseries:}
+
+\setlist[itemize]{leftmargin=*}
+\AddLanguageSetting { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\bullet$}} }
+\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!55!paper}{---}} }
+\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{--}}
+\setlist[itemize,3]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\texttt{*}}}
+
+%%================================
+%% Blank page
+%%================================
+\newcommand{\blinkpagetext}{This~page~is~intentionally~left~blank}
+\renewcommand{\cleardoublepage}{
+ \relax
+ \clearpage
+ \if@twoside\ifodd\c@page\relax\else
+ \thispagestyle{empty}
+ \hook_gput_next_code:nn { shipout/background }
+ {
+ \put(0.5\paperwidth,-0.5\paperheight){
+ \makebox[0pt]{\large\color{main-text!10!paper}\blinkpagetext}}
+ }
+ \null\newpage\fi\fi
+}
+
+%%================================
+%% Draft mark
+%%================================
+\RequirePackage { projlib-draft }
+
+%%================================
+%% Icons
+%%================================
+\RequirePackage{tikz}
+\newcommand{\ideabulb}[2][0.15]
+ {
+ \scalebox{#1}{
+ \begin{tikzpicture}
+ \filldraw[draw=#2,fill=#2] (0,0) circle [radius=1cm];
+ \filldraw[draw=paper,fill=paper,rounded~corners=0.8pt]
+ [rotate=20] (-0.26,-0.66) rectangle (-0.06,-0.6)
+ [xshift=-0.4mm,yshift=1mm] (-0.26,-0.66) rectangle (0.02,-0.6)
+ [xshift=0.4mm,yshift=1mm] (-0.26,-0.66) rectangle (-0.06,-0.6);
+ \draw[draw=paper,line~width=0.7mm] (-0.18,-0.46)
+ .. controls (-0.18,-0.28) and (-0.28,-0.12) ..(-0.4,0.1)
+ .. controls (-0.55,0.4) and (-0.3,0.64) ..(0,0.64)
+ .. controls (0.3,0.64) and (0.55,0.4) ..(0.4,0.1)
+ .. controls (0.28,-0.12) and (0.18,-0.28) ..(0.18,-0.46);
+ \end{tikzpicture}}
+ }
+
+\newcommand{\questionmark}[2][0.15]
+ {
+ \scalebox{#1}{
+ \begin{tikzpicture}
+ \filldraw[draw=#2,fill=#2] (0,0) circle [radius=1cm];
+ \filldraw[paper,yshift=0.5mm,scale=0.9] (-0.4,0.1) circle [radius=0.77mm];
+ \draw[draw=paper,line~width=1.5mm,yshift=0.5mm,scale=0.9] (-0.4,0.1)
+ .. controls (-0.55,0.4) and (-0.3,0.64) ..(0,0.64)
+ .. controls (0.3,0.64) and (0.55,0.4) ..(0.4,0.1)
+ .. controls (0.28,-0.12) and (0.05,-0.28) ..(0.05,-0.3)
+ .. controls (0,-0.36) and (0.0,-0.45) ..(0.0,-0.5);
+ \fill[fill=paper,rounded~corners=0.6mm]
+ (-0.09,-0.75) rectangle (0.09,-0.53);
+ \end{tikzpicture}}
+ }
+
+%%================================
+%% Theorems
+%%================================
+\RequirePackage { mathtools }
+\RequirePackage { amsthm }
+
+\bool_if:NTF \l__colorist_theorem_in_new_line_bool
+ {
+ \newtheoremstyle{simple}
+ {}{}
+ {\normalfont}{}
+ {\normalfont}{}
+ {\newline}
+ {{\thmname{#1}\nobreakspace\thmnumber{#2}}
+ {\color{main-text!50!paper}\thmnote{\hspace{.4em}\ensuremath{(\text{#3})}}}\smallskip}
+ }
+ {
+ \newtheoremstyle{simple}
+ {}{}
+ {\normalfont}{}
+ {\normalfont}{}
+ {0pt}
+ {{\thmname{#1}\nobreakspace\thmnumber{#2}}
+ {\color{main-text!50!paper}\thmnote{\hspace{.4em}\ensuremath{(\text{#3})}}}\nobreakspace\nobreakspace{\normalfont\textcolor{main-text!27!paper}{---}}\nobreakspace\nobreakspace}
+ }
+
+\renewcommand{\qedsymbol}{
+ \makebox[1em]{\color{main-text!27!paper}\rule[-0.1em]{.95em}{.95em}}}
+\let\qedsymbolOriginal\qedsymbol
+
+\bool_if:NTF \l__colorist_theorem_in_new_line_bool
+ {
+ \newtheoremstyle{basic}
+ {0pt}{0pt}{\normalfont}{0pt}
+ {}{\;}{\newline}
+ {{\thmname{#1}\nobreakspace\thmnumber{\textup{#2}}}
+ \thmnote{\normalfont\sffamily\color{main-text}\nobreakspace(#3)}\smallskip}
+ }
+ {
+ \newtheoremstyle{basic}
+ {0pt}{0pt}{\normalfont}{0pt}
+ {}{\;}{0.25em}
+ {{\thmname{#1}\nobreakspace\thmnumber{\textup{#2}}}
+ \thmnote{\normalfont\sffamily\color{main-text}\nobreakspace(#3)}}
+ }
+
+\theoremstyle{basic}
+
+\newtheoremstyle{emphasis}
+ {0pt}{0pt}{\itshape}{0pt}{}{}{0pt}
+ {\thmnote{\normalfont\sffamily\color{main-text}#3\hspace*{0.5em}}}
+
+\renewenvironment{proof}[1][\proofname]{\par
+ \pushQED{\qed}
+ \normalfont \topsep6\p@\@plus6\p@\relax
+ \trivlist
+ \item[\hskip\labelsep
+ \itshape \sffamily \colorist_bfseries:
+ #1\hspace{.4em}
+ \textcolor{main-text!27!paper}{$|$}]\ignorespaces
+}{%
+ \popQED\endtrivlist\@endpefalse
+}
+
+\bool_if:NTF \l__colorist_fast_bool
+ {
+ \providecommand{\phantomsection}{}
+ \RequirePackage { url }
+ \newcommand{\href}[2]{#2}
+ }
+ {
+ \PassOptionsToPackage { hidelinks,linktoc=all } { hyperref }
+ \RequirePackage { bookmark }
+ \RequirePackage { hyperref }
+ }
+
+
+\PassOptionsToPackage
+ {
+ theorem style = {
+ , remark = emphasis
+ , observation = emphasis
+ }
+ }
+ { projlib-theorem }
+
+\RequirePackage { projlib-theorem }
+
+\SetTheorem { theorem, lemma, proposition, corollary, property, axiom, definition-theorem, definition-proposition }
+ {
+ name style = {
+ heading style = { \color{orange}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ }
+ }
+
+\SetTheorem { definition, assumption, convention, hypothesis, notation }
+ {
+ name style = {
+ heading style = { \color{forestgreen}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ }
+ }
+
+\SetTheorem { fact, example, problem, question, exercise }
+ {
+ name style = {
+ heading style = { \color{main-text}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ }
+ }
+
+\SetTheorem { conjecture }
+ {
+ name style = {
+ heading style = { \color{purple}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ }
+ }
+
+\SetTheorem { definition-proposition }
+ {
+ name = {
+ heading = {
+ , english = \color{forestgreen}Definition\color{main-text}-\color{orange}Proposition
+ , french = \color{forestgreen}Définition\color{main-text}-\color{orange}Proposition
+ , ngerman = \color{forestgreen}Definition\color{main-text}-\color{orange}Proposition
+ , italian = \color{forestgreen}Definizione\color{main-text}-\color{orange}Proposizione
+ , portuguese = \color{forestgreen}Definição\color{main-text}-\color{orange}Proposição
+ , brazilian = \color{forestgreen}Definição\color{main-text}-\color{orange}Proposição
+ , spanish = \color{forestgreen}Definición\color{main-text}-\color{orange}Proposición
+ , schinese = \color{forestgreen}定义\color{main-text}-\color{orange}命题
+ , tchinese = \color{forestgreen}定義\color{main-text}-\color{orange}命題
+ , japanese = \color{forestgreen}定義\color{main-text}-\color{orange}命題
+ , russian = \color{forestgreen}Определение\color{main-text}-\color{orange}Предложение
+ }
+ }
+ }
+
+\SetTheorem { definition-theorem }
+ {
+ name = {
+ heading = {
+ , english = \color{forestgreen}Definition\color{main-text}-\color{orange}Theorem
+ , french = \color{forestgreen}Définition\color{main-text}-\color{orange}Théorème
+ , ngerman = \color{forestgreen}Definition\color{main-text}-\color{orange}Satz
+ , italian = \color{forestgreen}Definizione\color{main-text}-\color{orange}Teorema
+ , portuguese = \color{forestgreen}Definição\color{main-text}-\color{orange}Teorema
+ , brazilian = \color{forestgreen}Definição\color{main-text}-\color{orange}Teorema
+ , spanish = \color{forestgreen}Definición\color{main-text}-\color{orange}Teorema
+ , schinese = \color{forestgreen}定义\color{main-text}-\color{orange}定理
+ , tchinese = \color{forestgreen}定義\color{main-text}-\color{orange}定理
+ , japanese = \color{forestgreen}定義\color{main-text}-\color{orange}定理
+ , russian = \color{forestgreen}Определение\color{main-text}-\color{orange}Теорема
+ }
+ }
+ }
+
+\bool_if:NF \l__projlib_theorem_complexname_bool
+ {
+ \SetTheorem { theorem, lemma, proposition, corollary, property, axiom, definition-theorem, definition-proposition }
+ {
+ name style = {
+ , crefname style = { \color{orange}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , Crefname style = { \color{orange}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , numbering style = { \color{orange}\colorist_bfseries:\g_colorist_title_font_common_tl }
+ }
+ }
+
+ \SetTheorem { definition, assumption, convention, hypothesis, notation }
+ {
+ name style = {
+ , crefname style = { \color{forestgreen}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , Crefname style = { \color{forestgreen}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , numbering style = { \color{forestgreen}\colorist_bfseries:\g_colorist_title_font_common_tl }
+ }
+ }
+
+ \SetTheorem { fact, example, problem, question, exercise }
+ {
+ name style = {
+ , crefname style = { \color{main-text}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , Crefname style = { \color{main-text}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , numbering style = { \color{main-text}\colorist_bfseries:\g_colorist_title_font_common_tl }
+ }
+ }
+
+ \SetTheorem { conjecture }
+ {
+ name style = {
+ , crefname style = { \color{purple}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , Crefname style = { \color{purple}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
+ , numbering style = { \color{purple}\colorist_bfseries:\g_colorist_title_font_common_tl }
+ }
+ }
+
+ \SetTheorem { definition-proposition }
+ {
+ name = {
+ , crefname = {
+ , english = {\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}{\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}
+ , french = [la]{\color{forestgreen}Définition\color{main-text}-\color{orange}Proposition}[les]{\color{forestgreen}Définition\color{main-text}-\color{orange}Proposition}
+ , ngerman = {\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}{\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}
+ , italian = [la]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Proposizione}[le]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Proposizione}
+ , portuguese = [a]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}[as]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}
+ , brazilian = [a]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}[as]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}
+ , spanish = [la]{\color{forestgreen}Definición\color{main-text}-\color{orange}Proposición}[las]{\color{forestgreen}Definición\color{main-text}-\color{orange}Proposición}
+ , schinese = {\color{forestgreen}定义\color{main-text}-\color{orange}命题}{\color{forestgreen}定义\color{main-text}-\color{orange}命题}
+ , tchinese = {\color{forestgreen}定義\color{main-text}-\color{orange}命題}{\color{forestgreen}定義\color{main-text}-\color{orange}命題}
+ , japanese = {\color{forestgreen}定義\color{main-text}-\color{orange}命題}{\color{forestgreen}定義\color{main-text}-\color{orange}命題}
+ , russian = {\color{forestgreen}Определение\color{main-text}-\color{orange}Предложение}{\color{forestgreen}Определение\color{main-text}-\color{orange}Предложение}
+ }
+ , Crefname = {
+ , english = {\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}{\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}
+ , french = [la]{\color{forestgreen}Définition\color{main-text}-\color{orange}Proposition}[les]{\color{forestgreen}Définition\color{main-text}-\color{orange}Proposition}
+ , ngerman = {\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}{\color{forestgreen}Definition\color{main-text}-\color{orange}Proposition}
+ , italian = [la]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Proposizione}[le]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Proposizione}
+ , portuguese = [a]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}[as]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}
+ , brazilian = [a]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}[as]{\color{forestgreen}Definição\color{main-text}-\color{orange}Proposição}
+ , spanish = [la]{\color{forestgreen}Definición\color{main-text}-\color{orange}Proposición}[las]{\color{forestgreen}Definición\color{main-text}-\color{orange}Proposición}
+ , schinese = {\color{forestgreen}定义\color{main-text}-\color{orange}命题}{\color{forestgreen}定义\color{main-text}-\color{orange}命题}
+ , tchinese = {\color{forestgreen}定義\color{main-text}-\color{orange}命題}{\color{forestgreen}定義\color{main-text}-\color{orange}命題}
+ , japanese = {\color{forestgreen}定義\color{main-text}-\color{orange}命題}{\color{forestgreen}定義\color{main-text}-\color{orange}命題}
+ , russian = {\color{forestgreen}Определение\color{main-text}-\color{orange}Предложение}{\color{forestgreen}Определение\color{main-text}-\color{orange}Предложение}
+ }
+ }
+ }
+
+ \SetTheorem { definition-theorem }
+ {
+ name = {
+ , crefname = {
+ , english = {\color{forestgreen}Definition\color{main-text}-\color{orange}Theorem}{\color{forestgreen}Definition\color{main-text}-\color{orange}Theorem}
+ , french = [la]{\color{forestgreen}Définition\color{main-text}-\color{orange}Théorème}[les]{\color{forestgreen}Définition\color{main-text}-\color{orange}Théorème}
+ , ngerman = {\color{forestgreen}Definition\color{main-text}-\color{orange}Satz}{\color{forestgreen}Definition\color{main-text}-\color{orange}Satz}
+ , italian = [la]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Teorema}[le]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Teorema}
+ , portuguese = [a]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}[as]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}
+ , brazilian = [a]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}[as]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}
+ , spanish = [la]{\color{forestgreen}Definición\color{main-text}-\color{orange}Teorema}[las]{\color{forestgreen}Definición\color{main-text}-\color{orange}Teorema}
+ , schinese = {\color{forestgreen}定义\color{main-text}-\color{orange}定理}{\color{forestgreen}定义\color{main-text}-\color{orange}定理}
+ , tchinese = {\color{forestgreen}定義\color{main-text}-\color{orange}定理}{\color{forestgreen}定義\color{main-text}-\color{orange}定理}
+ , japanese = {\color{forestgreen}定義\color{main-text}-\color{orange}定理}{\color{forestgreen}定義\color{main-text}-\color{orange}定理}
+ , russian = {\color{forestgreen}Определение\color{main-text}-\color{orange}Теорема}{\color{forestgreen}Определение\color{main-text}-\color{orange}Теорема}
+ }
+ , Crefname = {
+ , english = {\color{forestgreen}Definition\color{main-text}-\color{orange}Theorem}{\color{forestgreen}Definition\color{main-text}-\color{orange}Theorem}
+ , french = [La]{\color{forestgreen}Définition\color{main-text}-\color{orange}Théorème}[Les]{\color{forestgreen}Définition\color{main-text}-\color{orange}Théorème}
+ , ngerman = {\color{forestgreen}Definition\color{main-text}-\color{orange}Satz}{\color{forestgreen}Definition\color{main-text}-\color{orange}Satz}
+ , italian = [La]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Teorema}[Le]{\color{forestgreen}Definizione\color{main-text}-\color{orange}Teorema}
+ , portuguese = [A]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}[As]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}
+ , brazilian = [A]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}[As]{\color{forestgreen}Definição\color{main-text}-\color{orange}Teorema}
+ , spanish = [La]{\color{forestgreen}Definición\color{main-text}-\color{orange}Teorema}[Las]{\color{forestgreen}Definición\color{main-text}-\color{orange}Teorema}
+ , schinese = {\color{forestgreen}定义\color{main-text}-\color{orange}定理}{\color{forestgreen}定义\color{main-text}-\color{orange}定理}
+ , tchinese = {\color{forestgreen}定義\color{main-text}-\color{orange}定理}{\color{forestgreen}定義\color{main-text}-\color{orange}定理}
+ , japanese = {\color{forestgreen}定義\color{main-text}-\color{orange}定理}{\color{forestgreen}定義\color{main-text}-\color{orange}定理}
+ , russian = {\color{forestgreen}Определение\color{main-text}-\color{orange}Теорема}{\color{forestgreen}Определение\color{main-text}-\color{orange}Теорема}
+ }
+ }
+ }
+ }
+
+\RequirePackage { marginnote }
+\RequirePackage { ifoddpage }
+\newcommand{\mparadjust}[1]{\renewcommand*{\marginnotevadjust}{#1}}
+\hook_gput_code:nnn { begindocument/before } { colorist }
+{
+ %
+}
+\hook_gput_code:nnn { env/remark/begin } { colorist }
+ {
+ \if@twoside\checkoddpage
+ \ifoddpage\reversemarginpar\fi
+ \else
+ \reversemarginpar
+ \fi
+ \mparadjust{-.25em}
+ \marginnote{\ideabulb[0.3]{orange}
+ \bool_if:NTF \l__colorist_is_book_bool
+ {
+ \hspace*{-.2em}
+ }
+ {
+ \hspace*{-.5em}
+ }
+ }
+ \normalmarginpar
+ }
+\hook_gput_code:nnn { env/conjecture/begin } { colorist }
+ {
+ \if@twoside\checkoddpage
+ \ifoddpage\reversemarginpar\fi
+ \else
+ \reversemarginpar
+ \fi
+ \mparadjust{-.25em}
+ \marginnote{\questionmark[0.3]{purple}
+ \bool_if:NTF \l__colorist_is_book_bool
+ {
+ \hspace*{-.2em}
+ }
+ {
+ \hspace*{-.5em}
+ }
+ }
+ \normalmarginpar
+ }
+
+\ExplSyntaxOff
+\RequirePackage{iftex}
+\ifXeTeX
+\def\pgfsys@hboxsynced#1{%
+{%
+ \pgfsys@beginscope%
+ \setbox\pgf@hbox=\hbox{%
+ \hskip\pgf@pt@x%
+ \raise\pgf@pt@y\hbox{%
+ \pgf@pt@x=0pt%
+ \pgf@pt@y=0pt%
+ \special{pdf: content q}%
+ \pgflowlevelsynccm%
+ \pgfsys@invoke{q -1 0 0 -1 0 0 cm}%
+ \special{pdf: content -1 0 0 -1 0 0 cm q}
+ % translate to original coordinate system
+ \pgfsys@invoke{0 J [] 0 d}% reset line cap and dash
+ \wd#1=0pt%
+ \ht#1=0pt%
+ \dp#1=0pt%
+ \box#1%
+ \pgfsys@invoke{n Q Q Q}%
+ }%
+ \hss%
+ }%
+ \wd\pgf@hbox=0pt%
+ \ht\pgf@hbox=0pt%
+ \dp\pgf@hbox=0pt%
+ \pgfsys@hbox\pgf@hbox%
+ \pgfsys@endscope%
+}}
+\fi
+\ExplSyntaxOn
+
+\cs_new_protected:Nn \colorist_add_colorbox:nn
+ % #1 = list of environments
+ % #2 = settings of tcolorbox
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \__colorist_add_colorbox_do:nn { ##1 } { #2 }
+ \__colorist_add_colorbox_do:nn { ##1* } { #2 }
+ }
+ }
+\cs_new_protected:Nn \__colorist_add_colorbox_do:nn
+ % #1 = name of environment
+ % #2 = settings of tcolorbox
+ {
+ \tcolorboxenvironment { #1 } { #2 }
+ }
+
+\colorist_add_colorbox:nn { theorem, lemma, proposition, corollary, property, axiom, definition-proposition, definition-theorem }
+ {
+ enhanced~jigsaw, pad~at~break*=1mm, breakable, lines~before~break=3,
+ left=3.5mm, right=3.5mm,
+ before=\par\medskip\noindent,
+ colback=main-text!3!paper,
+ opacityframe=0.9, colframe=orange, arc=.7mm
+ }
+
+\colorist_add_colorbox:nn { definition, assumption, convention, hypothesis, notation }
+ {
+ enhanced~jigsaw, pad~at~break*=1mm, breakable, lines~before~break=3,
+ left=4mm, right=4mm, top=1mm, bottom=1mm,
+ before=\par\medskip\noindent,
+ colback=lightorange!10!paper, boxrule=0pt, frame~hidden,
+ borderline~west={1.5mm}{0mm}{forestgreen}, arc=.7mm
+ }
+
+\colorist_add_colorbox:nn { fact, example }
+ {
+ enhanced~jigsaw, pad~at~break*=1mm, breakable, lines~before~break=3,
+ colback=main-text!5!paper,
+ before=\par\medskip\noindent,
+ boxrule=0pt, frame~hidden, arc=.7mm
+ }
+
+\colorist_add_colorbox:nn { conjecture }
+ {
+ enhanced~jigsaw, pad~at~break*=1mm, breakable, lines~before~break=3,
+ left=3.5mm, right=3.5mm,
+ before=\par\medskip\noindent,
+ colback=main-text!3!paper,
+ opacityframe=0.7, colframe=purple, arc=.7mm
+ }
+
+\colorist_add_colorbox:nn { problem }
+ {
+ enhanced~jigsaw, pad~at~break*=1mm, breakable, lines~before~break=3,
+ colback=yellow!25!paper,
+ before=\par\medskip\noindent,
+ boxrule=0pt, frame~hidden, arc=.7mm
+ }
+
+\colorist_add_colorbox:nn { question, exercise, remark, observation }
+ {
+ enhanced~jigsaw, pad~at~break*=1mm, breakable, lines~before~break=3,
+ oversize,
+ top=0mm, bottom=0mm,
+ before=\par\medskip\noindent,
+ opacityframe=0, opacityback=0
+ }
+
+\NewDocumentCommand \AfterEnvEnd { +m }
+ { \colorist_after_env_end:nw { #1 } }
+\cs_new_protected:Npn \colorist_after_env_end:nw #1 #2
+ \if@ignore\@ignorefalse\ignorespaces\fi
+ { #2 \if@ignore\@ignorefalse\ignorespaces\fi #1 }
+\NewDocumentCommand \ScanEnv { s m +m +m }
+ {
+ \IfBooleanTF { #1 }
+ { \colorist_scan_env_ignore_par:nTF }
+ { \colorist_scan_env:nTF }
+ { #2 } { #3 } { #4 }
+ }
+\cs_new_protected:Npn \colorist_scan_env:nTF
+ { \__colorist_scan_env:NnTF \c_false_bool }
+\cs_new_protected:Npn \colorist_scan_env_ignore_par:nTF
+ { \__colorist_scan_env:NnTF \c_true_bool }
+\tl_new:N \l__colorist_collected_tl
+\cs_new_protected:Npn \__colorist_scan_env:NnTF #1 #2 #3 #4
+ {
+ \tl_clear:N \l__colorist_collected_tl
+ \peek_analysis_map_inline:n
+ {
+ \tl_put_right:Nn \l__colorist_collected_tl { ##1 }
+ \int_compare:nNnTF { "##3 } = { 0 }
+ {
+ \exp_args:No \token_if_eq_meaning:NNTF { ##1 } \begin
+ { \peek_analysis_map_break:n { \__colorist_chk_env:nTFn { #2 } { #3 } { #4 } } }
+ {
+ \bool_lazy_and:nnF { #1 }
+ { \exp_args:No \token_if_eq_meaning_p:NN { ##1 } \par }
+ { \__colorist_scan_env_end:n { #4 } }
+ }
+ }
+ { \int_compare:nNnF { "##3 } = { 10 } { \__colorist_scan_env_end:n { #4 } } }
+ }
+ }
+\cs_new_protected:Npn \__colorist_scan_env_end:n #1
+ { \peek_analysis_map_break:n { \__colorist_reinsert_tokens:nn { #1 } { } } }
+\cs_new_protected:Npn \__colorist_reinsert_tokens:nn #1 #2
+ {
+ \use:x
+ {
+ \tl_clear:N \exp_not:N \l__colorist_collected_tl
+ \exp_not:n { #1 } \l__colorist_collected_tl #2
+ }
+ }
+\cs_new_protected:Npn \__colorist_chk_env:nTFn #1 #2 #3 #4
+ {
+ \exp_args:Nx \__colorist_reinsert_tokens:nn
+ { \str_if_eq:nnTF { #1 } { #4 } { \exp_not:n { #2 } } { \exp_not:n { #3 } } } { { #4 } }
+ }
+
+\cs_new_protected:Nn \colorist_add_scan_env:n
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \__colorist_add_scan_env_do:n { ##1 }
+ }
+ }
+\cs_new_protected:Nn \__colorist_add_scan_env_do:n
+ {
+ \tl_const:cn { l__colorist_scan_env_ #1 }
+ {
+ \AfterEnvEnd
+ {
+ \ScanEnv* { #1 }
+ { \skip_vertical:n { -0.9\baselineskip } }
+ {
+ \ScanEnv* { #1* }
+ { \skip_vertical:n { -0.9\baselineskip } }
+ {}
+ }
+ }
+ }
+ \hook_gput_code:nnn { env/#1/end } { colorist } { \tl_use:c { l__colorist_scan_env_ #1 } }
+ \hook_gput_code:nnn { env/#1*/end } { colorist } { \tl_use:c { l__colorist_scan_env_ #1 } }
+ }
+
+\colorist_add_scan_env:n { definition, assumption, convention, hypothesis, notation }
+
+\theoremstyle{simple}
+
+\bool_if:NF \l__colorist_is_book_bool {
+
+%%================================
+%% Title block style
+%%================================
+\renewcommand{\@maketitle}{
+\begin{center}
+ \color{maintheme}
+ {\Large\sffamily\scshape \colorist_bfseries: \@title}\\\bigskip
+ \color{main-text!80!paper}
+ {\scshape\@author}\par\smallskip
+ {\@date}
+\end{center}
+\ifx\@date\@empty\bigskip\fi
+\medskip
+}
+
+\hook_gput_code:nnn { cmd/maketitle/after } { colorist } { \thispagestyle{fancy} }
+
+%%================================
+%% Abstract style
+%%================================
+\renewenvironment{abstract}
+{\small{\centerline{\textsc{ \colorist_bfseries: \sffamily\abstractname}}\vspace{-0.3\baselineskip}}
+ \color{main-text!80!paper}\begin{quotation}}
+{\end{quotation}\medskip}
+
+%%================================
+%% Keyword environment
+%%================================
+\DefineMultilingualText { \keywordname }
+ {
+ EN = Keywords ,
+ FR = Mots~clés ,
+ DE = Schlüsselwörter ,
+ IT = Parole~chiave ,
+ PT = Palavras~chave ,
+ BR = Palavras~chave ,
+ ES = Palabras~clave ,
+ CN = 关键词 ,
+ TC = 關鍵詞 ,
+ JP = キーワード ,
+ RU = Ключевые~слова ,
+ }
+
+\newenvironment{keyword}
+{\small\centerline{{ \colorist_bfseries: \keywordname}}\vspace{-0.3\baselineskip}
+ \color{main-text!80!paper}\begin{center}}
+{\end{center}\medskip}
+
+%%================================
+%% Simulate features of amsart
+%%================================
+\PassOptionsToPackage { amsfashion } { projlib-author }
+\RequirePackage { projlib-author }
+
+}
+
+\endinput
+%%
+%% End of file `colorist/colorist-fancy.sty'.
diff --git a/macros/latex/contrib/colorist/colorist.sty b/macros/latex/contrib/colorist/colorist.sty
index fa30bf3aa0..6da2938455 100644
--- a/macros/latex/contrib/colorist/colorist.sty
+++ b/macros/latex/contrib/colorist/colorist.sty
@@ -2,7 +2,7 @@
%% This is file `colorist/colorist.sty',
%% generated with the docstrip utility.
-%% Copyright (C) 2021 by Jinwen XU
+%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
%%
@@ -16,1484 +16,76 @@
%% 2005/12/01 or later.
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\ProvidesPackage{colorist}
- [2021/12/16 A colorful style for articles and books]
-\RequirePackage{kvoptions}
-\RequirePackage{etoolbox}
-\SetupKeyvalOptions{%
- family = @colorist,
- prefix = @colorist@
-}
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{puretext}
-\DeclareBoolOption[false]{nothms}
-\DeclareBoolOption[false]{delaythms}
-\DeclareBoolOption[false]{nothmnum}
-\DeclareStringOption{thmnum}[colorist@thmnum@default]
-\DeclareBoolOption[true]{regionalref}
-\DeclareBoolOption[false]{originalref}
-\DeclareBoolOption[false]{allowbf}
-\DeclareBoolOption[false]{runin}
-\ProcessKeyvalOptions*\relax
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {colorist}
+ {2022/03/19} {}
+ {A colorful style for articles and books}
-\if@colorist@originalref
- \@colorist@regionalreffalse
-\fi
-\if@colorist@draft
- \@colorist@fasttrue
-\fi
-\if@colorist@puretext
- \@colorist@nothmstrue
-\fi
-
-\if@colorist@fast
- \PassOptionsToPackage{fast}{PJLdraft}
- \PassOptionsToPackage{fast}{PJLthm}
-\fi
-\expandafter\ifstrempty\expandafter{\@colorist@thmnum}{}{
- \expandafter\ifstrequal\expandafter{\@colorist@thmnum}{colorist@thmnum@default}{
- \PassOptionsToPackage{thmnum}{PJLthm}
- }{
- \PassOptionsToPackage{thmnum=\@colorist@thmnum}{PJLthm}
- }
-}
-\if@colorist@regionalref\else
- \PassOptionsToPackage{originalref}{PJLthm}
-\fi
-
-\if@colorist@allowbf
- \newcommand{\conditionalbfseries}{\bfseries\colorlet{PJLtempcolor}{.}\color{PJLtempcolor!90!paper}}
-\else
- \newcommand{\conditionalbfseries}{}
-\fi
-
-\newif\ifIsBook
-\ifdefined\c@chapter\IsBooktrue\else\IsBookfalse\fi
-
-\let\colorist@sffamily\sffamily
-\let\colorist@scshape\scshape
-\let\colorist@textsc\textsc
-
-%%================================
-%% Title fonts
-%%================================
-\RequirePackage{anyfontsize}
-
-\newcommand{\partfont}{\conditionalbfseries\colorist@sffamily}
-\newcommand{\chapfont}{\conditionalbfseries\colorist@sffamily\colorist@scshape}
-\newcommand{\secfont}{\conditionalbfseries\colorist@sffamily}
-\newcommand{\subsecfont}{\conditionalbfseries\colorist@sffamily}
-\newcommand{\subsubsecfont}{\conditionalbfseries\colorist@sffamily}
-
-%%================================
-%% Paper configuration
-%%================================
-\RequirePackage{PJLpaper}
-
-%%================================
-%% Color
-%%================================
-\definecolor{maintheme}{RGB}{70,130,180}
-\definecolor{forestgreen}{RGB}{21,122,81}
-\definecolor{lightorange}{RGB}{255,185,88}
-
-%%================================
-%% Footer
-%%================================
-\RequirePackage{geometry}
-\RequirePackage{fancyhdr}
-\RequirePackage{extramarks}
-
-\AtEndPreamble{\fancyhfoffset{0pt}}
-
-\fancypagestyle{fancy}{
- \fancyhf{}
- \if@twoside
- \fancyfoot[RO]{\sffamily\textcolor{maintext!30!paper}{\small\lastrightmark}%
- \rlap{~~~~\textcolor{maintext!75!paper}{\textbf{\thepage}}}}
- \fancyfoot[LE]{\leavevmode\sffamily\llap{\textcolor{maintext!75!paper}{\textbf{\thepage}}%
- ~~~~}%
- \textcolor{maintext!30!paper}{\small\lastleftmark}}
- \else
- \fancyfoot[R]{\sffamily\textcolor{maintext!30!paper}{\small\lastrightmark}%
- \rlap{~~~~\textcolor{maintext!75!paper}{\textbf{\thepage}}}}
- \fi
- \renewcommand{\headrulewidth}{0pt}
-}
-\pagestyle{fancy}
-
-\fancypagestyle{plain}{
- \fancyhf{}
- \if@twoside
- \fancyfoot[RO]{%
- \sffamily~\rlap{~~~~\textcolor{maintext!75!paper}{\textbf{\thepage}}}}
- \fancyfoot[LE]{\leavevmode\sffamily\llap{\textcolor{maintext!75!paper}{\textbf{\thepage}}%
- ~~~}}
- \else
- \fancyfoot[R]{%
- ~\rlap{~~~~\textcolor{maintext!75!paper}{\textbf{\thepage}}}}
- \fi
- \renewcommand{\headrulewidth}{0pt}
-}
-
-\ifbool{IsBook}{
- \if@twoside
- \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{}}
- \else
- \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
- \fi
- \renewcommand*{\sectionmark}[1]{%
- \markright{\thesection~~#1}}
-}{
- \if@twoside
- \renewcommand*{\sectionmark}[1]{\markboth{\textsc{#1}}{}}
- \else
- \renewcommand*{\sectionmark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
- \fi
-}
-%%================================
-%% Languages and line spacing
-%%================================
-\RequirePackage{PJLlang}
-\PJLsetlinespacing{\setstretch{1.07}}
-\PJLsetCJKlinespacing{\onehalfspacing}
-\raggedbottom
-
-%%================================
-%% Title format
-%%================================
-\RequirePackage[explicit,newparttoc]{titlesec}
-\PassOptionsToPackage{normalem}{ulem}
-\RequirePackage{ulem}
-
-\newcommand{\partstring}{\MakeUppercase{{\partname~\protect\thepart}}}
-\gappto{\PJLlang@langconfig@common}{%
-\renewcommand{\partstring}{\MakeUppercase{{\partname~\protect\thepart}}}%
-}
-\gappto{\PJLlang@langconfig@CN}{%
-\renewcommand{\partstring}{第~\thepart~部分}%
-}
-\gappto{\PJLlang@langconfig@TC}{%
-\renewcommand{\partstring}{第~\thepart~部分}%
-}
-\gappto{\PJLlang@langconfig@JP}{%
-\renewcommand{\partstring}{第~\thepart~部}%
-}
-
-\ifbool{IsBook}{
- %% Part
- \titleclass{\part}{top} % make part like a chapter
- \titleformat{\part}[display]
- {\partfont\filleft}
- {%
- \thispagestyle{empty}%
- \begin{tikzpicture}[remember picture,overlay]
- \fill[maintheme!10!paper] (current page.north west) rectangle (current page.south east);
- \node at ($(current page.north west)+(15em,-15em)$) {\normalfont\textcolor{maintheme}{\scalebox{12}{\thepart}}};
- \end{tikzpicture}%
- }
- {1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
- \titleformat{name=\part,numberless}[display]
- {% \phantomsection\addcontentsline{toc}{part}{#1}%
- \partfont\filleft}
- {%
- \thispagestyle{empty}%
- \begin{tikzpicture}[remember picture,overlay]
- \fill[maintheme!10!paper] (current page.north west) rectangle (current page.south east);
- \node at ($(current page.north west)+(15em,-15em)$) {\normalfont\textcolor{maintheme}{\scalebox{12}{$*$}}};
- \end{tikzpicture}%
- }
- {1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
- \titlespacing*{\part}{0pt}{5em}{6em}
- %% Text after part
- \newcommand{\parttext}[1]{%
- \vfill%
- \begin{flushright}%
- \begin{minipage}{0.833\textwidth}%
- \color{maintext!80!paper}\raggedleft#1%
- \end{minipage}%
- \end{flushright}%
- \vfill\vfill%
- \cleardoublepage%
- }
-
- %% Chapter
- \newcommand{\TheChapter}[2]{%
- \tcbsidebyside[enhanced,sidebyside adapt=right,sidebyside align=bottom,
- colback=paper,frame hidden,
- segmentation code={
- \filldraw[maintheme] (segmentation.north)
- -- ($(segmentation.east)-(12pt,0)$)
- -- ($(segmentation.west)+(12pt,0)$)
- -- (segmentation.south);}
- ]{\filleft#2}{\normalfont\textcolor{maintheme}{\scalebox{4}{#1}}}
- }
-
- \newcommand{\TheChapterSingle}[1]{%
- \begin{tcolorbox}[
- enhanced,
- width = 0.67\textwidth,
- colback=paper,frame hidden,
- halign=center]
- #1
- \vspace{-.6em}
- \begin{center}
- \begin{tikzpicture}
- \filldraw[maintheme] (-4em,0) -- (4em,0) -- (0,-.1em) -- (0,.1em);
- \end{tikzpicture}
- \end{center}
- \end{tcolorbox}
- }
-
- \titleformat{name=\chapter}
- {\chapfont\huge} % Format
- {} % Label
- {0mm} % Sep
- {\TheChapter{\thechapter}{#1}} % Before-code
- \titlespacing*{name=\chapter}
- {0em}{*2}{0em} % {left}{before-sep}{after-sep}
-
- \titleformat{name=\chapter, numberless}
- {\filcenter\chapfont\huge}
- {}
- {0mm}
- {\TheChapterSingle{#1}}
- \titlespacing*{name=\chapter, numberless}
- {0em}{*2}{0em}
-
- %% Section
- \titleformat{\section}
- {\color{maintheme}\secfont\large}
- {\thesection}{.75em}{#1}
- % [{\titlerule[.75pt]}]
-
- %% Subsection
- \titleformat{\subsection}
- {\subsecfont}{\thesubsection}{.75em}
- {#1}
-}{
- %% Part
- \titleformat{\part}[display]
- {%
- \partfont\filleft}
- {\partstring}
- {.3em}
- {\fontsize{16}{0}\selectfont\MakeUppercase{#1}}
- \titleformat{name=\part,numberless}[display]
- {% \phantomsection\addcontentsline{toc}{part}{#1}%
- \partfont\filleft}
- {\phantom{\MakeUppercase{\partname}}}
- {.3em}
- {\fontsize{16}{0}\selectfont\MakeUppercase{#1}}
- %% Text after part
- \newcommand{\parttext}[1]{%
- \begin{flushright}%
- \begin{minipage}{0.833\textwidth}%
- \color{maintext!80!paper}\raggedleft#1%
- \end{minipage}%
- \end{flushright}%
- }
-
- %% Section
- \titleformat{\section}
- {\color{maintheme}\secfont\large}
- {\thesection}{.75em}{\scshape #1}
- % [{\titlerule[.75pt]}]
-
- %% Subsection
- \titleformat{\subsection}
- {\subsecfont}{\thesubsection}{.75em}
- {\scshape #1}
-}
-
-%% Subsubsection
-\if@colorist@runin
-\titleformat{\subsubsection}[runin]
- {\color{maintext!70!paper}\subsubsecfont}{\thesubsubsection}{.5em}
- {#1.}[\hspace*{.3em}]
-\else
-\titleformat{\subsubsection}
- {\color{maintext!70!paper}\subsubsecfont}{\thesubsubsection}{.5em}
- {#1}
-\fi
-
-%% Paragraph
-\titleformat{\paragraph}[runin]
- {\conditionalbfseries\scshape}{\theparagraph}{1em}{#1}
-
-\titlespacing{\section}{0pt}{\baselineskip}{.6\baselineskip}
-\titlespacing{\subsection}{0pt}{.75\baselineskip}{.4\baselineskip}
-\titlespacing{\subsubsection}{0pt}{.6\baselineskip}{.3\baselineskip}
-
-%%================================
-%% TOC format
-%%================================
-\RequirePackage{titletoc}
-\titlecontents{part}
- [0em]
- {\addvspace{1.5pc}\large\filcenter\colorist@sffamily\conditionalbfseries}
- {\textcolor{maintheme}{\bfseries\thecontentslabel}\nopagebreak\\\nopagebreak\uppercase}
- {}
- {} % without page number
- [\addvspace{.5pc}]
-\ifbool{IsBook}{
- \titlecontents{chapter}
- [2em] % i.e., 0em (part) + 2em
- {\addvspace{1pc}\normalfont\color{maintheme}\colorist@sffamily\conditionalbfseries}
- {\contentslabel{2em}}
- {\colorist@scshape\hspace*{-2em}}
- {\titlerule*[10pt]{\parbox{2pt}{\hspace*{-.25pt}\textcolor{maintext!15!paper}{.}}}\color{maintheme}\contentspage}
- \titlecontents{section}
- [4em] % i.e., 2em (chapter) + 2em
- {\addvspace{.3pc}\normalfont\color{maintheme}\colorist@sffamily}
- {\contentslabel{1.75em}}
- {\hspace*{-1.75em}}
- {\titlerule*[10pt]{\parbox{2pt}{\textcolor{maintext!15!paper}{.}}}\color{maintheme}\contentspage}
- \titlecontents{subsection}
- [7em] % i.e., 4em (section) + 3em
- {\addvspace{.15pc}\normalfont\colorist@sffamily}
- {\contentslabel{2.75em}}
- {\hspace*{-2.75em}}
- {\titlerule*[10pt]{\parbox{2pt}{\textcolor{maintext!15!paper}{.}}}\color{maintext!45!paper}\contentspage}
- \titlecontents{subsubsection}
- [10em] % i.e., 7em (subsection) + 3em
- {\normalfont\colorist@sffamily}
- {\contentslabel{3.25em}}
- {\hspace*{-3.25em}}
- {\titlerule*[10pt]{\parbox{2pt}{\textcolor{maintext!15!paper}{.}}}\color{maintext!45!paper}\contentspage}
-}{
- \titlecontents{section}
- [2em] % i.e., 0em (part) + 2em
- {\addvspace{.3pc}\normalfont\color{maintheme}\colorist@sffamily}
- {\contentslabel{1.75em}}
- {\hspace*{-1.75em}}
- {\titlerule*[10pt]{\parbox{2pt}{\textcolor{maintext!15!paper}{.}}}\color{maintheme}\contentspage}
- \titlecontents{subsection}
- [4.5em] % i.e., 2em (section) + 2.5em
- {\addvspace{.15pc}\normalfont\colorist@sffamily}
- {\contentslabel{2.15em}}
- {\hspace*{-2.15em}}
- {\titlerule*[10pt]{\parbox{2pt}{\textcolor{maintext!15!paper}{.}}}\color{maintext!45!paper}\contentspage}
- \titlecontents{subsubsection}
- [7.75em] % i.e., 5em (subsection) + 3.25em
- {\normalfont\colorist@sffamily}
- {\contentslabel{2.75em}}
- {\hspace*{-2.75em}}
- {\titlerule*[10pt]{\parbox{2pt}{\textcolor{maintext!15!paper}{.}}}\color{maintext!45!paper}\contentspage}
-}
-
-%%================================
-%% Lists
-%%================================
-\RequirePackage{enumitem}
-\setlist{noitemsep}
-\setlist[enumerate]{labelsep=*, leftmargin=*}
-\setlist[enumerate,1]{label=\arabic*$)$,
- ref = \arabic*$)$}
-\setlist[enumerate,2]{label=\emph{\roman*}$)$,
- ref = \arabic{enumi}.\emph{\roman*}$)$}
-\setlist[enumerate,3]{label=\emph{\alph*}$)$,
- ref = \arabic{enumi}.\emph{\roman{enumii}}.\emph{\alph*}$)$}
-\setlist[description]{font=\normalfont\conditionalbfseries}
-
-\setlist[itemize]{leftmargin=*}
-\gappto{\PJLlang@langconfig@common}{\setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\bullet$}}}
-\gappto{\PJLlang@langconfig@FR}{\setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!50!paper}{---}}}
-\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{--}}
-\setlist[itemize,3]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\texttt{*}}}
-
-%%================================
-%% Blank page
-%%================================
-\newcommand{\blinkpagetext}{This page is intentionally left blank}
-\renewcommand{\cleardoublepage}{\relax
- \clearpage
- \if@twoside\ifodd\c@page\relax\else
- \thispagestyle{empty}
- \AddToHookNext{shipout/background}
- {%
- \put(0.5\paperwidth,-0.5\paperheight){%
- \makebox[0pt]{\large\color{maintext!10!paper}\blinkpagetext}}}
- \null\newpage\fi\fi}
-
-%%================================
-%% Draft mark
-%%================================
-\RequirePackage{PJLdraft}
-
-%%================================
-%% Icons
-%%================================
-\RequirePackage{tikz}
-\newcommand{\ideabulb}[2][0.15]{%
- \scalebox{#1}{%
- \begin{tikzpicture}
- \filldraw[draw=#2,fill=#2] (0,0) circle [radius=1cm];
- \filldraw[draw=paper,fill=paper,rounded corners=0.8pt]
- [rotate=20] (-0.26,-0.66) rectangle (-0.06,-0.6)
- [xshift=-0.4mm,yshift=1mm] (-0.26,-0.66) rectangle (0.02,-0.6)
- [xshift=0.4mm,yshift=1mm] (-0.26,-0.66) rectangle (-0.06,-0.6);
- \draw[draw=paper,line width=0.7mm] (-0.18,-0.46)
- .. controls (-0.18,-0.28) and (-0.28,-0.12) ..(-0.4,0.1)
- .. controls (-0.55,0.4) and (-0.3,0.64) ..(0,0.64)
- .. controls (0.3,0.64) and (0.55,0.4) ..(0.4,0.1)
- .. controls (0.28,-0.12) and (0.18,-0.28) ..(0.18,-0.46);
- \end{tikzpicture}}}
-
-\newcommand{\questionmark}[2][0.15]{%
- \scalebox{#1}{%
- \begin{tikzpicture}
- \filldraw[draw=#2,fill=#2] (0,0) circle [radius=1cm];
- \filldraw[paper,yshift=0.5mm,scale=0.9] (-0.4,0.1) circle [radius=0.77mm];
- \draw[draw=paper,line width=1.5mm,yshift=0.5mm,scale=0.9] (-0.4,0.1)
- .. controls (-0.55,0.4) and (-0.3,0.64) ..(0,0.64)
- .. controls (0.3,0.64) and (0.55,0.4) ..(0.4,0.1)
- .. controls (0.28,-0.12) and (0.05,-0.28) ..(0.05,-0.3)
- .. controls (0,-0.36) and (0.0,-0.45) ..(0.0,-0.5);
- \fill[fill=paper,rounded corners=0.6mm]
- (-0.09,-0.75) rectangle (0.09,-0.53);
- \end{tikzpicture}}}
-
-%%================================
-%% Theorems
-%%================================
-\RequirePackage{mathtools}
-\RequirePackage{amsthm}
-\def\simpleqedsymbol{%
- \makebox[1em]{\rlap{\textcolor{maintext!12!paper}{\rule[-0.1em]{.95em}{.95em}}}{\kern.07em\raisebox{.07em}{\textcolor{paper}{\rule[-0.1em]{.81em}{.81em}}}\kern.07em}}}
-\newtheoremstyle{simple}%
- {}{}%
- {\normalfont}{}%
- {\normalfont}{}%
- {0pt}%
- {\global\let\qedsymbol\simpleqedsymbol%
- {\conditionalbfseries\thmname{#1}\thmnumber{ #2}}\hspace{.4em}%
- \textcolor{maintext!27!paper}{$|$}\hspace{.4em}%
- \color{maintext!50!paper}\thmnote{\ensuremath{(\text{#3})}~~}%
- \pushQED{\qed}%
- }
-\def\@endtheorem{\global\let\qedsymbol\simpleqedsymbol%
- \popQED\endtrivlist\@endpefalse
- \global\let\qedsymbol\qedsymbolOriginal}
-
-\renewcommand{\qedsymbol}{%
- \makebox[1em]{\color{maintext!27!paper}\rule[-0.1em]{.95em}{.95em}}}
-\let\qedsymbolOriginal\qedsymbol
-
-\newtheoremstyle{basic}
- {0pt}{0pt}{\normalfont}{0pt}
- {}{\;}{0.25em}
- {{\thmname{#1}~\thmnumber{\textup{#2}}}
- \thmnote{\normalfont\colorist@sffamily\color{maintext}~(#3)}}
-
-\newtheoremstyle{emphasis}
- {0pt}{0pt}{\itshape}{0pt}{}{}{0pt}
- {\thmnote{\normalfont\colorist@sffamily\color{maintext}#3\hspace*{0.5em}}}
-
-\if@colorist@fast
- \providecommand{\phantomsection}{}
- \RequirePackage{url}
- \newcommand{\href}[2]{#2}
-\else
- \PassOptionsToPackage{hidelinks,linktoc=all}{hyperref}
- \RequirePackage{bookmark}
- \RequirePackage{hyperref}
-\fi
-
-\PassOptionsToPackage{nothms,simplename}{PJLthm}
-\RequirePackage{PJLthm}
-
-\pretocmd{\theoremnameEN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanameEN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnameEN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynameEN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynameEN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenameEN}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnameEN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnameEN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnameEN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnameEN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnameEN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnameEN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnameEN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameEN\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definition}-\propositionnameEN}
-\expandafter\def\csname definition-theoremnameEN\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definition}-\theoremnameEN}
-
-\pretocmd{\theoremnameFR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanameFR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnameFR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynameFR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynameFR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenameFR}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnameFR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnameFR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnameFR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnameFR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnameFR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnameFR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnameFR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameFR\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Définition}-\propositionnameFR}
-\expandafter\def\csname definition-theoremnameFR\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Définition}-\theoremnameFR}
-
-\pretocmd{\theoremnameDE}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanameDE}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnameDE}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynameDE}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynameDE}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenameDE}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnameDE}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnameDE}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnameDE}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnameDE}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnameDE}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnameDE}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnameDE}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameDE\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definition}-\propositionnameDE}
-\expandafter\def\csname definition-theoremnameDE\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definition}-\theoremnameDE}
-
-\pretocmd{\theoremnameIT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanameIT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnameIT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynameIT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynameIT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenameIT}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnameIT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnameIT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnameIT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnameIT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnameIT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnameIT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnameIT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameIT\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definizione}-\propositionnameIT}
-\expandafter\def\csname definition-theoremnameIT\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definizione}-\theoremnameIT}
-
-\pretocmd{\theoremnamePT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanamePT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnamePT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynamePT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynamePT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenamePT}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnamePT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnamePT}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnamePT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnamePT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnamePT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnamePT}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnamePT}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnamePT\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definição}-\propositionnamePT}
-\expandafter\def\csname definition-theoremnamePT\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definição}-\theoremnamePT}
-
-\pretocmd{\theoremnameBR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanameBR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnameBR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynameBR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynameBR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenameBR}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnameBR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnameBR}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnameBR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnameBR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnameBR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnameBR}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnameBR}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameBR\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definição}-\propositionnameBR}
-\expandafter\def\csname definition-theoremnameBR\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definição}-\theoremnameBR}
-
-\pretocmd{\theoremnameES}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\lemmanameES}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propositionnameES}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\corollarynameES}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\propertynameES}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\factnameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conjecturenameES}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\definitionnameES}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\axiomnameES}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\assumptionnameES}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\conventionnameES}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\hypothesisnameES}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\notationnameES}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\examplenameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\problemnameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\questionnameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\exercisenameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\remarknameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\pretocmd{\observationnameES}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries\colorist@textsc}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameES\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definição}-\propositionnameES}
-\expandafter\def\csname definition-theoremnameES\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries\colorist@textsc{Definição}-\theoremnameES}
-
-\pretocmd{\theoremnameCN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\lemmanameCN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propositionnameCN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\corollarynameCN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propertynameCN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\factnameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conjecturenameCN}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\definitionnameCN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\axiomnameCN}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\assumptionnameCN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conventionnameCN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\hypothesisnameCN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\notationnameCN}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\examplenameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\problemnameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\questionnameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\exercisenameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\remarknameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\observationnameCN}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameCN\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{定义}-\propositionnameCN}
-\expandafter\def\csname definition-theoremnameCN\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{定义}-\theoremnameCN}
-
-\pretocmd{\theoremnameTC}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\lemmanameTC}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propositionnameTC}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\corollarynameTC}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propertynameTC}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\factnameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conjecturenameTC}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\definitionnameTC}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\axiomnameTC}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\assumptionnameTC}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conventionnameTC}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\hypothesisnameTC}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\notationnameTC}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\examplenameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\problemnameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\questionnameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\exercisenameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\remarknameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\observationnameTC}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameTC\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{定義}-\propositionnameTC}
-\expandafter\def\csname definition-theoremnameTC\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{定義}-\theoremnameTC}
-
-\pretocmd{\theoremnameJP}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\lemmanameJP}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propositionnameJP}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\corollarynameJP}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propertynameJP}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\factnameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conjecturenameJP}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\definitionnameJP}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\axiomnameJP}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\assumptionnameJP}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conventionnameJP}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\hypothesisnameJP}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\notationnameJP}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\examplenameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\problemnameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\questionnameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\exercisenameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\remarknameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\observationnameJP}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameJP\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{定義}-\propositionnameJP}
-\expandafter\def\csname definition-theoremnameJP\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{定義}-\theoremnameJP}
-
-\pretocmd{\theoremnameRU}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\lemmanameRU}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propositionnameRU}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\corollarynameRU}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\propertynameRU}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\factnameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conjecturenameRU}{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\definitionnameRU}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\axiomnameRU}{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\assumptionnameRU}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\conventionnameRU}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\hypothesisnameRU}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\notationnameRU}{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\examplenameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\problemnameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\questionnameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\exercisenameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\remarknameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\pretocmd{\observationnameRU}{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries}{}{\FAIL}
-\expandafter\def\csname definition-propositionnameRU\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{Определение}-\propositionnameRU}
-\expandafter\def\csname definition-theoremnameRU\endcsname{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries{Определение}-\theoremnameRU}
-
-\def\colorist@definethms{
-\if@colorist@nothms\else
-\theoremstyle{basic}
-\if@colorist@nothmnum
-\CreateTheorem*{theorem}
-\CreateTheorem*{lemma}
-\CreateTheorem*{proposition}
-\CreateTheorem*{corollary}
-\CreateTheorem*{definition-proposition}
-\CreateTheorem*{definition-theorem}
-\CreateTheorem*{property}
-\CreateTheorem*{fact}
-\CreateTheorem*{conjecture}
-\else
-\CreateTheorem@thmnum{theorem}
-\CreateTheorem{lemma}[theorem]
-\CreateTheorem{proposition}[theorem]
-\CreateTheorem{corollary}[theorem]
-\CreateTheorem{definition-proposition}[theorem]
-\CreateTheorem{definition-theorem}[theorem]
-\CreateTheorem{property}[theorem]
-\CreateTheorem{fact}[theorem]
-\CreateTheorem{conjecture}[theorem]
-\fi
-\CreateTheorem*{theorem*}
-\CreateTheorem*{lemma*}
-\CreateTheorem*{proposition*}
-\CreateTheorem*{corollary*}
-\CreateTheorem*{definition-proposition*}
-\CreateTheorem*{definition-theorem*}
-\CreateTheorem*{property*}
-\CreateTheorem*{fact*}
-\CreateTheorem*{conjecture*}
-\if@colorist@nothmnum
-\CreateTheorem*{definition}
-\CreateTheorem*{axiom}
-\CreateTheorem*{assumption}
-\CreateTheorem*{convention}
-\CreateTheorem*{hypothesis}
-\CreateTheorem*{notation}
-\CreateTheorem*{example}
-\CreateTheorem*{problem}
-\CreateTheorem*{question}
-\CreateTheorem*{exercise}
-\else
-\CreateTheorem{definition}[theorem]
-\CreateTheorem{axiom}[theorem]
-\CreateTheorem{assumption}[theorem]
-\CreateTheorem{convention}[theorem]
-\CreateTheorem{hypothesis}[theorem]
-\CreateTheorem{notation}[theorem]
-\CreateTheorem{example}[theorem]
-\CreateTheorem{problem}[theorem]
-\CreateTheorem{question}[theorem]
-\CreateTheorem{exercise}[theorem]
-\fi
-\CreateTheorem*{definition*}
-\CreateTheorem*{axiom*}
-\CreateTheorem*{assumption*}
-\CreateTheorem*{convention*}
-\CreateTheorem*{hypothesis*}
-\CreateTheorem*{notation*}
-\CreateTheorem*{example*}
-\CreateTheorem*{problem*}
-\CreateTheorem*{question*}
-\CreateTheorem*{exercise*}
-
-\theoremstyle{emphasis}
-\if@colorist@nothmnum
-\CreateTheorem*{remark}
-\CreateTheorem*{observation}
-\else
-\CreateTheorem@thmnum{remark}
-\CreateTheorem@thmnum{observation}
-\fi
-\CreateTheorem*{remark*}
-\CreateTheorem*{observation*}
-
-\theoremstyle{simple}
-\fi
-}
-
-\if@colorist@delaythms
- \AtEndPreamble{\colorist@definethms}
-\else
- \colorist@definethms
-\fi
-
-\theoremstyle{simple}
-
-\creflabelformat{PJLtheorem}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLlemma}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLproposition}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLcorollary}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLproperty}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLfact}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{PJLconjecture}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{PJLdefinition}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{PJLaxiom}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLassumption}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{PJLconvention}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{PJLhypothesis}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{PJLnotation}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{PJLexample}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{PJLproblem}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{PJLquestion}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{PJLexercise}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{PJLdefinition-theorem}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{PJLdefinition-proposition}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factEN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureEN}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionEN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionEN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionEN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisEN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationEN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleEN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemEN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionEN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseEN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionEN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factFR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureFR}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionFR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionFR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionFR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisFR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationFR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleFR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemFR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionFR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseFR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionFR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factDE}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureDE}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionDE}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionDE}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionDE}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisDE}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationDE}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleDE}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemDE}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionDE}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseDE}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionDE}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factIT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureIT}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionIT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionIT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionIT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisIT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationIT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleIT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemIT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionIT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseIT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionIT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factPT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjecturePT}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionPT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionPT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionPT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisPT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationPT}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{examplePT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemPT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionPT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exercisePT}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionPT}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factBR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureBR}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionBR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionBR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionBR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisBR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationBR}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleBR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemBR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionBR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseBR}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionBR}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factES}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureES}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionES}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionES}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionES}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisES}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationES}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleES}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemES}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionES}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseES}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionES}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factCN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureCN}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionCN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionCN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionCN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisCN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationCN}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleCN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemCN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionCN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseCN}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionCN}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factTC}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureTC}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionTC}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionTC}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionTC}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisTC}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationTC}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleTC}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemTC}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionTC}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseTC}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionTC}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factJP}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureJP}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionJP}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionJP}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionJP}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisJP}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationJP}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleJP}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemJP}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionJP}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseJP}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionJP}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\creflabelformat{theoremRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{lemmaRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propositionRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{corollaryRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{propertyRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{factRU}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{conjectureRU}{#2{\normalfont\colorist@sffamily\color{purple}\conditionalbfseries#1}#3}
-\creflabelformat{definitionRU}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{axiomRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{assumptionRU}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{conventionRU}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{hypothesisRU}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{notationRU}{#2{\normalfont\colorist@sffamily\color{forestgreen}\conditionalbfseries#1}#3}
-\creflabelformat{exampleRU}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{problemRU}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{questionRU}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{exerciseRU}{#2{\normalfont\colorist@sffamily\color{maintext}\conditionalbfseries#1}#3}
-\creflabelformat{definition-theoremRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-\creflabelformat{definition-propositionRU}{#2{\normalfont\colorist@sffamily\color{orange}\conditionalbfseries#1}#3}
-
-\RequirePackage{marginnote}
-\RequirePackage{ifoddpage}
-\newcommand{\mparadjust}[1]{\renewcommand*{\marginnotevadjust}{#1}}
-\AtEndPreamble{ % For puretext mode
-\pretocmd{\remark}{%
- \if@twoside\checkoddpage%
- \ifoddpage\reversemarginpar\fi%
- \else%
- \reversemarginpar%
- \fi%
- \mparadjust{-.25em}%
- \marginnote{\ideabulb[0.3]{orange}%
- \ifIsBook%
- \hspace*{-.2em}%
- \else%
- \hspace*{-.5em}%
- \fi%
- }\normalmarginpar%
-}{}{}
-\pretocmd{\conjecture}{%
- \if@twoside\checkoddpage%
- \ifoddpage\reversemarginpar\fi%
- \else%
- \reversemarginpar%
- \fi%
- \mparadjust{-.25em}%
- \marginnote{\questionmark[0.3]{purple}%
- \ifIsBook%
- \hspace*{-.2em}%
- \else%
- \hspace*{-.5em}%
- \fi%
- }\normalmarginpar%
-}{}{}
-}
-
-\RequirePackage{iftex}
-\ifXeTeX
-\def\pgfsys@hboxsynced#1{%
-{%
- \pgfsys@beginscope%
- \setbox\pgf@hbox=\hbox{%
- \hskip\pgf@pt@x%
- \raise\pgf@pt@y\hbox{%
- \pgf@pt@x=0pt%
- \pgf@pt@y=0pt%
- \special{pdf: content q}%
- \pgflowlevelsynccm%
- \pgfsys@invoke{q -1 0 0 -1 0 0 cm}%
- \special{pdf: content -1 0 0 -1 0 0 cm q}
- % translate to original coordinate system
- \pgfsys@invoke{0 J [] 0 d}% reset line cap and dash
- \wd#1=0pt%
- \ht#1=0pt%
- \dp#1=0pt%
- \box#1%
- \pgfsys@invoke{n Q Q Q}%
- }%
- \hss%
- }%
- \wd\pgf@hbox=0pt%
- \ht\pgf@hbox=0pt%
- \dp\pgf@hbox=0pt%
- \pgfsys@hbox\pgf@hbox%
- \pgfsys@endscope%
-}}
-\fi
-
-\renewenvironment{proof}[1][\proofname]{\par
- \pushQED{\qed}%
- \normalfont \topsep6\p@\@plus6\p@\relax
- \trivlist
- \item[\hskip\labelsep
- \itshape
- #1\hspace{.4em}%
- \textcolor{maintext!27!paper}{$|$}]\ignorespaces
-}{%
- \popQED\endtrivlist\@endpefalse
-}
-
-\RequirePackage[many]{tcolorbox}
-\if@colorist@fast
- \tcbstartdraftmode
-\fi
-\tcolorboxenvironment{theorem}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{theorem*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{lemma}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{lemma*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{proposition}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{proposition*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{corollary}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{corollary*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{property}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{property*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{axiom}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{axiom*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{definition-proposition}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{definition-proposition*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{definition-theorem}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-\tcolorboxenvironment{definition-theorem*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.9,colframe=orange,arc=.7mm}
-
-\tcolorboxenvironment{fact}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!5!paper,
- boxrule=0pt,frame hidden,arc=.7mm}
-\tcolorboxenvironment{fact*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!5!paper,
- boxrule=0pt,frame hidden,arc=.7mm}
-
-\tcolorboxenvironment{conjecture}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.7,colframe=purple,arc=.7mm}
-\tcolorboxenvironment{conjecture*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!3!paper,
- left=3.5mm,right=3.5mm,
- opacityframe=0.7,colframe=purple,arc=.7mm}
-
-\tcolorboxenvironment{definition}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{definition*}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{assumption}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{assumption*}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{convention}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{convention*}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{hypothesis}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{hypothesis*}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{notation}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-\tcolorboxenvironment{notation*}
- {enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
- colback=lightorange!10!paper,boxrule=0pt,frame hidden,
- borderline west={1.5mm}{0mm}{forestgreen},arc=.7mm}
-
-\tcolorboxenvironment{example}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!5!paper,
- boxrule=0pt,frame hidden,arc=.7mm,lines before break=3}
-\tcolorboxenvironment{example*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=maintext!5!paper,
- boxrule=0pt,frame hidden,arc=.7mm,lines before break=3}
-
-\tcolorboxenvironment{problem}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=yellow!25!paper,
- boxrule=0pt,frame hidden,arc=.7mm}
-\tcolorboxenvironment{problem*}
- {enhanced jigsaw,pad at break*=1mm,breakable,colback=yellow!25!paper,
- boxrule=0pt,frame hidden,arc=.7mm}
-
-\tcolorboxenvironment{question}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{question*}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{exercise}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{exercise*}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{remark}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{remark*}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{observation}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-\tcolorboxenvironment{observation*}
- {enhanced jigsaw,pad at break*=1mm,breakable,oversize,
- top=0mm,bottom=0mm,
- opacityframe=0,opacityback=0,lines before break=3}
-
-\ExplSyntaxOn
-\NewDocumentCommand \AfterEnvEnd { +m }
- { \colorist_after_env_end:nw {#1} }
-\cs_new_protected:Npn \colorist_after_env_end:nw #1 #2
- \if@ignore\@ignorefalse\ignorespaces\fi
- { #2 \if@ignore\@ignorefalse\ignorespaces\fi #1 }
- \NewDocumentCommand \ScanEnv { s m +m+m }
+\keys_define:nn { colorist }
{
- \IfBooleanTF {#1}
- { \jinwen_scan_env_ignore_par:nTF }
- { \jinwen_scan_env:nTF }
- {#2} {#3} {#4}
+ , draft .bool_set:N = \l__colorist_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__colorist_fast_bool
+
+ , style .str_set:N = \l__colorist_style_str
+ , style .initial:n = { fancy }
+ , fancy .meta:n = { style = fancy }
+
+ , use-boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , use-boldface .initial:n = { false }
+ , use~boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , use boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , usebf .bool_set:N = \l__colorist_use_boldface_bool
+ , allow-boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , allow~boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , allow boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , allowbf .bool_set:N = \l__colorist_use_boldface_bool
+ , runin .bool_set:N = \l__colorist_runin_bool
+ , runin .initial:n = { false }
+
+ , theorem-in-new-line .bool_set:N = \l__colorist_theorem_in_new_line_bool
+ , theorem-in-new-line .initial:n = { false }
+ , theorem~in~new~line .bool_set:N = \l__colorist_theorem_in_new_line_bool
+ , theorem in new line .bool_set:N = \l__colorist_theorem_in_new_line_bool
+
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { projlib-language }
+ \PassOptionsToPackage { \CurrentOption } { projlib-author }
+ \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
+ \PassOptionsToPackage { \CurrentOption } { projlib-draft }
+ \PassOptionsToPackage { \CurrentOption } { projlib-font }
+ \PassOptionsToPackage { \CurrentOption } { projlib-logo }
+ \PassOptionsToPackage { \CurrentOption } { projlib-math }
+ \PassOptionsToPackage { \CurrentOption } { projlib-paper }
+ \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
+ }
}
-\cs_new_protected:Npn \jinwen_scan_env:nTF
- { \__jinwen_scan_env:NnTF \c_false_bool }
-\cs_new_protected:Npn \jinwen_scan_env_ignore_par:nTF
- { \__jinwen_scan_env:NnTF \c_true_bool }
-\tl_new:N \l__jinwen_collected_tl
-\cs_new_protected:Npn \__jinwen_scan_env:NnTF #1 #2 #3 #4
- {
- \tl_clear:N \l__jinwen_collected_tl
- \peek_analysis_map_inline:n
- {
- \tl_put_right:Nn \l__jinwen_collected_tl {##1}
- \int_compare:nNnTF { "##3 } = { 0 }
- {
- \exp_args:No \token_if_eq_meaning:NNTF {##1} \begin
- { \peek_analysis_map_break:n { \__jinwen_chk_env:nTFn {#2} {#3} {#4} } }
- {
- \bool_lazy_and:nnF {#1}
- { \exp_args:No \token_if_eq_meaning_p:NN {##1} \par }
- { \__jinwen_scan_env_end:n {#4} }
- }
- }
- { \int_compare:nNnF { "##3 } = { 10 } { \__jinwen_scan_env_end:n {#4} } }
- }
- }
-\cs_new_protected:Npn \__jinwen_scan_env_end:n #1
- { \peek_analysis_map_break:n { \__jinwen_reinsert_tokens:nn {#1} { } } }
-\cs_new_protected:Npn \__jinwen_reinsert_tokens:nn #1 #2
+\ProcessKeysOptions { colorist }
+
+\bool_new:N \l__colorist_is_book_bool
+\cs_if_exist:cTF { c@chapter }
{
- \use:x
- {
- \tl_clear:N \exp_not:N \l__jinwen_collected_tl
- \exp_not:n {#1} \l__jinwen_collected_tl #2
- }
+ \bool_set_true:N \l__colorist_is_book_bool
}
-\cs_new_protected:Npn \__jinwen_chk_env:nTFn #1 #2 #3 #4
{
- \exp_args:Nx \__jinwen_reinsert_tokens:nn
- { \str_if_eq:nnTF {#1} {#4} { \exp_not:n {#2} } { \exp_not:n {#3} } } { {#4} }
+ \bool_set_false:N \l__colorist_is_book_bool
}
-\ExplSyntaxOff
-
-\def\scandefinitionenv{%
- \AfterEnvEnd{%
- \ScanEnv*{definition}%
- {\vspace{-1.05\baselineskip}}%
- {\ScanEnv*{definition*}%
- {\vspace{-1.05\baselineskip}}%
- {}}}}
-\AddToHook{env/definition/end}{\scandefinitionenv}%
-\AddToHook{env/definition*/end}{\scandefinitionenv}%
-
-\def\scanassumptionenv{%
- \AfterEnvEnd{%
- \ScanEnv*{assumption}%
- {\vspace{-1.05\baselineskip}}%
- {\ScanEnv*{assumption*}%
- {\vspace{-1.05\baselineskip}}%
- {}}}}
-\AddToHook{env/assumption/end}{\scanassumptionenv}%
-\AddToHook{env/assumption*/end}{\scanassumptionenv}%
-
-\def\scanconventionenv{%
- \AfterEnvEnd{%
- \ScanEnv*{convention}%
- {\vspace{-1.05\baselineskip}}%
- {\ScanEnv*{convention*}%
- {\vspace{-1.05\baselineskip}}%
- {}}}}
-\AddToHook{env/convention/end}{\scanconventionenv}%
-\AddToHook{env/convention*/end}{\scanconventionenv}%
-
-\def\scanhypothesisenv{%
- \AfterEnvEnd{%
- \ScanEnv*{hypothesis}%
- {\vspace{-1.05\baselineskip}}%
- {\ScanEnv*{hypothesis*}%
- {\vspace{-1.05\baselineskip}}%
- {}}}}
-\AddToHook{env/hypothesis/end}{\scanhypothesisenv}%
-\AddToHook{env/hypothesis*/end}{\scanhypothesisenv}%
-
-\def\scannotationenv{%
- \AfterEnvEnd{%
- \ScanEnv*{notation}%
- {\vspace{-1.05\baselineskip}}%
- {\ScanEnv*{notation*}%
- {\vspace{-1.05\baselineskip}}%
- {}}}}
-\AddToHook{env/notation/end}{\scannotationenv}%
-\AddToHook{env/notation*/end}{\scannotationenv}%
-
-\ifbool{IsBook}{}{%
%%================================
-%% Title block style
+%% Paper configuration
%%================================
-\renewcommand{\@maketitle}{%
-\begin{center}%
- \color{maintheme}%
- {\Large\colorist@sffamily\scshape\conditionalbfseries\@title}\\\bigskip%
- \color{maintext!80!paper}%
- {\scshape\@author}\\\smallskip%
- {\@date}%
-\end{center}%
-\ifx\@date\@empty\bigskip\fi%
-\medskip%
-}
-\apptocmd{\maketitle}{\thispagestyle{fancy}}{}{\FAIL}
+\RequirePackage { projlib-paper }
%%================================
-%% Abstract style
+%% Multi-language support
%%================================
-\renewenvironment{abstract}
-{\small{\centerline{\textsc{\conditionalbfseries\sffamily\abstractname}}\vspace{-0.3\baselineskip}}
- \color{maintext!80!paper}\begin{quotation}}
-{\end{quotation}\medskip}
+\RequirePackage { projlib-language }
%%================================
-%% Keyword
+%% Loading the style
%%================================
-\def\keywordnameEN{\textsc{Keywords}}
-\def\keywordnameFR{\textsc{Mots clés}}
-\def\keywordnameDE{\textsc{Schlüsselwörter}}
-\def\keywordnameCN{关键词}
-\def\keywordnameTC{關鍵詞}
-\def\keywordnameJP{キーワード}
-\def\keywordnameRU{Ключевые слова}
-
-\newenvironment{keyword}
-{\small{\centerline{{\conditionalbfseries\csname keywordname\csname\languagename ABBR\endcsname\endcsname}}\vspace{-0.3\baselineskip}}
- \color{maintext!80!paper}\begin{center}}
-{\end{center}\medskip}
-
-%%================================
-%% Simulate features of amsart
-%%================================
-\PassOptionsToPackage{amsfashion}{PJLauthor}
-\RequirePackage{PJLauthor}
-
-}
+\exp_args:No \RequirePackage { colorist- \l__colorist_style_str }
\endinput
%%
diff --git a/macros/latex/contrib/minimalist/minimalist-classical.sty b/macros/latex/contrib/minimalist/minimalist-classical.sty
index 0e366919ba..beef4ed857 100644
--- a/macros/latex/contrib/minimalist/minimalist-classical.sty
+++ b/macros/latex/contrib/minimalist/minimalist-classical.sty
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{minimalist-classical}
- {2022/03/17} {}
+ {2022/03/19} {}
{The classical style of minimalist}
\@ifpackageloaded { minimalist } {}
@@ -185,7 +185,7 @@
\renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
\fi
\renewcommand*{\sectionmark}[1]{
- \markright{\g_minimalist_section_decoration_char_tl\nobreakspace\arabic{section}\nobreakspace\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
+ \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\arabic{section}\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
}
{
\if@twoside
@@ -565,24 +565,50 @@
\RequirePackage { projlib-theorem }
+\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
+ {
+ name style = {
+ , heading style = {
+ , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ }
+ }
+ }
+
+\SetTheorem { remark }
+ {
+ name style = {
+ , heading style = {
+ , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ }
+ }
+ }
+
\bool_if:NF \l__projlib_theorem_complexname_bool
{
\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
{
name style = {
- , heading style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- }
, crefname style = {
, english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
, french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
@@ -628,20 +654,6 @@
\SetTheorem { remark }
{
name style = {
- , heading style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- }
, crefname style = {
, english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
, french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
@@ -656,7 +668,7 @@
, japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
, russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
- , crefname style = {
+ , Crefname style = {
, english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
, french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
, ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
diff --git a/macros/latex/contrib/minimalist/minimalist-doc.pdf b/macros/latex/contrib/minimalist/minimalist-doc.pdf
index 4cf1db38d8..d8557ff023 100644
--- a/macros/latex/contrib/minimalist/minimalist-doc.pdf
+++ b/macros/latex/contrib/minimalist/minimalist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/minimalist/minimalist-doc.tex b/macros/latex/contrib/minimalist/minimalist-doc.tex
index 28577a6bcc..925ce47eeb 100644
--- a/macros/latex/contrib/minimalist/minimalist-doc.tex
+++ b/macros/latex/contrib/minimalist/minimalist-doc.tex
@@ -1,4 +1,4 @@
-\documentclass[classical]{minimart}
+\documentclass[classical, simple name]{minimart}
\linenumbers % Enable line numbers
@@ -39,7 +39,7 @@
\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
\lstset{moretexcs=%
{linenumbers,nolinenumbers,part,parttext,chapter,section,subsection,subsubsection,frontmatter,mainmatter,backmatter,tableofcontents,href,
- color,NameTheorem,CreateTheorem,proofideanameEN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PLdate,ProjLib,qedhere
+ color,NameTheorem,CreateTheorem,cref,dnf,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,TheDate,ProjLib,qedhere
}
}
\lstnewenvironment{code}%
@@ -96,11 +96,13 @@
%%================================
\begin{document}
+\def\PackageVersion{2022/03/19}
+
\title{\minimalist{}, write your articles or books in a simple and clear way}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\minimalist{} 2021/12/16}}
+\thanks{Corresponding to: \texttt{\minimalist{} \PackageVersion}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{December 2021, in Paris}
+\date{\TheDate{\PackageVersion}[only-year-month], in Paris}
\maketitle
@@ -111,6 +113,10 @@
\end{abstract}
+\begin{tip}
+ This documentation has not been fully up-to-date with the new \texttt{expl3} version of this class series. Some options or commands introduced here might be obsolete.
+\end{tip}
+
\setcounter{tocdepth}{2}
\tableofcontents
@@ -122,7 +128,7 @@ In order to use the package or classes described here, you need to:
\begin{itemize}
\item install TeX Live or MikTeX of the latest possible version, and make sure that \texttt{minimalist} and \texttt{projlib} are correctly installed in your \TeX{} system.
\item download and install the required fonts if needed.
- \item be familiar with the basic usage of \LaTeX{}, and knows how to compile your document with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}.
+ \item be familiar with the basic usage of \LaTeX{}, and know how to compile your document with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}.
\end{itemize}
\LevelOneTitle{Introduction}
@@ -169,7 +175,7 @@ Let's first look at a complete example of \minimart{} (the same works for \einfa
\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
-\date{\PLdate{2022-04-01}}
+\date{\TheDate{2022-04-01}}
\maketitle
@@ -223,7 +229,7 @@ For detailed description of this command and more related commands, please refer
\begin{code}
\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
-\date{\PLdate{2022-04-01}}
+\date{\TheDate{2022-04-01}}
\maketitle
\begin{abstract}
@@ -256,7 +262,7 @@ In addition, you may also write in the \AmS{} fashion, i.e.:
\author{(*\meta{author 2}*)}
\address{(*\meta{address 2}*)}
\email{(*\meta{email 2}*)}
-\date{\PLdate{2022-04-01}}
+\date{\TheDate{2022-04-01}}
\subjclass{*****}
\keywords{(*\meta{keywords}*)}
@@ -310,7 +316,6 @@ or to use the \AmS{} class:
\end{tip}
-\clearpage
\LevelTwoTitle{Example - \minimbook}
Now let's look at an example of \minimbook{} (the same works for \simplivre{}).
@@ -353,7 +358,6 @@ There is no much differences with \minimart{}, only that the title and author in
\bigskip
In the next section, we will go through the options available.
-\clearpage
\LevelOneTitle{The options}
@@ -390,17 +394,13 @@ In the next section, we will go through the options available.
\begin{itemize}
\item Use the ``runin'' style for \lstinline|\subsubsection|
\end{itemize}
- \item \texttt{puretext} or \texttt{nothms}
+ \item \texttt{nothms}
\begin{itemize}
\item Pure text mode. Do not load theorem-like environments.
\end{itemize}
- \item \texttt{delaythms}
- \begin{itemize}
- \item Defer the definition of theorem-like environments to the end of the preamble. Use this option if you want the theorem-like environments to be numbered within a custom counter.
- \end{itemize}
\item \texttt{nothmnum}, \texttt{thmnum} or \texttt{thmnum=}\meta{counter}
\begin{itemize}
- \item Theorem-like environments will not be numbered / numbered in order 1, 2, 3... / numbered within \meta{counter}. Here, \meta{counter} should be a built-in counter (such as \texttt{subsection}) or a custom counter defined in the preamble (with the option \texttt{delaythms} enabled). If no option is used, they will be numbered within \texttt{chapter} (book) or \texttt{section} (article).
+ \item Theorem-like environments will not be numbered / numbered in order 1, 2, 3... / numbered within \meta{counter}. If no option is used, they will be numbered within \texttt{chapter} (book) or \texttt{section} (article).
\end{itemize}
\item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
@@ -427,7 +427,7 @@ Additionally, \minimart{} and \minimbook{} offers the following options:
\end{itemize}
\end{itemize}
-\clearpage
+% \clearpage
\LevelOneTitle{Instructions by topic}
\LevelTwoTitle{Language configuration}
@@ -501,76 +501,10 @@ By default, when referenced, the name of the theorem matches the current context
\UseLanguage{English}
-\LevelTwoTitle{Define a new theorem-like environment}
-
-If you need to define a new theorem-like environment, you must first define the name of the environment in the language to use:
-\begin{itemize}
- \item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
-\end{itemize}
-For \meta{language name}, please refer to the section on language configuration. When \meta{language name} is not specified, the name will be set for all supported languages. In addition, environments with or without asterisk share the same name, therefore, \lstinline|\NameTheorem{envname*}{...}| has the same effect as \lstinline|\NameTheorem{envname}{...}| .
-
-\medskip
-And then define this environment in one of following five ways:
-\begin{itemize}
- \item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
- \begin{itemize}
- \item Define an unnumbered environment \meta{name of environment}
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}|
- \begin{itemize}
- \item Define a numbered environment \meta{name of environment}, numbered in order 1,2,3,\dots
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}[|\meta{numbered like}\lstinline|]|
- \begin{itemize}
- \item Define a numbered environment \meta{name of environment}, which shares the counter \meta{numbered like}
- \end{itemize}
-\clearpage
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}<|\meta{numbered within}\lstinline|>|
- \begin{itemize}
- \item Define a numbered environment \meta{name of environment}, numbered within the counter \meta{numbered within}
- \end{itemize}
- \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|\\
- \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|
- \begin{itemize}
- \item Identify \meta{name of environment} with \meta{existed environment} or \meta{existed environment}\lstinline|*|.
- \item This method is usually useful in the following two situations:
- \begin{enumerate}
- \item To use a more concise name. For example, with \lstinline|\CreateTheorem{thm}(theorem)|, one can then use the name \texttt{thm} to write theorem.
- \item To remove the numbering of some environments. For example, one can remove the numbering of the \texttt{remark} environment with \lstinline|\CreateTheorem{remark}(remark*)|.
- \end{enumerate}
- \end{itemize}
-\end{itemize}
-
\begin{tip}
- This macro utilizes the feature of \textsf{amsthm} internally, so the traditional \texttt{theoremstyle} is also applicable to it. One only needs declare the style before the relevant definitions.
+ Please refer to the documentation of the package \textsf{create-theorem} to see how to declare new theorem-like environments.
\end{tip}
-\NameTheorem[EN]{proofidea}{Idea}
-\CreateTheorem*{proofidea*}
-\CreateTheorem{proofidea}<subsection>
-
-\bigskip
-Here is an example. The following code:
-
-\begin{code}
-\NameTheorem[EN]{proofidea}{Idea}
-\CreateTheorem*{proofidea*}
-\CreateTheorem{proofidea}<subsection>
-\end{code}
-
-defines an unnumbered environment \lstinline|proofidea*| and a numbered environment \lstinline|proofidea| (numbered within subsection) respectively. They can be used in English context.
-The effect is as follows:
-
-\vspace{-0.3\baselineskip}
-\begin{proofidea*}
- The \lstinline|proofidea*| environment.
-\end{proofidea*}
-
-\vspace{-\baselineskip}
-\begin{proofidea}
- The \lstinline|proofidea| environment.
-\end{proofidea}
-
\LevelTwoTitle{Draft mark}
You can use \lstinline|\dnf| to mark the unfinished part. For example:
@@ -578,12 +512,7 @@ You can use \lstinline|\dnf| to mark the unfinished part. For example:
\item \lstinline|\dnf| or \lstinline|\dnf<...>|. The effect is: \dnf~ or \dnf<...>. \\The prompt text changes according to the current language. For example, it will be displayed as \UseOtherLanguage{French}{\dnf} in French mode.
\end{itemize}
-Similarly, there is \lstinline|\needgraph| :
-\begin{itemize}
- \item \lstinline|\needgraph| or \lstinline|\needgraph<...>|. The effect is: \needgraph or \needgraph<...>The prompt text changes according to the current language. For example, in French mode, it will be displayed as \UseOtherLanguage{French}{\needgraph}
-\end{itemize}
-
-\clearpage
+% \clearpage
\LevelTwoTitle{Title, abstract and keywords}
\minimart{} has both the features of standard classes and that of the \AmS{} classes.
@@ -634,7 +563,7 @@ The author information can contain multiple groups, written as:
Among them, the mutual order of \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| is not important.
-\clearpage
+% \clearpage
\LevelTwoTitle{Miscellaneous}
\LevelThreeTitle{On the line numbers}
@@ -648,8 +577,6 @@ In \lstinline|\section| or \lstinline|\subsection| , if you wish to add footnote
\end{itemize}
This is a disadvantage brought about by the underline decoration of the title.
-\LevelThreeTitle{On the QED symbols}
-Since the font in the theorem-like environments is the same as that of the main text, in order to indicate where the environments end, a hollow QED symbol \simpleqedsymbol{} is placed at the end of the theorem-like environments. However, if your theorem ends with an equation or list (itemize, enumerate, description, etc.), this symbol cannot be automatically placed in the correct position. In this case, you need to manually add a \lstinline|\qedhere| at the end of your equation or the last entry of your list to make the QED symbol appear at the end of the line.
\LevelOneTitle{Known issues}
diff --git a/macros/latex/contrib/minimalist/minimalist-plain.sty b/macros/latex/contrib/minimalist/minimalist-plain.sty
index 2bc3cd69b0..9c7cd650d2 100644
--- a/macros/latex/contrib/minimalist/minimalist-plain.sty
+++ b/macros/latex/contrib/minimalist/minimalist-plain.sty
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{minimalist-plain}
- {2022/03/17} {}
+ {2022/03/19} {}
{The plain style of minimalist}
\@ifpackageloaded { minimalist } {}
@@ -115,14 +115,14 @@
{
\fancyhf{}
\if@twoside
- \fancyfoot[RO]{\small\textcolor{main-text!30!paper}{ \l_minimalist_rightmark_tl }
- \nobreakspace\nobreakspace\rlap{\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }\nobreakspace\nobreakspace\thepage}}
- \fancyfoot[LE]{\small\leavevmode\llap{\thepage
- \nobreakspace\nobreakspace\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }}
- \nobreakspace\nobreakspace\textcolor{main-text!30!paper}{ \l_minimalist_leftmark_tl }}
+ \fancyfoot[RO]{\textcolor{main-text!30!paper}{ \small \l_minimalist_rightmark_tl }
+ \rlap{\nobreakspace\nobreakspace\nobreakspace\nobreakspace\textcolor{main-text!75!paper}{\minimalist_bfseries: \thepage}}}
+ \fancyfoot[LE]{\leavevmode\llap{\textcolor{main-text!75!paper}{\minimalist_bfseries: \thepage}
+ \nobreakspace\nobreakspace\nobreakspace\nobreakspace}
+ \textcolor{main-text!30!paper}{ \l_minimalist_leftmark_tl }}
\else
- \fancyfoot[R]{\small\textcolor{main-text!30!paper}{ \l_minimalist_rightmark_tl }
- \nobreakspace\nobreakspace\rlap{\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }\nobreakspace\nobreakspace\thepage}}
+ \fancyfoot[R]{\textcolor{main-text!30!paper}{ \l_minimalist_rightmark_tl }
+ \rlap{\nobreakspace\nobreakspace\nobreakspace\nobreakspace\textcolor{main-text!75!paper}{\minimalist_bfseries: \thepage}}}
\fi
\renewcommand{\headrulewidth}{0pt}
}
@@ -132,13 +132,13 @@
{
\fancyhf{}
\if@twoside
- \fancyfoot[RO]{\small
- \nobreakspace\rlap{\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }\nobreakspace\nobreakspace\thepage}}
- \fancyfoot[LE]{\small\leavevmode\llap{\thepage
- \nobreakspace\nobreakspace\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }}}
+ \fancyfoot[RO]{
+ \nobreakspace\rlap{\nobreakspace\nobreakspace\nobreakspace\nobreakspace\textcolor{main-text!75!paper}{\minimalist_bfseries: \thepage}}}
+ \fancyfoot[LE]{\leavevmode\llap{\textcolor{main-text!75!paper}{\minimalist_bfseries: \thepage}
+ \nobreakspace\nobreakspace}}
\else
- \fancyfoot[R]{\small
- \nobreakspace\rlap{\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }\nobreakspace\nobreakspace\thepage}}
+ \fancyfoot[R]{
+ \nobreakspace\nobreakspace\nobreakspace\rlap{\textcolor{main-text!75!paper}{\minimalist_bfseries: \thepage}}}
\fi
\renewcommand{\headrulewidth}{0pt}
}
@@ -185,7 +185,7 @@
\renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
\fi
\renewcommand*{\sectionmark}[1]{
- \markright{\g_minimalist_section_decoration_char_tl\nobreakspace\arabic{section}\nobreakspace\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
+ \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\arabic{section}\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
}
{
\if@twoside
@@ -299,7 +299,7 @@
% \phantomsection\addcontentsline{toc}{chapter}{#1}
\color{main-text!80!paper}\g_minimalist_title_font_chapter_tl\fontsize{16}{0}\selectfont}{}{0em}
{\rlap{\hspace*{-.5em}{\color{main-text!12!paper}
- \fontsize{80}{0}\selectfont\normalfont\raisebox{-7pt}{*}}}#1}
+ \fontsize{80}{0}\selectfont\normalfont\raisebox{-7pt}{\phantom{*}}}}#1}
[\ResumeLineNumbers]
}
{
@@ -521,24 +521,50 @@
\RequirePackage { projlib-theorem }
+\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
+ {
+ name style = {
+ , heading style = {
+ , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
+ , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ }
+ }
+ }
+
+\SetTheorem { remark }
+ {
+ name style = {
+ , heading style = {
+ , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
+ , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ }
+ }
+ }
+
\bool_if:NF \l__projlib_theorem_complexname_bool
{
\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
{
name style = {
- , heading style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- }
, crefname style = {
, english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
, french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textsc
@@ -584,20 +610,6 @@
\SetTheorem { remark }
{
name style = {
- , heading style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- }
, crefname style = {
, english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
, french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
@@ -612,7 +624,7 @@
, japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
, russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
- , crefname style = {
+ , Crefname style = {
, english = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
, french = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
, ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl\textit
diff --git a/macros/latex/contrib/minimalist/minimalist.sty b/macros/latex/contrib/minimalist/minimalist.sty
index 176d5986e0..50148e29fd 100644
--- a/macros/latex/contrib/minimalist/minimalist.sty
+++ b/macros/latex/contrib/minimalist/minimalist.sty
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{minimalist}
- {2022/03/17} {}
+ {2022/03/19} {}
{A simple and clear style for articles and books}
\keys_define:nn { minimalist }
diff --git a/macros/latex/contrib/minimalist/minimart.cls b/macros/latex/contrib/minimalist/minimart.cls
index 4fe51f5c4d..1340e14853 100644
--- a/macros/latex/contrib/minimalist/minimart.cls
+++ b/macros/latex/contrib/minimalist/minimart.cls
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplClass
{minimart}
- {2022/03/17} {}
+ {2022/03/19} {}
{A simple and clear article style}
\tl_const:Nn \l__minimclass_base_class_tl { article }
diff --git a/macros/latex/contrib/minimalist/minimbook.cls b/macros/latex/contrib/minimalist/minimbook.cls
index f346448d3a..995334db6c 100644
--- a/macros/latex/contrib/minimalist/minimbook.cls
+++ b/macros/latex/contrib/minimalist/minimbook.cls
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplClass
{minimbook}
- {2022/03/17} {}
+ {2022/03/19} {}
{A simple and clear book style}
\tl_const:Nn \l__minimclass_base_class_tl { book }
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index 53a8117f7b..db18403a5c 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -20,70 +20,70 @@
%<*ProjLib>
\ProvidesExplPackage
{ProjLib}
- {2022/03/17} {}
+ {2022/03/19} {}
{Collective interface of the ProjLib toolkit}
%</ProjLib>
%
%<*projlib-author>
\ProvidesExplPackage
{projlib-author}
- {2022/03/17} {}
+ {2022/03/19} {}
{Enhanced author information block}
%</projlib-author>
%
%<*projlib-datetime>
\ProvidesExplPackage
{projlib-datetime}
- {2022/03/17} {}
+ {2022/03/19} {}
{Convert numeric date-time string to natural language}
%</projlib-datetime>
%
%<*projlib-draft>
\ProvidesExplPackage
{projlib-draft}
- {2022/03/17} {}
+ {2022/03/19} {}
{Useful commands during draft stage}
%</projlib-draft>
%
%<*projlib-font>
\ProvidesExplPackage
{projlib-font}
- {2022/03/17} {}
+ {2022/03/19} {}
{Font selection and configuration}
%</projlib-font>
%
%<*projlib-language>
\ProvidesExplPackage
{projlib-language}
- {2022/03/17} {}
+ {2022/03/19} {}
{Multi-language configuration}
%</projlib-language>
%
%<*projlib-logo>
\ProvidesExplPackage
{projlib-logo}
- {2022/03/17} {}
+ {2022/03/19} {}
{The ProjLib logo}
%</projlib-logo>
%
%<*projlib-math>
\ProvidesExplPackage
{projlib-math}
- {2022/03/17} {}
+ {2022/03/19} {}
{Efficient math setup}
%</projlib-math>
%
%<*projlib-paper>
\ProvidesExplPackage
{projlib-paper}
- {2022/03/17} {}
+ {2022/03/19} {}
{Configuration of the paper style}
%</projlib-paper>
%
%<*projlib-theorem>
\ProvidesExplPackage
{projlib-theorem}
- {2022/03/17} {}
+ {2022/03/19} {}
{Configuration of theorem-like environments}
%</projlib-theorem>
@@ -190,7 +190,7 @@
{
\hook_gput_code:nnn { cmd/@author/after } { projlib-author }
{
- \phantom {A} \\[-.85\baselineskip]
+ \phantom {A} \\[-.9\baselineskip]
\bool_if:NF \g__projlib_author_affil_already_exist_bool
{
\skip_vertical:n { \g__projlib_author_length_innersep_dim }
@@ -250,6 +250,8 @@
{
\RequirePackage{ projlib-language }
+ \tl_const:Nn \c_projlib_author_dot_tl { . }
+
\tl_new:N \g_projlib_author_keywordsname_style_tl
\tl_gset:Nn \g_projlib_author_keywordsname_style_tl { \itshape }
@@ -280,38 +282,39 @@
\tl_gset:Nn \g__projlib_author_dedicatory_tl { #1 }
}
- \hook_gput_code:nnn { begindocument/before } { projlib-author }
- {
- \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
- \tl_gset:Nn \footnotemark {}
- \NewCommandCopy \projlib_author_backup_thanks:w \thanks
- \cs_undefine:N \thanks
+ \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
+ \tl_gset:Nn \footnotemark {}
- % measure the width of "*"
- \hbox_set:Nn \l_tmpa_box { * }
- \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
+ \NewCommandCopy \projlib_author_backup_thanks:w \thanks
+ \cs_undefine:N \thanks
- \cs_new_nopar:Nn \projlib_author_pre_thanks:n
+ % measure the width of "*"
+ \hbox_set:Nn \l_tmpa_box { * }
+ \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
+
+ \cs_new_nopar:Nn \projlib_author_pre_thanks:n
+ {
+ \projlib_author_backup_thanks:w
{
- \projlib_author_backup_thanks:w
- {
- \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
- #1
- }
+ \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
+ #1
}
+ }
- \NewDocumentCommand \thanks { m }
+ \NewDocumentCommand \thanks { m }
+ {
+ \tl_if_blank:nF { #1 }
{
- \tl_if_blank:nF { #1 }
+ \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
{
- \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
- {
- \projlib_author_pre_thanks:n { #1 }
- }
+ \projlib_author_pre_thanks:n { #1 }
}
}
+ }
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
\NewCommandCopy \projlib_author_backup_my_author:w \author
\RenewDocumentCommand \author { m }
{
@@ -320,7 +323,7 @@
\RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
\RenewCommandCopy \thanks \projlib_author_backup_thanks:w
#1
- \cs_undefine:N \footnotemark
+ \tl_gset:Nn \footnotemark {}
}
}
}
@@ -384,7 +387,7 @@
{
\group_begin:
\g_projlib_author_keywordsname_style_tl
- \keywordsname .
+ \keywordsname \c_projlib_author_dot_tl
\group_end:
\c_space_tl
\g__projlib_author_keywords_tl
@@ -430,7 +433,7 @@
}
\projlib_author_pre_thanks:n
{
- \textit{ \l_projlib_author_subjclassname_tl . }
+ \textit{ \l_projlib_author_subjclassname_tl \c_projlib_author_dot_tl }
\enspace
\l_projlib_author_subjclass_tl .
}
@@ -2744,35 +2747,35 @@
\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
{
\g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { schinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 证明 }
- \tl_gset:cn { contentsname } { 目录 }
- \tl_gset:cn { listfigurename } { 插图 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 图 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附录 }
- \tl_gset:cn { refname } { 参考文献 }
- \tl_gset:cn { bibname } { 参考文献 }
+ \tl_set:Nn \languagename { schinese }
+ \tl_set:cn { abstractname } { 摘要 }
+ \tl_set:cn { proofname } { 证明 }
+ \tl_set:cn { contentsname } { 目录 }
+ \tl_set:cn { listfigurename } { 插图 }
+ \tl_set:cn { listtablename } { 表格 }
+ \tl_set:cn { figurename } { 图 }
+ \tl_set:cn { tablename } { 表 }
+ \tl_set:cn { indexname } { 索引 }
+ \tl_set:cn { appendixname } { 附录 }
+ \tl_set:cn { refname } { 参考文献 }
+ \tl_set:cn { bibname } { 参考文献 }
}
\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
{
\g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { tchinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 證明 }
- \tl_gset:cn { contentsname } { 目錄 }
- \tl_gset:cn { listfigurename } { 插圖 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 圖 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附錄 }
- \tl_gset:cn { refname } { 參考文獻 }
- \tl_gset:cn { bibname } { 參考文獻 }
+ \tl_set:Nn \languagename { tchinese }
+ \tl_set:cn { abstractname } { 摘要 }
+ \tl_set:cn { proofname } { 證明 }
+ \tl_set:cn { contentsname } { 目錄 }
+ \tl_set:cn { listfigurename } { 插圖 }
+ \tl_set:cn { listtablename } { 表格 }
+ \tl_set:cn { figurename } { 圖 }
+ \tl_set:cn { tablename } { 表 }
+ \tl_set:cn { indexname } { 索引 }
+ \tl_set:cn { appendixname } { 附錄 }
+ \tl_set:cn { refname } { 參考文獻 }
+ \tl_set:cn { bibname } { 參考文獻 }
}
\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
@@ -3005,6 +3008,7 @@
\endinput
}
+%<*projlib-logo-old>
\cs_if_exist:cTF { fontspec }
{
\newfontface \__projlib_logo_font: { LinBiolinum_R.otf }
@@ -3034,19 +3038,20 @@
}
}
-% \RequirePackage { xcolor }
% \cs_new_protected:Nn \projlib_logo_generic:n
% {
% \group_begin:
% \normalfont
% \__projlib_logo_font:
-% \textcolor { blue!55!cyan } { P }
-% \textcolor { blue!45!cyan } { r }
-% \textcolor { blue!30!cyan } { o }
-% \textcolor { green!70!black!70 } { #1 }
-% \textcolor { red!20!yellow } { L }
-% \textcolor { red!40!yellow } { i }
-% \textcolor { red!55!yellow } { b }
+% \color_group_begin:
+% \color_select:n { blue!60!cyan } { P }
+% \color_select:n { blue!45!cyan } { r }
+% \color_select:n { blue!30!cyan } { o }
+% \color_select:n { green!70!black!70 } { #1 }
+% \color_select:n { red!20!yellow } { L }
+% \color_select:n { red!40!yellow } { i }
+% \color_select:n { red!60!yellow } { b }
+% \color_group_end:
% \group_end:
% }
\cs_new_protected:Nn \projlib_logo_generic:n
@@ -3055,13 +3060,13 @@
\normalfont
\__projlib_logo_font:
\color_group_begin:
- \color_select:n { blue!60!cyan } { P }
- \color_select:n { blue!45!cyan } { r }
- \color_select:n { blue!30!cyan } { o }
- \color_select:n { green!70!black!70 } { #1 }
- \color_select:n { red!20!yellow } { L }
- \color_select:n { red!40!yellow } { i }
- \color_select:n { red!60!yellow } { b }
+ \color_select:n { blue!50!cyan!30!black } { P }
+ \color_select:n { blue!50!cyan!55!black } { r }
+ \color_select:n { blue!50!cyan!75!black } { o }
+ \color_select:n { blue!50!cyan!90!black } { #1 }
+ \color_select:n { blue!50!cyan!75!black } { L }
+ \color_select:n { blue!50!cyan!55!black } { i }
+ \color_select:n { blue!50!cyan!30!black } { b }
\color_group_end:
\group_end:
}
@@ -3074,6 +3079,50 @@
{
\projlib_logo_generic:n { j }
}
+%</projlib-logo-old>
+
+\RequirePackage { tikz }
+
+\cs_new_protected:Nn \projlib_logo_generic:
+ {
+ \skip_horizontal:n { .2em }
+ \begin{tikzpicture}[line~width=.1em, baseline=0]
+ \begin{scope}[color=blue!50!cyan!30!black]
+ \draw (0.22em,.5em) circle (.22em);
+ \draw (0em,0em) -- (0em,.5em);
+ \end{scope}
+ \begin{scope}[color=blue!50!cyan!40!black, xshift=.65em]
+ \draw (0em,0em) -- (0em,.25em) arc [start~angle=180, end~angle=90, radius=.2em];
+ \end{scope}
+ \begin{scope}[color=blue!50!cyan!45!black, xshift=1.0em]
+ \draw (0.2em,.24em) circle (.2em);
+ \end{scope}
+ \begin{scope}[color=blue!50!cyan!50!black, xshift=1.65em]
+ \draw (0em,-.25em) -- (0em,.5em);
+ \begin{scope}[yshift=.75em]
+ % \draw[line~width=.032em, color=orange!60!yellow, xshift=.01em, yshift=-.003em] (0,0) circle (.13em);
+ % \node[rotate=-15,scale=0.45, xshift=.033em] { \usefont{U}{zeur}{b}{n} \symbol{"02} };
+ \draw[line~width=.06em, color=orange!60!yellow] (0,0) circle (.13em);
+ \end{scope}
+ \end{scope}
+ \begin{scope}[color=blue!50!cyan!67!black, xshift=2.0em]
+ \draw (0em,0em) -- (0em,.75em);
+ \end{scope}
+ \begin{scope}[color=blue!50!cyan!75!black, xshift=2.35em]
+ \draw (0em,0em) -- (0em,.5em);
+ \end{scope}
+ \begin{scope}[color=blue!50!cyan!90!black, xshift=2.63em]
+ \draw (0.2em,.24em) circle (.2em);
+ \draw (0em,0.24em) -- (0em,.75em);
+ \end{scope}
+ \end{tikzpicture}
+ \skip_horizontal:n { .2em }
+ }
+
+\DeclareRobustCommand * \ProjLib
+ {
+ \projlib_logo_generic:
+ }
%</projlib-logo>
%
%<*projlib-math>
@@ -3395,6 +3444,13 @@
, theorem numbering .default:n = { * }
, thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
, thmnum .default:n = { * }
+ , theorem-style .tl_set:N = \l__projlib_theorem_theorem_style_tl
+ , theorem-style .initial:n = { }
+ , theorem-style .value_required:n = true
+ , theorem~style .tl_set:N = \l__projlib_theorem_theorem_style_tl
+ , theorem~style .value_required:n = true
+ , theorem style .tl_set:N = \l__projlib_theorem_theorem_style_tl
+ , theorem style .value_required:n = true
, complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
, complex-name .initial:n = { true }
, complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
@@ -3462,6 +3518,17 @@
% \PassOptionsToPackage { no preset names } { create-theorem }
% }
+\cs_new_protected:Nn \projlib_theorem_preset_theorem_style:nn
+ {
+ \tl_const:cn { c_crthm_theorem_style_preset_ #1 _tl } { #2 }
+ }
+
+\cs_generate_variant:Nn \keyval_parse:nnn { nno }
+\keyval_parse:nno
+ { }
+ { \projlib_theorem_preset_theorem_style:nn }
+ { \l__projlib_theorem_theorem_style_tl }
+
\RequirePackage { amsthm }
\RequirePackage { create-theorem }
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index 9922ad0b82..3c25a992a8 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -2,11 +2,13 @@
# ProjLib Toolkit
-The bundle is dated 2022/03/17
+The bundle is dated 2022/03/19
+
+![image](https://i.imgur.com/bOOJLve.png)
## **Important note**
-The whole project is being rewritten with `expl3`. The new modules are basically finished but are not yet documented. They have the names with prefix "projlib-", and they are in many ways better and more powerful than their predecessors. The most important thing to be noticed is that these new modules are not compatible with the old ones, and thus they cannot appear simultaneously in the same document, which, unfortunately, means that (for now) they cannot be used in classes like `lebhart`, `beaulivre` (these are the classes with which the author produced the old documentations), etc.
+The whole project is being rewritten with `expl3`. The new modules are basically finished but are **not yet documented**. They have filenames with the prefix "projlib-", and they are in many ways better and more powerful than their predecessors.
The new modules are:
- projlib-author
@@ -19,7 +21,7 @@ The new modules are:
- projlib-paper
- projlib-theorem
-Below are the old README.
+Below is the old README.
---
diff --git a/macros/latex/contrib/seu-ml-assign/README.md b/macros/latex/contrib/seu-ml-assign/README.md
new file mode 100644
index 0000000000..86702d3812
--- /dev/null
+++ b/macros/latex/contrib/seu-ml-assign/README.md
@@ -0,0 +1,30 @@
+# SEU-ML-Assign LaTeX Template
+LaTeX Template for Southeast University Machine Learning Assignment
+
+> GitHub Project Site: https://tvj.one/ml-tex
+
+## Class and Options
+This project provides the `seu-ml-assign` class.
+
+| Option | Explanation |
+| - | - |
+| `solution` | Write solutions (for students). **[default]** |
+| `problem` | Write problem sets (for instructors). |
+| `9pt` | Set font size as 9 points. |
+| `10pt` | Set font size as 10 points. **[default]** |
+| `11pt` | Set font size as 11 points. |
+| `12pt` | Set font size as 12 points. |
+
+## Commands and Usage
+Please refer to the [documentation](seu-ml-assign-doc.pdf).
+
+## TODOs
+- [x] Class Definition
+- [x] Example `tex` File
+- [x] Class Documentation
+- [ ] Class Website
+- [ ] Submission to CTAN
+- [ ] Demonstration Video
+
+## License
+This project is licensed under the [MIT License](LICENSE).
diff --git a/macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.pdf b/macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.pdf
new file mode 100644
index 0000000000..43504378ae
--- /dev/null
+++ b/macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.tex b/macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.tex
new file mode 100644
index 0000000000..c9556da739
--- /dev/null
+++ b/macros/latex/contrib/seu-ml-assign/seu-ml-assign-doc.tex
@@ -0,0 +1,214 @@
+%! TEX program = pdflatex
+
+\documentclass{seu-ml-assign}
+
+\title{Documentation}
+\author{Teddy van Jerry}
+\studentID{}
+\instructor{TeX - LaTeX Stack Exchange}
+\date{\today}
+\duedate{20:00 March 21, 2022}
+\assignno{1.0}
+\semester{LaTeX Template}
+
+\renewcommand{\sectionheadname}{Section}
+\renewcommand{\pdftitleadditionalname}{}
+
+\usepackage{booktabs}
+\usepackage{colortbl}
+% option for tabular with '\midrule'
+\aboverulesep = 0mm \belowrulesep = 0mm
+
+\newcommand{\grayrow}{\rowcolor[rgb]{ .906, .902, .902}}
+
+\begin{document}
+ \maketitle
+
+ \section{Basic Information of This Template Class}
+
+ Despite this \textit{SEU-ML-Assign} class is dedicated to Southeast University as the Machine Learning assignment \LaTeX{} template both for teachers and students, it can also be used for other schools.
+ In the near future, it will eventually become an elegant template for all assignment requirememts.
+
+ \begin{table}[htbp]
+ \bgroup
+ \def\arraystretch{1.2}
+ \setlength{\tabcolsep}{1.5em}
+ \begin{tabular}{ll}
+ \toprule
+ \grayrow \textbf{Package Class Name} & seu-ml-assign \\
+ \textbf{Version} & 1.0 (2022/03/20) \\
+ \grayrow \textbf{Description} & \LaTeX{} Template for Southeast University Machine Learning Assignment \\
+ \textbf{Author} & Teddy van Jerry (Wuqiong Zhao) \\
+ \grayrow \textbf{Maintainer} & Teddy van Jerry (Wuqiong Zhao) \\
+ \textbf{GitHub Repository} & \url{https://tvj.one/ml-tex} \\
+ \grayrow \textbf{Issues} & \url{https://tvj.one/ml-tex/issues} \\
+ \textbf{Open Source License} & MIT License (\url{https://tvj.one/ml-tex/blob/master/LICENSE}) \\
+ \bottomrule
+ \end{tabular}%
+ \egroup
+ \end{table}
+
+ You can contact me at \href{mailto:me@tvj.one}{me@tvj.one} for support.
+
+ \section{Class Options}
+
+ To use this template, put \texttt{seu-ml-assign.cls} file under the same directory with your main \texttt{tex} file.
+ \begin{lstlisting}[language=tex,numbers=none]
+\documentclass{seu-ml-assign} % SEU Machine Learning Assignment Template
+ \end{lstlisting}
+ There are 6 supported options:
+ \begin{table}[htbp]
+ \bgroup
+ \def\arraystretch{1.2}
+ \setlength{\tabcolsep}{1.5em}
+ \begin{tabular}{ll}
+ \toprule
+ \textbf{Option} & \textbf{Description} \\
+ \midrule\midrule
+ \grayrow \texttt{solution} & Write solutions (for students). \textbf{[Default]} \\
+ \texttt{problem} & Write problem sets (for instructors). \\
+ \grayrow \texttt{9pt} & Set font size as 9 points. \\
+ \texttt{10pt} & Set font size as 10 points. \textbf{[Default]} \\
+ \grayrow \texttt{11pt} & Set font size as 11 points. \\
+ \texttt{12pt} & Set font size as 12 points. \\
+ \bottomrule
+ \end{tabular}%
+ \egroup
+ \end{table}
+
+ For example, a 10pt document for instructors to create an assignment consisting of problem sets should use
+
+ \begin{lstlisting}[language=tex,numbers=none]
+\documentclass[10pt,problem]{seu-ml-assign} % The 10pt option can be omitted.
+ \end{lstlisting}
+
+ There are several differences between the \texttt{solution} mode and \texttt{problem} mode,
+ including the preset texts on the document (for example the student name is not shown in the \texttt{problem} mode) and some properties can only be used with the \texttt{problem} mode which will be elaborated on in \S\ref{subsec:prob_only_properties}.
+
+ \section{Document Properties}
+
+ \subsection{Fields}
+
+ There are several fields to set.
+ Consider the following example used in the sample file:
+ \begin{lstlisting}[language=tex,numbers=none]
+\title{Assignment} % Document Type: assignment, quiz, etc.
+\author{Teddy van Jerry} % Your Name
+\studentID{61520522} % Your Student ID
+\instructor{TeX - LaTeX Stack Exchange} % The Name of Your Instructor
+\date{\today} % The Submission or Release Date
+\duedate{20:00 March 21, 2022} % The Time the Assignment is Due
+\assignno{1} % Assignment Number
+\semester{SEU --- 2022 Spring} % Semester
+ \end{lstlisting}
+
+ With these fields set, you can use the command \verb|\maketitle| to print the title.
+ At the same time, the metadata for the PDF document is automatically set.
+
+ \subsection{Problem Mode Only Properties}\label{subsec:prob_only_properties}
+ One of the fields \verb|\author{}| and \verb|\instructor{}| can be omitted or set as empty provided that they are the same.
+
+ \section{Section Title (Problem) Settings}
+
+ \subproblem{Normal Title}
+
+ The title of a problem can be set as \verb|\section{This is a Section Title}| or uses a higher level command \verb|\problem{This is a Section Title}|.
+
+ \subproblem{Problem with Points}
+
+ The points of a problem can be set using command \verb|\problempts{xxx}| before calling the \verb|\section{}| command.
+ These two commands can be simplified to \verb|\problem[xxx]{}|.
+ For example, using the command \verb|\problem[15]{This is a Problem Worth 15 Points}| will have:\vspace{-8mm}
+
+ \renewcommand{\sectionheadname}{Problem}
+ \setproblem{1}
+
+ % \problem[15]{This is a Problem Worth 15 Points}
+ \problempts{15}
+ \section*{This is a Problem Worth 15 Points}
+ Note that if the point is an empty string, the point information will not be shown.
+
+ \subproblem{Long Title Compatibility}
+ There is also no problem if the section title is too long.\vspace{-8mm}
+
+ \setproblem{2}
+ \problempts{20}
+ \section*{I Don't Think that Anyone Will Enjoy Themselves Seeing a Very Very Long Problem That is Worth Twenty Points in this Machine Learning Course}
+
+ \renewcommand{\sectionheadname}{Section}
+ \setproblem{4}
+
+ \subproblem{Section Title Name}
+ The name of the section (default name as \texttt{problem}) can be changed by using \verb|\renewcommand{\sectionheadname}{Name}|.
+
+ \subproblem{Section Number}
+ The number of the section can be changed, for example \verb|\texttt{\setproblem{4}}| will make the next section number be \texttt{5}.
+ For experienced \LaTeX{} users to understand, this command actually change the section counter.
+
+ \subproblem{Solution Declaration}
+ You can use \verb|\startsolution| to declare you start writing the solution.
+ This will reset the section number and it is especially useful when your document contains problems and solutions as two separate parts.
+ There is an option \texttt{print} and if you use \verb|\startsolution[print]| you will get:
+
+ \startsolution[print]
+ and the word \textsc{Solution} can be changed using command \verb|\renewcommand{\solutionname}{Other Name}|.
+
+
+ \setproblem{4}
+ \section{Subsection Title (Sub Problem) Settings}
+
+ \subproblem{Normal Title} This is a normal title using command \verb|\subproblem{Normal Title}| or its equivalent command \verb|\subsection{Normal Title}|.
+
+ \subproblem{} Use \verb|\subproblem{}| or \verb|\subsection{}| if only the sub problem number is required (like this line).
+
+ \subproblem{Subsection Number} Similar to \verb|\setproblem{}|, there is also \verb|\setsubproblem{}|.
+
+ \section{Other Tools}
+
+ \subsection{Equation Numbering} The equation number is within the section (problem), for example
+
+ \begin{equation}\label{eq:2-1-det}
+ \mathrm{det}(\mathbf{A})=1\times\begin{vNiceArray}{rr}
+ -5&3\\-6&4
+ \end{vNiceArray}-(-3)\times\begin{vNiceArray}{rr}
+ 3&3\\6&4
+ \end{vNiceArray}+3\times\begin{vNiceArray}{rr}
+ 3&-5\\6&-6
+ \end{vNiceArray}=1\times(-2)+3\times(-6)+3\times 12=16.
+ \end{equation}
+
+ \subsection{Maths Packages} Maths Package \texttt{mathtools}, \texttt{amssymb}, \texttt{amsthm}, \texttt{bm} and \texttt{nicematrix} are automatically loaded.
+ The \texttt{nicematrix} package is especially powerful in terms of writing a matrix.
+ You can find its documentation at \url{https://ctan.org/pkg/nicematrix}.
+
+ \subsection{Fancy Box} A fancy box has been defined.
+ \begin{fancybox}{This is a Title}
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin viverra massa rutrum felis vulputate, ac faucibus velit accumsan. Vivamus aliquet felis nec interdum sollicitudin. Nullam ornare eu velit id cursus. Maecenas a sodales velit, vel cursus magna. Cras lobortis venenatis.
+ \end{fancybox}
+
+
+ You can use the following code to generate it.
+ \begin{lstlisting}[language=tex,numbers=none,morekeywords={begin}]
+\begin{fancybox}{This is a Title}
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin viverra massa rutrum felis vulputate, ac faucibus velit accumsan. Vivamus aliquet felis nec interdum sollicitudin. Nullam ornare eu velit id cursus. Maecenas a sodales velit, vel cursus magna. Cras lobortis venenatis.
+\end{fancybox}
+ \end{lstlisting}
+
+ \appendix
+ \renewcommand{\sectionheadname}{Appendix}
+
+ \section{Known Issues}\label{sec:known_issues}
+
+ \begin{itemize}
+ \item \verb|\section*{}| still shows the section number except for it does not increment the section counter by one;
+ \item The section title background height may not be accurate;
+ \item The style of the footnote line has not been adapted to the current colorful theme.
+ \end{itemize}
+
+ \section{Source Code}
+
+ The source code of \texttt{SEU-ML-Assign.cls} is listed below.
+
+ \lstinputlisting[language=tex,linerange={15-1000},firstnumber=15]{SEU-ML-Assign.cls}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/seu-ml-assign/seu-ml-assign-sample.tex b/macros/latex/contrib/seu-ml-assign/seu-ml-assign-sample.tex
new file mode 100644
index 0000000000..de5bf5f833
--- /dev/null
+++ b/macros/latex/contrib/seu-ml-assign/seu-ml-assign-sample.tex
@@ -0,0 +1,384 @@
+%! TEX program = pdflatex
+
+\documentclass[solution]{seu-ml-assign}
+
+\title{Assignment}
+\author{Teddy van Jerry}
+\studentID{61520522}
+\instructor{TeX - LaTeX Stack Exchange}
+\date{\today}
+\duedate{20:00 March 21, 2022}
+\assignno{1}
+\semester{SEU --- 2022 Spring}
+
+\begin{document}
+
+\maketitle
+
+% \startsolution[print]
+
+\problem{Basic Vector Operations}
+\subproblem{}
+$\|\mathbf{a}\|_2=\sqrt{1^2+2^2+3^2}=\sqrt{14},\quad \|\mathbf{b}\|_2=\sqrt{(-8)^2+1^2+2^2}=\sqrt{69}$.
+
+\subproblem{}
+$\|\mathbf{a}-\mathbf{b}\|_2=\sqrt{9^2+1^2+1^2}=\sqrt{83}$.
+
+\subproblem{}
+$\mathbf{a}$ and $\mathbf{b}$ are orthogonal.
+\begin{proof}
+The inner product of vectors $\mathbf{a}$ and $\mathbf{b}$ is
+\begin{equation}
+\langle\mathbf{a},\mathbf{b}\rangle=\mathbf{a}^T\mathbf{b}=1\times(-8)+2\times 1+3\times 2=0,
+\end{equation}
+therefore $\mathbf{a}$ and $\mathbf{b}$ are orthogonal.
+\end{proof}
+
+\problem{Basic Matrix Operations}
+According to the consensus, the matrix notation should be the bold upper-case letter like $\mathbf{A}$ or $\bm{A}$, not $A$.
+
+\subproblem{}
+\begin{equation}
+ \begin{aligned}
+ [\mathbf{A}, \mathbf{I}_3]&=
+ \begin{bNiceArray}{rrr:rrr}
+ 1&-3&3&1&0&0\\3&-5&3&0&1&0\\6&-6&4&0&0&1
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&-3&3&1&0&0\\0&4&-6&-3&1&0\\0&12&-14&-6&0&1
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&-3&3&1&0&0\\0&4&-6&-3&1&0\\0&0&4&3&-3&1
+ \end{bNiceArray}\\
+ &\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&-3&0&-\frac{5}{4}&\frac{9}{4}&\frac{3}{4}\\[0.3em]0&4&0&\frac{3}{2}&-\frac{7}{2}&-\frac{3}{2}\\[0.3em]0&0&1&\frac{3}{4}&-\frac{3}{4}&\frac{1}{4}
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&0&0&-\frac{1}{8}&-\frac{3}{8}&\frac{3}{8}\\[0.3em]0&1&0&\frac{3}{8}&-\frac{7}{8}&\frac{3}{8}\\[0.3em]0&0&1&\frac{3}{4}&-\frac{3}{4}&\frac{1}{4}
+ \end{bNiceArray},
+ \end{aligned}
+\end{equation}
+where $\mathbf{I}_3$ is the $3\times 3$ identity matrix.
+Therefore we have
+\begin{equation}\label{eq:2-1-inv}
+ \mathbf{A}^{-1}=
+ \begin{bNiceArray}{rrr}
+ -\frac{1}{8}&-\frac{3}{8}&\frac{3}{8}\\[0.3em]\frac{3}{8}&-\frac{7}{8}&\frac{3}{8}\\[0.3em]\frac{3}{4}&-\frac{3}{4}&\frac{1}{4}
+ \end{bNiceArray}.
+\end{equation}
+The determinant of matrix $\mathbf{A}$ can be calculated as
+\begin{equation}\label{eq:2-1-det}
+ \mathrm{det}(\mathbf{A})=1\times\begin{vNiceArray}{rr}
+ -5&3\\-6&4
+ \end{vNiceArray}-(-3)\times\begin{vNiceArray}{rr}
+ 3&3\\6&4
+ \end{vNiceArray}+3\times\begin{vNiceArray}{rr}
+ 3&-5\\6&-6
+ \end{vNiceArray}=1\times(-2)+3\times(-6)+3\times 12=16,
+\end{equation}
+where $|\cdot|$ denotes the determinant.
+
+\subproblem{}
+The rank of matrix $\mathbf{A}$ is $3$ because as is shown in Eq.~\eqref{eq:2-1-inv} the matrix $\mathbf{A}$ is invertible.
+
+\subproblem{}
+The trace of matrix $\mathbf{A}$ is
+\begin{equation}
+ \mathrm{tr}(\mathbf{A})=\sum_{i=1}^{3}a_{ii}=1+(-5)+4=0.
+\end{equation}
+
+\begin{equation}
+ \mathbf{A}+\mathbf{A}^{T}=\begin{bNiceArray}{rrr}
+ 1&-3&3\\3&-5&3\\6&-6&4
+ \end{bNiceArray}+
+ \begin{bNiceArray}{rrr}
+ 1&3&6\\-3&-5&-6\\3&3&4
+ \end{bNiceArray}=
+ \begin{bNiceArray}{rrr}
+ 2&0&9\\0&-10&-3\\9&-3&8
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+\begin{equation}
+ \mathbf{A}+\mathbf{A}^{T}=\begin{bNiceArray}{rrr}
+ 1&-3&3\\3&-5&3\\6&-6&4
+ \end{bNiceArray}+
+ \begin{bNiceArray}{rrr}
+ 1&3&6\\-3&-5&-6\\3&3&4
+ \end{bNiceArray}=
+ \begin{bNiceArray}{rrr}
+ 2&0&9\\0&-10&-3\\9&-3&8
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+$\mathbf{A}$ is not an orthogonal matrix.
+\begin{proof}
+ Assume $\mathbf{A}$ is an orthogonal matrix,
+ therefore
+ \begin{equation}
+ \mathbf{AA}^{T}=\mathbf{I}_3,
+ \end{equation}
+ Take the determinant at both side, it can be derived that
+ \begin{equation}
+ |\mathrm{det}(\mathbf{A})|=\sqrt{|\mathbf{A}||\mathbf{A}^T|}=|\mathrm{det}(\mathbf{I}_3)|=1,
+ \end{equation}
+ which contradicts with Eq.~\eqref{eq:2-1-det}.
+ Therefore, the assumption is false.
+\end{proof}
+
+\subproblem{}
+Let $f(\lambda)$ be the characteristic function of matrix $\mathbf{A}$ and
+\begin{equation}\label{eq:2-6-f}
+ f(\lambda)=\begin{vNiceArray}{ccc}
+ \lambda-1&3&-3\\-3&\lambda+5&-3\\-6&6&\lambda-4
+ \end{vNiceArray}=(\lambda-4)(\lambda+2)^2,
+\end{equation}
+therefore the eigenvalues are $\lambda_1=4, \lambda_2=\lambda_3=-2$.
+Let the corresponding eigenvectors be $\bm{\alpha}_i$, $i=1,2,3$.
+\begin{equation}
+ (\mathbf{A}-\lambda_i\mathbf{I}_3)\bm{\alpha}_i=\mathbf{0},\quad i=1,2,3,
+\end{equation}
+and the corresponding eigenvectors are
+\begin{equation}
+ \bm{\alpha}_1=\begin{bNiceArray}{ccc}1&1&2\end{bNiceArray}^T,\quad
+ \bm{\alpha}_{2,3}=\begin{bNiceArray}{ccc}1&1+c_{2,3}&c_{2,3}\end{bNiceArray}^T,
+\end{equation}
+where $c_{2,3}\in\mathbb{R}$.
+Without loss of generality, we take $c_2=0$ and $c_3=-1$, and we have $\bm{\alpha}_2=\begin{bNiceArray}{ccc}1&1&0\end{bNiceArray}^T$ and $\bm{\alpha}_2=\begin{bNiceArray}{ccc}1&0&-1\end{bNiceArray}^T$.
+
+\subproblem{}
+Use the result from Eq.~\eqref{eq:2-6-f}, the matrix $\mathbf{A}$ can be diagonalized as
+\begin{equation}
+ \bm{\Lambda}=\begin{bNiceArray}{rrr}
+ 4&0&0\\0&-2&0\\0&0&-2
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+The $\ell_{2,1}$ norm of $\mathbf{A}$ is
+\begin{equation}
+ \|\mathbf{A}\|_{2,1}=\sum_{i=1}^3\sqrt{\sum_{j=1}^3a_{ij}^2}=\sqrt{46}+\sqrt{70}+\sqrt{34}\approx 20.98,
+\end{equation}
+and the Frobenius norm of $\mathbf{A}$ is
+\begin{equation}
+ \|\mathbf{A}\|_F=\sqrt{\sum_{i,j=1,\mathrlap{2,3}}a_{ij}^2}=\sqrt{150}=5\sqrt{6}\approx 12.247.
+\end{equation}
+
+\subproblem{}
+The nuclear norm of $\mathbf{A}$ is
+\begin{equation}
+ \|\mathbf{A}\|_*=\mathrm{tr}(\sqrt{\mathbf{A}\mathbf{A^*}})=\sum_{i=1}^3\sigma_i(\mathbf{A})\approx 14.728,
+\end{equation}
+and the spectral norm of $\mathbf{A}$ is
+\begin{equation}
+ \|\mathbf{A}\|_2=\max\sigma_i(\mathbf{A})\approx 12.065.
+\end{equation}
+
+\vspace{2mm}
+\begin{lstlisting}[language=Matlab, title={MATLAB Code for Check}]
+A = [1, -3, 3; 3, -5, 3; 6, -6, 4]; % define the matrix A
+inv(A) % calculate and print the inverse of A
+det(A) % the determinant of A
+rank(A) % the rank of A
+trace(A) % the trace of A
+A + A.' % the sum of A and the transpose of A
+sum(sum(A * A.' ~= eye(3))) % check if A is orthogonal
+[X, D] = eig(A) % the eigenvectors and the corresponding eigenvalues of A
+sum(sqrt(sum(A .^ 2))) % l-2,1 norm of A
+norm(A, 'fro') % Frobenius norm of A
+sum(svd(A)) % nuclear norm of A
+max(svd(A)) % spectral norm of A
+\end{lstlisting}
+
+\problem{Linear Equations}
+\subproblem{}
+It is evident to solve the linear equation
+\begin{equation}\label{eq:3-1}
+ \left\{
+ \begin{aligned}
+ x_1&=-1, \\
+ x_2&=0, \\
+ x_3&=1.
+ \end{aligned}
+ \right.
+\end{equation}
+
+\subproblem{}
+Let
+\begin{equation}
+ \mathbf{A}=\begin{bNiceArray}{rrr}
+ 2&2&3\\1&-1&0\\-1&2&1
+ \end{bNiceArray},\quad
+ \mathbf{b}=
+ \begin{bNiceArray}{r}
+ 1\\-1\\2
+ \end{bNiceArray},
+\end{equation}
+and we have $\mathbf{Ax}=\mathbf{b}$ as
+\begin{equation}
+ \begin{bNiceArray}{rrr}
+ 2&2&3\\1&-1&0\\-1&2&1
+ \end{bNiceArray}
+ \begin{bNiceArray}{r}
+ x_1\\x_2\\x_3
+ \end{bNiceArray}=
+ \begin{bNiceArray}{r}
+ 1\\-1\\2
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+Since there is a unique solution shown in Eq.~\eqref{eq:3-1}, we know
+\begin{equation}\label{eq:3-3}
+ \mathrm{rank}(\mathbf{A})=3.
+\end{equation}
+
+\subproblem{}
+\begin{equation}
+ \begin{aligned}
+ [\mathbf{A}, \mathbf{I}_3]&=
+ \begin{bNiceArray}{rrr:rrr}
+ 2&2&3&1&0&0\\1&-1&0&0&1&0\\-1&2&1&0&0&1
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 2&2&3&1&0&0\\1&-1&0&0&1&0\\0&1&1&0&1&1
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&1&\frac{3}{2}&\frac{1}{2}&0&0\\1&-1&0&0&1&0\\0&1&1&0&1&1
+ \end{bNiceArray}\\
+ &\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&1&\frac{3}{2}&\frac{1}{2}&0&0\\[0.3em]0&-2&-\frac{3}{2}&-\frac{1}{2}&1&0\\[0.3em]0&1&1&0&1&1
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&1&\frac{3}{2}&\frac{1}{2}&0&0\\[0.3em]0&-1&-\frac{3}{4}&-\frac{1}{4}&\frac{1}{2}&0\\[0.3em]0&0&\frac{1}{4}&-\frac{1}{4}&\frac{3}{2}&1
+ \end{bNiceArray}\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&1&0&2&-9&-6\\[0.3em]0&-1&0&-1&5&3\\[0.3em]0&0&1&-1&6&4
+ \end{bNiceArray}\\
+ &\sim
+ \begin{bNiceArray}{rrr:rrr}
+ 1&0&0&1&-4&-3\\0&1&0&1&-5&-3\\0&0&1&-1&6&4
+ \end{bNiceArray},
+ \end{aligned}
+\end{equation}
+therefore the inverse of $\mathbf{A}$ is
+\begin{equation}\label{eq:3-4-inv}
+ \mathbf{A}^{-1}=\begin{bNiceArray}{rrr}
+ 1&-4&-3\\1&-5&-3\\-1&6&4
+ \end{bNiceArray}.
+\end{equation}
+The determinant of $\mathbf{A}$ can be calculated as
+\begin{equation}
+ \mathrm{det}(\mathbf{A})=2\times\begin{vNiceArray}{rr}
+ -1&0\\2&1
+ \end{vNiceArray}-2\times\begin{vNiceArray}{rr}
+ 1&0\\-1&1
+ \end{vNiceArray}+3\times\begin{vNiceArray}{rr}
+ 1&-1\\-1&2
+ \end{vNiceArray}=2\times(-1)-2\times 1+3\times 1=-1.
+\end{equation}
+
+\subproblem{}
+As is shown in Eq.~\eqref{eq:3-3}, $\mathbf{A}$ is invertible and with the result in Eq.~\eqref{eq:3-4-inv}
+\begin{equation}
+ \mathbf{x}=\mathbf{A}^{-1}\mathbf{b}=
+ \begin{bNiceArray}{rrr}
+ 1&-4&-3\\1&-5&-3\\-1&6&4
+ \end{bNiceArray}
+ \begin{bNiceArray}{r}
+ 1\\-1\\2
+ \end{bNiceArray}=
+ \begin{bNiceArray}{r}
+ -1\\0\\1
+ \end{bNiceArray},
+\end{equation}
+and it is exactly the same result with Eq.~\eqref{eq:3-1}.
+
+\subproblem{}
+The inner product
+\begin{equation}
+ \langle\mathbf{x},\mathbf{b}\rangle=\mathbf{x}^T\mathbf{b}=1\times 1+0\times(-1)+1\times 2=1,
+\end{equation}
+and the outer product is
+\begin{equation}
+ \mathbf{x}\otimes\mathbf{b}=\mathbf{x}\mathbf{b}^T=
+ \begin{bNiceArray}{r}
+ -1\\0\\1
+ \end{bNiceArray}
+ \begin{bNiceArray}{rrr}
+ 1&-1&2
+ \end{bNiceArray}=
+ \begin{bNiceArray}{rrr}
+ -1&1&-2\\0&0&0\\1&-1&2
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+$\|\mathbf{b}\|_1=|1|+|-1|+|2|=4,\quad\|\mathbf{b}\|_2=\sqrt{1^2+(-1)^2+2^2}=\sqrt{6},\quad\|\mathbf{b}\|_{\infty}=\max\{|1|,|-1|,|2|\}=2.$
+
+\subproblem{}
+Let $\mathbf{y}=\begin{bNiceArray}{rrr}
+ y_1&y_2&y_3
+\end{bNiceArray}^T$,
+we have
+\begin{equation}
+ \mathbf{y}^T\mathbf{Ay}=
+ \begin{bNiceArray}{rrr}
+ y_1&y_2&y_3
+ \end{bNiceArray}
+ \begin{bNiceArray}{rrr}
+ 2&2&3\\1&-1&0\\-1&2&1
+ \end{bNiceArray}
+ \begin{bNiceArray}{r}
+ y_1\\y_2\\y_3
+ \end{bNiceArray}=2y_1^2-y_2^2+y_3^2+3y_1y_2+2y_2y_3+2y_1y_3,
+\end{equation}
+and
+\begin{equation}
+ \bigtriangledown_{\mathbf{y}}\mathbf{y}^T\mathbf{Ay}=
+ \begin{bNiceArray}{r}
+ \frac{\partial}{\partial y_1}\mathbf{y}^T\mathbf{Ay} \\[.3em]
+ \frac{\partial}{\partial y_2}\mathbf{y}^T\mathbf{Ay} \\[.3em]
+ \frac{\partial}{\partial y_3}\mathbf{y}^T\mathbf{Ay}
+ \end{bNiceArray}=
+ \begin{bNiceArray}{r}
+ 4y_1+3y_2+2y_3 \\
+ 3y_1-2y_2+2y_3 \\
+ 2y_1+2y_2+2y_3
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+The equation $\mathbf{A}_1\mathbf{x}=\mathbf{b}_1$ can be represented as
+\begin{equation}
+ \begin{bNiceArray}{rrr}
+ 2&2&3\\1&-1&0\\-1&2&1\\-1&2&1
+ \end{bNiceArray}
+ \begin{bNiceArray}{r}
+ x_1\\x_2\\x_3
+ \end{bNiceArray}=
+ \begin{bNiceArray}{r}
+ 1\\-1\\2\\2
+ \end{bNiceArray}.
+\end{equation}
+
+\subproblem{}
+$\mathrm{rank}(\mathbf{A}_1)=3$.
+\begin{proof}
+ On one hand, $\mathrm{rank}(\mathbf{A}_1)\geq\mathrm{rank}(\mathbf{A})=3$ which is shown in Eq.~\eqref{eq:3-3}.
+ On the other hand, $\mathrm{rank}(\mathbf{A}_1)\leq\min\{3,4\}=3$.
+ Therefore, $\mathrm{rank}(\mathbf{A}_1)=3$.
+ We can also find the first three equations are linearly independent while the last equation is actually the same with the third equation which makes it meaningless.
+\end{proof}
+
+\subproblem{}
+Yes.
+\begin{proof}
+ Since $\mathrm{rank}(\mathbf{A}_1)=\|\mathbf{x}\|_0$, i.e. rank of $\mathbf{A}_1$ is equal to the dimension of $\mathbf{x}$, the formula can be solved with a unique solution the same as Eq.~\eqref{eq:3-1}.
+\end{proof}
+
+\end{document}
diff --git a/macros/latex/contrib/seu-ml-assign/seu-ml-assign.cls b/macros/latex/contrib/seu-ml-assign/seu-ml-assign.cls
new file mode 100644
index 0000000000..eedc7c2f0b
--- /dev/null
+++ b/macros/latex/contrib/seu-ml-assign/seu-ml-assign.cls
@@ -0,0 +1,298 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% seu-ml-assign.cls %%
+%% %%
+%% ================================================== %%
+%% %%
+%% Version: 1.0 (2022/03/20) %%
+%% Author: Teddy van Jerry (Wuqiong Zhao) %%
+%% License: MIT LICENSE %%
+%% GitHub Repo: https://tvj.one/ml-tex %%
+%% Compiler: pdflatex, xelatex, lualatex %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{seu-ml-assign}[2022/02/20 SEU Machine Learning Assignment Template]
+
+%% Class and Options
+\def\@@ptsize{10pt} % font size
+\DeclareOption{9pt}{\def\@@ptsize{9pt}}
+\DeclareOption{10pt}{\def\@@ptsize{10pt}}
+\DeclareOption{11pt}{\def\@@ptsize{11pt}}
+\DeclareOption{12pt}{\def\@@ptsize{12pt}}
+\def\@@solutionmode{1} % default as the solution mode
+\DeclareOption{solution}{\def\@@solutionmode{1}} % solution mode
+\DeclareOption{problem}{\def\@@solutionmode{0}} % problem mode
+\ProcessOptions\relax
+\LoadClass[a4paper,onecolumn,\@@ptsize]{article}
+
+%% Page Settings
+\RequirePackage[inner=2.0cm,outer=2.0cm,top=1.2cm,bottom=3.5cm]{geometry}
+\newcommand{\firstfooteradditionalheight}{2em} % additional height for footer on the first page
+\hfuzz=.5em % disable false positive of overfull \hbox
+
+%% Document Propertities
+\global\let\@assignno\@empty
+\global\let\@semester\@empty
+\global\let\@studentID\@empty
+\global\let\@instructor\@empty
+\global\let\@duedate\@empty
+\global\let\@author\@empty
+\newcommand{\assignno}[1]{\gdef\@assignno{#1}} % Assignment Number
+\newcommand{\semester}[1]{\gdef\@semester{#1}} % Semester
+\newcommand{\studentID}[1]{\gdef\@studentID{#1}} % Student ID
+\newcommand{\instructor}[1]{\gdef\@instructor{#1}} % Instructor
+\newcommand{\duedate}[1]{\gdef\@duedate{#1}} % Due Date of the Assignment
+
+%% Fonts and Colors
+\RequirePackage[T1]{fontenc}
+\RequirePackage[usenames,dvipsnames]{xcolor}
+
+%% TikZ Rule
+\RequirePackage{tikz}
+\usetikzlibrary{fadings, calc}
+\newcommand{\tikzrule}[3][]{\tikz{\fill[#1] (0,0) rectangle (#2,#3);}}
+
+%% Sections Settings
+\RequirePackage[explicit]{titlesec} % explained in https://tex.stackexchange.com/a/292307/234654
+% http://mirrors.ctan.org/macros/latex/contrib/titlesec/titlesec.pdf
+\pgfdeclarelayer{background}
+\pgfsetlayers{background,main}
+\global\let\@problempts\@empty
+\newcommand{\problempts}[1]{\gdef\@problempts{#1}} % Points of the Problem
+\newcommand{\problemptsprint}{\ifx\@problempts\@empty\else(\@problempts~points)\fi}
+\newcommand{\sectionheadname}{Problem} % Name for the Section (default as 'Problem')
+% Reference: https://tex.stackexchange.com/a/12269/234654
+\newcommand{\boxedsection}[3][blue!20]{{%
+ \begin{tikzpicture}[inner sep=0pt, inner ysep=0.3ex]
+ \node[anchor=base west] at (0,0) (counter) {#2};
+ \path let \p1 = (counter.base east) in node[anchor=base west, text width={\textwidth-\x1-0.33em}] (content)
+ at ($(counter.base east)+(0.33em,0)$) {#3};
+ \begin{pgfonlayer}{background}
+ \shade[left color=#1,right color=white] let \p1=(counter.north), \p2=(content.north) in
+ (0,{max(\y1,\y2)}) rectangle (content.south east);
+ \end{pgfonlayer}
+ \end{tikzpicture}
+}}
+% \titleformat{<command>}
+% [<shape>]{<format>}{<label>}{<sep>}{<before-code>}[<after-code>]
+\titleformat{\section}%
+ {\Large\bfseries}%
+ {}%
+ {0pt}%
+ {\boxedsection{\sectionheadname{} \thesection:}{#1}}%
+ [%
+ \vspace{-2.1\baselineskip}\hfill{\normalfont\small\problemptsprint}%
+ \problempts{}% clear the problem points
+ ]%
+\newcommand{\setproblem}[1]{\ifx#1\@empty\else\setcounter{section}{#1}\fi} % force the number of problem
+\newcommand{\setsubproblem}[1]{\ifx#1\@empty\else\setcounter{subsection}{#1}\fi} % force the number of subproblem
+\newcommand{\problem}[2][]{\problempts{#1}\section{#2}}%
+\newcommand{\solutionname}{Solution}
+\newcommand{\startsolution}[1][print]{%
+ \setproblem{0}% reset the section counter
+ \def\startsolutionprintoption{print}
+ \def\startsolutionprintuseroption{#1}
+ \ifx\startsolutionprintuseroption\startsolutionprintoption{%
+ {%
+ \fontfamily{LinuxLibertineT-OsF}\selectfont% select font as Linux Libertine
+ \centering\LARGE\scshape%
+ \solutionname{}\\[-0.2em]%
+ }%
+ \noindent%
+ \tikzrule[WildStrawberry, path fading=west]{.5\textwidth}{.2em}% <-- Do not remove this
+ \tikzrule[WildStrawberry, path fading=east]{.5\textwidth}{.2em}
+ }\fi%
+}
+\titlespacing*{\section}{0em}{2.5\baselineskip}{1\baselineskip}
+\titleformat{\subsection}[runin]{\large\bfseries}{}{0pt}{(\arabic{subsection}) #1}%
+\newcommand{\subproblem}[2][]{\subsection[#1]{#2}}
+\titleformat{\subsubsection}[runin]{}{}{0pt}{(\arabic{subsubsection}. #1}
+
+%% Maths Settings
+\RequirePackage{mathtools}
+\RequirePackage{amssymb}
+\RequirePackage{amsthm} % proof environment and others
+\RequirePackage{bm} % \bm command
+\RequirePackage{nicematrix}
+\numberwithin{equation}{section}
+
+%% Code Block Settings
+\RequirePackage{listings}
+\definecolor{dkgreen}{rgb}{0,0.5,0}
+\definecolor{gray}{rgb}{0.5,0.5,0.5}
+\definecolor{mauve}{rgb}{0.58,0,0.82}
+\lstset{
+ numbers=left,
+ frame=tb,
+ aboveskip=3mm,
+ belowskip=3mm,
+ showstringspaces=false,
+ columns=fixed,
+ framerule=1pt,
+ rulecolor=\color{gray!35},
+ backgroundcolor=\color{gray!5},
+ basicstyle={\ttfamily\small},
+ numberstyle=\footnotesize\color{gray},
+ keywordstyle=\bfseries\color{blue},
+ commentstyle=\color{dkgreen},
+ stringstyle=\color{mauve},
+ breaklines=true,
+ breakatwhitespace=true,
+ tabsize=2,
+ extendedchars=false,
+ postbreak=\mbox{\hspace{-1.4em}\textcolor{purple}{$\hookrightarrow$}\space}
+}
+
+%% Captions Settings
+\RequirePackage[font=footnotesize,labelfont=bf]{caption}
+
+%% Color Boxes
+\RequirePackage[many]{tcolorbox}
+\RequirePackage{varwidth}
+\newtcolorbox{fancybox}[2][]{enhanced,skin=enhancedlast jigsaw,
+ attach boxed title to top left={xshift=-4mm,yshift=-0.5mm},
+ fonttitle=\bfseries\sffamily,varwidth boxed title=0.7\linewidth,
+ colbacktitle=blue!45!white,colframe=red!50!black,
+ interior style={top color=blue!10!white,bottom color=red!10!white},
+ boxed title style={empty,arc=0pt,outer arc=0pt,boxrule=0pt},
+ underlay boxed title={
+ \fill[blue!45!white] (title.north west) -- (title.north east)
+ -- +(\tcboxedtitleheight-1mm,-\tcboxedtitleheight+1mm)
+ -- ([xshift=4mm,yshift=0.5mm]frame.north east) -- +(0mm,-1mm)
+ -- (title.south west) -- cycle;
+ \fill[blue!45!white!50!black] ([yshift=-0.5mm]frame.north west)
+ -- +(-0.4,0) -- +(0,-0.3) -- cycle;
+ \fill[blue!45!white!50!black] ([yshift=-0.5mm]frame.north east)
+ -- +(0,-0.3) -- +(0.4,0) -- cycle; },
+ title={#2},#1
+}
+\newtcolorbox{notice}[2][]{enhanced,
+ colframe=blue!50!black,colback=blue!10!white,colbacktitle=blue!5!yellow!10!white,
+ fonttitle=\bfseries,coltitle=black,attach boxed title to top center=
+ {yshift=-0.25mm-\tcboxedtitleheight/2,yshifttext=2mm-\tcboxedtitleheight/2},
+ boxed title style={boxrule=0.5mm,
+ frame code={ \path[tcb fill frame] ([xshift=-4mm]frame.west)
+ -- (frame.north west) -- (frame.north east) -- ([xshift=4mm]frame.east)
+ -- (frame.south east) -- (frame.south west) -- cycle; },
+ interior code={ \path[tcb fill interior] ([xshift=-2mm]interior.west)
+ -- (interior.north west) -- (interior.north east)
+ -- ([xshift=2mm]interior.east) -- (interior.south east) -- (interior.south west)
+ -- cycle;} },
+ title={#2},#1
+}
+
+%% Header and Footer
+\RequirePackage{fancyhdr}
+\RequirePackage[colorlinks=true,urlcolor=blue,linkcolor=purple,citecolor=red]{hyperref}
+\setlength{\headheight}{52pt}
+\setlength{\marginparwidth}{2cm}
+\pagestyle{fancy}
+\lhead{
+ \fontfamily{LinuxLibertineT-OsF}\selectfont
+ \if\@@solutionmode1
+ \textsc{\@title~\@assignno} -- \@studentID~\@author
+ \else
+ \textsc{Machine Learning \@title~\@assignno}
+ \fi
+}
+
+\rhead{\thepage}
+\renewcommand\headrule{\vspace{-0.7em}\tikzrule[BrickRed, path fading=east]{.5\textwidth}{0.3mm}}
+\cfoot{}
+% header and footer style for the first page
+\fancypagestyle{firstpage}{
+ \renewcommand\headrule{}
+ \lhead{}
+ \rhead{}
+ \cfoot{
+ \fontfamily{LinuxLibertineT-OsF}\selectfont
+ \vspace*{-\firstfooteradditionalheight}
+ \vspace{-1.5em}
+ \tikzrule[purple, path fading=west]{.5\textwidth}{.15em}% <-- Do not remove this
+ \tikzrule[purple, path fading=east]{.5\textwidth}{.15em}
+
+ \footnotesize\centering
+ \if\@@solutionmode1
+ This \MakeLowercase{\@title{}} is due \@duedate{} and the date of submission is \@date.
+ \else
+ This \MakeLowercase{\@title{}} is due \textbf{\@duedate{}} and the version of the problem set is \@date.
+ \fi
+
+ % LaTeX template information
+ \LaTeX{} template for this \MakeLowercase{\@title{}} is \textit{SEU-ML-Assign}
+ open source at \href{https://tvj.one/ml-tex}{tvj.one/ml-tex} under the MIT License.
+ E-mail \href{mailto:me@tvj.one}{me@tvj.one} for support.
+ }
+}
+
+%% Title Settings
+\RequirePackage{tabularx}
+\RequirePackage{afterpage}
+\newcommand{\pdftitleadditionalname}{Solution}
+\makeatletter
+\renewcommand\maketitle{
+
+ \if\@@solutionmode0
+ \ifx\@instructor\@empty
+ \let\@instructor\@author % author is the instructor (if not specified)
+ \else
+ \ifx\@author\@empty
+ \let\@author\@instructor % instructor is the author (if not specified)
+ \fi
+ \fi
+ \fi
+
+ \thispagestyle{firstpage}
+ \fontfamily{LinuxLibertineT-OsF}\selectfont % set font as Linux Libertine
+ \enlargethispage{-\firstfooteradditionalheight} % make room for the footer
+ \begin{minipage}{10.5cm}
+ \centering
+ {
+ \fontsize{36}{48}\selectfont
+ \textcolor{Plum}{\scshape Machine Learning}
+ }\\[.5em]
+ {
+ \if\@@solutionmode1
+ \@studentID~\@author
+ \qquad
+ \fi
+ \textit{Instructor:~\@instructor}
+ }
+ \end{minipage}
+ \begin{minipage}{5cm}
+ \vspace{0.7em}
+ \centering
+ {
+ \large
+ \textcolor{BrickRed}{\sffamily \@semester}
+ \vspace{2mm}
+ }
+ \LARGE\@title~{\fontfamily{bch}\selectfont\@assignno}
+ \end{minipage}
+ \\[.3em]
+ \tikzrule[cyan, path fading=east]{\textwidth}{.4em}
+ \vspace{2mm}
+
+ \fontfamily{cmr}\selectfont % Computer Modern
+
+ % Set up document meta data
+ % Note that it should be placed here because
+ % by now \@author and \@title have been set.
+ \hypersetup{
+ pdfauthor={\@author},
+ pdftitle={%
+ \@title~\@assignno~
+ \if\@@solutionmode1
+ \pdftitleadditionalname{}
+ \fi
+ - Machine Learning
+ },
+ pdfsubject={Machine Learning},
+ pdfkeywords={Machine Learning, \@title},
+ pdfcreator={LaTeX with SEU-ML-Assign class},
+ pdfproducer={LaTeX}
+ }
+}
+\makeatother