summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/elegantnote/elegantnote.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/elegantnote/elegantnote.cls')
-rw-r--r--macros/latex/contrib/elegantnote/elegantnote.cls340
1 files changed, 340 insertions, 0 deletions
diff --git a/macros/latex/contrib/elegantnote/elegantnote.cls b/macros/latex/contrib/elegantnote/elegantnote.cls
new file mode 100644
index 0000000000..8ad1248850
--- /dev/null
+++ b/macros/latex/contrib/elegantnote/elegantnote.cls
@@ -0,0 +1,340 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{elegantnote}[2018/01/06 ElegantNote v2.00 class]
+\LoadClass[12pt,final]{article}
+
+\RequirePackage{kvoptions}
+\RequirePackage{ifthen}
+\RequirePackage{ifxetex}
+\RequirePackage{etoolbox}
+\RequirePackage{calc}
+\AtEndOfClass{\RequirePackage{microtype}}
+
+
+\SetupKeyvalOptions{family=ELEGANT, prefix=ELEGANT@, setkeys=\kvsetkeys}
+\newcommand{\ekv}[1]{\kvsetkeys{ELEGANT}{#1}}
+
+% ----- Colors -----
+\DeclareStringOption[green]{color}
+\DeclareStringOption[pad]{device}
+\DeclareStringOption[cn]{lang}
+\DeclareStringOption{mode}
+% ----- backward compatibility
+\DeclareVoidOption{green}{\ekv{color = green}}
+\DeclareVoidOption{cyan}{\ekv{color = cyan}}
+\DeclareVoidOption{blue}{\ekv{color = blue}}
+\DeclareVoidOption{sakura}{\ekv{color = sakura}}
+\DeclareVoidOption{black}{\ekv{color = black}}
+
+\DeclareVoidOption{pc}{\ekv{device = pc}}
+\DeclareVoidOption{pad}{\ekv{device = pad}}
+\DeclareVoidOption{kindle}{\ekv{device = kindle}}
+\DeclareVoidOption{normal}{\ekv{device = normal}}
+
+\DeclareVoidOption{cn}{\ekv{lang = cn}}
+\DeclareVoidOption{en}{\ekv{lang = en}}
+
+\DeclareVoidOption{geye}{\ekv{mode = geye}}
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+%\ExecuteOptions{12pt}
+\ProcessKeyvalOptions*\relax
+\ProcessOptions*
+
+
+
+% fontsetting
+\RequirePackage{ifxetex}
+\ifxetex
+ \RequirePackage{fontenc}
+ \RequirePackage[no-math]{fontspec}
+ \setmainfont{Times New Roman}[NFSSFamily=ntxtlf]
+ \setsansfont{Arial}
+ %\setmonofont[Scale=0.9]{Courier New}
+ \RequirePackage{xeCJK}
+ \RequirePackage{xunicode}
+ \setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun}
+ \setCJKsansfont[BoldFont={SimHei},ItalicFont={KaiTi}]{KaiTi}
+ \setCJKmonofont[BoldFont={SimHei},ItalicFont={KaiTi},Scale=0.9]{Microsoft YaHei}
+ \XeTeXlinebreaklocale "zh"
+ \XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
+ \RequirePackage{newtxmath}
+ %\DeclareSymbolFont{operators}{OT1}{ntxtlf}{m}{n}
+ %\SetSymbolFont{operators}{bold}{OT1}{ntxtlf}{b}{n}
+ \setCJKfamilyfont{zhsong}{SimSun}
+ \setCJKfamilyfont{zhhei}{SimHei}
+ \setCJKfamilyfont{zhkai}{KaiTi}
+ \setCJKfamilyfont{zhfs}{FangSong}
+ \newcommand*{\songti}{\CJKfamily{zhsong}}
+ \newcommand*{\heiti}{\CJKfamily{zhhei}}
+ \newcommand*{\kaishu}{\CJKfamily{zhkai}}
+ \newcommand*{\fangsong}{\CJKfamily{zhfs}}
+\else
+ \RequirePackage{fontenc}
+ \RequirePackage{newtxtext}
+ \RequirePackage{newtxmath}
+ \RequirePackage[UTF8, scheme=plain]{ctex}
+\fi
+\RequirePackage[scale=0.8]{FiraMono}
+
+% 常用宏包
+\RequirePackage{indentfirst}
+\RequirePackage{anyfontsize}
+\RequirePackage{amsmath}
+\RequirePackage{graphicx}
+\RequirePackage{booktabs}
+\let\openbox\relax
+\RequirePackage{amsthm}
+\RequirePackage{xcolor}
+\RequirePackage{hyperref}
+\RequirePackage{xpatch}
+\definecolor{winered}{rgb}{0.5,0,0}
+
+\hypersetup{%
+ pdfborder = {0 0 0},
+ colorlinks,
+ citecolor=ecolor,
+ filecolor=ecolor,
+ linkcolor=ecolor,
+ urlcolor=ecolor
+}
+% 行距设置
+\linespread{1.3}
+\setlength{\parskip}{3mm}
+\setlength{\parindent}{2em}
+% 定义护眼模式 geye = true
+\RequirePackage{xcolor}
+
+% good for eye color
+\ifdefstring{\ELEGANT@mode}{geye}{
+ \definecolor{geyecolor}{RGB}{199,237,204}%
+ \pagecolor{geyecolor}
+}{\relax}
+
+% graphics path
+\graphicspath{{./figure/}{./figures/}{./image/}{./images/}{./graphics/}{./graphic/}{./pictures/}{./picture/}}
+
+\let\openbox\relax
+\newtheoremstyle{plain}{3pt}{3pt}{\itshape}{}{\color{ecolor}\bfseries}{}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}}
+\newtheoremstyle{definition}{3pt}{3pt}{\itshape}{}{\color{ecolor}\bfseries}{}{0.5em}{}
+\newtheoremstyle{remark}{3pt}{3pt}{\itshape}{}{\color{ecolor}\bfseries}{}{0.5em}{}
+
+
+% caption settings
+\RequirePackage[font=small,labelfont={bf,color=ecolor}]{caption}
+\captionsetup[table]{skip=3pt}
+\captionsetup[figure]{skip=3pt}
+
+% list/itemize/enumerate setting
+\RequirePackage[shortlabels]{enumitem}
+\setlist{nolistsep}
+
+
+% headings
+\RequirePackage{fancyhdr}
+\fancyhf{}
+\pagestyle{fancy}
+\cfoot{\footnotesize\textcolor{gray}{\thepage}}
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+
+\fancypagestyle{plain}{%
+ \renewcommand{\headrulewidth}{0pt}%
+ \fancyhf{}%
+ \fancyfoot[C]{\footnotesize \textcolor{gray}{\thepage}}%
+}
+
+% bib-settings
+\RequirePackage{natbib}
+\setlength{\bibsep}{0.0pt}
+\def\bibfont{\footnotesize}
+
+\RequirePackage{sectsty}
+
+\ifdefstring{\ELEGANT@color}{green}{
+ \definecolor{ecolor}{RGB}{0,120,2}%
+}{\relax}
+\ifdefstring{\ELEGANT@color}{cyan}{
+ \definecolor{ecolor}{RGB}{0,175,152}%
+}{\relax}
+\ifdefstring{\ELEGANT@color}{blue}{
+ \definecolor{ecolor}{RGB}{20,50,104}%
+}{\relax}
+\ifdefstring{\ELEGANT@color}{sakura}{
+ \definecolor{ecolor}{RGB}{255,183,197}%
+}{\relax}
+\ifdefstring{\ELEGANT@color}{black}{
+ \definecolor{ecolor}{RGB}{0,0,0}%
+}{\relax}
+
+\definecolor{egreen}{RGB}{0,120,2}
+\definecolor{ecyan}{RGB}{0,175,152}
+\definecolor{eblue}{RGB}{20,50,104}
+\definecolor{sakura}{RGB}{255,183,197}
+% \definecolor{black}{RGB}{255,183,197}
+
+%% device settings
+%% default = pad
+\ifdefstring{\ELEGANT@device}{pc}{
+ \RequirePackage[margin=8mm, paperwidth=6.2in, paperheight=6in,includefoot]{geometry}
+}{\relax}
+\ifdefstring{\ELEGANT@device}{pad}{
+ \RequirePackage[margin=8mm, paperwidth=6in, paperheight=8in,includefoot]{geometry}
+ %197mm*148mm
+}{\relax}
+\ifdefstring{\ELEGANT@device}{kindle}{
+ \RequirePackage[margin=8mm, paperwidth=3.68in, paperheight=4.92in]{geometry}
+ % 160mm*115mm
+}{\relax}
+\ifdefstring{\ELEGANT@device}{normal}{
+ \RequirePackage[margin=1in, a4paper]{geometry}
+}{\relax}
+
+\allsectionsfont{\color{ecolor}}
+%\sectionfont{\color{ecolor}}
+%\subsectionfont{\color{ecolor}}
+
+\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\color{ecolor}证明} %
+ \renewcommand\contentsname{\color{ecolor}目录}
+ \renewcommand\refname{\color{ecolor}参考文献} %
+ \renewcommand\figurename{图} %
+ \renewcommand\tablename{表}
+ \newcommand\versiontext{版本:}%
+ \newcommand\updatetext{更新:}%
+ \setlength{\parindent}{2em}
+ \newcommand{\keywords}[1]{\vskip2ex\par\noindent\normalfont{\bfseries 关键词: } #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\color{ecolor}Proof}
+ \newcommand\versiontext{Version: }%
+ \newcommand\updatetext{Update: }%
+}{\relax}
+
+\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@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\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+\def\@maketitle{%
+ \newpage
+ \color{ecolor}
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE\bfseries \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \kaishu \@author\\
+ \the\institute
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\small\itshape \versiontext \the\version}%
+ \vskip -.5em%
+ {\small\itshape \updatetext \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+
+
+\RequirePackage{tikz}
+\usetikzlibrary{shadows}
+\newcommand*{\eBall}{\tikz \draw [baseline, ball color=ecolor, draw=ecolor] circle (2pt);}
+\newcommand*{\eShadow}{\tikz \draw [baseline, fill=ecolor,draw=ecolor,circular drop shadow] circle (2pt);}
+\setlist[enumerate,1]{label=\color{ecolor}(\arabic*).}
+\setlist[enumerate,2]{label=\color{ecolor}(\Roman*).}
+\setlist[enumerate,3]{label=\color{ecolor}(\Alph*).}
+\setlist[enumerate,4]{label=\color{ecolor}(\roman*).}
+\setlist[itemize,1]{label={\eBall}}
+\setlist[itemize,2]{label={\eShadow}}
+%source1: https://tex.stackexchange.com/questions/41408/a-five-level-deep-list
+%source2: https://tex.stackexchange.com/questions/318199/change-color-of-itemize-bullet
+
+\DeclareSymbolFont{cmlargesymbols}{OMX}{cmex}{m}{n}
+\DeclareMathSymbol{\intop}{\mathop}{cmlargesymbols}{"5A}
+ \def\int{\intop\nolimits}
+\DeclareMathSymbol{\ointop}{\mathop}{cmlargesymbols}{"49}
+ \def\oint{\ointop\nolimits}
+\DeclareMathSymbol{\sumop}{\mathop}{cmlargesymbols}{"58}
+ \let\sum\sumop
+\DeclareMathSymbol{\prodop}{\mathop}{cmlargesymbols}{"59}
+ \let\prod\prodop
+
+
+\RequirePackage{listings}
+\definecolor{lightgrey}{rgb}{0.9,0.9,0.9}
+\definecolor{frenchplum}{RGB}{190,20,83}
+\lstset{language=[LaTeX]TeX,
+ texcsstyle=*\bf\color{winered}\ttfamily,
+ basicstyle=\footnotesize\ttfamily,
+ numbers=none,
+ breaklines=true,
+ keywordstyle=\bf\color{winered}\ttfamily,
+ 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,device,color,mode,lang,amsthm},
+ 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,
+ rulecolor=\color{ecolor},
+}