diff --git a/ACM-Reference-Format.bst b/ACM-Reference-Format.bst index 7984639..c47cb4c 100644 --- a/ACM-Reference-Format.bst +++ b/ACM-Reference-Format.bst @@ -3,8 +3,8 @@ %%% @BibTeX-style-file{ %%% author = "Nelson H. F. Beebe, Boris Veytsman and Gerald Murray", %%% version = "2.1", -%%% acmart-version = "1.79", -%%% date = "14 June 2017", +%%% acmart-version = "1.90", +%%% date = "Mar 26 2023", %%% filename = "ACM-Reference-Format.bst", %%% email = "borisv@lk.net, boris@varphi.com", %%% codetable = "ISO/ASCII", @@ -152,7 +152,7 @@ FUNCTION { empty.or.unknown } } FUNCTION { empty.or.zero } -{ +{ %% Examine the top entry and push 1 if it is empty, or is zero duplicate$ empty$ { pop$ #1 } @@ -2005,7 +2005,7 @@ FUNCTION { calc.basic.label } if$ duplicate$ year empty.or.unknown - { "[n.\,d.]" } + { "{[n.\,d.]}" } { year field.or.null purify$ #-1 #4 substring$} if$ * @@ -2053,7 +2053,7 @@ FUNCTION { calc.label } % save the year for sort processing afterwards (adding a, b, c, etc.) % year empty.or.unknown - { "[n.\,d.]" } + { "{[n.\,d.]}" } { year field.or.null purify$ #-1 #4 substring$} if$ 'label.year := diff --git a/acmart.cls b/acmart.cls index f08f90d..66d2f04 100644 --- a/acmart.cls +++ b/acmart.cls @@ -38,7 +38,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesClass{acmart} -[2022/04/09 v1.84 Typesetting articles for the Association for Computing Machinery] +[2023/03/30 v1.90 Typesetting articles for the Association for Computing Machinery] \def\@classname{acmart} \InputIfFileExists{acmart-preload-hook.tex}{% \ClassWarning{\@classname}{% @@ -49,7 +49,7 @@ \RequirePackage{iftex} \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{% manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph, - sigplan, sigchi, sigchi-a}[manuscript]{}{% + sigplan, sigchi, sigchi-a, acmengage, acmcp}[manuscript]{}{% \ClassError{\@classname}{The option format must be manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph, sigplan, sigchi or sigchi-a}} @@ -63,6 +63,8 @@ \@DeclareACMFormat{sigplan} \@DeclareACMFormat{sigchi} \@DeclareACMFormat{sigchi-a} +\@DeclareACMFormat{acmengage} +\@DeclareACMFormat{acmcp} \ExecuteOptionsX{format} \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{% \if@ACM@screen @@ -160,6 +162,7 @@ false}} \ExecuteOptionsX{authordraft=false} \def\ACM@fontsize{} +\DeclareOptionX{8pt}{\edef\ACM@fontsize{\CurrentOption}} \DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}} \DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}} \DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}} @@ -177,6 +180,10 @@ \newif\if@ACM@journal \newif\if@ACM@journal@bibstrip \newif\if@ACM@sigchiamode +\newif\if@ACM@engage +\@ACM@engagefalse +\newif\if@ACM@acmcp +\@ACM@acmcpfalse \ifnum\ACM@format@nr=5\relax % siggraph \ClassWarning{\@classname}{% The format siggraph is now obsolete.\MessageBreak @@ -228,6 +235,13 @@ \or % sigchi-a \@ACM@journalfalse \@ACM@sigchiamodetrue +\or % acmengage + \@ACM@journalfalse + \@ACM@engagetrue +\or % acmcp + \@ACM@journaltrue + \@ACM@acmcptrue + \AtBeginDocument{\@ACM@printacmreffalse}% \fi \if@ACM@journal \@ACM@journal@bibstriptrue @@ -254,6 +268,10 @@ \def\ACM@fontsize{9pt}% \or % sigchi-a \def\ACM@fontsize{10pt}% + \or % acmengage + \def\ACM@fontsize{10pt}% + \or % acmcp + \def\ACM@fontsize{9pt}% \fi \fi \ClassInfo{\@classname}{Using fontsize \ACM@fontsize} @@ -269,6 +287,12 @@ \onehalfspacing \fi \RequirePackage{textcase} +\if@ACM@acmcp +\RequirePackage{framed} +\RequirePackage{zref-savepos, zref-user} +\fi +\newdimen\@ACM@acmcp@delta +\@ACM@acmcp@delta=0pt\relax \if@ACM@natbib \RequirePackage{natbib} \renewcommand{\bibsection}{% @@ -368,6 +392,9 @@ \else \renewcommand\keywordsname{Keywords}% \fi +\if@ACM@engage + \renewcommand\abstractname{Synopsis}% +\fi \ifx\ACM@languages\@empty \else \RequirePackage[\ACM@languages]{babel}% @@ -378,6 +405,9 @@ \renewcommand\keywordsname{Keywords}% \fi \renewcommand\acksname{Acknowledgements}% + \if@ACM@engage + \renewcommand\abstractname{Synopsis}% + \fi }% \addto\captionsfrench{% \if@ACM@journal @@ -592,6 +622,8 @@ \or % sigchi \or % sigchi-a \urlstyle{sf} +\or % acmengage +\or % acmcp \fi \AtEndPreamble{% \if@ACM@urlbreakonhyphens @@ -725,6 +757,20 @@ }% \@mparswitchfalse \reversemarginpar +\or % acmengage + \geometry{twoside=true, head=13pt, + paperwidth=8.5in, paperheight=11in, + includeheadfoot, columnsep=2pc, + top=57pt, bottom=73pt, inner=54pt, outer=54pt, + marginparwidth=2pc,heightrounded + }% +\or % acmcp + \geometry{twoside=true, + includeheadfoot, head=13pt, foot=2pc, + paperwidth=6.75in, paperheight=10in, + top=58pt, bottom=44pt, inner=46pt, outer=46pt, + marginparwidth=2pc,heightrounded + }% \fi \setlength\parindent{10\p@} \setlength\parskip{\z@} @@ -739,6 +785,8 @@ \or % sigplan \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \setlength\normalparindent{\parindent} \def\copyrightpermissionfootnoterule{\kern-3\p@ @@ -779,6 +827,10 @@ \or % sigchi \flushbottom \or % sigchi-a +\or % acmengage + \flushbottom +\or % acmcp + \flushbottom \fi \ifPDFTeX \input{glyphtounicode} @@ -901,6 +953,8 @@ textfont={bf, small}} \captionsetup[table]{labelfont={bf, small}, textfont={bf, small}} + \or % acmengage + \or % acmcp \fi \fi \newfloat{sidebar}{}{sbar} @@ -961,6 +1015,8 @@ \def\labelenumiv{\theenumiv.} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \newdimen\@ACM@labelwidth \AtBeginDocument{% @@ -1013,6 +1069,7 @@ \newif\if@ACM@maketitle@typeset \@ACM@maketitle@typesetfalse \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{% + ACMJCSS,% CIE,% CSUR,% DGOV,% @@ -1023,14 +1080,18 @@ HEALTH,% IMWUT,% JACM,% + JATS,% JDIQ,% JDS,% JEA,% JERIC,% JETC,% JOCCH,% + JRC,% PACMCGIT,% PACMHCI,% + PACMMOD,% + PACMNET,% PACMPL,% POMACS,% TAAS,% @@ -1068,6 +1129,8 @@ TOPC,% TOPS,% TOPLAS,% + TOPML,% + TORS,% TOS,% TOSEM,% TOSN,% @@ -1080,7 +1143,11 @@ FACMP% }{% \ifcase\@journalCode@nr -\relax % CIE +\relax % ACMJCSS + \def\@journalName{ACM Journal on Computing and Sustainable Societies}% + \def\@journalNameShort{ACM J. Comput. Sustain. Soc.}% + \def\@permissionCodeOne{2834-5533}% +\or % CIE \def\@journalName{ACM Computers in Entertainment}% \def\@journalNameShort{ACM Comput. Entertain.}% \def\@permissionCodeOne{1544-3574}% @@ -1108,6 +1175,7 @@ \or % GAMES \def\@journalName{ACM Games: Research and Practice}% \def\@journalNameShort{ACM Games}% + \def\@permissionCodeOne{2832-5516}% \or % HEALTH \def\@journalName{ACM Transactions on Computing for Healthcare}% \def\@journalNameShort{ACM Trans. Comput. Healthcare}% @@ -1123,6 +1191,10 @@ \def\@journalName{Journal of the ACM}% \def\@journalNameShort{J. ACM}% \def\@permissionCodeOne{0004-5411}% +\or % JATS + \def\@journalName{Journal on Autonomous Transportation Systems}% + \def\@journalNameShort{ACM J. Auton. Transport. Syst.}% + \def\@permissionCodeOne{2833-0528}% \or % JDIQ \def\@journalName{ACM Journal of Data and Information Quality}% \def\@journalNameShort{ACM J. Data Inform. Quality}% @@ -1149,6 +1221,10 @@ \def\@journalNameShort{ACM J. Comput. Cult. Herit.}% \def\@permissionCodeOne{1556-4673}% \def\@permissionCodeTwo{1556-4711}% +\or % JRC + \def\@journalName{ACM Journal on Responsible Computing}% + \def\@journalNameShort{ACM J. Responsib. Comput.}% + \def\@permissionCodeOne{2832-0565}% \or % PACMCGIT \def\@journalName{Proceedings of the ACM on Computer Graphics and Interactive Techniques}% \def\@journalNameShort{Proc. ACM Comput. Graph. Interact. Tech.}% @@ -1161,6 +1237,14 @@ \def\@permissionCodeOne{2573-0142}% \@ACM@screentrue \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% +\or % PACMMOD + \def\@journalName{Proceedings of the ACM on Management of Data}% + \def\@journalNameShort{Proc. ACM Manag. Data}% + \def\@permissionCodeOne{2836-6573}% +\or % PACMNET + \def\@journalName{Proceedings of the ACM on Networkng}% + \def\@journalNameShort{Proc. ACM Netw.}% + \def\@permissionCodeOne{2834-5509}% \or % PACMPL \def\@journalName{Proceedings of the ACM on Programming Languages}% \def\@journalNameShort{Proc. ACM Program. Lang.}% @@ -1307,7 +1391,8 @@ \or % TOPC \def\@journalName{ACM Transactions on Parallel Computing}% \def\@journalNameShort{ACM Trans. Parallel Comput.}% - \def\@permissionCodeOne{1539-9087}% + \def\@permissionCodeOne{2329-4949}% + \def\@permissionCodeTwo{2329-4957}% \or % TOPS \def\@journalName{ACM Transactions on Privacy and Security}% \def\@journalNameShort{ACM Trans. Priv. Sec.}% @@ -1316,6 +1401,14 @@ \def\@journalName{ACM Transactions on Programming Languages and Systems}% \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}% \def\@permissionCodeOne{0164-0925}% +\or % TOPML + \def\@journalName{ACM Transactions on Probabilistic Machine Learning}% + \def\@journalNameShort{ACM Trans. Probab. Mach. Learn.}% + \def\@permissionCodeOne{2836-8924}% +\or % TORS + \def\@journalName{ACM Transactions on Recommender Systems}% + \def\@journalNameShort{ACM Trans. Recomm. Syst.}% + \def\@permissionCodeOne{2770-6699}% \or % TOS \def\@journalName{ACM Transactions on Storage}% \def\@journalNameShort{ACM Trans. Storage}% @@ -1550,23 +1643,40 @@ \acmISBN{978-x-xxxx-xxxx-x/YY/MM} \def\acmDOI#1{\def\@acmDOI{#1}} \acmDOI{10.1145/nnnnnnn.nnnnnnn} -\newif\if@ACM@badge -\@ACM@badgefalse \newlength\@ACM@badge@width -\setlength\@ACM@badge@width{5pc} +\setlength\@ACM@badge@width{3pc} \newlength\@ACM@title@width \newlength\@ACM@badge@skip -\setlength\@ACM@badge@skip{1pc} -\newcommand\acmBadgeR[2][]{\@ACM@badgetrue - \def\@acmBadgeR@url{#1}% - \def\@acmBadgeR@image{#2}} -\def\@acmBadgeR@url{} -\def\@acmBadgeR@image{} -\newcommand\acmBadgeL[2][]{\@ACM@badgetrue - \def\@acmBadgeL@url{#1}% - \def\@acmBadgeL@image{#2}} -\def\@acmBadgeL@url{} -\def\@acmBadgeL@image{} +\setlength\@ACM@badge@skip{1pt} +\def\@acmBadgeR{} +\def\@acmBadgeL{} +\newcommand\acmBadgeR[2][]{% + \ifx\@acmBadgeR\@empty + \gdef\@acmBadgeR{% + \smash{% + \raisebox{0.5\height}{% + \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}% + \else + \g@addto@macro{\@acmBadgeR}{% + \hspace{\@ACM@badge@skip}% + \smash{% + \raisebox{0.5\height}{% + \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}% + \fi} +\newcommand\acmBadgeL[2][]{% + \ifx\@acmBadgeL\@empty + \gdef\@acmBadgeL{% + \smash{% + \raisebox{0.5\height}{% + \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}% + \else + \g@addto@macro{\@acmBadgeL}{% + \hspace{\@ACM@badge@skip}% + \smash{% + \raisebox{0.5\height}{% + \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}% + \fi} +\let\acmBadge=\acmBadgeR \def\startPage#1{\def\@startPage{#1}} \startPage{} \def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is @@ -1646,6 +1756,42 @@ \ifx\@received\@empty\else \par\bigskip\noindent\small\normalfont\@received\par \fi} +\define@choicekey+{ACM}{articletype}[\ACM@ArticleType\ACM@ArticleType@nr]{% + Research,Review,Discussion,Invited,Position}[Review]{% + \ifcase\ACM@ArticleType@nr + \relax % Research + \colorlet{@ACM@Article@color}{ACMBlue}% + \or % Review + \colorlet{@ACM@Article@color}{ACMOrange}% + \or % Discussion + \colorlet{@ACM@Article@color}{ACMGreen}% + \or % Invited + \colorlet{@ACM@Article@color}{ACMPurple}% + \or % Position + \colorlet{@ACM@Article@color}{ACMRed}% + \fi +}{% + \ClassError{\@classname}{Article Type must be Research, Review,\MessageBreak + Discussion, Invited, or Position}} +\def\acmArticleType#1{\setkeys{ACM}{articletype=#1}} +\if@ACM@acmcp +\acmArticleType{Research}% +\fi + % \end{macrocode} +\newenvironment{@ACM@color@frame}{% + \def\FrameCommand{\hspace*{-6.5pc}% + \colorbox{@ACM@Article@color!10!white}}% + \MakeFramed {\advance\hsize + -6.5pc\relax\FrameRestore}}{\zsaveposy{@ACM@acmcpframe@y}% + \endMakeFramed} +\def\acmCodeLink#1{% + \ifx\@acmCodeDataLink\@empty + \gdef\@acmCodeDataLink{\url{#1}}% + \else + \g@addto@macro{\@acmCodeDataLink}{\\ \url{#1}}% + \fi} +\def\@acmCodeDataLink{} +\let\acmDataLink\acmCodeLink \RequirePackage{comment} \excludecomment{CCSXML} \let\@concepts\@empty @@ -1691,7 +1837,7 @@ acmcopyright,acmlicensed,rightsretained,% usgov,usgovmixed,cagov,cagovmixed,licensedusgovmixed,% licensedcagov,licensedcagovmixed,othergov,licensedothergov,% - iw3c2w3,iw3c2w3g}{% + iw3c2w3,iw3c2w3g,cc}{% \@printpermissiontrue \@printcopyrighttrue \@acmownedtrue @@ -1738,9 +1884,17 @@ \ifnum\acm@copyrightmode=14\relax % iw3c2w3g \@acmownedfalse \AtBeginDocument{\acmPrice{}}% + \fi + \ifnum\acm@copyrightmode=15\relax % cc + \@acmownedfalse + \AtBeginDocument{\acmPrice{}}% \fi} \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}} \setcopyright{acmcopyright} +\newcommand\setcctype[2][4.0]{% + \def\ACM@cc@version{#1}% + \def\ACM@cc@type{#2}} +\setcctype{by} \def\@copyrightowner{% \ifcase\acm@copyrightmode\relax % none \or % acmcopyright @@ -1777,8 +1931,26 @@ \or % ic2w3wwwgoogle IW3C2 (International World Wide Web Conference Committee), published under Creative Commons CC-BY-NC-ND~4.0 License. + \or % cc + Copyright held by the owner/author(s). \fi} \def\@formatdoi#1{\url{https://doi.org/#1}} +\def\@ACM@copyright@check@cc{% + \if@ACM@nonacm + \ClassInfo{\@classname}{Using CC license with a non-acm + material}% + \else + \if@ACM@engage + \ClassInfo{\@classname}{Using CC license with ACM Enage + material}% + \else + \ClassError{\@classname}{% + Sorry, Creative Commons licenses are\MessageBreak + currently not used with ACM publications\MessageBreak + typeset by the authors}{Please use nonacm + option or ACM Engage class to enable CC licenses}% + \fi + \fi} \def\@copyrightpermission{% \ifcase\acm@copyrightmode\relax % none \or % acmcopyright @@ -1901,6 +2073,24 @@ (CC-BY-NC-ND~4.0) license. Authors reserve their rights to disseminate the work on their personal and corporate Web sites with the appropriate attribution. + \or % CC + \@ACM@copyright@check@cc + \IfEq{\ACM@cc@type}{zero}{% + \def\ACM@CC@Url{https://creativecommons.org/publicdomain/zero/1.0/legalcode}}{% + \edef\ACM@CC@Url{https://creativecommons.org/licenses/\ACM@cc@type/\ACM@cc@version/legalcode}}% + \href{\ACM@CC@Url}{\includegraphics[height=5ex]{doclicense-CC-\ACM@cc@type-88x31}}\\ + \href{\ACM@CC@Url}{% + This work is licensed under a Creative Commons + \IfEq{\ACM@cc@type}{zero}{CC0 1.0 Universal}{% + \IfEq{\ACM@cc@type}{by}{Attribution}{}% + \IfEq{\ACM@cc@type}{by-sa}{Attribution-ShareAlike}{}% + \IfEq{\ACM@cc@type}{by-nd}{Attribution-NoDerivatives}{}% + \IfEq{\ACM@cc@type}{by-nc}{Attribution-NonCommercial}{}% + \IfEq{\ACM@cc@type}{by-nc-sa}{Attribution-NonCommercial-ShareAlike}{}% + \IfEq{\ACM@cc@type}{by-nc-nd}{Attribution-NonCommercial-NoDerivatives}{}% + ~\IfEq{\ACM@cc@version}{4.0}{4.0 International}{3.0 Unported}% + } + License.}% \fi} \def\copyrightyear#1{\def\@copyrightyear{#1}} \copyrightyear{\@acmYear} @@ -1924,6 +2114,10 @@ \let\@beginmaketitlehook\@empty \fi \def\AtBeginMaketitle{\g@addto@macro\@beginmaketitlehook} +\def\@acmengagemetadata{} +\def\setengagemetadata#1#2{% + \g@addto@macro{\@acmengagemetadata}{% + \@setengagemetadata{#1}{#2}}} \newbox\mktitle@bx \def\maketitle{\@beginmaketitlehook \@ACM@maketitle@typesettrue @@ -1954,15 +2148,23 @@ \footnotetextauthorsaddresses{% \def\par{\let\par\@par}\parindent\z@\@setthanks}% \fi - \ifx\@empty\@authorsaddresses\else - \if@ACM@anonymous\else - \if@ACM@journal@bibstrip - \footnotetextauthorsaddresses{% - \def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}% + \if@ACM@acmcp\else + \ifx\@empty\@authorsaddresses\else + \if@ACM@anonymous\else + \if@ACM@journal@bibstrip + \footnotetextauthorsaddresses{% + \def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}% + \fi \fi - \fi + \fi \fi - \if@ACM@nonacm\else\footnotetextcopyrightpermission{% + \if@ACM@nonacm + \ifnum\acm@copyrightmode=15\relax % cc + \footnotetextcopyrightpermission{\@copyrightpermission}% + \fi + \else + \if@ACM@acmcp\else + \footnotetextcopyrightpermission{% \if@ACM@authordraft \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries Unpublished working draft. Not for distribution.}}% @@ -1974,7 +2176,11 @@ \fi \if@ACM@manuscript\else \if@ACM@journal@bibstrip\else % Print the conference information + \if@ACM@engage + {\itshape \@acmBooktitle, \@acmYear.}\par + \else {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par + \fi \fi \fi \if@printcopyright @@ -2012,9 +2218,11 @@ \fi \fi \fi - \fi} + \fi}% + \fi \fi \endgroup + \if@ACM@engage\@typesetengagemetadata\fi \setcounter{footnote}{0}% \@mkabstract \ifx\@translatedabstracts\@empty\else @@ -2025,12 +2233,14 @@ \noindent\@concepts\par}\egroup \fi \fi - \ifx\@keywords\@empty\else\bgroup - {\@specialsection{\keywordsname}% - \noindent\@keywords\par}\egroup - \fi - \ifx\@translatedkeywords\@empty\else - \@translatedkeywords + \if@ACM@acmcp\else + \ifx\@keywords\@empty\else\bgroup + {\@specialsection{\keywordsname}% + \noindent\@keywords\par}\egroup + \fi + \ifx\@translatedkeywords\@empty\else + \@translatedkeywords + \fi \fi \let\metadata@authors=\authors \nxandlist{, }{, }{, }\metadata@authors @@ -2057,7 +2267,42 @@ \@printendtopmatter \@afterindentfalse \@afterheading + \if@ACM@acmcp + \set@ACM@acmcpbox + \AtEndDocument{\end@ACM@color@frame}% + \@ACM@color@frame + \fi } +\newbox\@ACM@acmcpbox +\def\set@ACM@acmcpbox{% + \bgroup + \hsize=5pc + \global\setbox\@ACM@acmcpbox=\vbox{% + \setlength{\parindent}{\z@}% + {\includegraphics[width=\hsize]{acm-jdslogo}\par}% + \scriptsize + \ifnum\getrefnumber{TotPages}>1\else + \zrefused{@ACM@acmcpbox@y}% + \zrefused{@ACM@acmcpframe@y}% + \@tempdima=\dimexpr\zposy{@ACM@acmcpbox@y}sp - + \zposy{@ACM@acmcpframe@y}sp+0.3\FrameSep+ + \@ACM@acmcp@delta\relax + \ifdim\@tempdima>0pt\relax + \vspace*{\@tempdima}% + \protected@write\@auxout{}% + {\string\global\@ACM@acmcp@delta=\the\@tempdima\relax}% + \fi + \fi + \ifx\@acmCodeDataLink\@empty\else\bigskip + Code and data links:\\ \@acmCodeDataLink\par\bigskip + \fi + \ifx\@keywords\@empty\else\bigskip + Keywords: \@keywords\par + \fi + \ifx\@empty\@authorsaddresses\else\bigskip\@setauthorsaddresses\fi + \zsaveposy{@ACM@acmcpbox@y}% + } +\egroup} \def\@specialsection#1{% \let\@vspace\@vspace@orig \let\@vspacer\@vspacer@orig @@ -2080,6 +2325,10 @@ \section*{#1}% \or % sigchi-a \section*{#1}% + \or % acmengage + \section*{#1}% + \or % acmcp + \section*{#1}% \fi \let\@vspace\@vspace@acm \let\@vspacer\@vspacer@acm @@ -2123,18 +2372,10 @@ \twocolumn[\box\mktitle@bx]% \or % sigchi-a \par\box\mktitle@bx\par\bigskip - \if@ACM@badge - \marginpar{\noindent - \ifx\@acmBadgeL@image\@empty\else - \href{\@acmBadgeL@url}{% - \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}% - \hskip\@ACM@badge@skip - \fi - \ifx\@acmBadgeR@image\@empty\else - \href{\@acmBadgeR@url}{% - \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}% - \fi}% - \fi + \or % acmengage + \twocolumn[\box\mktitle@bx]% + \or % acmcp + \box\mktitle@bx\par \fi } \def\@mktitle{% @@ -2157,6 +2398,10 @@ \@mktitle@iii \or % sigchi-a \@mktitle@iv + \or % acmengage + \@mktitle@iii + \or % acmcp + \@mktitle@i \fi } \def\@titlefont{% @@ -2179,6 +2424,10 @@ \Huge\sffamily\bfseries \or % sigchi-a \Huge\bfseries + \or % acmengage + \Huge\sffamily\bfseries + \or % acmcp + \LARGE\sffamily\bfseries \fi} \def\@subtitlefont{\normalsize \ifcase\ACM@format@nr @@ -2200,62 +2449,33 @@ \LARGE\mdseries \or % sigchi-a \mdseries + \or % acmengage + \LARGE\mdseries + \or % acmcp + \mdseries \fi} \def\@mktitle@i{\hsize=\textwidth + \if@ACM@acmcp + \advance\hsize by -6pc% + \fi \@ACM@title@width=\hsize - \ifx\@acmBadgeL@image\@empty\else - \advance\@ACM@title@width by -\@ACM@badge@width - \advance\@ACM@title@width by -\@ACM@badge@skip - \fi - \ifx\@acmBadgeR@image\@empty\else - \advance\@ACM@title@width by -\@ACM@badge@width - \advance\@ACM@title@width by -\@ACM@badge@skip - \fi \setbox\mktitle@bx=\vbox{\noindent\@titlefont - \ifx\@acmBadgeL@image\@empty\else - \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{% - \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}% - \hskip\@ACM@badge@skip - \fi \parbox[t]{\@ACM@title@width}{\raggedright \@titlefont\noindent \@title\@translatedtitle% \ifx\@subtitle\@empty\else \par\noindent{\@subtitlefont\@subtitle\@translatedsubtitle}% \fi}% - \ifx\@acmBadgeR@image\@empty\else - \hskip\@ACM@badge@skip - \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{% - \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}% - \fi \par\bigskip}}% \def\@mktitle@iii{\hsize=\textwidth \setbox\mktitle@bx=\vbox{\@titlefont\centering \@ACM@title@width=\hsize - \if@ACM@badge - \advance\@ACM@title@width by -2\@ACM@badge@width - \advance\@ACM@title@width by -2\@ACM@badge@skip - \parbox[b]{\@ACM@badge@width}{\strut - \ifx\@acmBadgeL@image\@empty\else - \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{% - \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}% - \fi}% - \hskip\@ACM@badge@skip - \fi \parbox[t]{\@ACM@title@width}{\centering\@titlefont \@title\@translatedtitle% \ifx\@subtitle\@empty\else \par\noindent{\@subtitlefont\@subtitle\@translatedsubtitle} \fi }% - \if@ACM@badge - \hskip\@ACM@badge@skip - \parbox[b]{\@ACM@badge@width}{\strut - \ifx\@acmBadgeR@image\@empty\else - \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{% - \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}% - \fi}% - \fi \par\bigskip}}% \def\@mktitle@iv{\hsize=\textwidth \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont @@ -2282,7 +2502,9 @@ \def\city#1{\global\@ACM@citypresenttrue\unskip\ignorespaces} \def\state#1{\unskip\ignorespaces} \newcommand\department[2][0]{\unskip\ignorespaces} - \def\country#1{\global\@ACM@countrypresenttrue + \def\country#1{\StrDel{#1}{ }[\@tempa]% + \ifx\@tempa\@empty\else + \global\@ACM@countrypresenttrue\fi \if@ACM@affiliation@obeypunctuation\else, \fi#1\ignorespaces} \else \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% @@ -2315,6 +2537,10 @@ \@mkauthors@iii \or % sigchi-a \@mkauthors@iv + \or % acmengage + \@mkauthors@iii + \or % acmcp + \@mkauthors@i \fi \endgroup } @@ -2344,6 +2570,12 @@ \or % sigchi-a \def\@authorfont{\bfseries} \def\@affiliationfont{\mdseries} +\or % acmengage + \def\@authorfont{\LARGE} + \def\@affiliationfont{\large} +\or % acmcp + \def\@authorfont{\large\sffamily} + \def\@affiliationfont{\small\normalfont} \fi \def\@typeset@author@line{% \andify\@currentauthors\par\noindent @@ -2404,6 +2636,9 @@ \fi \fi \global\let\and\@typeset@author@line}% + \if@ACM@acmcp + \advance\hsize by -6pc% + \fi \global\setbox\mktitle@bx=\vbox{\noindent\unvbox\mktitle@bx\par\medskip \noindent\addresses\@typeset@author@line \par\medskip}% @@ -2617,6 +2852,9 @@ } \def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses} \def\@setauthorsaddresses{\@authorsaddresses\unskip\@addpunct.} +\def\@typesetengagemetadata{% + \def\@setengagemetadata##1##2{\par\noindent\textbf{##1} ##2\par}% + \@acmengagemetadata} \RequirePackage{fancyhdr} \let\ACM@ps@plain\ps@plain \let\ACM@ps@myheadings\ps@myheadings @@ -2670,6 +2908,10 @@ \ACM@mk@linecount \or % sigchi-a \ACM@mk@linecount + \or % acmengage + \ACM@mk@linecount + \or % acmcp + \relax \fi \begin{picture}(0,0)% \put(20,-22){\usebox{\ACM@linecount@bx}}% @@ -2758,12 +3000,20 @@ \fancyhead[LE]{\ACM@linecountL}% \fancyhead[RO]{\ACM@linecountR}% \else% - \fancyhead[LE]{\ACM@linecountL\@headfootfont\footnotesize - \acmConference@shortname, - \acmConference@date, \acmConference@venue}% - \fancyhead[RO]{\@headfootfont - \acmConference@shortname, - \acmConference@date, \acmConference@venue\ACM@linecountR}% + \if@ACM@engage + \fancyhead[LE]{\ACM@linecountL\@headfootfont\footnotesize + EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi}% + \fancyhead[RO]{\@headfootfont + EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi + \ACM@linecountR}% + \else + \fancyhead[LE]{\ACM@linecountL\@headfootfont\footnotesize + \acmConference@shortname, + \acmConference@date, \acmConference@venue}% + \fancyhead[RO]{\@headfootfont + \acmConference@shortname, + \acmConference@date, \acmConference@venue\ACM@linecountR}% + \fi \fi \fi \else % Proceedings @@ -2774,12 +3024,20 @@ \fancyhead[LE]{\ACM@linecountL}% \fancyhead[RO]{\ACM@linecountR}% \else% - \fancyhead[LE]{\ACM@linecountL\@headfootfont - \acmConference@shortname, - \acmConference@date, \acmConference@venue}% - \fancyhead[RO]{\@headfootfont - \acmConference@shortname, - \acmConference@date, \acmConference@venue\ACM@linecountR}% + \if@ACM@engage + \fancyhead[LE]{\ACM@linecountL\@headfootfont + EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi}% + \fancyhead[RO]{\@headfootfont + EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi + \ACM@linecountR}% + \else + \fancyhead[LE]{\ACM@linecountL\@headfootfont + \acmConference@shortname, + \acmConference@date, \acmConference@venue}% + \fancyhead[RO]{\@headfootfont + \acmConference@shortname, + \acmConference@date, \acmConference@venue\ACM@linecountR}% + \fi \fi \fi \if@ACM@sigchiamode @@ -2788,6 +3046,21 @@ \if@ACM@timestamp \fancyfoot[LO,RE]{\ACM@timestamp} \fi + \if@ACM@acmcp + \renewcommand{\footrulewidth}{0.1\p@}% + \fancyheadoffset[L]{46pt}% + \fancyhead[L]{\makebox[\z@][l]{% + \raisebox{-\dimexpr(0.25\textheight*\ACM@ArticleType@nr)}{% + \rotatebox{90}{\colorbox{@ACM@Article@color}{\color{white}% + \strut\ACM@ArticleType~Article}}}}% + \ACM@linecountL}% + \fancyhead[R]{\makebox[\z@][r]{\box\@ACM@acmcpbox}}% + \fancyfoot[L,C]{}% + \fancyfoot[R]{\footnotesize + \@journalName, Volume~\@acmVolume, Issue~\@acmNumber, + \ifx\@acmArticle\@empty\else Article~\@acmArticle\fi\space + (\@acmPubDate)\ifx\@acmDOI\@empty\else\\\@formatdoi{\@acmDOI}\fi} + \fi }% \pagestyle{standardpagestyle} } @@ -2839,7 +3112,8 @@ \if@ACM@journal@bibstrip \ifcase\ACM@format@nr \relax % manuscript - \fancyhead[L]{\ACM@linecountL}% + \fancyhead[L]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[R]{\@acmBadgeR}% \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}% \if@ACM@nonacm\else% \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}% @@ -2850,9 +3124,10 @@ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[LE]{\ACM@linecountL\@folioblob}% - \fancyhead[LO]{\ACM@linecountL}% - \fancyhead[RO]{\@folioblob}% + \fancyhead[LE]{\ACM@linecountL\@folioblob\@acmBadgeL}% + \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[RO]{\@acmBadgeR\@folioblob}% + \fancyhead[RE]{\@acmBadgeR}% \fancyheadoffset[RO,LE]{0.6\@folio@wd}% \or % acmlarge \if@ACM@nonacm\else% @@ -2860,9 +3135,10 @@ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[RO]{\@folioblob}% - \fancyhead[LE]{\ACM@linecountL\@folioblob}% - \fancyhead[LO]{\ACM@linecountL}% + \fancyhead[RO]{\@acmBadgeR\@folioblob}% + \fancyhead[RE]{\@acmBadgeR}% + \fancyhead[LE]{\ACM@linecountL\@folioblob\@acmBadgeL}% + \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}% \fancyheadoffset[RO,LE]{1.4\@folio@wd}% \or % acmtog \if@ACM@nonacm\else% @@ -2870,16 +3146,16 @@ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[L]{\ACM@linecountL}% - \fancyhead[R]{\ACM@linecountR}% + \fancyhead[L]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[R]{\@acmBadgeR\ACM@linecountR}% \else % Conference proceedings - \fancyhead[L]{\ACM@linecountL}% - \fancyhead[R]{\ACM@linecountR}% + \fancyhead[L]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[R]{\@acmBadgeR\ACM@linecountR}% \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% \fi \else - \fancyhead[L]{\ACM@linecountL}% - \fancyhead[R]{\ACM@linecountR}% + \fancyhead[L]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[R]{\@acmBadgeR\ACM@linecountR}% \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% \fi \if@ACM@timestamp @@ -2892,6 +3168,21 @@ \fancyfoot[LO,RE]{\ACM@timestamp} \fi \fi + \if@ACM@acmcp + \renewcommand{\footrulewidth}{0.1\p@}% + \fancyheadoffset[L]{46pt}% + \fancyhead[L]{\makebox[\z@][l]{% + \raisebox{-\dimexpr(0.25\textheight*\ACM@ArticleType@nr)}{% + \rotatebox{90}{\colorbox{@ACM@Article@color}{\color{white}% + \strut\ACM@ArticleType~Article}}}}% + \ACM@linecountL\@acmBadgeL}% + \fancyhead[R]{\@acmBadgeR\makebox[\z@][r]{\box\@ACM@acmcpbox}}% + \fancyfoot[L,C]{}% + \fancyfoot[R]{\footnotesize + \@journalName, Volume~\@acmVolume, Issue~\@acmNumber, + \ifx\@acmArticle\@empty\else Article~\@acmArticle\fi\space + (\@acmPubDate)\ifx\@acmDOI\@empty\else\\\@formatdoi{\@acmDOI}\fi} + \fi }} \def\ACM@NRadjust#1{% \begingroup @@ -2986,9 +3277,16 @@ \setcounter{secnumdepth}{0} \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} \def\@subsecfont{\sffamily\bfseries\section@raggedright} +\or % acmengage + \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase} + \def\@subsecfont{\bfseries\Large\section@raggedright} +\or %acmcp \fi \def\@adddotafter#1{#1\@addpunct{.}} \def\@addspaceafter#1{#1\@addpunct{\enspace}} +\if@ACM@acmcp + \setcounter{secnumdepth}{-1}% +\fi \providecommand*\@dotsep{4.5} \def\@acmplainbodyfont{\itshape} \def\@acmplainindent{\parindent} @@ -3008,6 +3306,8 @@ \def\@acmplainnotefont{\normalfont} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \newtheoremstyle{acmplain}% {.5\baselineskip\@plus.2\baselineskip @@ -3038,6 +3338,8 @@ \def\@acmdefinitionnotefont{\normalfont} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \newtheoremstyle{acmdefinition}% {.5\baselineskip\@plus.2\baselineskip @@ -3093,6 +3395,8 @@ \def\@proofindent{\noindent} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \renewenvironment{proof}[1][\proofname]{\par \pushQED{\qed}% @@ -3121,6 +3425,9 @@ \or % sigchi \RequirePackage{pbalance}% \or % sigchi-a + \or % acmengage + \RequirePackage{pbalance}% + \or % acmcp \fi \fi \if@ACM@balance @@ -3143,6 +3450,10 @@ \RequirePackage{balance}% \or % sigchi-a \global\@ACM@balancefalse + \or % acmengage + \RequirePackage{balance}% + \or % acmcp + \global\@ACM@balancefalse \fi \fi }