diff options
Diffstat (limited to 'macros/latex/contrib/minimalist/minimalist-default.sty')
-rw-r--r-- | macros/latex/contrib/minimalist/minimalist-default.sty | 1096 |
1 files changed, 1096 insertions, 0 deletions
diff --git a/macros/latex/contrib/minimalist/minimalist-default.sty b/macros/latex/contrib/minimalist/minimalist-default.sty new file mode 100644 index 0000000000..88380dabbd --- /dev/null +++ b/macros/latex/contrib/minimalist/minimalist-default.sty @@ -0,0 +1,1096 @@ +%% +%% This is file `minimalist/minimalist-default.sty', +%% generated with the docstrip utility. +%% +%% Copyright (C) 2021-2023 by Jinwen XU +%% +%% This is part of the minimalist 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}[2022-06-01] +\ProvidesExplPackage + {minimalist-default} + {2023/09/27} {} + {The default style of minimalist} + +\IfPackageLoadedTF { minimalist } {} + { + \msg_new:nnn { \@currname } + { minimalist-not-loaded } + { "#1"~is~an~internal~style~of~"minimalist".~To~use~it,~you~must~load~the~package~"minimalist"~first. } + \msg_warning:nnx { \@currname } { minimalist-not-loaded } { \@currname } + \endinput + } + +\bool_new:N \l__minimalist_colored_proof_bool +\bool_set_true:N \l__minimalist_colored_proof_bool +\tl_if_eq:NnTF \l__minimalist_colored_proof_tl { * } + { + \bool_set_false:N \l__minimalist_colored_proof_bool + } + { + \tl_if_eq:NnT \l__minimalist_colored_proof_tl { false } + { + \bool_set_false:N \l__minimalist_colored_proof_bool + } + } + +%%================================ +%% Title fonts +%%================================ +\RequirePackage { relsize } +\RequirePackage { anyfontsize } + +\NewCommandCopy \minimalist_original_bfseries: \bfseries +\bool_new:N \l_minimalist_is_under_bfseries_bool +\bool_set_false:N \l_minimalist_is_under_bfseries_bool +\RenewDocumentCommand \bfseries { } + { + \bool_if:NF \l_minimalist_is_under_bfseries_bool + { + \colorlet{minimalist-temp-color}{.} + \color{minimalist-temp-color!70!paper} + } + \minimalist_original_bfseries: + \bool_set_true:N \l_minimalist_is_under_bfseries_bool + } +\bool_if:NTF \l__minimalist_use_boldface_bool + { + \cs_new:Nn \minimalist_bfseries: { \bfseries } + } + { + \cs_new:Nn \minimalist_bfseries: {} + } + +\bool_if:NTF \l__minimalist_use_sffamily_bool + { + \cs_new:Nn \minimalist_sffamily: { \sffamily } + } + { + \cs_new:Nn \minimalist_sffamily: {} + } + +\bool_if:NTF \l__minimalist_use_scshape_bool + { + \cs_new:Nn \minimalist_scshape: { \scshape } + } + { + \cs_new:Nn \minimalist_scshape: {} + } + +\tl_new:N \g_minimalist_title_font_common_tl + +\tl_new:N \g_minimalist_title_font_part_tl +\tl_new:N \g_minimalist_title_font_chapter_tl +\tl_new:N \g_minimalist_title_font_section_tl +\tl_new:N \g_minimalist_title_font_subsection_tl +\tl_new:N \g_minimalist_title_font_subsubsection_tl +\tl_new:N \g_minimalist_title_font_paragraph_tl + +\tl_gset:Nn \g_minimalist_title_font_part_tl { \minimalist_bfseries:\minimalist_sffamily: \g_minimalist_title_font_common_tl } +\tl_gset:Nn \g_minimalist_title_font_chapter_tl { \minimalist_bfseries:\minimalist_sffamily: \g_minimalist_title_font_common_tl \minimalist_scshape: } +\tl_gset:Nn \g_minimalist_title_font_section_tl { \minimalist_bfseries:\minimalist_sffamily: \g_minimalist_title_font_common_tl \minimalist_scshape: } +\tl_gset:Nn \g_minimalist_title_font_subsection_tl { \minimalist_bfseries:\minimalist_sffamily: \g_minimalist_title_font_common_tl \minimalist_scshape: } +\tl_gset:Nn \g_minimalist_title_font_subsubsection_tl { \minimalist_bfseries:\minimalist_sffamily: \g_minimalist_title_font_common_tl } +\tl_gset:Nn \g_minimalist_title_font_paragraph_tl { \minimalist_bfseries:\minimalist_sffamily: \g_minimalist_title_font_common_tl \minimalist_scshape: } + +\bool_if:NF \l__minimalist_fast_bool + { + \RequirePackage { tikz } + \ExplSyntaxOff + \usetikzlibrary{calc,shadings} + \ExplSyntaxOn + \RequirePackage { tikzpagenodes } % For `current page text area` + } + + +%%================================ +%% Footer +%%================================ +\RequirePackage { geometry } +\RequirePackage { fancyhdr } +\RequirePackage { extramarks } + +\hook_gput_code:nnn { begindocument/before } { minimalist } + { + \fancyhfoffset { 0pt } + } + +\tl_new:N \l_minimalist_leftmark_tl +\tl_new:N \l_minimalist_rightmark_tl + +\tl_set:Nn \l_minimalist_leftmark_tl + { + \begin{minipage}[t]{.833\textwidth} + \lastleftmark + \end{minipage} + } +\tl_set:Nn \l_minimalist_rightmark_tl + { + \begin{minipage}[t]{.833\textwidth} + \filleft + \lastrightmark + \end{minipage} + } + +\fancypagestyle { fancy } + { + \fancyhf { } + \if@twoside + \fancyfoot[RO] + { + \textcolor { main-text!30!paper } { \small \l_minimalist_rightmark_tl } + \rlap + { + \nobreakspace \nobreakspace \nobreakspace \nobreakspace + \textcolor { main-text!75!paper } { \thepage } + } + } + \fancyfoot[LE] + { + \leavevmode + \llap + { + \textcolor { main-text!75!paper } { \thepage } + \nobreakspace \nobreakspace \nobreakspace \nobreakspace + } + \textcolor { main-text!30!paper } { \small \l_minimalist_leftmark_tl } + } + \else + \fancyfoot[R] + { + \textcolor { main-text!30!paper } { \small \l_minimalist_rightmark_tl } + \rlap + { + \nobreakspace \nobreakspace \nobreakspace \nobreakspace + \textcolor { main-text!75!paper } { \thepage } + } + } + \fi + \renewcommand { \headrulewidth } { 0pt } + } +\pagestyle { fancy } + +\fancypagestyle { plain } + { + \fancyhf { } + \if@twoside + \fancyfoot[RO] + { + \nobreakspace + \rlap + { + \nobreakspace \nobreakspace \nobreakspace \nobreakspace + \textcolor { main-text!75!paper } { \thepage } + } + } + \fancyfoot[LE] + { + \leavevmode + \llap + { + \textcolor { main-text!75!paper } { \thepage } + \nobreakspace \nobreakspace \nobreakspace \nobreakspace + } + \nobreakspace + } + \else + \fancyfoot[R] + { + \nobreakspace + \rlap + { + \nobreakspace \nobreakspace \nobreakspace \nobreakspace + \textcolor { main-text!75!paper } { \thepage } + } + } + \fi + \renewcommand { \headrulewidth } { 0pt } + } + +\bool_if:NTF \l__minimalist_is_book_bool + { + \bool_if:NTF \l__minimalist_fast_bool + { + \newcommand{ \minimalist_draw_help_line: }{} + } + { + \newcommand{ \minimalist_draw_help_line: } + { + \begin{tikzpicture}[remember~picture,overlay] + \foreach\i in {0,1,...,5}{ + \fill[opacity=0.12-0.02*\i] + ($(current~page~text~area.north~east)+(-\i*0.5em-.025em,-10pt+\i*1.1pt)$) + rectangle ($(current~page~text~area.south~east)+(-\i*0.5em+.025em,10pt-\i*1.1pt)$); + \shade[top~color=paper,bottom~color=main-text,opacity=0.12-0.02*\i] + ($(current~page~text~area.north~east)+(-\i*0.5em-.025em,2pt)$) + rectangle ($(current~page~text~area.north~east)+(-\i*0.5em+.025em,-10pt+\i*1.1pt)$); + \shade[top~color=main-text,bottom~color=paper,opacity=0.12-0.02*\i] + ($(current~page~text~area.south~east)+(-\i*0.5em-.025em,-2pt)$) + rectangle ($(current~page~text~area.south~east)+(-\i*0.5em+.025em,10pt-\i*1.1pt)$); + } + \end{tikzpicture} + } + } + \fancypagestyle { part } + { + \fancyhf { } + \renewcommand { \headrulewidth } { 0pt } + \fancyhead[C] { \minimalist_draw_help_line: } + } + \addtolength { \headheight } { 20pt } + \addtolength { \topmargin } { -20pt } + \if@twoside + \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{}} + \else + \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}} + \fi + \renewcommand*{\sectionmark}[1]{ + \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\thesection\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}} + } + { + \if@twoside + \renewcommand*{\sectionmark}[1]{\markboth{\textsc{#1}}{}} + \else + \renewcommand*{\sectionmark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}} + \fi + } + +\renewcommand*{\thefootnote}{\textcolor{main-text!45!paper}{\arabic{footnote}}} + +\bool_if:NT \l__minimalist_is_book_bool + { + \hook_gput_code:nnn { cmd/frontmatter/before } { minimalist } + { + \renewcommand*{\thefootnote}{\textcolor{main-text!45!paper}{\fnsymbol{footnote}}} + } + \hook_gput_code:nnn { cmd/mainmatter/before } { minimalist } + { + \setcounter{footnote}{0} + \renewcommand*{\thefootnote}{\textcolor{main-text!45!paper}{\arabic{footnote}}} + } + } + +%%================================ +%% Title format +%%================================ +\RequirePackage [ explicit, newparttoc ] { titlesec } +\PassOptionsToPackage { normalem } { ulem } +\RequirePackage { ulem } + +\cs_new:Nn \minimalist_title_numbering_apply_font:n { { \usefont{U}{zeur}{b}{n} #1 } } + +\cs_new_protected:Nn \minimalist_apply_title_numbering_style_static:n + { + \tl_set:Nx \l_tmpa_tl { #1 } + \regex_replace_all:nnN { (\w) } { \c{minimalist_original_bfseries:}{\1} } \l_tmpa_tl + \regex_replace_all:nnN { (\d) } { {\c{minimalist_title_numbering_apply_font:n}{\1}} } \l_tmpa_tl + % \textcolor { .!39!paper } { \normalfont \l_tmpa_tl } + \bool_if:NF \l_minimalist_is_under_bfseries_bool + { + \colorlet{minimalist-temp-color}{.} + } + \textcolor { minimalist-temp-color!39!paper } { \normalfont \l_tmpa_tl } + } + +\cs_new_protected:Nn \minimalist_apply_title_numbering_style:n + { + \group_begin: + \tl_set:Nx \l_tmpa_tl { #1 } + \regex_replace_all:nnN { (\w) } { \c{minimalist_original_bfseries:}{\1} } \l_tmpa_tl + \regex_replace_all:nnN { (\d) } { {\c{minimalist_title_numbering_apply_font:n}{\1}} } \l_tmpa_tl + \exp_args:Nnx \regex_count:nnN { \. } {#1} \l_tmpa_int + \int_case:nn { \l_tmpa_int } + { + { 0 } { \textcolor { main-text!39!paper } } + { 1 } { \textcolor { main-text!39!paper } } + { 2 } { \textcolor { main-text!39!paper } } + { 3 } { \textcolor { main-text!39!paper } } + } + \l_tmpa_tl + \group_end: + } + +\newcommand{\partstring}{\MakeUppercase{{\partname\nobreakspace\protect\thepart}}} + +\AddLanguageSetting + { + \renewcommand{\partstring}{\MakeUppercase{{\partname\nobreakspace\protect\thepart}}} + } +\AddLanguageSetting [ schinese ] + { + \renewcommand{\partstring}{第 \zhnumber{\arabic{part}} 部分} + } +\AddLanguageSetting [ tchinese ] + { + \renewcommand{\partstring}{第 \zhnumber{\arabic{part}} 部分} + } +\AddLanguageSetting [ japanese ] + { + \renewcommand{\partstring}{第 \nobreakspace\thepart\nobreakspace 部} + } + + + \setcounter{secnumdepth}{3} + +\bool_if:NTF \l__minimalist_is_book_bool + { + %% Part + \titleclass{\part}{top} % make part like a chapter + \titleformat{\part}[display] + {\thispagestyle{part} + \LocallyStopLineNumbers + \g_minimalist_title_font_part_tl\filleft} + {\partstring} + {1em} + {\fontsize{20}{24}\selectfont\MakeUppercase{#1}} + [\ResumeLineNumbers] + \titleformat{name=\part,numberless}[display] + {\thispagestyle{part} + \LocallyStopLineNumbers + % \phantomsection\addcontentsline{toc}{part}{#1} + \g_minimalist_title_font_part_tl\filleft} + {\phantom{\MakeUppercase{\partname}}} + {1em} + {\fontsize{20}{24}\selectfont\MakeUppercase{#1}} + [\ResumeLineNumbers] + \titlespacing*{\part}{0pt}{5em}{6em} + %% Text after part + \newcommand{\parttext}[1]{ + \vfill + \LocallyStopLineNumbers + \begin{flushright} + \begin{minipage}{0.833\textwidth} + \color{main-text!80!paper}\raggedleft#1 + \end{minipage} + \end{flushright} + \ResumeLineNumbers + \vfill\vfill + \cleardoublepage + } + + %% Chapter + \titleformat{\chapter} + {\thispagestyle{fancy} + \LocallyStopLineNumbers + \color{main-text!80!paper}\g_minimalist_title_font_chapter_tl\fontsize{16}{0}\selectfont}{}{0em} + { + \rlap + { + \hspace*{-.5em} + \color{main-text!10!paper} + \fontsize{90}{0}\selectfont\raisebox{-10pt}{ \minimalist_title_numbering_apply_font:n { \thechapter } } + } + #1 + } + [\ResumeLineNumbers] + \titleformat{name=\chapter,numberless} + {\thispagestyle{fancy} + \LocallyStopLineNumbers + % \phantomsection\addcontentsline{toc}{chapter}{#1} + \color{main-text!90!paper}\g_minimalist_title_font_chapter_tl\fontsize{16}{0}\selectfont}{}{0em} + { + \rlap + { + \hspace*{-.5em} + \fontsize{80}{0}\selectfont\raisebox{-10pt}{ \phantom{*} } + } + #1 + } + [\ResumeLineNumbers] + } + { + %% Part + \titleformat{\part}[display] + {\LocallyStopLineNumbers + \g_minimalist_title_font_part_tl\filleft} + {\partstring} + {.3em} + {\fontsize{16}{0}\selectfont\MakeUppercase{#1}} + [\ResumeLineNumbers] + \titleformat{name=\part,numberless}[display] + {\LocallyStopLineNumbers + % \phantomsection\addcontentsline{toc}{part}{#1} + \g_minimalist_title_font_part_tl\filleft} + {\phantom{\MakeUppercase{\partname}}} + {.3em} + {\fontsize{16}{0}\selectfont\MakeUppercase{#1}} + [\ResumeLineNumbers] + %% Text after part + \newcommand{\parttext}[1]{ + \LocallyStopLineNumbers + \begin{flushright} + \begin{minipage}{0.833\textwidth} + \color{main-text!80!paper}\raggedleft#1 + \end{minipage} + \end{flushright} + \ResumeLineNumbers + } + } + +%% Section +\tl_gset:Nn \g_minimalist_section_decoration_char_tl {} +\titleformat{\section} + {\LocallyStopLineNumbers + \g_minimalist_title_font_section_tl\centering} + {\raisebox{-.02\baselineskip}{\large \minimalist_apply_title_numbering_style:n { \thesection } }}{1em} + {#1} + [\ResumeLineNumbers] + +%% Subsection +\titleformat{\subsection} + {\LocallyStopLineNumbers + \g_minimalist_title_font_subsection_tl} + { \minimalist_apply_title_numbering_style:n { \thesubsection } }{.75em} + {#1} + [\ResumeLineNumbers] + +%% Subsubsection +\bool_if:NTF \l__minimalist_runin_bool + { + \titleformat{\subsubsection}[runin] + {\g_minimalist_title_font_subsubsection_tl} + { \minimalist_apply_title_numbering_style:n { \thesection } }{.5em} + {#1.}[\hspace*{.3em}] + } + { + \titleformat{\subsubsection} + {\LocallyStopLineNumbers + \g_minimalist_title_font_subsubsection_tl} + { \minimalist_apply_title_numbering_style:n { \thesubsubsection } }{.5em} + {#1} + [\ResumeLineNumbers] + } + +%% Paragraph +\titleformat{\paragraph}[runin] + { \g_minimalist_title_font_paragraph_tl }{\theparagraph}{1em}{#1} + +\titlespacing{\section}{0pt}{1\baselineskip plus .5\baselineskip minus .2\baselineskip}{.6\baselineskip plus .3\baselineskip minus .2\baselineskip} +\titlespacing{\subsection}{0pt}{.75\baselineskip plus .3\baselineskip minus .2\baselineskip}{.4\baselineskip plus .2\baselineskip minus .1\baselineskip} +\bool_if:NTF \l__minimalist_runin_bool + { + \titlespacing{\subsubsection}{0pt}{.5\baselineskip plus .2\baselineskip minus .1\baselineskip}{0pt} + } + { + \titlespacing{\subsubsection}{0pt}{.5\baselineskip plus .2\baselineskip minus .1\baselineskip}{.3\baselineskip plus .2\baselineskip minus .1\baselineskip} + } + + +%%================================ +%% ToC format +%%================================ +\RequirePackage { titletoc } +\titlecontents{part} + [0em] + {\addvspace{1.5pc}\filcenter\normalfont} + { \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } \nopagebreak\\\nopagebreak\uppercase} + {} + {} % without page number + [\addvspace{.5pc}] + +\bool_if:NTF \l__minimalist_is_book_bool + { + \titlecontents{chapter} + [2em] % i.e., 0em (part) + 2em + {\addvspace{.5pc}\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2em}} + {\hspace*{-2em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + \titlecontents{section} + [5.75em] % i.e., 2em (chapter) + 2.75em + 1em + {\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2.75em}} + {\hspace*{-2.75em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + \titlecontents{subsection} + [10.5em] % i.e., 5.75em (section) + 3.75em + 1em + {\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{3.75em}} + {\hspace*{-3.75em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + \titlecontents{subsubsection} + [15.75em] % i.e., 10.5em (subsection) + 4.25em + 1em + {\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{4.25em}} + {\hspace*{-4.25em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + } + { + \titlecontents{section} + [2em] % i.e., 0em (part) + 2em + {\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{1.5em}} + {\hspace*{-1.5em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + \titlecontents{subsection} + [5em] % i.e., 2em (section) + 2.5em + 0.5em + {\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2.5em}} + {\hspace*{-2.5em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + \titlecontents{subsubsection} + [9.5em] % i.e., 5em (subsection) + 3.5em + 1em + {\normalfont} + {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{3.5em}} + {\hspace*{-3.5em}} + {\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage} + } + +%%================================ +%% Lists +%%================================ +\PassOptionsToPackage { inline } { enumitem } +\RequirePackage { enumitem } +\setlistdepth{10} +\setlist{noitemsep, topsep=.33\topsep-.5\parskip} +\setlist[enumerate]{labelsep=*, leftmargin=*} +\setlist[enumerate,1]{label = \normalfont\arabic*$\mskip-.5mu\big)$, + ref = \normalfont\color{.!45!paper}\arabic*$\mskip-.5mu\big)$, + leftmargin= \l__minimalist_item_indentation_dim + \maxof{\parindent}{1.5em} } + % labelindent= \l__minimalist_item_indentation_dim } +\setlist[enumerate,2]{label = \normalfont\roman*$\mskip-.5mu\big)$, + ref = \normalfont\color{.!45!paper}\arabic{enumi}.\roman*$\mskip-.5mu\big)$} +\setlist[enumerate,3]{label = \normalfont\emph{\alph*}$\mskip-.5mu\big)$, + ref = \normalfont\color{.!45!paper}\arabic{enumi}.\roman{enumii}.\emph{\alph*}$\mskip-.5mu\big)$} + +\setlist[description]{font=\normalfont\minimalist_bfseries:\minimalist_sffamily: , + labelindent= \l__minimalist_item_indentation_dim } + +\renewlist{itemize}{itemize}{10} +\setlist[itemize]{leftmargin=*,label=\textcolor{.!27!paper}{$\cdot$}} +\AddLanguageSetting { \setlist[itemize,1]{label=\textcolor{.!27!paper}{$\bullet$},leftmargin= \l__minimalist_item_indentation_dim + \maxof{\parindent}{1.5em}} } +\AddLanguageSetting [french] { \setlist[itemize,1]{label=\textcolor{.!39!paper}{\rule[.2\baselineskip]{.8em}{.75pt}},leftmargin= \l__minimalist_item_indentation_dim + \maxof{\parindent}{1.5em} } } +\setlist[itemize,2]{label=\textcolor{.!27!paper}{\rule[.2\baselineskip]{.55em}{.75pt}}} +\setlist[itemize,3]{label=\textcolor{.!27!paper}{$\circ$}} +\setlist[itemize,4]{label=\textcolor{.!27!paper}{$\ast$}} + +%%================================ +%% Blank page +%%================================ +\projlib_langauge_define_multilingual_text:Nn \bl@nkpagetext + { + , EN = This~page~is~intentionally~left~blank + , FR = Cette~page~est~intentionnellement~laissée~vide + , DE = Diese~Seite~wurde~absichtlich~leer~gelassen + , IT = Questa~pagina~è~stata~lasciata~vuota~intenzionalmente + , PT = Esta~página~foi~intencionalmente~deixada~em~branco + , BR = Esta~página~foi~intencionalmente~deixada~em~branco + , ES = Esta~página~se~ha~dejado~intencionadamente~en~blanco + , CN = \ziju{0.2} 此页为有意留为空白 + , TC = \ziju{0.2} 此頁為有意留為空白 + , JP = このページは意図的に空白にしてあります + , RU = Эта~страница~намеренно~оставлена~пустой + } +\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}\g_minimalist_title_font_common_tl\bl@nkpagetext}} + } + \null\newpage\fi\fi +} + +%%================================ +%% Index +%%================================ +\RequirePackage { imakeidx } +\makeindex[intoc] + +\RequirePackage { silence } +\ExplSyntaxOff +\WarningFilter{latex}{Writing or overwriting file} +\begin{filecontents*}[overwrite]{\jobname.mst} +delim_0 "\\IndexDotfill " % Filler between section heading and page number +delim_1 "\\IndexDotfill " % Filler between subsection heading and page number +headings_flag 1 +heading_prefix "\\IndexHeading{" +heading_suffix "}\n" +\end{filecontents*} +\ExplSyntaxOn + +\projlib_langauge_define_multilingual_text:Nn \index_symbols_name + { + , EN = Symbols + , FR = Symboles + , DE = Symbole + , IT = Simboli + , PT = Símbolos + , BR = Símbolos + , ES = Símbolos + , CN = 符号 + , TC = 符號 + , JP = 記号 + , RU = Символы + } + +\newcommand*{\IndexDotfill} + { + \null\nobreak + \leaders \hbox to .67em {\hss \textcolor{main-text!15!paper}{.} \hss} \hskip1em plus1fill + } +\newcommand*{\IndexLinebreak} + { + \nobreakspace\textcolor{main-text!45!paper}{\raisebox{.4ex}{.}\raisebox{.2ex}{.}} + \item\hspace*{\hangindent} + \textcolor{main-text!45!paper}{\raisebox{.45ex}{.}\raisebox{.25ex}{.}}\: + \unskip + } + +\newcommand*{\IndexHeading}[1] + { + \str_if_eq:nnTF { #1 } { Symbols } + { \tl_set:Nn \l_tmpa_tl { \index_symbols_name } } + { \tl_set:Nn \l_tmpa_tl { #1 } } + \centerline{ \g_minimalist_title_font_common_tl \minimalist_apply_title_numbering_style_static:n { \l_tmpa_tl } } + \nopagebreak + \par + \vspace{.3\baselineskip} + } + +\renewcommand*{\indexspace} + { + \par + \vspace{2pc plus .5pc minus .3pc} + } + +\bool_new:N \l__minimalist_if_first_subitem_bool +\renewcommand*{\@idxitem} + { + \par\hangindent40\p@ + \bool_set_true:N \l__minimalist_if_first_subitem_bool + } +\renewcommand*{\subitem} + { + \par\hangindent40\p@ + \bool_if:NT \l__minimalist_if_first_subitem_bool + { + \nobreak + \bool_set_false:N \l__minimalist_if_first_subitem_bool + } + \hspace*{20\p@} + } + +\hook_gput_code:nnn { begindocument/before } { minimalist } + { + \bool_if:NF \l__minimalist_fast_bool + { + \hook_gput_code:nnn { cmd/printindex/before } { minimalist } { \bookmarksetup{startatroot} } + } + \hook_gput_code:nnn { cmd/printindex/before } { minimalist } { \LocallyStopLineNumbers } + \hook_gput_code:nnn { cmd/printindex/after } { minimalist } { \ResumeLineNumbers } + } + +%%================================ +%% Draft mark +%%================================ +\RequirePackage { projlib-draft } + +%%================================ +%% Theorems +%%================================ +\RequirePackage { mathtools } +\RequirePackage { amsthm } + +\def\tagform@#1{\maketag@@@{\textcolor{.!39!paper}{(\ignorespaces#1\unskip\@@italiccorr)}}} + +\PassOptionsToPackage { nopatch = eqnum } { microtype } + +\bool_if:NTF \l__minimalist_theorem_in_new_line_bool + { + \newtheoremstyle{simple} + {.75\baselineskip}{} + { + \normalfont + \parindent=0pt + \parskip=.3333\baselineskip plus .0667\baselineskip minus .0833\baselineskip + }{} + {\normalfont}{} + {0pt} + { + \rlap{\vbox{\hbox{\parbox{\linewidth}{ + {\thmname{#1}\thmnumber{\nobreakspace #2}} + {\color{main-text!50!paper}\thmnote{\hspace{.4em}$($#3$)$}} + }}\hbox{\strut}\vspace{0pt}}} + } + \newtheoremstyle{simple-var} + {.75\baselineskip}{} + { + \bool_if:NTF \l__minimalist_emphasis_theorem_bool { \itshape } { \normalfont } + \parindent=0pt + \parskip=.3333\baselineskip plus .0667\baselineskip minus .0833\baselineskip + }{} + {\normalfont}{} + {0pt} + { + \rlap{\vbox{\hbox{\parbox{\linewidth}{ + {\thmname{#1}\thmnumber{\nobreakspace #2}} + {\color{main-text!50!paper}\thmnote{\hspace{.4em}$($#3$)$}} + }}\hbox{\strut}\vspace{0pt}}} + } + } + { + \newtheoremstyle{simple} + {}{} + { + \normalfont + \parindent=0pt + \parskip=.3333\baselineskip plus .0667\baselineskip minus .0833\baselineskip + }{} + {\normalfont}{} + {0pt} + {{\thmname{#1}\thmnumber{\nobreakspace #2}} + {\color{main-text!50!paper}\thmnote{\hspace{.4em}$($#3$)$}} + \minimalist_bfseries:\minimalist_sffamily: . + \nobreakspace\nobreakspace} + % {\normalfont\textcolor{main-text!27!paper}{---}} + \newtheoremstyle{simple-var} + {}{} + { + \bool_if:NTF \l__minimalist_emphasis_theorem_bool { \itshape } { \normalfont } + \parindent=0pt + \parskip=.3333\baselineskip plus .0667\baselineskip minus .0833\baselineskip + }{} + {\normalfont}{} + {0pt} + {{\thmname{#1}\thmnumber{\nobreakspace #2}} + {\color{main-text!50!paper}\thmnote{\hspace{.4em}$($#3$)$}} + \minimalist_bfseries:\minimalist_sffamily: . + \nobreakspace\nobreakspace} + % {\normalfont\textcolor{main-text!27!paper}{---}} + } + +\theoremstyle{simple} + +\newcommand{\customqedsymbol}{ + \makebox[1em]{\color{.!27!paper}\rule[-0.1em]{.95em}{.95em}}} +\let\qedsymbol\customqedsymbol + +\bool_if:NTF \l__minimalist_fast_bool + { + \RequirePackage { hyperref } + \hypersetup { draft } + } + { + \RequirePackage { hyperref } + \RequirePackage { bookmark } + \hypersetup{ hidelinks, linktoc = all } + \bookmarksetup{ numbered } + \renewcommand\Hy@numberline[1]{#1.~} + % https://tex.stackexchange.com/a/1821 + % Add the bookmark of ToC + \bool_if:NTF \l__minimalist_is_book_bool + { + \hook_gput_code:nnn { cmd/tableofcontents/before } { minimalist } + { + \if@openright\cleardoublepage\else\clearpage\fi + \pdfbookmark[0]{\contentsname}{toc} + } + } + { + \hook_gput_code:nnn { cmd/tableofcontents/before } { minimalist } + { + \pdfbookmark[1]{\contentsname}{toc} + } + } + } + + +\PassOptionsToPackage { theorem-style = { theorem = simple-var, lemma = simple-var, proposition = simple-var, corollary = simple-var, property = simple-var, axiom = simple-var, construction = simple-var, theorem-with-name = simple-var } } { projlib-theorem } + +\RequirePackage { projlib-theorem } + +\SetTheorem { proof, proof* } { qed-symbol = { \customqedsymbol } } + +\bool_if:NT \l__minimalist_colored_proof_bool + { + \hook_gput_code:nnn { env/proof/begin } { minimalist } + { + \Hy@SaveLastskip + \color{ \l__minimalist_colored_proof_tl } + \Hy@RestoreLastskip + } + } + + +\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name } + { + name style = { + , heading style = { + , english = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , french = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , ngerman = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , italian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , portuguese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , brazilian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , spanish = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , schinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , tchinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , japanese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + } + } + +\SetTheorem { remark } + { + name style = { + , heading style = { + , english = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , french = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , ngerman = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , italian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , portuguese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , brazilian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , spanish = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , schinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , tchinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , japanese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + } + } + +\bool_if:NF \l__projlib_theorem_complexname_bool + { + \exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name } + { + name style = { + , crefname style = { + , english = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , french = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , ngerman = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , italian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , portuguese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , brazilian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , spanish = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , schinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , tchinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , japanese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + , Crefname style = { + , english = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , french = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , ngerman = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , italian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , portuguese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , brazilian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , spanish = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textsc + , schinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , tchinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , japanese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + , numbering style = { + \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + } + } + + \SetTheorem { remark } + { + name style = { + , crefname style = { + , english = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , french = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , ngerman = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , italian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , portuguese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , brazilian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , spanish = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , schinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , tchinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , japanese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + , Crefname style = { + , english = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , french = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , ngerman = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , italian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , portuguese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , brazilian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , spanish = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl\textit + , schinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , tchinese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , japanese = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + , russian = \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + , numbering style = { + \minimalist_bfseries:\minimalist_sffamily:\g_minimalist_title_font_common_tl + } + } + } + } + +\PassOptionsToPackage { many } { tcolorbox } +\RequirePackage { tcolorbox } +\bool_if:NT \l__minimalist_fast_bool { \tcbstartdraftmode } + + +\NewDocumentEnvironment { emphasis } { } + { + \LocallyStopLineNumbers + \enlargethispage{2mm} + \begin{tcolorbox} + [ + enhanced ~ jigsaw, breakable, oversize, + % nobeforeafter, + left = .5em, right=0mm, top=0.5mm, bottom=0mm, boxrule=0pt, + colback=main-text!2!paper, frame ~ hidden, + borderline ~ west = {.3em} {0mm} {main-text!25!paper}, + arc = 0.2mm, + ] + } + { + \end{tcolorbox} + \ResumeLineNumbers + } + +\hook_gput_code:nnn { env/quote/begin } { minimalist } { \small } + +%%================================ +%% Title block style +%%================================ +\bool_if:NTF \l__minimalist_is_book_bool + { + \hook_gput_code:nnn { package/projlib-author/after } { minimalist } + { + \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \minimalist_scshape: } + \tl_gset:Nn \g__projlib_author_font_institute_tl { \large \normalfont } + \tl_gset:Nn \g__projlib_author_font_address_tl { \large \normalfont \itshape } + \tl_gset:Nn \g__projlib_author_font_curraddr_tl { \large \normalfont \itshape } + \tl_gset:Nn \g__projlib_author_font_email_tl { \large \normalfont \ttfamily } + } + + \RequirePackage { projlib-titlepage } + \RenewDocumentCommand \maketitle { O{} } + { + \LocallyStopLineNumbers + \ProjLibTitlePage [ style = simple, #1 ] + { + , title = \@title + , author = \@author + , date = \@date + } + \ResumeLineNumbers + } + } + { + \renewcommand{\@maketitle} + { + \LocallyStopLineNumbers + \begin{center} + \let\footnote\thanks + {\minimalist_bfseries:\minimalist_scshape:\sffamily\Large\@title}\\\bigskip + \color{main-text!80!paper} + {\small\minimalist_scshape:\@author} + \par\smallskip\vspace{-\parskip} + {\small\@date} + \end{center} + \projlib_author_if_content_empty:nT { \@date } { \medskip } + \medskip\par + \ResumeLineNumbers + } + + \hook_gput_code:nnn { cmd/maketitle/after } { minimalist } { \thispagestyle{fancy} } + +%%================================ +%% Abstract style +%%================================ + \renewenvironment{abstract} + { + \LocallyStopLineNumbers + \vspace{-.5\baselineskip} + \begin{center} + { \g_minimalist_title_font_section_tl \minimalist_scshape: \small\abstractname}\\ + \vspace{-.3\baselineskip} + \begin{minipage}[t]{.833\textwidth} + \vspace{0pt} + \color{main-text!80!paper} + \footnotesize + \parindent=2em + } + { + \end{minipage} + \end{center} + \medskip + \ResumeLineNumbers + } + +%%================================ +%% 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}{ + \LocallyStopLineNumbers + \vspace{-.75\baselineskip} + \begin{center} + { \g_minimalist_title_font_section_tl \minimalist_scshape: \small\keywordname}\\ + \vspace{-.3\baselineskip} + \begin{minipage}[t]{.833\textwidth} + \vspace{0pt} + \color{main-text!80!paper} + \footnotesize + \parindent=2em + \begin{center} + }{ + \end{center} + \end{minipage} + \end{center} + \medskip + \ResumeLineNumbers + } + } % end of \bool_if:NTF \l__minimalist_is_book_bool + +%%================================ +%% Simulate features of amsart +%%================================ +\PassOptionsToPackage { amsfashion } { projlib-author } +\RequirePackage { projlib-author } + +%%================================ +%% Special adjustment +%%================================ +\crefformat { chapter } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\labelcrefformat { chapter } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\crefformat { section } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\labelcrefformat { section } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\crefformat { subsection } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\labelcrefformat { subsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\crefformat { subsubsection } { \nobreak \crefthemark { \crefthe_retrieve_space: } \nobreak #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } +\labelcrefformat { subsubsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 } + +\endinput +%% +%% End of file `minimalist/minimalist-default.sty'. |