upgrade acmart.cls

This commit is contained in:
Matthew Flatt 2017-09-26 07:45:10 -06:00
parent dd92ebd2d9
commit ad6deb7366

View File

@ -37,7 +37,7 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{acmart}
[2017/07/09 v1.43 Typesetting articles for Association of
[2017/09/16 v1.48 Typesetting articles for the Association for
Computing Machinery]
\def\@classname{acmart}
\InputIfFileExists{acmart-preload-hook.tex}{%
@ -68,15 +68,24 @@ Computing Machinery]
\PackageInfo{\@classname}{Using screen mode}%
\else
\PackageInfo{\@classname}{Not using screen mode}%
\fi}{\PackageError{\@classname}{Option screen can be either true or
\fi}{\PackageError{\@classname}{The option screen can be either true or
false}}
\ExecuteOptionsX{screen=false}
\define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{%
\if@ACM@acmthm
\PackageInfo{\@classname}{Requiring acmthm}%
\else
\PackageInfo{\@classname}{Suppressing acmthm}%
\fi}{\PackageError{\@classname}{The option acmthm can be either true or
false}}
\ExecuteOptionsX{acmthm=true}
\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
\if@ACM@review
\PackageInfo{\@classname}{Using review mode}%
\AtBeginDocument{\@ACM@printfoliostrue}%
\else
\PackageInfo{\@classname}{Not using review mode}%
\fi}{\PackageError{\@classname}{Option review can be either true or
\fi}{\PackageError{\@classname}{The option review can be either true or
false}}
\ExecuteOptionsX{review=false}
\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
@ -84,7 +93,7 @@ Computing Machinery]
\PackageInfo{\@classname}{Using authorversion mode}%
\else
\PackageInfo{\@classname}{Not using authorversion mode}%
\fi}{\PackageError{\@classname}{Option authorversion can be either true or
\fi}{\PackageError{\@classname}{The option authorversion can be either true or
false}}
\ExecuteOptionsX{authorversion=false}
\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
@ -92,7 +101,7 @@ Computing Machinery]
\PackageInfo{\@classname}{Explicitly selecting natbib mode}%
\else
\PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
\fi}{\PackageError{\@classname}{Option natbib can be either true or
\fi}{\PackageError{\@classname}{The option natbib can be either true or
false}}
\ExecuteOptionsX{natbib=true}
\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
@ -100,7 +109,7 @@ Computing Machinery]
\PackageInfo{\@classname}{Using anonymous mode}%
\else
\PackageInfo{\@classname}{Not using anonymous mode}%
\fi}{\PackageError{\@classname}{Option anonymous can be either true or
\fi}{\PackageError{\@classname}{The option anonymous can be either true or
false}}
\ExecuteOptionsX{anonymous=false}
\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
@ -108,7 +117,7 @@ Computing Machinery]
\PackageInfo{\@classname}{Using timestamp mode}%
\else
\PackageInfo{\@classname}{Not using timestamp mode}%
\fi}{\PackageError{\@classname}{Option timestamp can be either true or
\fi}{\PackageError{\@classname}{The option timestamp can be either true or
false}}
\ExecuteOptionsX{timestamp=false}
\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
@ -118,7 +127,7 @@ Computing Machinery]
\@ACM@reviewtrue
\else
\PackageInfo{\@classname}{Not using authordraft mode}%
\fi}{\PackageError{\@classname}{Option authordraft can be either true or
\fi}{\PackageError{\@classname}{The option authordraft can be either true or
false}}
\ExecuteOptionsX{authordraft=false}
\def\ACM@fontsize{}
@ -134,7 +143,7 @@ Computing Machinery]
\newif\if@ACM@journal
\newif\if@ACM@sigchiamode
\ifnum\ACM@format@nr=5\relax % siggraph
\ClassWarning{\@classname}{The format `siggraph' is now obsolete.
\ClassWarning{\@classname}{The format siggraph is now obsolete.
I am switching to sigconf.}
\setkeys{acmart.cls}{format=sigconf}
\fi
@ -190,6 +199,24 @@ Computing Machinery]
\ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
\LoadClass[\ACM@fontsize, reqno]{amsart}
\RequirePackage{microtype}
\ifcase\ACM@format@nr
\relax % manuscript
\or % acmsmall
\or % acmlarge
\or % acmtog
\RequirePackage{flushend}
\or % sigconf
\RequirePackage{flushend}
\or % siggraph
\RequirePackage{flushend}
\or % sigplan
\RequirePackage{flushend}
\or % sigchi
\RequirePackage{flushend}
\or % sigchi-a
\fi
\RequirePackage{etoolbox}
\RequirePackage{refcount}
\RequirePackage{totpages}
\RequirePackage{environ}
\if@ACM@manuscript
@ -422,16 +449,16 @@ Computing Machinery]
\or % sigchi-a
\urlstyle{sf}
\fi
\if@ACM@screen
\hypersetup{colorlinks,
linkcolor=ACMRed,
citecolor=ACMPurple,
urlcolor=ACMDarkBlue,
filecolor=ACMDarkBlue}
\else
\hypersetup{hidelinks}
\fi
\RequirePackage{cleveref}
\AtEndPreamble{%
\if@ACM@screen
\hypersetup{colorlinks,
linkcolor=ACMRed,
citecolor=ACMPurple,
urlcolor=ACMDarkBlue,
filecolor=ACMDarkBlue}
\else
\hypersetup{hidelinks}
\fi}
\if@ACM@natbib
\let\citeN\cite
\let\cite\citep
@ -558,6 +585,8 @@ Computing Machinery]
\hrule \@width \columnwidth \kern 2.6\p@}
\RequirePackage{manyfoot}
\SelectFootnoteRule[2]{copyrightpermission}
\DeclareNewFootnote{authorsaddresses}
\SelectFootnoteRule[2]{copyrightpermission}
\DeclareNewFootnote{copyrightpermission}
\def\footnoterule{\kern-3\p@
\hrule \@width 4pc \kern 2.6\p@}
@ -569,7 +598,7 @@ Computing Machinery]
\normalcolor
\unvbox\@mpfootins
\fi
\@minipagefalse %% added 24 May 89
\@minipagefalse
\color@endgroup
\egroup
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
@ -617,12 +646,13 @@ Computing Machinery]
\newif\if@ACM@newfonts
\@ACM@newfontstrue
\IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
have libertine package installed. Please upgrade your
have the libertine package installed. Please upgrade your
TeX}\@ACM@newfontsfalse}
\IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
have zi4 package installed. Please upgrade your TeX}\@ACM@newfontsfalse}
have the zi4 package installed. Please upgrade your
TeX}\@ACM@newfontsfalse}
\IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
have newtxmath package installed. Please upgrade your
have the newtxmath package installed. Please upgrade your
TeX}\@ACM@newfontsfalse}
\if@ACM@newfonts
\RequirePackage[tt=false, type1=true]{libertine}
@ -630,6 +660,9 @@ Computing Machinery]
\RequirePackage[libertine]{newtxmath}
\RequirePackage[T1]{fontenc}
\fi
\let\liningnums\@undefined
\AtEndPreamble{%
\DeclareTextFontCommand{\liningnums}{\libertineLF}}
\if@ACM@sigchiamode
\renewcommand{\familydefault}{\sfdefault}
\fi
@ -637,7 +670,7 @@ Computing Machinery]
\captionsetup[table]{position=top}
\if@ACM@journal
\captionsetup{labelfont={sf, small},
textfont={sf, small}, margin=\z@}
textfont={sf, small}, margin=\z@}
\captionsetup[figure]{name={Fig.}}
\else
\captionsetup{labelfont={bf},
@ -779,6 +812,7 @@ Computing Machinery]
TCPS,%
TEAC,%
TECS,%
THRI,%
TIIS,%
TISSEC,%
TIST,%
@ -824,6 +858,8 @@ Computing Machinery]
Wearable and Ubiquitous Technologies}%
\def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}%
\def\@permissionCodeOne{2474-9567}%
\@ACM@screentrue
\PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
\or % JACM
\def\@journalName{Journal of the ACM}%
\def\@journalNameShort{J. ACM}%
@ -846,19 +882,25 @@ Computing Machinery]
\def\@permissionCodeOne{1550-4832}%
\or % JOCCH
\def\@journalName{ACM Journal on Computing and Cultural Heritage}%
\def\@journalName{ACM J. Comput. Cult. Herit.}%
\def\@journalNameShort{ACM J. Comput. Cult. Herit.}%
\or % PACMHCI
\def\@journalName{Proceedings of the ACM on Human-Computer Interaction}%
\def\@journalName{Proc. ACM Hum.-Comput. Interact.}%
\def\@journalNameShort{Proc. ACM Hum.-Comput. Interact.}%
\def\@permissionCodeOne{2573-0142}%
\@ACM@screentrue
\PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
\or % PACMPL
\def\@journalName{Proceedings of the ACM on Programming Languages}%
\def\@journalName{Proc. ACM Program. Lang.}%
\def\@journalNameShort{Proc. ACM Program. Lang.}%
\def\@permissionCodeOne{2475-1421}%
\@ACM@screentrue
\PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
\or % POMACS
\def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
\def\@journalName{Proc. ACM Meas. Anal. Comput. Syst.}%
\def\@journalNameShort{Proc. ACM Meas. Anal. Comput. Syst.}%
\def\@permissionCodeOne{2476-1249}%
\@ACM@screentrue
\PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
\or % TAAS
\def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
\def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
@ -869,6 +911,7 @@ Computing Machinery]
\def\@permissionCodeOne{1936-7228}%
\or % TACO
\def\@journalName{ACM Transactions on Architecture and Code Optimization}%
\def\@journalNameShort{ACM Trans. Arch. Code Optim.}%
\or % TALG
\def\@journalName{ACM Transactions on Algorithms}%
\def\@journalNameShort{ACM Trans. Algor.}%
@ -887,6 +930,10 @@ Computing Machinery]
\def\@journalName{ACM Transactions on Embedded Computing Systems}%
\def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
\def\@permissionCodeOne{1539-9087}%
\or % THRI
\def\@journalName{ACM Transactions on Human-Robot Interaction}%
\def\@journalNameShort{ACM Trans. Hum.-Robot Interact.}%
\def\@permissionCodeOne{2573-9522}%
\or % TIIS
\def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
\def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
@ -940,7 +987,6 @@ Computing Machinery]
\def\@journalNameShort{ACM Trans. Graph.}%
\def\@permissionCodeOne{0730-0301}
\or % TOIS
\def\@journalName{ACM Transactions on Information Systems}%
\def\@journalName{ACM Transactions on Information Systems}%
\def\@permissionCodeOne{1046-8188}%
\or % TOIT
@ -948,7 +994,6 @@ Computing Machinery]
\def\@journalNameShort{ACM Trans. Internet Technol.}%
\def\@permissionCodeOne{1533-5399}%
\or % TOMACS
\def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
\def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
\def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
\or % TOMM
@ -1029,13 +1074,28 @@ Computing Machinery]
\fi}
\acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
DC, USA}
\def\acmBooktitle#1{\gdef\@acmBooktitle{#1}}
\acmBooktitle{Proceedings of \acmConference@name
\ifx\acmConference@name\acmConference@shortname\else
\ (\acmConference@shortname)\fi}
\def\@editorsAbbrev{(Ed.)}
\def\@acmEditors{}
\def\editor#1{\ifx\@acmEditors\@empty
\gdef\@acmEditors{#1}%
\else
\gdef\@editorsAbbrev{(Eds.)}%
\g@addto@macro\@acmEditors{\and#1}%
\fi}
\def\subtitle#1{\def\@subtitle{#1}}
\subtitle{}
\newcount\num@authorgroups
\num@authorgroups=0\relax
\newcount\num@authors
\num@authors=0\relax
\newif\if@insideauthorgroup
\@insideauthorgroupfalse
\renewcommand\author[2][]{%
\global\advance\num@authors by 1\relax
\if@insideauthorgroup\else
\global\advance\num@authorgroups by 1\relax
\global\@insideauthorgrouptrue
@ -1080,7 +1140,7 @@ Computing Machinery]
\g@addto@macro\addresses{\affiliation{#1}{#2}}%
\fi}
\define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
[true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}}
[true]{}{\ClassError{\@classname}{The option obeypunctuation can be either true or false}}
\def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
\def\@additionalaffiliation#1{\bgroup
\def\position##1{\ignorespaces}%
@ -1098,6 +1158,8 @@ Computing Machinery]
\g@addto@macro\addresses{\email{#1}{#2}}%
\fi}
\def\orcid#1{\unskip\ignorespaces}
\def\authorsaddresses#1{\def\@authorsaddresses{#1}}
\authorsaddresses{\@mkauthorsaddresses}
\def\@titlenotes{}
\def\titlenote#1{%
\g@addto@macro\@title{\footnotemark}%
@ -1135,7 +1197,7 @@ Computing Machinery]
\def\acmNumber#1{\def\@acmNumber{#1}}
\acmNumber{1}
\def\acmArticle#1{\def\@acmArticle{#1}}
\acmArticle{1}
\acmArticle{}
\def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
\acmArticleSeq{\@acmArticle}
\def\acmYear#1{\def\@acmYear{#1}}
@ -1186,22 +1248,22 @@ Computing Machinery]
\ClassInfo{\@classname}{Printing CCS}%
\else
\ClassInfo{\@classname}{Suppressing CCS}%
\fi}{\ClassError{\@classname}{printccs must be true or false}}
\fi}{\ClassError{\@classname}{The option printccs can be either true or false}}
\define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
\if@ACM@printacmref
\ClassInfo{\@classname}{Printing bibformat}%
\else
\ClassInfo{\@classname}{Suppressing bibformat}%
\fi}{\ClassError{\@classname}{printacmref must be true or false}}
\fi}{\ClassError{\@classname}{The option printacmref can be either true or false}}
\define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
\if@ACM@printfolios
\ClassInfo{\@classname}{Printing folios}%
\else
\ClassInfo{\@classname}{Suppressing folios}%
\fi}{\ClassError{\@classname}{printfolios must be true or false}}
\fi}{\ClassError{\@classname}{The option printfolios can be either true or false}}
\define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{%
\IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to
#1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be
#1}}{\ClassWarning{\@classname}{The parameter authorsperrow must be
numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}}
\def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
\settopmatter{printccs=true, printacmref=true}
@ -1269,8 +1331,7 @@ Computing Machinery]
\define@choicekey*{ACM@}{acmcopyrightmode}[%
\acm@copyrightinput\acm@copyrightmode]{none,%
acmcopyright,acmlicensed,rightsretained,%
usgov,usgovmixed,cagov,cagovmixed,%
licensedusgovmixed,%
usgov,usgovmixed,cagov,cagovmixed,licensedusgovmixed,%
licensedcagov,licensedcagovmixed,othergov,licensedothergov}{%
\@printpermissiontrue
\@printcopyrighttrue
@ -1481,7 +1542,7 @@ Computing Machinery]
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\global\@topnum\z@ % this prevents floats from falling
% at the top of page 1
\global\@botnum\z@ % we do not want them to be on bottom either
\global\@botnum\z@ % we do not want them to be on the bottom either
\hsize=\textwidth
\def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
\@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
@ -1492,12 +1553,21 @@ Computing Machinery]
\@titlenotes
\@subtitlenotes
\@authornotes
\let\@makefnmark\relax \let\@thefnmark\relax
\let\@makefnmark\relax
\let\@thefnmark\relax
\let\@makefntext\noindent
\ifx\@empty\thankses\else
\footnotetextcopyrightpermission{%
\footnotetextauthorsaddresses{%
\def\par{\let\par\@par}\parindent\z@\@setthanks}%
\fi
\ifx\@empty\@authorsaddresses\else
\if@ACM@anonymous\else
\if@ACM@journal
\footnotetextauthorsaddresses{%
\def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}%
\fi
\fi
\fi
\footnotetextcopyrightpermission{%
\if@ACM@authordraft
\raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
@ -1529,7 +1599,7 @@ Computing Machinery]
\if@ACM@journal
\emph{\@journalName}%
\else
\emph{Proceedings of \acmConference@name, \acmConference@date}%
\emph{\@acmBooktitle}%
\fi
\ifx\@acmDOI\@empty
.
@ -1542,9 +1612,9 @@ Computing Machinery]
\ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\
\@formatdoi{\@acmDOI}%
\else % Conference
ACM~ISBN~\@acmISBN
\ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\
\@formatdoi{\@acmDOI}%
\ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN
\ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\\fi
\ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi%
\fi
\fi
\fi}
@ -1612,13 +1682,10 @@ Computing Machinery]
\ifcase\ACM@format@nr
\relax % manuscript
\box\mktitle@bx\par
\noindent\hrulefill\par
\or % acmsmall
\box\mktitle@bx\par
\noindent\hrulefill\par
\or % acmlarge
\box\mktitle@bx\par
\noindent\hrulefill\par
\or % acmtog
\twocolumn[\box\mktitle@bx]%
\or % sigconf
@ -1670,11 +1737,11 @@ Computing Machinery]
\def\@titlefont{%
\ifcase\ACM@format@nr
\relax % manuscript
\LARGE\bfseries\sffamily
\LARGE\sffamily\bfseries
\or % acmsmall
\LARGE\bfseries\sffamily
\LARGE\sffamily\bfseries
\or % acmlarge
\LARGE\bfseries\sffamily
\LARGE\sffamily\bfseries
\or % acmtog
\Huge\sffamily
\or % sigconf
@ -1785,10 +1852,10 @@ Computing Machinery]
\def\postcode#1{\unskip\ignorespaces}
\if@ACM@journal
\def\position#1{\unskip\ignorespaces}
\def\institution#1{#1\ignorespaces}
\def\institution#1{\unskip~#1\ignorespaces}
\def\city#1{\unskip\ignorespaces}
\def\state#1{\unskip\ignorespaces}
\newcommand\department[2][0]{}
\newcommand\department[2][0]{\unskip\ignorespaces}
\def\country#1{\if@ACM@affiliation@obeypunctuation\else, \fi#1\ignorespaces}
\else
\def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
@ -1989,6 +2056,26 @@ Computing Machinery]
\par\raggedright\leftskip=\z@
\lineskip=1pc\noindent
\addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
\def\@mkauthorsaddresses{%
\ifnum\num@authors>1\relax
Authors' \else Author's \fi
\ifnum\num@authorgroups>1\relax
addresses: \else address: \fi
\bgroup
\def\streetaddress##1{\unskip\@addpunct, ##1}%
\def\postcode##1{\unskip\@addpunct, ##1}%
\def\position##1{\unskip\ignorespaces}%
\def\institution##1{\unskip\@addpunct, ##1}%
\def\city##1{\unskip\@addpunct, ##1}%
\def\state##1{\unskip\@addpunct, ##1}%
\renewcommand\department[2][0]{\unskip\@addpunct, ##2}%
\def\country##1{\unskip\@addpunct, ##1}%
\def\and{\unskip\@addpunct; }%
\def\@author##1{##1}%
\def\email##1##2{\unskip\@addpunct, \nolinkurl{##2}}%
\addresses
\egroup}
\def\@setaddresses{}
\def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}}
\def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}}
\def\@mkteasers{%
@ -1998,60 +2085,45 @@ Computing Machinery]
\global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
\noindent\@teaserfigures\par\medskip}%
\fi}
\def\@setaddresses{}
\def\@mkabstract{\bgroup
\ifx\@abstract\@lempty\else
{\phantomsection\addcontentsline{toc}{section}{Abstract}%
\if@ACM@journal
\small\noindent
\everypar{\setbox\z@\lastbox\everypar{}}\small
\else
\section*{Abstract}%
\fi
\ignorespaces\@abstract\par}%
\fi\egroup}
\def\@mkbibcitation{\bgroup
\def\@pages@word{\ifnum\getrefnumber{TotPages}=1\relax page\else pages\fi}%
\def\footnotemark{}%
\def\\{\unskip{} \ignorespaces}%
\def\footnote{\ClassError{\@classname}{Please do note use footnotes
inside \string\title{} or \string\author{} command! Use
inside a \string\title{} or \string\author{} command! Use
\string\titlenote{} or \string\authornote{} instead!}}%
\def\@article@string{\ifx\@acmArticle\@empty{\ }\else,
Article~\@acmArticle\ \fi}%
\par\medskip\small\noindent{\bfseries ACM Reference Format:}\par\nobreak
\noindent\authors. \@acmYear. \@title.
\noindent\authors. \@acmYear. \@title
\ifx\@subtitle\@empty. \else: \@subtitle. \fi
\if@ACM@journal
\textit{\@journalNameShort}
\@acmVolume, \@acmNumber, Article~\@acmArticle\ (\@acmPubDate),
\ref{TotPages}~pages.
\@acmVolume, \@acmNumber \@article@string (\@acmPubDate),
\ref{TotPages}~\@pages@word.
\else
In \textit{Proceedings of \acmConference@name, \acmConference@venue,
\acmConference@date
\ifx\acmConference@name\acmConference@shortname\else
\ (\acmConference@shortname)\fi
,} \ref{TotPages}~pages.
\fi\par
\noindent\@formatdoi{\@acmDOI}
\par\egroup}
\def\@printendtopmatter{\par\medskip
\ifcase\ACM@format@nr
\relax % manuscript
\noindent\hrulefill\par\medskip
\or % acmsmall
\noindent\hrulefill\par\medskip
\or % acmlarge
\noindent\hrulefill\par\medskip
\or % acmtog
\par\bigskip
\or % sigconf
\par\bigskip
\or % siggraph
\par\bigskip
\or % sigplan
\par\bigskip
\or % sigchi
\par\bigskip
\or % sigchi-a
In \textit{\@acmBooktitle}%
\ifx\@acmEditors\@empty\textit{.}\else
\andify\@acmEditors\textit{, }\@acmEditors~\@editorsAbbrev.%
\fi\
ACM, New York, NY, USA%
\@article@string\unskip, \ref{TotPages}~\@pages@word.
\fi
}
\@formatdoi{\@acmDOI}
\par\egroup}
\def\@printendtopmatter{\par\bigskip}
\def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
\def\@setauthorsaddresses{\@authorsaddresses\unskip\@addpunct.}
\RequirePackage{fancyhdr}
\if@ACM@review
\newsavebox{\ACM@linecount@bx}
@ -2060,11 +2132,13 @@ Computing Machinery]
\ACM@linecount\@ne\relax
\def\ACM@mk@linecount{%
\savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
\setlength{\ACM@linecount@bxht}{-\baselineskip}%
\setlength{\ACM@linecount@bxht}{0pt}%
\loop{\color{red}\scriptsize\the\ACM@linecount}\\
\global\advance\ACM@linecount by \@ne
\addtolength{\ACM@linecount@bxht}{\baselineskip}%
\ifdim\ACM@linecount@bxht<\textheight\repeat}}}
\ifdim\ACM@linecount@bxht<\textheight\repeat
{\color{red}\scriptsize\the\ACM@linecount}\hfill
\global\advance\ACM@linecount by \@ne}}}
\fi
\def\ACM@linecountL{%
\if@ACM@review
@ -2081,7 +2155,7 @@ Computing Machinery]
\end{picture}%
\fi}
\if@ACM@timestamp
% Subtracting 30 from \time gives us the effect of rounding-down despite
% Subtracting 30 from \time gives us the effect of rounding down despite
% \numexpr rounding to nearest
\newcounter{ACM@time@hours}
\setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
@ -2089,36 +2163,16 @@ Computing Machinery]
\setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
\newcommand\ACM@timestamp{%
\footnotesize%
\the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
\two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }%
page~\thepage\ (pp. \@startPage-\pageref*{TotPages})%
\ifx\@acmSubmissionID\@empty\relax\else
~Submission~ID: \@acmSubmissionID
Submission ID: \@acmSubmissionID.{ }%
\fi
\the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
\two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{. }%
Page \thepage\ of \@startPage--\pageref*{TotPages}.%
}
\fi
\def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi}
\def\@headfootfont{%
\ifcase\ACM@format@nr
\relax % manuscript
\sffamily
\or % acmsmall
\sffamily
\or % acmlarge
\sffamily
\or % acmtog
\sffamily
\or % sigconf
\sffamily
\or % siggraph
\sffamily
\or % sigplan
\sffamily
\or % sigchi
\sffamily
\or % sigchi-a
\sffamily
\fi}
\def\@headfootfont{\sffamily}
\fancypagestyle{standardpagestyle}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{\z@}%
@ -2191,7 +2245,8 @@ Computing Machinery]
\@folio@voffset=.55in\relax
\def\@folio@max{10}
\fi
\def\@folioblob{\@tempcnta=\@acmArticleSeq\relax
\def\@folioblob{\@tempcnta=0\@acmArticleSeq\relax
\ifnum\@tempcnta=0\relax\else
\loop
\ifnum\@tempcnta>\@folio@max\relax
\advance\@tempcnta by - \@folio@max
@ -2207,8 +2262,8 @@ Computing Machinery]
\rule{\@folio@wd}{\@folio@ht}}}%
\parbox{\@folio@wd}{%
\centering
\textcolor{white}{\LARGE\bfseries\sffamily\@acmArticle}}}}
\end{picture}}
\textcolor{white}{\LARGE\sffamily\bfseries\@acmArticle}}}}
\end{picture}\fi}
\fancypagestyle{firstpagestyle}{%
\fancyhf{}%
@ -2255,6 +2310,14 @@ Computing Machinery]
\fi
\fi
}
\let\ACM@ps@plain\ps@plain
\let\ACM@ps@myheadings\ps@myheadings
\let\ACM@ps@headings\ps@headings
\def\ACM@restore@pagestyle{%
\let\ps@plain\ACM@ps@plain
\let\ps@myheadings\ACM@ps@myheadings
\let\ps@headings\ACM@ps@headings}
\AtBeginDocument{\ACM@restore@pagestyle}
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
{.25\baselineskip}%
@ -2297,8 +2360,8 @@ Computing Machinery]
\def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\Large\section@raggedright}
\or % siggraph
\def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\sffamily\Large\section@raggedright}
\def\@secfont{\sffamily\bfseries\Large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\sffamily\bfseries\Large\section@raggedright}
\or % sigplan
\def\@secfont{\bfseries\Large\section@raggedright}
\def\@subsecfont{\bfseries\section@raggedright}
@ -2319,12 +2382,12 @@ Computing Machinery]
\def\@subparfont{\itshape}
\or % sigchi
\setcounter{secnumdepth}{1}
\def\@secfont{\bfseries\sffamily\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\sffamily\section@raggedright}
\def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\sffamily\bfseries\section@raggedright}
\or % sigchi-a
\setcounter{secnumdepth}{0}
\def\@secfont{\bfseries\sffamily\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\sffamily\section@raggedright}
\def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\sffamily\bfseries\section@raggedright}
\fi
\def\@adddotafter#1{#1\@addpunct{.}}
\def\@addspaceafter#1{#1\@addpunct{\enspace}}
@ -2390,15 +2453,33 @@ Computing Machinery]
{.5em}% spacing after head
{\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
\theoremstyle{acmplain}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\theoremstyle{acmdefinition}
\newtheorem{example}[theorem]{Example}
\newtheorem{definition}[theorem]{Definition}
\theoremstyle{acmplain}
\AtEndPreamble{%
\if@ACM@acmthm
\theoremstyle{acmplain}
\@ifundefined{theorem}{%
\newtheorem{theorem}{Theorem}[section]
}{}
\@ifundefined{conjecture}{%
\newtheorem{conjecture}[theorem]{Conjecture}
}{}
\@ifundefined{proposition}{%
\newtheorem{proposition}[theorem]{Proposition}
}{}
\newtheorem{lemma}[theorem]{Lemma}
\@ifundefined{lemma}{}{}
\@ifundefined{corollary}{%
\newtheorem{corollary}[theorem]{Corollary}
}{}
\theoremstyle{acmdefinition}
\@ifundefined{example}{%
\newtheorem{example}[theorem]{Example}
}{}
\@ifundefined{definition}{%
\newtheorem{definition}[theorem]{Definition}
}{}
\fi
\theoremstyle{acmplain}
}
\def\@proofnamefont{\scshape}
\def\@proofindent{\indent}
\ifcase\ACM@format@nr
@ -2433,6 +2514,7 @@ Computing Machinery]
\def\grantsponsor#1#2#3{#2}
\newcommand\grantnum[3][]{#3%
\def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
\AtEndPreamble{%
\if@ACM@screen
\includecomment{screenonly}
\excludecomment{printonly}
@ -2445,7 +2527,7 @@ Computing Machinery]
\excludecomment{acks}
\else
\includecomment{anonsuppress}
\fi
\fi}
\newcommand\showeprint[2][arxiv]{%
\def\@tempa{#1}%
\ifx\@tempa\@empty\def\@tempa{arxiv}\fi