From ad6deb73668c3dc4cd82aa73f121f17ac55a248e Mon Sep 17 00:00:00 2001 From: Matthew Flatt <mflatt@racket-lang.org> Date: Tue, 26 Sep 2017 07:45:10 -0600 Subject: [PATCH] upgrade acmart.cls --- scribble-lib/scribble/acmart/acmart.cls | 350 +++++++++++++++--------- 1 file changed, 216 insertions(+), 134 deletions(-) diff --git a/scribble-lib/scribble/acmart/acmart.cls b/scribble-lib/scribble/acmart/acmart.cls index 6cb51f04..987e3c41 100644 --- a/scribble-lib/scribble/acmart/acmart.cls +++ b/scribble-lib/scribble/acmart/acmart.cls @@ -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