diff options
Diffstat (limited to 'paper/iacrtrans.cls')
-rw-r--r-- | paper/iacrtrans.cls | 448 |
1 files changed, 448 insertions, 0 deletions
diff --git a/paper/iacrtrans.cls b/paper/iacrtrans.cls new file mode 100644 index 0000000..bf42a75 --- /dev/null +++ b/paper/iacrtrans.cls @@ -0,0 +1,448 @@ +% IACR Transactions DOCUMENT CLASS -- version 0.24 (26 August 2016) +% Written by Gaetan Leurent gaetan.leurent@inria.fr (2016) +% +% To the extent possible under law, the author(s) have dedicated all +% copyright and related and neighboring rights to this software to the +% public domain worldwide. This software is distributed without any +% warranty. +% +% You should have received a copy of the CC0 Public Domain Dedication +% along with this software. If not, see +% <http://creativecommons.org/publicdomain/zero/1.0/>. +% +% +%%% Class options: +% +% [preprint] Preprint (no copyright info) +% [submission] Anonymous submission +% [spthm] Emulate llncs sptheorem and remove automatic \qed in proof +% [nohyperref] Disable automatic loading of hyperref +% [draft] +% +%%% HOWTO use this class +% +%% Title +% \title[short]{Long title} +% +%% Authors/affiliation: +% \author{Alice \and Bob} +% \institute{ABC\\ \email{alice@abc} \and DEF\\ \email{bob@def}} +% +%% Keywords/abstract: +% \keywords{banana \and apple} +% \begin{abstract} +% Lorem ipsum dolor sit amet... +% \end{abstract} +% +%% Warnings +% - please don't use any \pagestyle of \thispagestyle command +% - if you have proof with explicit \qed inside, you should either +% remove \qed symbols, replace them by \qedhere, or add option [spthm] + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{iacrtrans}[2016/08/26 v0.24 IACR Transactions Author Class] + +% Common definitions +\def\publname{IACR Transactions on Cryptographic Hardware and Embedded Systems} +\def\IACR@vol{0} +\def\IACR@no{0} +\def\IACR@fp{1} +\def\IACR@DOI{XXXXXXXX} +\usepackage{lastpage} +\def\IACR@lp{\pageref*{LastPage}} + +\newcommand{\setfirstpage}[1]{\def\IACR@fp{#1}\setcounter{page}{#1}} +\newcommand{\setlastpage}[1]{\def\IACR@lp{#1}} +\newcommand{\setvolume}[1]{\def\IACR@vol{#1}} +\newcommand{\setnumber}[1]{\def\IACR@no{#1}} +\newcommand{\setDOI}[1]{\def\IACR@DOI{#1}} + +% Options +\newif\if@loadhr +\@loadhrtrue +\DeclareOption{nohyperref}{\@loadhrfalse} +\newif\if@floatrow +\@floatrowfalse +\DeclareOption{floatrow}{\@floatrowtrue} +\newif\if@submission +\@submissionfalse +\newif\if@preprint +\@preprintfalse +\DeclareOption{final}{\PassOptionsToClass{\CurrentOption}{article}} % Default +\DeclareOption{preprint}{\@preprinttrue} +\DeclareOption{submission}{\@submissiontrue} +\DeclareOption{draft}{\@preprinttrue\PassOptionsToClass{\CurrentOption}{article}} +\newif\if@spthm +\@spthmfalse +\DeclareOption{spthm}{\@spthmtrue} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax + +% article class with a4paper +\LoadClass[10pt,twoside]{article}[2007/10/19] + +% Geometry +\RequirePackage[a4paper,hscale=0.65,vscale=0.75,marginratio=1:1]{geometry} + +% Title fonts: bf+sf +\RequirePackage{sectsty} +\allsectionsfont{\sffamily\boldmath} +% Also for descrptions +\renewcommand*\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries\sffamily #1} + + +% Title/Author/affiliations +\def\@institute{No institute given.} +\newcommand{\institute}[1]{\gdef\@institute{#1}} +\newcommand{\authorrunning}[1]{\gdef\IACR@runningauthors{#1}} +\newcommand{\titlerunning}[1]{\gdef\IACR@runningtitle{#1}} + +\newcounter{IACR@author@cnt} +\newcounter{IACR@inst@cnt} +\newif\if@IACR@autoinst +\@IACR@autoinsttrue +\def\IACR@author@last{0} + +\renewcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \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{title}\@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{% + % Count authors and affiliations + \setcounter{IACR@author@cnt}{1}% + \setcounter{IACR@inst@cnt}{1}% + \setbox0\hbox{\def\thanks##1{\global\@IACR@autoinstfalse}\def\inst##1{\global\@IACR@autoinstfalse}\def\and{\stepcounter{IACR@author@cnt}}\@author}% + \setbox0\hbox{\def\and{\stepcounter{IACR@inst@cnt}}\@institute}% + \xdef\IACR@author@last{\theIACR@author@cnt}% + \edef\IACR@inst@last{\theIACR@inst@cnt}% + \ifnum\IACR@author@last=\IACR@inst@last\else\@IACR@autoinstfalse\fi + \ifnum\IACR@author@last=1 \@IACR@autoinstfalse\fi + \newpage + \null + \vskip 2em% + \begin{center}% + \let \footnote \thanks + {\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + {\LARGE \bfseries\sffamily\boldmath \@title\par} + \ifdefined\@subtitle\vskip .5em{\large\sffamily\bfseries\@subtitle\par}\fi}% + \vskip 1.5em% + {\large + \lineskip .5em% + \if@submission + Anonymous Submission + \else + \setcounter{IACR@author@cnt}{1}% + \def\and{\if@IACR@autoinst\inst{\theIACR@author@cnt} \fi + \stepcounter{IACR@author@cnt}% + \ifnum\theIACR@author@cnt=\IACR@author@last\unskip\space and \ignorespaces\else\unskip, \ignorespaces\fi} + \@author\if@IACR@autoinst\inst{\theIACR@author@cnt}\fi + \vskip 1em\par + \small + \setcounter{IACR@author@cnt}{1}% + \def\and{\par\stepcounter{IACR@author@cnt}$^\theIACR@author@cnt$~} + \ifnum\IACR@inst@last>1 $^1$~\fi + \@institute + \fi + }% + \end{center}% + \par + \vskip 1.5em} + +\def\IACR@runningauthors{ + \def\thanks##1{}% + \def\inst##1{}% + \def\fnmsep{}% + \def\\{}% + \def\footnote##1{}% + \setcounter{IACR@author@cnt}{1}% + \def\and{\stepcounter{IACR@author@cnt}% + \ifnum\theIACR@author@cnt=\IACR@author@last\unskip\space and \ignorespaces\else\unskip, \ignorespaces\fi} + \@author} + +\def\IACR@runningtitle{% + \def\thanks##1{}% + \def\fnmsep{}% + \def\\{}% + \def\footnote##1{}% + \@title} + +\def\author{\@ifnextchar[{\IACR@@@author}{\IACR@@author}} +\def\IACR@@@author[#1]#2{\authorrunning{#1}\gdef\@author{#2}} +\def\IACR@@author#1{\gdef\@author{#1}} + +\if@submission +\gdef\@author{Anonymous Submission to \publname} +\renewcommand{\author}[2][]{} +\renewcommand{\authorrunning}[1]{} +\renewcommand{\institute}[2][]{} +\fi + + +\def\title{\@ifnextchar[{\IACR@@@title}{\IACR@@title}} +\def\IACR@@@title[#1]#2{\gdef\@title{#2}\titlerunning{#1}} +\def\IACR@@title#1{\gdef\@title{#1}} + +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} + +\newcommand{\inst}[1]{\unskip$^{#1}$} +\def\fnmsep{\unskip$^,$} + + +% Head/foot +\RequirePackage{fancyhdr} +\RequirePackage{graphicx} +\fancypagestyle{title}{% +\fancyhf{} % clear all header and footer fields +\if@submission\else\if@preprint\else +\fancyfoot[L]{\small Licensed under \href{http://creativecommons.org/licenses/by/4.0/}{Creative Commons License CC-BY 4.0.}\\ +\publname{} Vol.~\IACR@vol, No.\IACR@no, pp.\IACR@fp---\IACR@lp, \href{https://doi.org/\IACR@DOI}{DOI:\IACR@DOI}} +\fancyfoot[R]{\includegraphics[height=2ex]{CC-by}} +\if@loadhr + \hypersetup{pdfcopyright={Licensed under Creative Commons License CC-BY 4.0.}} + \hypersetup{pdflicenseurl={http://creativecommons.org/licenses/by/4.0/}} + \hypersetup{pdfsubject={IACR Transactions on Symmetric Cryptology}} + \hypersetup{pdflang=en} +\fi +\fi\fi +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt}} +\fancyhf{} % clear all header and footer fields +\fancyhead[RO,LE]{\thepage} +\fancyhead[RE]{\IACR@runningtitle} +\fancyhead[LO]{\IACR@runningauthors} +\renewcommand{\markboth}[2]{} +\pagestyle{fancy} + +\def\subtitle#1{\gdef\@subtitle{#1}} + +%Abstract style, keywords +\def\@IACR@keywords{No keywords given.} + +\def\keywords{\@ifnextchar[{\IACR@@@keywords}{\IACR@@keywords}} +\def\IACR@@@keywords[#1]#2{\gdef\@IACR@PDFkeywords{#1}\gdef\@IACR@keywords{#2}} +\def\IACR@@keywords#1{\gdef\@IACR@keywords{#1}} + +\renewenvironment{abstract}{% + \small\quotation\setlength{\parindent}{0pt}\noindent + \textbf{\textsf{Abstract.}}} + {\smallskip\par\textbf{\textsf{Keywords:}} + \def\and{\unskip\space\textperiodcentered\space\ignorespaces}\@IACR@keywords + \endquotation% + \if@loadhr + %% PDF keywords + \def\and{, }% + \def\thanks##1{}% + \def\footnote##1{}% + \def\inst##1{}% + \def\fnmsep{}% + \def\\{}% + \def\zap@comma@space##1 ,##2{% + ##1% + \ifx##2\@empty\else, \expandafter\zap@comma@space\fi + ##2} + \ifdefined\@IACR@PDFkeywords + \hypersetup{pdfkeywords=\@IACR@PDFkeywords} + \else + \protected@edef\@tmp{\expandafter\@IACR@keywords} + \protected@edef\@tmp{\expandafter\zap@comma@space\@tmp{} ,\@empty} + \hypersetup{pdfkeywords=\@tmp} + \fi + %% PDF author + \def\zap@one,##1{} + \def\zap@last##1,##2{\ifx##1\@empty\else\space and ##1\expandafter\zap@one\fi} + \def\zap@last@comma##1,##2,##3{% + ##1% + \ifx##3\@empty% + \expandafter\zap@last\else + ,\expandafter\zap@last@comma\fi% + ##2,##3} + \def\zap@dbl@space##1 ##2{% + ##1% + \ifx##2\@empty\else\space\expandafter\zap@dbl@space##2\fi} + \protected@edef\@tmp{\expandafter\@author} + % \protected@edef\@tmp{\expandafter\IACR@runningauthors} + \protected@edef\@tmp{\expandafter\zap@last@comma\@tmp,\@empty,\@empty} + \protected@edef\@tmp{\expandafter\zap@comma@space\@tmp{} ,\@empty} + \protected@edef\@tmp{\expandafter\zap@dbl@space\@tmp{} \@empty} + \hypersetup{pdfauthor=\@tmp} + %% PDF title + \hypersetup{pdftitle=\IACR@runningtitle} + \fi +} + + +% Hyperref +\if@loadhr + \RequirePackage{xcolor} + \RequirePackage{etoolbox} + \AtEndPreamble{ + \@ifpackageloaded{hyperref}{}{\usepackage{hyperref}} + \@ifpackageloaded{hyperxmp}{}{\usepackage{hyperxmp}} + \hypersetup{colorlinks=true, + citecolor=black!70!green, + linkcolor=black!70!red} + } + \setcounter{tocdepth}{2} +\fi +% autoref: capitals for Sections, and adding Algorithm +\def\equationautorefname{Equation}% +\def\footnoteautorefname{footnote}% +\def\itemautorefname{item}% +\def\figureautorefname{Figure}% +\def\tableautorefname{Table}% +\def\partautorefname{Part}% +\def\appendixautorefname{Appendix}% +\def\chapterautorefname{Chapter}% +\def\sectionautorefname{Section}% +\def\subsectionautorefname{Subsection}% +\def\subsubsectionautorefname{Subsubsection}% +\def\paragraphautorefname{paragraph}% +\def\subparagraphautorefname{subparagraph}% +\def\FancyVerbLineautorefname{line}% +\def\theoremautorefname{Theorem}% +\def\pageautorefname{page}% +\def\algorithmautorefname{Algorithm} + +% AMS math +\RequirePackage{amsmath,amssymb,amsthm} +\RequirePackage{mathtools} +\theoremstyle{definition} +\newtheorem{definition}{Definition} +\newtheorem{example}{Example} +\newtheorem{exercise}{Exercise} +\newtheorem{property}{Property} +\newtheorem{question}{Question} +\newtheorem{solution}{Solution} + +\theoremstyle{plain} +\newtheorem{theorem}{Theorem} +\newtheorem{proposition}{Proposition} +\newtheorem{problem}{Problem} +\newtheorem{lemma}{Lemma} +\newtheorem{conjecture}{Conjecture} +\newtheorem{corollary}{Corollary} +\newtheorem*{claim}{Claim} + +\theoremstyle{remark} +\newtheorem{remark}{Remark} +\newtheorem{note}{Note} +\newtheorem{case}{Case} + +\theoremstyle{plain} + +%Emulate LLNCS spnewtheorem +\if@spthm +\def\spnewtheorem{\@ifstar{\IACR@spstar}{\IACR@sp}} +\def\IACR@spstar#1#2#3#4{\newtheorem*{#1}{#2}} +\def\IACR@sp#1{\@ifnextchar[{\IACR@sp@b{#1}}{\IACR@sp@a{#1}}} +\def\IACR@sp@a#1#2[#3]#4#5{\newtheorem{#1}{#2}[#3]} +\def\IACR@sp@b#1[#2]#3#4#5{\newtheorem{#1}[#2]{#3}} +\renewcommand{\pushQED}[1]{} +\fi + +% Floats and captions +\if@floatrow +\RequirePackage{floatrow} +\floatsetup[table]{style=Plaintop} +\RequirePackage{caption} +\captionsetup{labelfont={sf,bf}} +\else +\RequirePackage{float} +\newcommand\fs@iacrabove{% + % Swap \abovecaptionskip and \belowcaptionskip + \addtolength\abovecaptionskip{-\belowcaptionskip} + \addtolength\belowcaptionskip{\abovecaptionskip} + \addtolength\abovecaptionskip{-\belowcaptionskip} + \setlength\abovecaptionskip{-\abovecaptionskip} + \fs@plaintop% + \def\@fs@cfont{\sffamily\bfseries}} +\newcommand\fs@iacrbelow{% + \fs@plain% + \def\@fs@cfont{\sffamily\bfseries}} +\floatstyle{iacrabove} +\restylefloat{table} +\floatstyle{iacrbelow} +\restylefloat{figure} +\fi + +% Extra commands +\def\email{\@ifnextchar[{\IACR@@email}{\IACR@email}} +\if@loadhr +\def\IACR@@email[#1]#2{\href{mailto:#1}{\nolinkurl{#2}}} +\def\IACR@email#1{\href{mailto:#1}{\nolinkurl{#1}}} +\else +\RequirePackage{url} +\def\IACR@@email[#1]#2{\url{#2}} +\def\IACR@email#1{\url{#1}} +\fi + +% Line # for submission +\newcommand\linenomathWithnumbersforAMS{% + \ifLineNumbers +%% \ifx\@@par\@@@par\else + \ifnum\interlinepenalty>-\linenopenaltypar + \global\holdinginserts\thr@@ + \advance\interlinepenalty \linenopenalty + \ifhmode % v4.3 + \advance\predisplaypenalty \linenopenalty + \fi +%% \advance\postdisplaypenalty \linenopenalty + \advance\interdisplaylinepenalty \linenopenalty + \fi + \fi + \ignorespaces + } + +\if@submission +\RequirePackage[mathlines]{lineno} +\linenumbers +\def\linenumberfont{\normalfont\tiny\sffamily\color{gray}} + +% Taken from http://phaseportrait.blogspot.fr/2007/08/lineno-and-amsmath-compatibility.html +\newcommand*\patchAmsMathEnvironmentForLineno[1]{% + \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname + \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname + \renewenvironment{#1}% + {\linenomathWithnumbersforAMS\csname old#1\endcsname}% + {\csname oldend#1\endcsname\endlinenomath}}% +\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{% + \patchAmsMathEnvironmentForLineno{#1}% + \patchAmsMathEnvironmentForLineno{#1*}}% +\AtBeginDocument{% +%\patchBothAmsMathEnvironmentsForLineno{equation}% +\patchBothAmsMathEnvironmentsForLineno{align}% +\patchBothAmsMathEnvironmentsForLineno{flalign}% +\patchBothAmsMathEnvironmentsForLineno{alignat}% +\patchBothAmsMathEnvironmentsForLineno{gather}% +\patchBothAmsMathEnvironmentsForLineno{multline}% +} +\fi + +% Microtype +\RequirePackage{microtype} + +% Fonts +\usepackage[T1]{fontenc} +\usepackage{lmodern} |