diff options
Diffstat (limited to 'obsolete/macros/latex/contrib/elegantpaper/elegantpaper.cls')
-rw-r--r-- | obsolete/macros/latex/contrib/elegantpaper/elegantpaper.cls | 371 |
1 files changed, 371 insertions, 0 deletions
diff --git a/obsolete/macros/latex/contrib/elegantpaper/elegantpaper.cls b/obsolete/macros/latex/contrib/elegantpaper/elegantpaper.cls new file mode 100644 index 0000000000..ca6a74f313 --- /dev/null +++ b/obsolete/macros/latex/contrib/elegantpaper/elegantpaper.cls @@ -0,0 +1,371 @@ +% Author: Dongsheng Deng +% Homepage: https://ddswhu.me/ +% Email: elegantlatex2e@gmail.com +% Lastest Version: https://github.com/ElegantLaTeX/ElegantPaper + +% --- Class structure: identification part +\ProvidesClass{elegantpaper}[2022/12/31 v0.11 ElegantLaTeX Paper class] +\NeedsTeXFormat{LaTeX2e} + +%%% +\RequirePackage{kvoptions} +\RequirePackage{etoolbox} +\RequirePackage{calc} + +\SetupKeyvalOptions{family=ELEGANT, prefix=ELEGANT@, setkeys=\kvsetkeys} +\newcommand{\ekv}[1]{\kvsetkeys{ELEGANT}{#1}} + +\DeclareStringOption[en]{lang} +\DeclareVoidOption{cn}{\ekv{lang=cn}} +\DeclareVoidOption{en}{\ekv{lang=en}} + +\DeclareStringOption[cm]{math} + +\DeclareStringOption[numeric-comp]{citestyle} +\DeclareStringOption[numeric]{bibstyle} + +\DeclareStringOption[biber]{bibend} +\DeclareVoidOption{biber}{\ekv{bibend=biber}} +\DeclareVoidOption{bibtex}{\ekv{bibend=bibtex}} + + +\DeclareStringOption[ctexfont]{chinesefont} +\DeclareVoidOption{ctexfont}{\ekv{chinesefont=ctexfont}} +\DeclareVoidOption{founder}{\ekv{chinesefont=founder}} +\DeclareVoidOption{nofont}{\ekv{chinesefont=nofont}} + +\DeclareVoidOption{newtx}{\ekv{math=newtx}} +\DeclareVoidOption{mtpro2}{\ekv{math=mtpro2}} +\DeclareVoidOption{cm}{\ekv{math=cm}} + +\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessKeyvalOptions*\relax +\LoadClass{article} + +\RequirePackage{hyperref} +\hypersetup{ + pdfborder={0 0 0}, + colorlinks=true, + linkcolor={winered}, + urlcolor={winered}, + filecolor={winered}, + citecolor={winered}, + linktoc=all, +} +% settings for the hyperref and geometry +\RequirePackage[ + left=1in, + right=1in, + top=1in, + bottom=1in, + headheight=0pt, + headsep=0pt]{geometry} +\setlength{\headsep}{5pt} + +\RequirePackage{amsthm} +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{indentfirst} +\RequirePackage{booktabs} +\RequirePackage{multicol} +\RequirePackage{multirow} +% \RequirePackage{linegoal} +\RequirePackage{xcolor} +\RequirePackage{graphicx} +\RequirePackage{fancyvrb} +\RequirePackage{abstract} +\RequirePackage{hologo} + +\linespread{1.35} +\graphicspath{{image/}{figure/}{fig/}{img/}} + +% caption settings +\RequirePackage[labelfont={bf}]{caption} +\captionsetup[table]{skip=3pt} +\captionsetup[figure]{skip=3pt} + +% list/itemize/enumerate setting +\RequirePackage[shortlabels,inline]{enumitem} +\setlist{nolistsep} + + +% define the hyperref color +\RequirePackage{xcolor} +\definecolor{winered}{rgb}{0.5,0,0} + +\definecolor{lightgrey}{rgb}{0.95,0.95,0.95} +\definecolor{commentcolor}{RGB}{0,100,0} +\definecolor{frenchplum}{RGB}{190,20,83} + + +% add the email cmd +\newcommand\email[1]{\href{mailto:#1}{\nolinkurl{#1}}} + +% font settings + + +\PassOptionsToPackage{no-math}{fontspec} +\PassOptionsToPackage{quiet}{fontspec} +\RequirePackage{iftex} + +\ifXeTeX + \RequirePackage[no-math]{fontspec} + \setmainfont{texgyretermes}[ + UprightFont = *-regular , + BoldFont = *-bold , + ItalicFont = *-italic , + BoldItalicFont = *-bolditalic , + Extension = .otf , + Scale = 1.0] + + \setsansfont{texgyreheros}[ + UprightFont = *-regular , + BoldFont = *-bold , + ItalicFont = *-italic , + BoldItalicFont = *-bolditalic , + Extension = .otf , + Scale = 0.9] +\else + \RequirePackage{newtxtext} + \RequirePackage[scaled=.90]{helvet} +\fi + +\ifdefstring{\ELEGANT@lang}{cn}{ + \ifdefstring{\ELEGANT@chinesefont}{founder}{ + \RequirePackage[UTF8,scheme=plain,fontset=none]{ctex} + \setCJKmainfont[BoldFont={FZHei-B01},ItalicFont={FZKai-Z03}]{FZShuSong-Z01} + \setCJKsansfont[BoldFont={FZHei-B01}]{FZKai-Z03} + \setCJKmonofont[BoldFont={FZHei-B01}]{FZFangSong-Z02} + \setCJKfamilyfont{zhsong}{FZShuSong-Z01} + \setCJKfamilyfont{zhhei}{FZHei-B01} + \setCJKfamilyfont{zhkai}[BoldFont={FZHei-B01}]{FZKai-Z03} + \setCJKfamilyfont{zhfs}[BoldFont={FZHei-B01}]{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} + + \AfterEndPreamble{ + \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 + +\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} + + +\RequirePackage[ + backend=\ELEGANT@bibend, + citestyle=\ELEGANT@citestyle, + bibstyle=\ELEGANT@bibstyle]{biblatex} + +\RequirePackage{appendix} + +\ifdefstring{\ELEGANT@lang}{cn}{ + \theoremstyle{plain}% default + \newtheorem{theorem}{定理}[section] % + \newtheorem{lemma}[theorem]{引理} % + \newtheorem{proposition}[theorem]{命题} % + \newtheorem*{corollary}{推论} % + \theoremstyle{definition} % + \newtheorem{definition}{定义}[section] % + \newtheorem{conjecture}{猜想}[section] % + \newtheorem{example}{例}[section] % + \theoremstyle{remark} % + \newtheorem*{remark}{\normalfont\bfseries 评论} % + \newtheorem*{note}{\normalfont\bfseries 注} % + \newtheorem{case}{\normalfont\bfseries 案例} % + \renewcommand*{\proofname}{\normalfont\bfseries 证明} % + \renewcommand\contentsname{目录} + \renewcommand\refname{参考文献} % + \renewcommand\figurename{图} % + \renewcommand\tablename{表}% + \newcommand\versiontext{版本:}% + \newcommand\updatetext{日期:}% + \newcommand{\ebibname}{参考文献} + \renewcommand\abstractname{摘\hspace{2em}要} + \setlength\parindent{2\ccwd} + \renewcommand{\abstracttextfont}{\small\citshape\noindent\ignorespaces} + % 新定义命令 + \newcommand{\keywords}[1]{\vskip2ex\par\noindent\normalfont{\bfseries 关键词: } #1} + \newcommand\figref[1]{{\bfseries 图~\ref{#1}}} + \newcommand\tabref[1]{{\bfseries 表~\ref{#1}}} + \renewcommand{\appendixtocname}{附录} + \renewcommand{\appendixpagename}{附录}}{\relax} + +\ifdefstring{\ELEGANT@lang}{en}{ + \theoremstyle{plain}% default + \newtheorem{theorem}{Theorem}[section] % + \newtheorem{lemma}[theorem]{Lemma} % + \newtheorem{proposition}[theorem]{Proposition} % + \newtheorem*{corollary}{Corollary} % + \theoremstyle{definition} % + \newtheorem{definition}{Definition}[section] % + \newtheorem{conjecture}{Conjecture}[section] % + \newtheorem{example}{Example}[section] % + \theoremstyle{remark} % + \newtheorem*{remark}{Remark} % + \newtheorem*{note}{Note} % + \newtheorem{case}{Case} % + \renewcommand*{\proofname}{\normalfont\bfseries Proof}% + \newcommand\versiontext{\itshape Version: }% + \newcommand\updatetext{\itshape Date: }% + \setlength\parindent{2em} + \renewcommand{\abstracttextfont}{\sffamily\small\noindent\ignorespaces} + % newcommands defined in this template. + \newcommand{\keywords}[1]{\vskip 2ex\par\noindent\normalfont{\bfseries Keywords: } #1} + \newcommand\figref[1]{{\bfseries Figure~\ref{#1}}} + \newcommand\tabref[1]{{\bfseries Table~\ref{#1}}} + \newcommand{\ebibname}{Bibliography}}{\relax} + + +\def\bibfont{\footnotesize} + +\AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}} +\BeforeBeginEnvironment{tabular}{\small} +\AfterEndEnvironment{tabular}{} + +\AtBeginDocument{ + \setlength{\abovedisplayskip}{3pt} + \setlength{\belowdisplayskip}{3pt} + \RequirePackage[flushmargin]{footmisc} + \setlength{\footnotesep}{12pt}} + +\def\IfEmpty#1{% + \edef\1{\the#1} + \ifx\1\empty +} +\newtoks\version +\newtoks\institute + +\renewcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@0.1em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@ELEGANT@version\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + \global\let\ELEGANT@version\relax +} +\def\@maketitle{% + \newpage + \null + \vskip 2em% + \begin{center}% + \let \footnote \thanks + {\LARGE\bfseries \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author\\[1ex] + \end{tabular}\par} + \the\institute% +\vskip 0.5ex% +\IfEmpty\version +\else +{\small\normalfont\citshape\versiontext\the\version} +\fi +\ifx\@date\empty +\else +\vskip 0.1em% + {\small\normalfont\citshape\updatetext\@date}% +\fi + \end{center}% + \par +} + + +\RequirePackage{listings} +\renewcommand{\ttdefault}{cmtt} + +\lstdefinestyle{estyle}{ + basicstyle=% + \ttfamily + \lst@ifdisplaystyle\footnotesize\fi +} +\lstset{basicstyle=\scriptsize\ttfamily,style=estyle} + +\lstset{language=[LaTeX]TeX, + texcsstyle=*\color{winered}, + numbers=none, + breaklines=true, + keywordstyle=\color{winered}, + frame=tlbr,framesep=4pt,framerule=0pt, + commentstyle=\color{commentcolor}, + emph={elegantpaper,fontenc,fontspec,xeCJK,FiraMono,xunicode,newtxmath,figure,fig,image,img,table,itemize,enumerate,newtxtext,newtxtt,ctex,microtype,description,times,newtx,booktabs,tabular,PDFLaTeX,XeLaTeX,type1cm,BibTeX,cite,gbt7714,lang}, + emphstyle={\color{frenchplum}}, + morekeywords={DeclareSymbolFont,SetSymbolFont,toprule,midrule,bottomrule,institute,version,includegraphics,setmainfont,setsansfont,setmonofont ,setCJKmainfont,setCJKsansfont,setCJKmonofont,RequirePackage,figref,tabref,email,maketitle,keywords,zhdate,zhtoday}, + tabsize=2, + backgroundcolor=\color{lightgrey} +} + + + +% restore the tt default family to lmodern tt family +\renewcommand\ttdefault{lmtt} |