%%%%%%%%%%%%%%%%%%%%%% %% start of file `elegantbook.cls'. %% Copyright 2013-2020 ElegantLaTeX (elegantlatex2e@gmail.com) %% %% This work may be distributed and/or modified freely %% available at https://github.com/ElegantLaTeX/ElegantBook % %%%%%%%%%%%%%%%%%%%%% % % !Mode:: "TeX:UTF-8" \NeedsTeXFormat{LaTeX2e} \ProvidesClass{elegantbook}[2020/04/12 v3.11 ElegantBook document class] \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{family=ELEGANT, prefix=ELEGANT@, setkeys=\kvsetkeys} \newcommand{\ekv}[1]{\kvsetkeys{ELEGANT}{#1}} % ----- Colors ----- \DeclareStringOption[blue]{color} \DeclareStringOption[en]{lang} \DeclareStringOption[answer]{result} \DeclareStringOption[fancy]{mode} \DeclareStringOption[normal]{device} \DeclareStringOption[cm]{math} \DeclareStringOption[marginfalse]{marginpar} \DeclareStringOption[onecol]{toc} \DeclareStringOption{scheme} % ----- backward compatibility \DeclareVoidOption{green}{\ekv{color=green}} \DeclareVoidOption{cyan}{\ekv{color=cyan}} \DeclareVoidOption{blue}{\ekv{color=blue}} \DeclareVoidOption{gray}{\ekv{color=gray}} \DeclareVoidOption{black}{\ekv{color=black}} \DeclareVoidOption{nocolor}{\ekv{color=none}} \DeclareStringOption[ctexfont]{chinesefont} \DeclareVoidOption{chinese}{\ekv{scheme=chinese}} \DeclareVoidOption{ctexfont}{\ekv{chinesefont=ctexfont}} \DeclareVoidOption{founder}{\ekv{chinesefont=founder}} \DeclareVoidOption{nofont}{\ekv{chinesefont=nofont}} \DeclareVoidOption{en}{\ekv{lang=en}} \DeclareVoidOption{cn}{\ekv{lang=cn}} \DeclareVoidOption{it}{\ekv{lang=it}} \DeclareVoidOption{fancy}{\ekv{mode=fancy}} \DeclareVoidOption{simple}{\ekv{mode=simple}} \DeclareVoidOption{answer}{\ekv{result=answer}} \DeclareVoidOption{noanswer}{\ekv{result=noanswer}} \DeclareVoidOption{normal}{\ekv{device=normal}} \DeclareVoidOption{pad}{\ekv{device=pad}} \DeclareStringOption[numbers]{cite} \DeclareVoidOption{numbers}{\ekv{cite=numbers}} \DeclareVoidOption{authoryear}{\ekv{cite=authoryear}} \DeclareVoidOption{super}{\ekv{cite=super}} \DeclareStringOption[apalike]{bibstyle} \DeclareVoidOption{newtx}{\ekv{math=newtx}} \DeclareVoidOption{mtpro2}{\ekv{math=mtpro2}} \DeclareVoidOption{cm}{\ekv{math=cm}} \DeclareVoidOption{margintrue}{\ekv{marginpar=margintrue}} \DeclareVoidOption{marginfalse}{\ekv{marginpar=marginfalse}} \DeclareVoidOption{onecol}{\ekv{toc=onecol}} \DeclareVoidOption{twocol}{\ekv{toc=twocol}} % ----- Math option ----- \newcommand\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}} % ----- Title Style ----- \DeclareStringOption[hang]{titlestyle}[hang] % ----- backward compatibility \DeclareVoidOption{hang}{\ekv{titlestyle=hang}} \DeclareVoidOption{display}{\ekv{titlestyle=display}} % ----- Default Options ----- \DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{book}} \ProcessKeyvalOptions*\relax % \ProcessOptions*\relax \LoadClass[a4paper,oneside]{book} \RequirePackage{setspace} \RequirePackage{hyperref} \hypersetup{ breaklinks, unicode, linktoc=all, bookmarksnumbered=true, bookmarksopen=true, pdfkeywords={ElegantBook}, colorlinks, linkcolor=winered, citecolor=winered, urlcolor=winered, plainpages=false, pdfstartview=FitH, pdfborder={0 0 0}, linktocpage } %% device settings \RequirePackage{geometry} \ifdefstring{\ELEGANT@device}{normal}{ \geometry{ a4paper, top=25.4mm, bottom=25.4mm, headheight=2.17cm, headsep=4mm, footskip=12mm } \ifdefstring{\ELEGANT@marginpar}{margintrue}{ \geometry{ marginparwidth=5cm, marginparsep=5mm, left=2cm,right=7cm}}{\relax}}{ \relax} \ifdefstring{\ELEGANT@device}{pad}{ \geometry{ paperwidth=7.5in, paperheight=10in, margin=16mm, headheight=2.17cm, footskip=4mm }}{\relax} \RequirePackage{indentfirst,comment} % fontsetting \ifdefstring{\ELEGANT@math}{mtpro2}{ \let\Bbbk\relax \RequirePackage[lite]{mtpro2} }{\relax} \setcounter{tocdepth}{1} \PassOptionsToPackage{no-math}{fontspec} \RequirePackage{iftex} \ifdefstring{\ELEGANT@lang}{cn}{ \ifXeTeX \ifdefstring{\ELEGANT@chinesefont}{founder}{ \RequirePackage[UTF8,scheme=plain,fontset=none]{ctex} \setCJKmainfont[BoldFont={FZHei-B01},ItalicFont={FZKai-Z03}]{FZShuSong-Z01} \setCJKsansfont[BoldFont={FZHei-B01},ItalicFont={FZHei-B01}]{FZHei-B01} \setCJKmonofont[BoldFont={FZHei-B01},ItalicFont={FZHei-B01}]{FZFangSong-Z02} \setCJKfamilyfont{zhsong}{FZShuSong-Z01} \setCJKfamilyfont{zhhei}{FZHei-B01} \setCJKfamilyfont{zhkai}{FZKai-Z03} \setCJKfamilyfont{zhfs}{FZFangSong-Z02} \newcommand*{\songti}{\CJKfamily{zhsong}} \newcommand*{\heiti}{\CJKfamily{zhhei}} \newcommand*{\kaishu}{\CJKfamily{zhkai}} \newcommand*{\fangsong}{\CJKfamily{zhfs}}}{\relax} \ifdefstring{\ELEGANT@chinesefont}{nofont}{ \RequirePackage[UTF8,scheme=plain,fontset=none]{ctex}}{\relax} \ifdefstring{\ELEGANT@chinesefont}{ctexfont}{ \RequirePackage[UTF8,scheme=plain]{ctex}}{\relax} \else \ifdefstring{\ELEGANT@chinesefont}{ctexfont}{ \RequirePackage[UTF8,scheme=plain]{ctex}}{\relax} \fi \AfterEndPreamble{ % \renewcommand{\itshape}{\kaishu} \setlength\parindent{2\ccwd}}}{\relax} \ifcsname kaishu\endcsname \newcommand{\citshape}{\kaishu} \else \newcommand{\citshape}{\itshape} \fi \ifcsname kaishu\endcsname \newcommand{\cnormal}{\kaishu} \else \newcommand{\cnormal}{\normalfont} \fi \ifcsname fangsong\endcsname \newcommand{\cfs}{\fangsong} \else \newcommand{\cfs}{\normalfont} \fi \RequirePackage{newtxtext} \RequirePackage{anyfontsize} \ifdefstring{\ELEGANT@math}{newtx}{ \RequirePackage{newtxmath} \let\Bbbk\relax \RequirePackage{esint} %%% use yhmath pkg, uncomment following code % \let\oldwidering\widering % \let\widering\undefined % \RequirePackage{yhmath} % \let\widering\oldwidering %%% use esvect pkg, uncomment following code % \RequirePackage{esvect} \DeclareSymbolFont{CMlargesymbols}{OMX}{cmex}{m}{n} \let\sumop\relax\let\prodop\relax \DeclareMathSymbol{\sumop}{\mathop}{CMlargesymbols}{"50} \DeclareMathSymbol{\prodop}{\mathop}{CMlargesymbols}{"51} }{\relax} % ----- Handle Colors ----- %% 章节以及页脚图形 \RequirePackage{xcolor} \ifdefstring{\ELEGANT@color}{green}{ \definecolor{structurecolor}{RGB}{0,120,2}% \definecolor{main}{RGB}{0,120,2}% \definecolor{second}{RGB}{230,90,7}% \definecolor{third}{RGB}{0,160,152}% }{\relax} \ifdefstring{\ELEGANT@color}{cyan}{ \definecolor{structurecolor}{RGB}{31,186,190}% \definecolor{main}{RGB}{59,180,5}% \definecolor{second}{RGB}{175,153,8}% \definecolor{third}{RGB}{244,105,102}% }{\relax} \ifdefstring{\ELEGANT@color}{blue}{ \definecolor{structurecolor}{RGB}{60,113,183} \definecolor{main}{RGB}{0,166,82}% \definecolor{second}{RGB}{255,134,24}% \definecolor{third}{RGB}{0,174,247}% }{\relax} \ifdefstring{\ELEGANT@color}{gray}{ \definecolor{structurecolor}{RGB}{150,150,150} \definecolor{main}{RGB}{150,150,150}% \definecolor{second}{RGB}{150,150,150}% \definecolor{third}{RGB}{150,150,150}% }{\relax} \ifdefstring{\ELEGANT@color}{black}{ \definecolor{structurecolor}{RGB}{0,0,0} \definecolor{main}{RGB}{0,0,0}% \definecolor{second}{RGB}{0,0,0}% \definecolor{third}{RGB}{0,0,0}% }{\relax} %green color \definecolor{structure1}{RGB}{0,120,2}% \definecolor{main1}{RGB}{0,120,2}% \definecolor{second1}{RGB}{230,90,7}% \definecolor{third1}{RGB}{0,160,152}% %cyan color \definecolor{structure2}{RGB}{31,186,190}% \definecolor{main2}{RGB}{59,180,5}% \definecolor{second2}{RGB}{175,153,8}% \definecolor{third2}{RGB}{244,105,102}% %blue color \definecolor{structure3}{RGB}{60,113,183} \definecolor{main3}{RGB}{0,166,82}% \definecolor{second3}{RGB}{255,134,24}% \definecolor{third3}{RGB}{0,174,247}% % gray color \definecolor{structure4}{RGB}{150,150,150} \definecolor{main4}{RGB}{150,150,150}% \definecolor{second4}{RGB}{150,150,150}% \definecolor{third4}{RGB}{150,150,150}% % black color \definecolor{structure5}{RGB}{0,0,0} \definecolor{main5}{RGB}{0,0,0}% \definecolor{second5}{RGB}{0,0,0}% \definecolor{third5}{RGB}{0,0,0}% % corlor definition \definecolor{winered}{rgb}{0.5,0,0} \definecolor{bule}{RGB}{18,29,57} % ----- Title Style ----- \ifdefstring{\ELEGANT@titlestyle}{hang}{\def\style{hang}}{\relax} \ifdefstring{\ELEGANT@titlestyle}{display}{\def\style{display}}{\relax} % reference: % https://tex.stackexchange.com/questions/58506/how-to-make-a-new-command-similar-to-author % https://pastebin.com/C8W4axzV \newcommand\email[1]{\href{mailto:#1}{\nolinkurl{#1}}} \global\let\@title\@empty \global\let\@author\@empty \global\let\@date\@empty \newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} \newcommand{\institute}[1]{\gdef\@institute{#1}} \newcommand{\version}[1]{\gdef\@version{#1}} \newcommand{\extrainfo}[1]{\gdef\@extrainfo{#1}} \RequirePackage{mwe} \newcommand{\logo}[1]{\gdef\@logo{#1}} \newcommand{\cover}[1]{\gdef\@cover{#1}} \newcommand{\question}[1]{{\par\citshape #1}\\[0.2ex]} \ifdefstring{\ELEGANT@lang}{cn}{\relax}{ \RequirePackage[\ELEGANT@cite,sort&compress]{natbib}} \RequirePackage{enumerate} % list/itemize/enumerate setting \RequirePackage[shortlabels,inline]{enumitem} \setlist{nolistsep} \RequirePackage[font=small,labelfont={bf,color=structurecolor}]{caption} \captionsetup[table]{skip=3pt} \captionsetup[figure]{skip=3pt} \AtBeginDocument{ \setlength{\abovedisplayskip}{3pt} \setlength{\belowdisplayskip}{3pt} \RequirePackage[flushmargin,stable]{footmisc} \setlength{\footnotesep}{12pt} } \ifdefstring{\ELEGANT@toc}{twocol}{ \renewcommand{\tableofcontents}{% \setlength{\columnsep}{2em} %\setlength{\columnseprule}{.8pt} \begin{multicols}{2}[\chapter*{\contentsname}]% \@starttoc{toc}% \end{multicols}} }{\relax} %% 常用宏包 \linespread{1.3} \RequirePackage{graphicx} %\RequirePackage{enumerate} \RequirePackage{amsmath,mathrsfs,amsfonts,amssymb} % \providecommand\qed{} % \renewcommand{\qed}{\hfill\ensuremath{\square}} \RequirePackage{booktabs} \RequirePackage{multicol,multirow} \RequirePackage{xcolor} \RequirePackage{fancyvrb} \RequirePackage{makecell,lipsum,hologo} %%中文结构名字 \ifdefstring{\ELEGANT@lang}{cn}{ \renewcommand{\contentsname}{目录} \renewcommand{\figurename}{图} \renewcommand{\tablename}{表} \renewcommand{\partname}{\color{structurecolor}} \renewcommand{\thepart}{第\zhnumber{\arabic{part}}部分} \renewcommand{\listfigurename}{插图目录} \renewcommand{\listtablename}{表格目录} \renewcommand{\bibname}{参考文献} \renewcommand{\appendixname}{附录~\thechapter} \renewcommand{\indexname}{索\hspace{2em}引} \newcommand\figref[1]{\textbf{图}~\ref{#1}} \newcommand\tabref[1]{\textbf{表}~\ref{#1}} \ifdefstring{\ELEGANT@scheme}{chinese}{ \renewcommand{\chaptername}{第~\zhnumber{\arabic{chapter}}~章}}{ \renewcommand{\chaptername}{第~\thechapter{}~章}} \newcommand{\authorname}{\citshape 作者:} \newcommand{\institutename}{\citshape 组织:} \newcommand{\datename}{\citshape 时间:} \newcommand{\versionname}{\citshape 版本:} \RequirePackage{gbt7714} \ifdefstring{\ELEGANT@cite}{authoryear}{ \bibliographystyle{gbt7714-author-year}}{ \bibliographystyle{gbt7714-numerical}} \ifdefstring{\ELEGANT@cite}{numbers}{ \citestyle{numbers}}{\relax} \newcommand{\notename}{笔记} \renewcommand*{\proofname}{证明} \newcommand{\problemname}{例题} \newcommand{\definitionname}{定义} \newcommand{\theoremname}{定理} \newcommand{\axiomname}{公理} \newcommand{\postulatename}{公设} \newcommand{\lemmaname}{引理} \newcommand{\propositionname}{命题} \newcommand{\corollaryname}{推论} \newcommand{\examplename}{例} \newcommand{\exercisename}{练习} \newcommand{\remarkname}{注} \newcommand{\assumptionname}{假设} \newcommand{\conclusionname}{结论} \newcommand{\solutionname}{解} \newcommand{\propertyname}{性质} \newcommand{\introductionname}{内容提要} \newcommand{\problemsetname}{习题} \newcommand\bioinfo[2]{\gdef\@bioinfo{{\citshape #1}:#2}} \newcommand{\updatename}{更新:} \newcommand{\historyname}{版本更新历史}}{\relax} \ifdefstring{\ELEGANT@lang}{en}{ \setlength\parindent{2em} \newcommand\figref[1]{\textbf{Figure}~\ref{#1}} \newcommand\tabref[1]{\textbf{Table}~\ref{#1}} \renewcommand{\chaptername}{Chapter \thechapter} \newcommand{\authorname}{\textbf{Author: }} \newcommand{\institutename}{\textbf{Institute: }} \newcommand{\datename}{\textbf{Date: }} \newcommand{\versionname}{\textbf{Version: }} \bibliographystyle{\ELEGANT@bibstyle} \newcommand{\notename}{Note} \newcommand{\proofname}{Proof} \newcommand{\problemname}{Problem} \newcommand{\definitionname}{Definition} \newcommand{\theoremname}{Theorem} \newcommand{\axiomname}{Axiom} \newcommand{\postulatename}{Postulate} \newcommand{\lemmaname}{Lemma} \newcommand{\propositionname}{Proposition} \newcommand{\corollaryname}{Corollary} \newcommand{\examplename}{Example} \newcommand{\exercisename}{Exercise} \newcommand{\remarkname}{Remark} \newcommand{\assumptionname}{Assumption} \newcommand{\conclusionname}{Conclusion} \newcommand{\solutionname}{Solution} \newcommand{\propertyname}{Property} \newcommand{\introductionname}{Introduction} \newcommand{\problemsetname}{Exercise} \newcommand\bioinfo[2]{\gdef\@bioinfo{\textbf{#1}: #2}} \newcommand{\updatename}{Updates:} \newcommand{\historyname}{Version History} }{\relax} \ifdefstring{\ELEGANT@lang}{it}{ \RequirePackage[italian]{babel} \setlength\parindent{2em} \newcommand\figref[1]{\textbf{Figura}~\ref{#1}} \newcommand\tabref[1]{\textbf{Tabella}~\ref{#1}} \renewcommand{\chaptername}{Capitolo \thechapter} \newcommand{\authorname}{\textbf{Autore: }} \newcommand{\institutename}{\textbf{Istituto: }} \newcommand{\datename}{\textbf{Data: }} \newcommand{\versionname}{\textbf{Versione: }} \bibliographystyle{\ELEGANT@bibstyle} \newcommand{\notename}{Nota} \newcommand{\proofname}{Dimostrazione} \newcommand{\problemname}{Problema} \newcommand{\definitionname}{Definizione} \newcommand{\theoremname}{Teorema} \newcommand{\axiomname}{Assioma} \newcommand{\postulatename}{Postulato} \newcommand{\lemmaname}{Lemma} \newcommand{\propositionname}{Proposizione} \newcommand{\corollaryname}{Corollario} \newcommand{\examplename}{Esempio} \newcommand{\exercisename}{Esercizio} \newcommand{\remarkname}{Commento} \newcommand{\assumptionname}{Assunto} \newcommand{\conclusionname}{Conclusione} \newcommand{\solutionname}{Soluzione} \newcommand{\propertyname}{Proprietà} \newcommand{\introductionname}{Introduzione} \newcommand{\problemsetname}{Esercizio} \newcommand\bioinfo[2]{\gdef\@bioinfo{\textbf{#1}: #2}} \newcommand{\updatename}{Aggiornamenti:} \newcommand{\historyname}{Cronologia delle versioni} }{\relax} \setlength{\bibsep}{0.0pt} \def\bibfont{\footnotesize} \RequirePackage{xpatch} \xpatchcmd{\part}{ \thispagestyle{plain}}{ \thispagestyle{plain}}{}{} \xpatchcmd{\@endpart}{ \vfil\newpage}{ \vfil\newpage}{}{} \graphicspath{{./figure/}{./figures/}{./image/}{./images/}{./graphics/}{./graphic/}{./pictures/}{./picture/}} \usepackage{tikz} %% load tikz without tikz \usetikzlibrary{backgrounds,calc,shadows} \newcommand*\circled[1]{\tikz[baseline=(char.base)]{ \node[shape=circle,draw,inner sep=1pt] (char) {#1};}} % https://tex.stackexchange.com/questions/7032/good-way-to-make-textcircled-numbers \newcommand*{\eitemi}{\tikz \draw [baseline, ball color=structurecolor,draw=none] circle (2pt);} \newcommand*{\eitemii}{\tikz \draw [baseline, fill=structurecolor,draw=none,circular drop shadow] circle (2pt);} \newcommand*{\eitemiii}{\tikz \draw [baseline, fill=structurecolor,draw=none] circle (2pt);} \setlist[enumerate,1]{label=\color{structurecolor}\arabic*.} \setlist[enumerate,2]{label=\color{structurecolor}(\alph*).} \setlist[enumerate,3]{label=\color{structurecolor}\Roman*.} \setlist[enumerate,4]{label=\color{structurecolor}\Alph*.} \setlist[itemize,1]{label={\eitemi}} \setlist[itemize,2]{label={\eitemii}} \setlist[itemize,3]{label={\eitemiii}} %% 章节设置 \RequirePackage[center,pagestyles]{titlesec} \RequirePackage{apptools} \RequirePackage[toc,page,title,titletoc]{appendix} \setcounter{secnumdepth}{5} \titleformat{\chapter}[\style]{\bfseries} {\filcenter\LARGE\enspace\bfseries{\color{structurecolor}\IfAppendix{\appendixname}{\chaptername}\enspace}}{1pt}{\bfseries\color{structurecolor}\LARGE\filcenter}[] \titleformat{\section}[hang]{\bfseries}{ \Large\bfseries{\color{structurecolor}\thesection}\enspace}{1pt}{% \color{structurecolor}\Large\bfseries\filright} \titleformat{\subsection}[hang]{\bfseries}{ \large\bfseries\color{structurecolor}\thesubsection\enspace}{1pt}{% \color{structurecolor}\large\bfseries\filright} \titleformat{\subsubsection}[hang]{\bfseries}{ \large\bfseries\color{structurecolor}\thesubsubsection\enspace}{1pt}{% \color{structurecolor}\large\bfseries\filright} \titlespacing{\chapter}{0pt}{-20pt}{1.3\baselineskip} %\titlespacing{\subsection}{0pt}{0.5\baselineskip}{-\baselineskip} %%define the note and proof environment \RequirePackage{pifont,manfnt,bbding} \RequirePackage[many]{tcolorbox} % \newlength{\normalparindent} % \setlength{\normalparindent}{\parindent} \ifdefstring{\ELEGANT@mode}{fancy}{ \tcbset{ common/.style={ fontupper=\citshape, lower separated=false, % before upper={\setlength{\parindent}{\normalparindent}}, coltitle=white, colback=gray!5, boxrule=0.5pt, fonttitle=\bfseries, enhanced, breakable, top=8pt, before skip=8pt, attach boxed title to top left={ yshift=-0.11in, xshift=0.15in}, boxed title style={ boxrule=0pt, colframe=white, arc=0pt, outer arc=0pt}, separator sign={.},}, defstyle/.style={ common, colframe=main, colback=main!5, colbacktitle=main, overlay unbroken and last={ \node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) { \textcolor{main}{$\clubsuit$}};}}, thmstyle/.style={ common, colframe=second, colback=second!5, colbacktitle=second, overlay unbroken and last={ \node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) { \textcolor{second}{$\heartsuit$}};}}, propstyle/.style={ common, colframe=third, colback=third!5, colbacktitle=third, overlay unbroken and last={ \node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) { \textcolor{third}{$\spadesuit$}};}},} \newtcbtheorem[auto counter,number within=chapter]{definition}{\definitionname}{defstyle}{def} \newtcbtheorem[auto counter,number within=chapter]{theorem}{\theoremname}{thmstyle}{thm} \newtcbtheorem[auto counter,number within=chapter]{postulate}{\postulatename}{thmstyle}{pos} \newtcbtheorem[auto counter,number within=chapter]{axiom}{\axiomname}{thmstyle}{axi} \newtcbtheorem[auto counter,number within=chapter]{proposition}{\propositionname}{propstyle}{pro} \newtcbtheorem[auto counter,number within=chapter]{corollary}{\corollaryname}{thmstyle}{cor} \newtcbtheorem[auto counter,number within=chapter]{lemma}{\lemmaname}{thmstyle}{lem} }{\relax} \ifdefstring{\ELEGANT@mode}{simple}{ \let\openbox\relax \RequirePackage{amsthm} \let\proof\relax % \let\proofname\relax \let\endproof\relax % declare a new theorem style \newtheoremstyle{edefstyle}{3pt}{3pt}{\citshape}{-3pt}{ \bfseries\color{main}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}} \newtheoremstyle{ethmstyle}{3pt}{3pt}{\citshape}{-3pt}{ \bfseries\color{second}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}} \newtheoremstyle{eprostyle}{3pt}{3pt}{\citshape}{-3pt}{ \bfseries\color{third}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}} \theoremstyle{edefstyle} % definition style \newtheorem{edefinition}{\definitionname}[chapter] \newenvironment{definition}[2]{ \ifstrempty{#1}{\edefinition}{\edefinition[#1]}\ifstrempty{#2}{}{\label{def:#2}}}{ \endedefinition} \theoremstyle{ethmstyle} %theorem style \newtheorem{etheorem}{\theoremname}[chapter] \newenvironment{theorem}[2]{ \ignorespaces\ifstrempty{#1}{\etheorem}{\etheorem[#1]}\ifstrempty{#2}{}{\label{thm:#2}}}{ \endetheorem} \newtheorem{elemma}{\lemmaname}[chapter] \newenvironment{lemma}[2]{ \ignorespaces\ifstrempty{#1}{\elemma}{\elemma[#1]}\ifstrempty{#2}{}{\label{lem:#2}}}{ \endelemma} \newtheorem{ecorollary}{\corollaryname}[chapter] \newenvironment{corollary}[2]{ \ignorespaces\ifstrempty{#1}{\ecorollary}{\ecorollary[#1]}\ifstrempty{#2}{}{\label{cor:#2}}}{ \endecorollary} \newtheorem{epostulate}{\postulatename}[chapter] \newenvironment{postulate}[2]{ \ifstrempty{#1}{\epostulate}{\epostulate[#1]}\ifstrempty{#2}{}{\label{pos:#2}}}{ \endepostulate} \newtheorem{eaxiom}{\axiomname}[chapter] \newenvironment{axiom}[2]{ \ifstrempty{#1}{\eaxiom}{\eaxiom[#1]}\ifstrempty{#2}{}{\label{axi:#2}}}{ \endaxiom} \theoremstyle{eprostyle} \newtheorem{eproposition}{\propositionname}[chapter] \newenvironment{proposition}[2]{ \ifstrempty{#1}{\eproposition}{\eproposition[#1]}\ifstrempty{#2}{}{\label{pro:#2}}}{ \endeproposition} }{\relax} % main(green-def): example exercise problem solution % second(orange-thm): proof note remark % third(blue-prop): assumptions property conclusion custom %% Example with counter \newcounter{exam}[chapter] \setcounter{exam}{0} \renewcommand{\theexam}{\thechapter.\arabic{exam}} \newenvironment{example}[1][]{ \refstepcounter{exam} \par\noindent\textbf{\color{main}{\examplename} \theexam #1 }\rmfamily}{ \par\ignorespacesafterend} %% Exercise with counter \newcounter{exer}[chapter] \setcounter{exer}{0} \renewcommand{\theexer}{\thechapter.\arabic{exer}} \newenvironment{exercise}[1][]{ \refstepcounter{exer} \par\noindent\makebox[-3pt][r]{ \scriptsize\color{red!90}\HandPencilLeft\quad} \textbf{\color{main}{\exercisename} \theexer #1 }\rmfamily}{ \par\ignorespacesafterend} %% Problem with counter \newcounter{prob}[chapter] \setcounter{prob}{0} \renewcommand{\theprob}{\thechapter.\arabic{prob}} \newenvironment{problem}[1][]{ \refstepcounter{prob} \par\noindent\textbf{\color{main}{\problemname} \theprob #1 }\rmfamily}{ \par\ignorespacesafterend} \newenvironment{note}{ \par\noindent\makebox[-3pt][r]{ \scriptsize\color{red!90}\textdbend\quad} \textbf{\color{second}\notename} \citshape}{\par} \newenvironment{proof}{ \par\noindent\textbf{\color{second}\proofname\;} \color{black!90}\cfs}{ % \hfill$\Box$\quad \par} \newenvironment{solution}{\par\noindent\textbf{\color{main}\solutionname} \citshape}{\par} \newenvironment{remark}{\noindent\textbf{\color{second}\remarkname}}{\par} \newenvironment{assumption}{\par\noindent\textbf{\color{third}\assumptionname} \citshape}{\par} \newenvironment{conclusion}{\par\noindent\textbf{\color{third}\conclusionname} \citshape}{\par} \newenvironment{property}{\par\noindent\textbf{\color{third}\propertyname} \citshape}{\par} \newenvironment{custom}[1]{\par\noindent\textbf{\color{third} #1} \citshape}{\par} \RequirePackage{multicol} \tcbset{ introductionsty/.style={ enhanced, breakable, colback=structurecolor!10, colframe=structurecolor, fonttitle=\bfseries, colbacktitle=structurecolor, fontupper=\citshape, attach boxed title to top center={yshift=-3mm,yshifttext=-1mm}, boxrule=0pt, toprule=0.5pt, bottomrule=0.5pt, top=8pt, before skip=8pt, sharp corners }, } \newenvironment{introduction}[1][\introductionname]{ \begin{tcolorbox}[introductionsty,title={#1}] \begin{multicols}{2} \begin{itemize}[label=\textcolor{structurecolor}{\upshape\scriptsize\SquareShadowBottomRight}]}{ \end{itemize} \end{multicols} \end{tcolorbox}} \RequirePackage{adforn} \newenvironment{problemset}[1][\chaptername~\problemsetname]{ \begin{center} \phantomsection\addcontentsline{toc}{section}{\texorpdfstring{\chaptername\;\problemsetname}{\problemsetname}} \textcolor{structurecolor}{\Large\bfseries\adftripleflourishleft~#1~\adftripleflourishright} \end{center} \begin{enumerate}}{ \end{enumerate}} \def\relsec{\endgroup start} \def\endrelsec{end\begingroup\def \@currenvir {relsec}} \ifdefstring{\ELEGANT@result}{noanswer}{ \AtBeginDocument{ \excludecomment{solution} \excludecomment{proof} \excludecomment{inline} } }{\relax} %页眉页脚 \RequirePackage{fancyhdr} \fancyhf{} \fancyfoot[c]{\color{structurecolor}\scriptsize\thepage} \if@twoside \fancyhead[ER]{\color{structurecolor}\cnormal\leftmark} \fancyhead[OL]{\color{structurecolor}\cnormal\rightmark} \else \fancyhead[R]{\color{structurecolor}\cnormal\rightmark} \fi \renewcommand{\headrule}{\color{structurecolor}\hrule width\textwidth} \pagestyle{fancy} \renewcommand{\headrulewidth}{1pt} % \renewcommand{\headrule}{} \fancypagestyle{plain}{\renewcommand{\headrulewidth}{0pt}\fancyhf{}\renewcommand{\headrule}{}} \renewcommand{\sectionmark}[1]{\markright{\thesection\, #1}{} } \renewcommand{\chaptermark}[1]{\markboth{\chaptername \, #1\,}{}} \renewcommand{\baselinestretch}{1.35} \renewcommand*{\maketitle}{% \hypersetup{pageanchor=false} \pagenumbering{Alph} \begin{titlepage} \newgeometry{margin = 0in} \parindent=0pt \ifdefstring{\ELEGANT@device}{normal}{ \ifcsname @cover\endcsname \includegraphics[width=\linewidth]{\@cover} \else \includegraphics[width=\linewidth]{example-image} \fi }{\relax} \ifdefstring{\ELEGANT@device}{pad}{ \ifcsname @cover\endcsname \includegraphics[trim=0 26bp 0 26bp,clip=true, width=\linewidth]{\@cover} \else \includegraphics[trim=0 26bp 0 26bp,clip=true, width=\linewidth]{example-image} \fi }{\relax} \setlength{\fboxsep}{0pt} \colorbox{second}{\makebox[\linewidth][c]{\shortstack[c]{\vspace{0.5in}}}} \vfill \vskip-2ex \hspace{2em} \parbox{0.8\textwidth}{ \bfseries\Huge \ifcsname @title\endcsname \@title \fi \par} \vfill \vspace{-1.0cm} \setstretch{2.5} \hspace{2.5em} \begin{minipage}[c]{0.67\linewidth} {\color{darkgray}\bfseries\Large \ifcsname @subtitle\endcsname\@subtitle\\[2ex]\fi} \color{gray}\normalsize {\renewcommand{\arraystretch}{0.618} \begin{tabular}{l} % \ifcsname @author\endcsname \authorname \@author\\\fi \ifx\@author\empty\else\authorname\cnormal\@author\\ \fi \ifcsname @institute\endcsname \institutename \cnormal\@institute\\ \fi % \ifcsname @date\endcsname \@date\\\fi \ifx\@date\empty\else\datename\cnormal\@date \\ \fi \ifcsname @version\endcsname \cnormal\versionname\@version\\ \fi \ifcsname @bioinfo\endcsname \cnormal\@bioinfo\\ \fi \end{tabular}} \end{minipage} \begin{minipage}[c]{0.27\linewidth} \begin{tikzpicture}[remember picture,overlay] \begin{pgfonlayer}{background} \node[opacity=0.8, anchor=south east, outer sep=0pt, inner sep=0pt] at ($(current page.south east) +(-0.8in,1.5in)$) { \ifcsname @logo\endcsname\includegraphics[width=4.2cm]{\@logo}\fi}; \end{pgfonlayer} \end{tikzpicture} \end{minipage} \vfill \begin{center} \setstretch{1.3} \parbox[t]{0.7\textwidth}{\centering \citshape \ifcsname @extrainfo\endcsname\@extrainfo\fi} \end{center} \vfill \end{titlepage} \restoregeometry \thispagestyle{empty}} \RequirePackage{listings} \renewcommand{\ttdefault}{cmtt} \lstdefinestyle{mystyle}{ basicstyle=% \ttfamily \lst@ifdisplaystyle\small\fi } \lstset{basicstyle=\ttfamily,style=mystyle,breaklines=true} \definecolor{lightgrey}{rgb}{0.9,0.9,0.9} \definecolor{frenchplum}{RGB}{190,20,83} \lstset{language=[LaTeX]TeX, texcsstyle=*\color{winered}, numbers=none, mathescape, breaklines=true, keywordstyle=\color{winered}, commentstyle=\color{gray}, emph={elegantpaper,fontenc,fontspec,xeCJK,FiraMono,xunicode,newtxmath,figure,fig,image,img,table,itemize,enumerate,newtxtext,newtxtt,ctex,microtype,description,times,booktabs,tabular,PDFLaTeX,XeLaTeX,type1cm,BibTeX,device,color,mode,lang,amsthm,tcolorbox,titlestyle,cite,ctex,listings,base,math,scheme,toc,esint,chinesefont,amsmath,bibstyle,natbib,pgfornament}, emphstyle={\color{frenchplum}}, morekeywords={DeclareSymbolFont,SetSymbolFont,toprule,midrule,bottomrule,institute,version,includegraphics,setmainfont,setsansfont,setmonofont ,setCJKmainfont,setCJKsansfont,setCJKmonofont,RequirePackage,figref,tabref,email,maketitle,keywords,definecolor,extrainfo,logo,cover,subtitle,appendix,chapter,hypersetup,mainmatter,frontmatter,tableofcontents,elegantpar,heiti,kaishu,lstset,pagecolor,zhnumber,marginpar,part,equote,marginnote,bioinfo,datechange,listofchange,lvert,lastpage,songti,heiti,fangsong,setCJKfamilyfont,textbf}, frame=single, tabsize=2, rulecolor=\color{structurecolor}, framerule=0.2pt, columns=flexible, % backgroundcolor=\color{lightgrey} } \newcommand\bmmax{0} \RequirePackage{bm} % add the list of change history \newcommand{\dateinfoline}[2]{ \noindent\makebox[0pt][r]{% \makebox[-5em][r]{% \textbf{\textcolor{structurecolor}{#1}}}\quad}% {\citshape\updatename\ignorespaces#2}} \newcommand{\datechange}[2]{% \noindent{\makebox[\textwidth][r]{\color{structurecolor}\rule{1.15\textwidth}{.4pt}}} \dateinfoline{#1}{#2} \addcontentsline{dates}{section}{#1 -- #2}} \newcommand{\listofchanges}{% \begingroup \renewcommand{\contentsname}{\historyname} \let\old@starttoc\@starttoc \def\@starttoc##1{ \old@starttoc{dates}} \tableofcontents% \endgroup} % https://tex.stackexchange.com/questions/472931/list-of-all-dates-in-a-document \newenvironment{change}{ \begin{enumerate}[label=\small\protect\circled{\arabic*}]}{ \end{enumerate}}