From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/elegantpaper/elegantpaper.cls | 270 +++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 macros/latex/contrib/elegantpaper/elegantpaper.cls (limited to 'macros/latex/contrib/elegantpaper/elegantpaper.cls') diff --git a/macros/latex/contrib/elegantpaper/elegantpaper.cls b/macros/latex/contrib/elegantpaper/elegantpaper.cls new file mode 100644 index 0000000000..ec8b4921b6 --- /dev/null +++ b/macros/latex/contrib/elegantpaper/elegantpaper.cls @@ -0,0 +1,270 @@ +% Current Version: 0.07 +% Author: Dongsheng Deng +% Homepage: https://ddswhu.me/ +% Email: elegantlatex2e@gmail.com +% Lastest Version: https://github.com/ElegantLaTeX/ElegantPaper + +% --- Class structure: identification part +\ProvidesClass{elegantpaper}[2019/04/01 v0.07 ElegantLaTeX Paper class] +\NeedsTeXFormat{LaTeX2e} + + +\RequirePackage{kvoptions} +\RequirePackage{ifthen} +\RequirePackage{ifxetex} +\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}} + +% \PassOptionsToClass{11pt}{article} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\ProcessKeyvalOptions*\relax +\LoadClass{article} + + + +\RequirePackage{amsthm} +\RequirePackage{amsmath,amssymb} + +\linespread{1.35} + + +% indentation, table and figure package +\RequirePackage{indentfirst} +\RequirePackage{booktabs} +\RequirePackage{multicol} +\RequirePackage{xcolor} +\RequirePackage{graphicx} +\RequirePackage{fancyvrb} +\RequirePackage{abstract} + +\graphicspath{{image/}{figure/}{fig/}{img/}} + +% caption settings +\RequirePackage[font=small,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} + +% bib-settings +\RequirePackage{natbib} +\setlength{\bibsep}{0.0pt} +\def\bibfont{\footnotesize} + +% settings for the geometry +\RequirePackage{hyperref} +\hypersetup{ + pdfborder={0 0 0}, + colorlinks=true, + linkcolor={winered}, + urlcolor={winered}, + filecolor={winered}, + citecolor={winered}, + linktoc=all, +} +\RequirePackage[left=1in, right=1in, top=1in, bottom=1in]{geometry} + +% add the \email cmd +\newcommand\email[1]{\href{mailto:#1}{\nolinkurl{#1}}} + +\PassOptionsToPackage{no-math}{fontspec} +\RequirePackage[UTF8, scheme=plain]{ctex} +\RequirePackage[T1]{fontenc} +\RequirePackage{newtxtext} +\RequirePackage{newtxmath} + + +\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{\itshape 版本:}% + \newcommand\updatetext{\itshape 更新:}% + \renewcommand\abstractname{摘\hspace{2em}要} + \setlength{\parindent}{2em} + \renewcommand{\abstracttextfont}{\small\sffamily\kaishu} + \newcommand{\keywords}[1]{\vskip2ex\par\noindent\normalfont{\bfseries 关键词: } #1} + \newcommand\figref[1]{{\bfseries 图~\ref{#1}}} + \newcommand\tabref[1]{{\bfseries 表~\ref{#1}}} +}{\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 Update: }% + \renewcommand{\abstracttextfont}{\sffamily\small\kaishu} + \newcommand{\keywords}[1]{\vskip2ex\par\noindent\normalfont{\bfseries Keywords: } #1} + \newcommand\figref[1]{{\bfseries Figure~\ref{#1}}} + \newcommand\tabref[1]{{\bfseries Table~\ref{#1}}} +}{\relax} + +\AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}} + +\def\IfEmpty#1{% + \edef\1{\the#1} + \ifx\1\empty +} +\newtoks\version +\newtoks\institute +\def \ifempty#1{\def\temp{#1} \ifx\temp\empty } +\renewcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \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\\ + \the\institute + \end{tabular}\par}% +\vskip 1.5em% +\IfEmpty\version +\else +{\small \normalfont\kaishu \versiontext \itshape\the\version} +\fi +\ifx\@date\empty +\else +\vskip 0.1em% + {\small\normalfont\kaishu \updatetext \itshape \@date}% +\fi + \end{center}% + \par +} + + + + +\DeclareSymbolFont{CMletters} {OML}{cmm} {m}{it}% +\DeclareSymbolFont{CMsymbols} {OMS}{cmsy}{m}{n}% +\DeclareSymbolFont{CMlargesymbols}{OMX}{cmex}{m}{n}% + +% \let\sum\relax +% \DeclareMathSymbol{\sum}{\mathop}{CMlargesymbols}{"50}% +% \let\int\relax +% \DeclareMathSymbol{\int}{\mathop}{CMlargesymbols}{"5A}% + +\let\intop\relax\let\sumop\relax\let\ointop\relax\let\prodop\relax +\DeclareMathSymbol{\sumop}{\mathop}{CMlargesymbols}{"50} +\DeclareMathSymbol{\intop}{\mathop}{CMlargesymbols}{"52} +\DeclareMathSymbol{\ointop}{\mathop}{CMlargesymbols}{"49} +\DeclareMathSymbol{\prodop}{\mathop}{CMlargesymbols}{"59} + +% \let\partial\relax +% \DeclareMathSymbol{\partial}{\mathord}{CMletters}{"40}% +% \let\in\relax +%\DeclareMathSymbol{\in}{\mathrel}{CMsymbols}{"32}% +% \let\pi\relax +% \DeclareMathSymbol{\pi}{\mathord}{CMletters}{"19} + + + +\RequirePackage{listings} +\renewcommand{\ttdefault}{cmtt} +\lstdefinestyle{mystyle}{ + basicstyle=% + \ttfamily + \lst@ifdisplaystyle\footnotesize\fi +} + +\lstset{basicstyle=\scriptsize\ttfamily,style=mystyle} + +\definecolor{lightgrey}{rgb}{0.9,0.9,0.9} +\definecolor{frenchplum}{RGB}{190,20,83} +\lstset{language=[LaTeX]TeX, + texcsstyle=*\color{winered}, + numbers=none, + 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,newtx,booktabs,tabular,PDFLaTeX,XeLaTeX,type1cm,BibTeX}, + emphstyle={\color{frenchplum}}, + morekeywords={DeclareSymbolFont,SetSymbolFont,toprule,midrule,bottomrule,institute,version,includegraphics,setmainfont,setsansfont,setmonofont ,setCJKmainfont,setCJKsansfont,setCJKmonofont,RequirePackage,figref,tabref,email,maketitle,keywords}, + frame=none, + tabsize=2, + backgroundcolor=\color{lightgrey} +} + + + + -- cgit v1.2.3