From 0798f276f1afc2ba3635c88273b30b2dbc83c3dd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 20 Mar 2022 21:14:50 +0000 Subject: jxu (20mar22) (branch) git-svn-id: svn://tug.org/texlive/branches/branch2021.final@62834 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/colorist/colorist-fancy.sty | 1026 ++++++++++++++++++++ 1 file changed, 1026 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty (limited to 'Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty') diff --git a/Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty b/Master/texmf-dist/tex/latex/colorist/colorist-fancy.sty new file mode 100644 index 00000000000..2161c7065df --- /dev/null +++ b/Master/texmf-dist/tex/latex/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{}{} + \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'. -- cgit v1.2.3