264 lines
9.8 KiB
TeX
264 lines
9.8 KiB
TeX
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
|
\ProvidesClass{eptcs}[2022/05/20 v1.7]
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%% options %%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newif\ifadraft
|
|
\newif\ifsubmission
|
|
\newif\ifpreliminary
|
|
\newif\ifcopyright
|
|
\newif\ifpublicdomain
|
|
\newif\ifcreativecommons
|
|
\newif\ifnoderivs
|
|
\newif\ifsharealike
|
|
\newif\ifnoncommercial
|
|
\adraftfalse
|
|
\submissionfalse
|
|
\preliminaryfalse
|
|
\copyrightfalse
|
|
\publicdomainfalse
|
|
\creativecommonsfalse
|
|
\noderivsfalse
|
|
\sharealikefalse
|
|
\noncommercialfalse
|
|
\DeclareOption{adraft}{\adrafttrue}
|
|
\DeclareOption{submission}{\submissiontrue}
|
|
\DeclareOption{preliminary}{\preliminarytrue}
|
|
\DeclareOption{copyright}{\copyrighttrue}
|
|
\DeclareOption{publicdomain}{\publicdomaintrue}
|
|
\DeclareOption{creativecommons}{\creativecommonstrue}
|
|
\DeclareOption{noderivs}{\noderivstrue}
|
|
\DeclareOption{noncommercial}{\noncommercialtrue}
|
|
\DeclareOption{sharealike}{\sharealiketrue}
|
|
\ProcessOptions\relax
|
|
|
|
\LoadClass[letterpaper,11pt,twoside]{article}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%% On US letter paper the margins (left-top-right-bottom) are %%
|
|
%% 2.795cm - 1.23cm - 2.795cm - 3.46cm %%
|
|
%% Note: When \topmargin would be 0, the real top margin would be %%
|
|
%% (72-25-12=35pt) + 1pt (unused portion of head) = .5in = 1.27cm. %%
|
|
%% The bottom margin is 11in - 1in + 0.04cm - 623/72in = 3.46cm. %%
|
|
%% On the first page the bottom margin contains various footers. %%
|
|
%% When translating from US letter to A4 paper, without scaling, by %%
|
|
%% leaving the centre of the paper invariant (as is possible when %%
|
|
%% printing the paper with acroread), the resulting A4 margins are %%
|
|
%% 2.5cm - 2.11cm - 2.5cm - 4.34cm %%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\textwidth 16cm % A4 width is 21cm %
|
|
\textheight 623.01pt % 46 lines exactly = 21.98cm %
|
|
\oddsidemargin -0.04cm % +1 inch = 2.5cm %
|
|
\evensidemargin -0.04cm % +1 inch = 2.5cm %
|
|
\topmargin -0.04cm % +1 inch = 2.5cm %
|
|
\advance\topmargin-\headheight % 12pt %
|
|
\advance\topmargin-\headsep % 25pt %
|
|
\marginparwidth 45pt % leaves 15pt from A4 edge %
|
|
\advance\evensidemargin .295cm % centre w.r.t. letter paper %
|
|
\advance\oddsidemargin .295cm % centre w.r.t. letter paper %
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%% load eptcsdata when available %%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\IfFileExists{eptcsdata.tex}{\input{eptcsdata}}{}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%% Pagestyle and titlepage %%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\pagestyle{myheadings}
|
|
\renewcommand\pagestyle[1]{} % ignore further \pagestyles
|
|
|
|
\renewcommand\maketitle{\par
|
|
\begingroup
|
|
\providecommand{\event}{}
|
|
\ifadraft
|
|
\providecommand{\publicationstatus}{\Large DRAFT\quad\today}
|
|
\else\ifsubmission
|
|
\providecommand{\publicationstatus}{Submitted to:\\
|
|
\event}
|
|
\else\ifpreliminary
|
|
\providecommand{\publicationstatus}{Preliminary Report. Final version to appear in:\\
|
|
\event}
|
|
\else
|
|
\providecommand{\publicationstatus}{To appear in EPTCS.}
|
|
\fi\fi\fi
|
|
\providecommand{\titlerunning}{Please define {\ttfamily $\backslash$titlerunning}}
|
|
\providecommand{\authorrunning}{Please define {\ttfamily $\backslash$authorrunning}}
|
|
\providecommand{\copyrightholders}{\authorrunning}
|
|
\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}%
|
|
\newpage
|
|
\global\@topnum\z@ % Prevents figures from going at top of page.
|
|
\@maketitle
|
|
\thispagestyle{empty}\@thanks
|
|
\endgroup
|
|
\setcounter{footnote}{0}%
|
|
\label{FirstPage}
|
|
\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{% adapted from article.cls
|
|
\newpage
|
|
\noindent
|
|
\raisebox{-22.8cm}[0pt][0pt]{\footnotesize
|
|
\begin{tabular}{@{}l}
|
|
\publicationstatus
|
|
\end{tabular}}
|
|
\hfill\vspace{-1em}
|
|
\raisebox{-22.8cm}[0pt][0pt]{\footnotesize
|
|
\makebox[0pt][r]{
|
|
\begin{tabular}{l@{}}
|
|
\ifpublicdomain
|
|
This work is \href{https://creativecommons.org/publicdomain/zero/1.0/}
|
|
{dedicated to the public domain}.
|
|
\else
|
|
\ifcopyright
|
|
\copyright~\copyrightholders\\
|
|
\fi
|
|
\ifcreativecommons
|
|
This work is licensed under the
|
|
\ifnoncommercial
|
|
\href{https://creativecommons.org}{Creative Commons}\\
|
|
\ifnoderivs
|
|
\href{https://creativecommons.org/licenses/by-nc-nd/4.0/}
|
|
{Attribution-Noncommercial-No Derivative Works} License.
|
|
\else\ifsharealike
|
|
\href{https://creativecommons.org/licenses/by-nc-sa/4.0/}
|
|
{Attribution-Noncommercial-Share Alike} License.
|
|
\else
|
|
\href{https://creativecommons.org/licenses/by-nc/4.0/}
|
|
{Attribution-Noncommercial} License.
|
|
\fi\fi
|
|
\else
|
|
\ifnoderivs
|
|
\href{https://creativecommons.org}{Creative Commons}\\
|
|
\href{https://creativecommons.org/licenses/by-nd/4.0/}
|
|
{Attribution-No Derivative Works} License.
|
|
\else\ifsharealike
|
|
\href{https://creativecommons.org}{Creative Commons}\\
|
|
\href{https://creativecommons.org/licenses/by-sa/4.0/}
|
|
{Attribution-Share Alike} License.
|
|
\else
|
|
\\\href{https://creativecommons.org}{Creative Commons}
|
|
\href{https://creativecommons.org/licenses/by/4.0/}
|
|
{Attribution} License.
|
|
\fi\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\end{tabular}}}
|
|
\null
|
|
%\vskip 2em% a bit of space removed (< 2em)
|
|
\begin{center}%
|
|
\let \footnote \thanks
|
|
{\LARGE\bfseries \@title \par}% \bf added
|
|
\vskip 2em% was: 1.5em
|
|
{\large
|
|
\lineskip .5em%
|
|
\begin{tabular}[t]{c}%
|
|
\@author
|
|
\end{tabular}\par}%
|
|
\vskip 1em% \date and extra space removed
|
|
\end{center}%
|
|
\par
|
|
\markboth{\hfill\titlerunning}{\authorrunning\hfill}
|
|
\vskip .5em}
|
|
|
|
\AtBeginDocument{
|
|
\providecommand{\firstpage}{1}
|
|
\setcounter{firstpage}{\firstpage}
|
|
\setcounter{page}{\firstpage}
|
|
\@ifpackageloaded{array}% Contributed by Wolfgang Jeltsch
|
|
{\newcommand{\IfArrayPackageLoaded}[2]{#1}}
|
|
{\newcommand{\IfArrayPackageLoaded}[2]{#2}}}
|
|
\newcommand{\institute}[1]{\IfArrayPackageLoaded
|
|
{\\{\scriptsize\begin{tabular}[t]{@{}>{\footnotesize}c@{}}#1\end{tabular}}}
|
|
{\\{\scriptsize\begin{tabular}[t]{@{\footnotesize}c@{}}#1\end{tabular}}}}
|
|
\newcommand{\email}[1]{\\{\footnotesize\ttfamily #1}}
|
|
|
|
\renewenvironment{abstract}{\begin{list}{}% header removed and noindent
|
|
{\rightmargin\leftmargin
|
|
\listparindent 1.5em
|
|
\parsep 0pt plus 1pt}
|
|
\small\item}{\end{list}
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\RequirePackage{hyperref} % add hyperlinks
|
|
\RequirePackage{mathptmx} % Pick Times Roman as a base font
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%% Remember page numbers %%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newcounter{firstpage}
|
|
\setcounter{firstpage}{1}
|
|
\AtEndDocument{\clearpage
|
|
\addtocounter{page}{-1}
|
|
\immediate\write\@auxout{\string
|
|
\newlabel{LastPage}{{}{\thepage}{}{page.\thepage}{}}}%
|
|
\newwrite\pages
|
|
\immediate\openout\pages=\jobname.pag
|
|
\immediate\write\pages{\arabic{firstpage}-\arabic{page}}
|
|
\addtocounter{page}{1}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%% Less space in lists %%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\def\@listi{\leftmargin\leftmargini
|
|
\parsep 2.5\p@ \@plus1.5\p@ \@minus\p@
|
|
\topsep 5\p@ \@plus2\p@ \@minus5\p@
|
|
\itemsep2.5\p@ \@plus1.5\p@ \@minus\p@}
|
|
\let\@listI\@listi
|
|
\@listi
|
|
\def\@listii {\leftmargin\leftmarginii
|
|
\labelwidth\leftmarginii
|
|
\advance\labelwidth-\labelsep
|
|
\topsep 1\p@ \@plus\p@ \@minus\p@
|
|
\parsep 1\p@ \@plus\p@ \@minus\p@
|
|
\itemsep \parsep}
|
|
\def\@listiii{\leftmargin\leftmarginiii
|
|
\labelwidth\leftmarginiii
|
|
\advance\labelwidth-\labelsep
|
|
\topsep \z@
|
|
\parsep \z@
|
|
\itemsep \topsep}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%% References small and with less space between items %%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\renewenvironment{thebibliography}[1]
|
|
{\section*{\refname}\small% small added
|
|
\list{\@biblabel{\@arabic\c@enumiv}}%
|
|
{\settowidth\labelwidth{\@biblabel{#1}}%
|
|
\leftmargin\labelwidth
|
|
\advance\leftmargin\labelsep
|
|
\@openbib@code
|
|
\usecounter{enumiv}%
|
|
\let\p@enumiv\@empty
|
|
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
|
\sloppy
|
|
\clubpenalty4000
|
|
\@clubpenalty \clubpenalty
|
|
\widowpenalty4000%
|
|
\sfcode`\.\@m
|
|
\setlength{\parskip}{0pt}%
|
|
\setlength{\itemsep}{3pt plus 2pt}% less space between items
|
|
}
|
|
{\def\@noitemerr
|
|
{\@latex@warning{Empty `thebibliography' environment}}%
|
|
\endlist}
|