From ed7635bccce368251359055e284f3e5330157ead Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:26:36 +0200 Subject: [PATCH 1/9] download latest acm 2.12 --- _extensions/quarto-journals/acm/acmart.cls | 986 ++++++--- _extensions/quarto-journals/acm/acmart.dtx | 1819 ++++++++++++----- .../quarto-journals/acm/acmauthoryear.bbx | 8 + .../quarto-journals/acm/acmnumeric.bbx | 10 +- 4 files changed, 2026 insertions(+), 797 deletions(-) diff --git a/_extensions/quarto-journals/acm/acmart.cls b/_extensions/quarto-journals/acm/acmart.cls index f08f90d..5694f30 100644 --- a/_extensions/quarto-journals/acm/acmart.cls +++ b/_extensions/quarto-journals/acm/acmart.cls @@ -38,7 +38,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesClass{acmart} -[2022/04/09 v1.84 Typesetting articles for the Association for Computing Machinery] +[2024/12/28 v2.12 Typesetting articles for the Association for Computing Machinery] \def\@classname{acmart} \InputIfFileExists{acmart-preload-hook.tex}{% \ClassWarning{\@classname}{% @@ -47,13 +47,13 @@ \RequirePackage{xkeyval} \RequirePackage{xstring} \RequirePackage{iftex} -\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{% +\define@choicekey*+{\@classname.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}} -\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}} +\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{\@classname.cls}{format=#1}}} \@DeclareACMFormat{manuscript} \@DeclareACMFormat{acmsmall} \@DeclareACMFormat{acmlarge} @@ -63,8 +63,10 @@ \@DeclareACMFormat{sigplan} \@DeclareACMFormat{sigchi} \@DeclareACMFormat{sigchi-a} +\@DeclareACMFormat{acmengage} +\@DeclareACMFormat{acmcp} \ExecuteOptionsX{format} -\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{screen}[true]{% \if@ACM@screen \PackageInfo{\@classname}{Using screen mode}% \else @@ -72,7 +74,7 @@ \fi}{\PackageError{\@classname}{The option screen can be either true or false}} \ExecuteOptionsX{screen=false} -\define@boolkey+{acmart.cls}[@ACM@]{urlbreakonhyphens}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{urlbreakonhyphens}[true]{% \if@ACM@urlbreakonhyphens \PackageInfo{\@classname}{Using breaking urls on hyphens}% \else @@ -80,7 +82,7 @@ \fi}{\PackageError{\@classname}{The option urlbreakonhyphens can be either true or false}} \ExecuteOptionsX{urlbreakonhyphens=true} -\define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{acmthm}[true]{% \if@ACM@acmthm \PackageInfo{\@classname}{Requiring acmthm}% \else @@ -88,7 +90,7 @@ \fi}{\PackageError{\@classname}{The option acmthm can be either true or false}} \ExecuteOptionsX{acmthm=true} -\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{review}[true]{% \if@ACM@review \PackageInfo{\@classname}{Using review mode}% \AtBeginDocument{\@ACM@printfoliostrue}% @@ -97,7 +99,7 @@ \fi}{\PackageError{\@classname}{The option review can be either true or false}} \ExecuteOptionsX{review=false} -\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{authorversion}[true]{% \if@ACM@authorversion \PackageInfo{\@classname}{Using authorversion mode}% \else @@ -105,7 +107,7 @@ \fi}{\PackageError{\@classname}{The option authorversion can be either true or false}} \ExecuteOptionsX{authorversion=false} -\define@boolkey+{acmart.cls}[@ACM@]{nonacm}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{nonacm}[true]{% \if@ACM@nonacm \PackageInfo{\@classname}{Using nonacm mode}% \AtBeginDocument{\@ACM@printacmreffalse}% @@ -117,15 +119,15 @@ \fi}{\PackageError{\@classname}{The option nonacm can be either true or false}} \ExecuteOptionsX{nonacm=false} -\define@boolkey+{acmart.cls}[@ACM@]{balance}[true]{}{% +\define@boolkey+{\@classname.cls}[@ACM@]{balance}[true]{}{% \PackageError{\@classname}{The option balance can be either true or false}} \ExecuteOptionsX{balance} -\define@boolkey+{acmart.cls}[@ACM@]{pbalance}[true]{}{% +\define@boolkey+{\@classname.cls}[@ACM@]{pbalance}[true]{}{% \PackageError{\@classname}{The option pbalance can be either true or false}} \ExecuteOptionsX{pbalance=false} -\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{natbib}[true]{% \if@ACM@natbib \PackageInfo{\@classname}{Explicitly selecting natbib mode}% \else @@ -133,7 +135,7 @@ \fi}{\PackageError{\@classname}{The option natbib can be either true or false}} \ExecuteOptionsX{natbib=true} -\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{anonymous}[true]{% \if@ACM@anonymous \PackageInfo{\@classname}{Using anonymous mode}% \else @@ -141,7 +143,7 @@ \fi}{\PackageError{\@classname}{The option anonymous can be either true or false}} \ExecuteOptionsX{anonymous=false} -\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{timestamp}[true]{% \if@ACM@timestamp \PackageInfo{\@classname}{Using timestamp mode}% \else @@ -149,7 +151,7 @@ \fi}{\PackageError{\@classname}{The option timestamp can be either true or false}} \ExecuteOptionsX{timestamp=false} -\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{authordraft}[true]{% \if@ACM@authordraft \PackageInfo{\@classname}{Using authordraft mode}% \@ACM@timestamptrue @@ -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}} @@ -176,18 +179,23 @@ \newif\if@ACM@manuscript \newif\if@ACM@journal \newif\if@ACM@journal@bibstrip +\newif\if@ACM@journal@bibstrip@or@tog \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 I am switching to sigconf.} - \setkeys{acmart.cls}{format=sigconf} + \setkeys{\@classname.cls}{format=sigconf} \fi \ifnum\ACM@format@nr=7\relax % sigchi \ClassWarning{\@classname}{% The format sigchi is now obsolete.\MessageBreak I am switching to sigconf.} - \setkeys{acmart.cls}{format=sigconf} + \setkeys{\@classname.cls}{format=sigconf} \fi \ifnum\ACM@format@nr=8\relax % sigchi \ClassWarning{\@classname}{% @@ -217,6 +225,7 @@ \@ACM@journaltrue \or % acmtog \@ACM@journaltrue + \@ACM@journal@bibstrip@or@togtrue \or % sigconf \@ACM@journalfalse \or % siggraph @@ -228,9 +237,17 @@ \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 + \@ACM@journal@bibstriptrue + \@ACM@journal@bibstrip@or@togtrue \else \@ACM@journal@bibstripfalse \fi @@ -254,6 +271,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} @@ -268,7 +289,12 @@ \RequirePackage{setspace} \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 +394,9 @@ \else \renewcommand\keywordsname{Keywords}% \fi +\if@ACM@engage + \renewcommand\abstractname{Synopsis}% +\fi \ifx\ACM@languages\@empty \else \RequirePackage[\ACM@languages]{babel}% @@ -378,6 +407,9 @@ \renewcommand\keywordsname{Keywords}% \fi \renewcommand\acksname{Acknowledgements}% + \if@ACM@engage + \renewcommand\abstractname{Synopsis}% + \fi }% \addto\captionsfrench{% \if@ACM@journal @@ -513,7 +545,6 @@ \fi}% \fi \ignorespaces} -\def\@seccntformat#1{\csname the#1\endcsname\quad} \def\@ssect#1#2#3#4#5{% \@tempskipa #3\relax \ifdim \@tempskipa>\z@ @@ -526,6 +557,7 @@ \def\@svsechd{#4{\hskip #1\relax #5}}% \fi \@xsect{#3}} +\def\@seccntformat#1{\csname the#1\endcsname\quad} \def\@starttoc#1#2{\begingroup\makeatletter \setTrue{#1}% \par\removelastskip\vskip\z@skip @@ -568,10 +600,10 @@ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% \color@endgroup}} \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}} -\RequirePackage{hyperxmp} \let\@footnotemark@nolink\@footnotemark \let\@footnotetext@nolink\@footnotetext \RequirePackage[bookmarksnumbered,unicode]{hyperref} +\RequirePackage{hyperxmp} \pdfstringdefDisableCommands{% \def\addtocounter#1#2{}% \def\unskip{}% @@ -592,6 +624,8 @@ \or % sigchi \or % sigchi-a \urlstyle{sf} +\or % acmengage +\or % acmcp \fi \AtEndPreamble{% \if@ACM@urlbreakonhyphens @@ -725,6 +759,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 +787,8 @@ \or % sigplan \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \setlength\normalparindent{\parindent} \def\copyrightpermissionfootnoterule{\kern-3\p@ @@ -779,6 +829,10 @@ \or % sigchi \flushbottom \or % sigchi-a +\or % acmengage + \flushbottom +\or % acmcp + \flushbottom \fi \ifPDFTeX \input{glyphtounicode} @@ -804,21 +858,23 @@ have the newtxmath package installed. Please upgrade your TeX}\@ACM@newfontsfalse} \if@ACM@newfonts - \RequirePackage[T1]{fontenc} % Note that the order in which packages are loaded matters, % and the correct order depends on the LaTeX engine used. % See https://github.com/borisveytsman/acmart/issues/402 % and https://github.com/borisveytsman/acmart/issues/410 \ifxetex - \RequirePackage[libertine]{newtxmath} + \RequirePackage{unicode-math} + \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf} \RequirePackage[tt=false]{libertine} \setmonofont[StylisticSet=3]{inconsolata} \else \ifluatex - \RequirePackage[libertine]{newtxmath} + \RequirePackage{unicode-math} + \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf} \RequirePackage[tt=false]{libertine} \setmonofont[StylisticSet=3]{inconsolata} \else + \RequirePackage[T1]{fontenc} \RequirePackage[tt=false, type1=true]{libertine} \RequirePackage[varqu]{zi4} \RequirePackage[libertine]{newtxmath} @@ -870,6 +926,10 @@ \let\@vspacer\@vspacer@orig} \AtBeginEnvironment{listing*}{\let\@vspace\@vspace@orig \let\@vspacer\@vspacer@orig} +\AtBeginEnvironment{lstinputlisting}{\let\@vspace\@vspace@orig + \let\@vspacer\@vspacer@orig} +\AtBeginEnvironment{lstinputlisting*}{\let\@vspace\@vspace@orig + \let\@vspacer\@vspacer@orig} \RequirePackage{caption, float} \captionsetup[table]{position=top} @@ -901,6 +961,8 @@ textfont={bf, small}} \captionsetup[table]{labelfont={bf, small}, textfont={bf, small}} + \or % acmengage + \or % acmcp \fi \fi \newfloat{sidebar}{}{sbar} @@ -961,6 +1023,8 @@ \def\labelenumiv{\theenumiv.} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \newdimen\@ACM@labelwidth \AtBeginDocument{% @@ -1013,6 +1077,7 @@ \newif\if@ACM@maketitle@typeset \@ACM@maketitle@typesetfalse \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{% + ACMJCSS,% CIE,% CSUR,% DGOV,% @@ -1023,15 +1088,20 @@ HEALTH,% IMWUT,% JACM,% + JATS,% JDIQ,% JDS,% JEA,% JERIC,% JETC,% JOCCH,% + JRC,% PACMCGIT,% PACMHCI,% + PACMMOD,% + PACMNET,% PACMPL,% + PACMSE,% POMACS,% TAAS,% TACCESS,% @@ -1066,8 +1136,10 @@ TOMPECS,% TOMS,% TOPC,% - TOPS,% TOPLAS,% + TOPML,% + TOPS,% + TORS,% TOS,% TOSEM,% TOSN,% @@ -1080,7 +1152,12 @@ 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}% + \def\@permissionCodeTwo{2834-5533}% +\or % CIE \def\@journalName{ACM Computers in Entertainment}% \def\@journalNameShort{ACM Comput. Entertain.}% \def\@permissionCodeOne{1544-3574}% @@ -1088,18 +1165,22 @@ \def\@journalName{ACM Computing Surveys}% \def\@journalNameShort{ACM Comput. Surv.}% \def\@permissionCodeOne{0360-0300}% + \def\@permissionCodeTwo{1557-7341}% \or % DGOV \def\@journalName{Digital Government: Research and Practice}% \def\@journalNameShort{Digit. Gov. Res. Pract.}% \def\@permissionCodeOne{2639-0175}% + \def\@permissionCodeTwo{2639-0175}% \or % DLT \def\@journalName{Distributed Ledger Technologies: Research and Practice}% \def\@journalNameShort{Distrib. Ledger Technol.}% \def\@permissionCodeOne{2769-6472}% + \def\@permissionCodeTwo{2769-6480}% \or % DTRAP \def\@journalName{Digital Threats: Research and Practice}% \def\@journalNameShort{Digit. Threat. Res. Pract.}% \def\@permissionCodeOne{2576-5337}% + \def\@permissionCodeTwo{2576-5337}% \or % FAC \def\@journalName{Formal Aspects of Computing}% \def\@journalNameShort{Form. Asp. Comput.}% @@ -1108,27 +1189,38 @@ \or % GAMES \def\@journalName{ACM Games: Research and Practice}% \def\@journalNameShort{ACM Games}% + \def\@permissionCodeOne{2832-5516}% + \def\@permissionCodeTwo{2832-5516}% \or % HEALTH \def\@journalName{ACM Transactions on Computing for Healthcare}% \def\@journalNameShort{ACM Trans. Comput. Healthcare}% \def\@permissionCodeOne{2637-8051}% + \def\@permissionCodeTwo{2637-8051}% \or % IMWUT \def\@journalName{Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies}% \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}% \def\@permissionCodeOne{2474-9567}% + \def\@permissionCodeTwo{2474-9567}% \@ACM@screentrue \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% \or % JACM \def\@journalName{Journal of the ACM}% \def\@journalNameShort{J. ACM}% \def\@permissionCodeOne{0004-5411}% + \def\@permissionCodeTwo{1557-735X}% +\or % JATS + \def\@journalName{Journal on Autonomous Transportation Systems}% + \def\@journalNameShort{ACM J. Auton. Transport. Syst.}% + \def\@permissionCodeOne{2833-0528}% + \def\@permissionCodeTwo{2833-0528}% \or % JDIQ \def\@journalName{ACM Journal of Data and Information Quality}% \def\@journalNameShort{ACM J. Data Inform. Quality}% \def\@permissionCodeOne{1936-1955}% + \def\@permissionCodeTwo{1936-1963}% \or % JDS - \def\@journalName{ACM/JMS Journal of Data Science}% + \def\@journalName{ACM/IMS Journal of Data Science}% \def\@journalNameShort{ACM/IMS J. Data Sci.}% \def\@permissionCodeOne{2831-3194}% \def\@permissionCodeTwo{2831-3194}% @@ -1136,6 +1228,7 @@ \def\@journalName{ACM Journal of Experimental Algorithmics}% \def\@journalNameShort{ACM J. Exp. Algor.}% \def\@permissionCodeOne{1084-6654}% + \def\@permissionCodeTwo{1084-6654}% \or % JERIC \def\@journalName{ACM Journal of Educational Resources in Computing}% \def\@journalNameShort{ACM J. Edu. Resources in Comput.}% @@ -1144,43 +1237,72 @@ \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}% \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}% \def\@permissionCodeOne{1550-4832}% + \def\@permissionCodeTwo{1550-4840}% \or % JOCCH \def\@journalName{ACM Journal on Computing and Cultural Heritage}% \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}% + \def\@permissionCodeTwo{2832-0565}% \or % PACMCGIT \def\@journalName{Proceedings of the ACM on Computer Graphics and Interactive Techniques}% \def\@journalNameShort{Proc. ACM Comput. Graph. Interact. Tech.}% \def\@permissionCodeOne{2577-6193}% + \def\@permissionCodeTwo{2577-6193}% \@ACM@screentrue \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% \or % PACMHCI \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}% \def\@journalNameShort{Proc. ACM Hum.-Comput. Interact.}% \def\@permissionCodeOne{2573-0142}% + \def\@permissionCodeTwo{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}% + \def\@permissionCodeTwo{2836-6573}% +\or % PACMNET + \def\@journalName{Proceedings of the ACM on Networkng}% + \def\@journalNameShort{Proc. ACM Netw.}% + \def\@permissionCodeOne{2834-5509}% + \def\@permissionCodeTwo{2834-5509}% \or % PACMPL \def\@journalName{Proceedings of the ACM on Programming Languages}% \def\@journalNameShort{Proc. ACM Program. Lang.}% \def\@permissionCodeOne{2475-1421}% + \def\@permissionCodeTwo{2475-1421}% + \@ACM@screentrue + \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% +\or % PACMSE + \def\@journalName{Proceedings of the ACM on Software Engineering}% + \def\@journalNameShort{Proc. ACM Softw. Eng.}% + \def\@permissionCodeOne{2994-970X}% + \def\@permissionCodeTwo{2994-970X}% \@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\@journalNameShort{Proc. ACM Meas. Anal. Comput. Syst.}% \def\@permissionCodeOne{2476-1249}% + \def\@permissionCodeTwo{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.}% \def\@permissionCodeOne{1556-4665}% + \def\@permissionCodeTwo{1556-4703}% \or % TACCESS \def\@journalName{ACM Transactions on Accessible Computing}% \def\@journalNameShort{ACM Trans. Access. Comput.}% \def\@permissionCodeOne{1936-7228}% + \def\@permissionCodeTwo{1936-7236}% \or % TACO \def\@journalName{ACM Transactions on Architecture and Code Optimization}% \def\@journalNameShort{ACM Trans. Arch. Code Optim.}% @@ -1190,18 +1312,22 @@ \def\@journalName{ACM Transactions on Algorithms}% \def\@journalNameShort{ACM Trans. Algor.}% \def\@permissionCodeOne{1549-6325}% + \def\@permissionCodeTwo{1549-6333}% \or % TALLIP \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}% \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}% \def\@permissionCodeOne{2375-4699}% + \def\@permissionCodeTwo{2375-4702}% \or % TAP \def\@journalName{ACM Transactions on Applied Perception}% \def\@journalNameShort{ACM Trans. Appl. Percept.}% \def\@permissionCodeOne{1544-3558}% + \def\@permissionCodeTwo{1544-3965}% \or % TCPS \def\@journalName{ACM Transactions on Cyber-Physical Systems}% \def\@journalNameShort{ACM Trans. Cyber-Phys. Syst.}% \def\@permissionCodeOne{2378-962X}% + \def\@permissionCodeTwo{2378-9638}% \or % TDS \def\@journalName{ACM/IMS Transactions on Data Science}% \def\@journalNameShort{ACM/IMS Trans. Data Sci.}% @@ -1210,26 +1336,32 @@ \def\@journalName{ACM Transactions on Economics and Computation}% \def\@journalNameShort{ACM Trans. Econ. Comput.}% \def\@permissionCodeOne{2167-8375}% + \def\@permissionCodeTwo{2167-8383}% \or % TECS \def\@journalName{ACM Transactions on Embedded Computing Systems}% \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}% \def\@permissionCodeOne{1539-9087}% + \def\@permissionCodeTwo{1558-3465}% \or % TELO - \def\@journalName{ACM Transactions on Evolutionary Learning}% - \def\@journalNameShort{ACM Trans. Evol. Learn.}% - \def\@permissionCodeOne{2688-3007}% + \def\@journalName{ACM Transactions on Evolutionary Learning and Optimization}% + \def\@journalNameShort{ACM Trans. Evol. Learn. Optim.}% + \def\@permissionCodeOne{2688-299X}% + \def\@permissionCodeTwo{2688-3007}% \or % THRI \def\@journalName{ACM Transactions on Human-Robot Interaction}% \def\@journalNameShort{ACM Trans. Hum.-Robot Interact.}% \def\@permissionCodeOne{2573-9522}% + \def\@permissionCodeTwo{2573-9522}% \or % TIIS \def\@journalName{ACM Transactions on Interactive Intelligent Systems}% \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}% \def\@permissionCodeOne{2160-6455}% + \def\@permissionCodeTwo{2160-6463}% \or % TIOT \def\@journalName{ACM Transactions on Internet of Things}% \def\@journalNameShort{ACM Trans. Internet Things}% \def\@permissionCodeOne{2577-6207}% + \def\@permissionCodeTwo{2577-6207}% \or % TISSEC \def\@journalName{ACM Transactions on Information and System Security}% \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}% @@ -1238,54 +1370,67 @@ \def\@journalName{ACM Transactions on Intelligent Systems and Technology}% \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}% \def\@permissionCodeOne{2157-6904}% + \def\@permissionCodeTwo{2157-6912}% \or % TKDD \def\@journalName{ACM Transactions on Knowledge Discovery from Data}% \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}% \def\@permissionCodeOne{1556-4681}% + \def\@permissionCodeTwo{1556-472X}% \or % TMIS \def\@journalName{ACM Transactions on Management Information Systems}% \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}% \def\@permissionCodeOne{2158-656X}% + \def\@permissionCodeTwo{2158-6578}% \or % TOCE \def\@journalName{ACM Transactions on Computing Education}% \def\@journalNameShort{ACM Trans. Comput. Educ.}% \def\@permissionCodeOne{1946-6226}% + \def\@permissionCodeTwo{1946-6226}% \or % TOCHI \def\@journalName{ACM Transactions on Computer-Human Interaction}% \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}% \def\@permissionCodeOne{1073-0516}% + \def\@permissionCodeTwo{1557-7325}% \or % TOCL \def\@journalName{ACM Transactions on Computational Logic}% \def\@journalNameShort{ACM Trans. Comput. Logic}% \def\@permissionCodeOne{1529-3785}% + \def\@permissionCodeTwo{1557-945X}% \or % TOCS \def\@journalName{ACM Transactions on Computer Systems}% \def\@journalNameShort{ACM Trans. Comput. Syst.}% \def\@permissionCodeOne{0734-2071}% + \def\@permissionCodeTwo{1557-7333}% \or % TOCT \def\@journalName{ACM Transactions on Computation Theory}% \def\@journalNameShort{ACM Trans. Comput. Theory}% \def\@permissionCodeOne{1942-3454}% + \def\@permissionCodeTwo{1942-3462}% \or % TODAES \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}% \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}% \def\@permissionCodeOne{1084-4309}% + \def\@permissionCodeTwo{1557-7309}% \or % TODS \def\@journalName{ACM Transactions on Database Systems}% \def\@journalNameShort{ACM Trans. Datab. Syst.}% \def\@permissionCodeOne{0362-5915}% + \def\@permissionCodeTwo{1557-4644}% \or % TOG \def\@journalName{ACM Transactions on Graphics}% \def\@journalNameShort{ACM Trans. Graph.}% - \def\@permissionCodeOne{0730-0301} + \def\@permissionCodeOne{0730-0301}% + \def\@permissionCodeTwo{1557-7368}% \or % TOIS \def\@journalName{ACM Transactions on Information Systems}% \def\@journalNameShort{ACM Trans. Inf. Syst.}% \def\@permissionCodeOne{1046-8188}% + \def\@permissionCodeTwo{1558-2868}% \or % TOIT \def\@journalName{ACM Transactions on Internet Technology}% \def\@journalNameShort{ACM Trans. Internet Technol.}% \def\@permissionCodeOne{1533-5399}% + \def\@permissionCodeTwo{1557-6051}% \or % TOMACS \def\@journalName{ACM Transactions on Modeling and Computer Simulation}% \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}% @@ -1300,58 +1445,82 @@ \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}% \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}% \def\@permissionCodeOne{2376-3639}% + \def\@permissionCodeTwo{2376-3647}% \or % TOMS \def\@journalName{ACM Transactions on Mathematical Software}% \def\@journalNameShort{ACM Trans. Math. Softw.}% \def\@permissionCodeOne{0098-3500}% + \def\@permissionCodeTwo{1557-7295}% \or % TOPC \def\@journalName{ACM Transactions on Parallel Computing}% \def\@journalNameShort{ACM Trans. Parallel Comput.}% - \def\@permissionCodeOne{1539-9087}% -\or % TOPS - \def\@journalName{ACM Transactions on Privacy and Security}% - \def\@journalNameShort{ACM Trans. Priv. Sec.}% - \def\@permissionCodeOne{2471-2566}% + \def\@permissionCodeOne{2329-4949}% + \def\@permissionCodeTwo{2329-4957}% \or % TOPLAS \def\@journalName{ACM Transactions on Programming Languages and Systems}% \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}% \def\@permissionCodeOne{0164-0925}% + \def\@permissionCodeTwo{1558-4593}% +\or % TOPML + \def\@journalName{ACM Transactions on Probabilistic Machine Learning}% + \def\@journalNameShort{ACM Trans. Probab. Mach. Learn.}% + \def\@permissionCodeOne{2836-8924}% + \def\@permissionCodeTwo{2836-8924}% +\or % TOPS + \def\@journalName{ACM Transactions on Privacy and Security}% + \def\@journalNameShort{ACM Trans. Priv. Sec.}% + \def\@permissionCodeOne{2471-2566}% + \def\@permissionCodeTwo{2471-2574}% +\or % TORS + \def\@journalName{ACM Transactions on Recommender Systems}% + \def\@journalNameShort{ACM Trans. Recomm. Syst.}% + \def\@permissionCodeOne{2770-6699}% + \def\@permissionCodeTwo{2770-6699}% \or % TOS \def\@journalName{ACM Transactions on Storage}% \def\@journalNameShort{ACM Trans. Storage}% \def\@permissionCodeOne{1553-3077}% + \def\@permissionCodeTwo{1553-3093}% \or % TOSEM \def\@journalName{ACM Transactions on Software Engineering and Methodology}% \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}% \def\@permissionCodeOne{1049-331X}% + \def\@permissionCodeTwo{1557-7392}% \or % TOSN \def\@journalName{ACM Transactions on Sensor Networks}% \def\@journalNameShort{ACM Trans. Sensor Netw.}% \def\@permissionCodeOne{1550-4859}% + \def\@permissionCodeTwo{1550-4867}% \or % TQC \def\@journalName{ACM Transactions on Quantum Computing}% \def\@journalNameShort{ACM Trans. Quantum Comput.}% \def\@permissionCodeOne{2643-6817}% + \def\@permissionCodeTwo{2643-6817}% \or % TRETS \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}% \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}% \def\@permissionCodeOne{1936-7406}% + \def\@permissionCodeTwo{1936-7414}% \or % TSAS \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}% \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}% \def\@permissionCodeOne{2374-0353}% + \def\@permissionCodeTwo{2374-0361}% \or % TSC \def\@journalName{ACM Transactions on Social Computing}% \def\@journalNameShort{ACM Trans. Soc. Comput.}% \def\@permissionCodeOne{2469-7818}% + \def\@permissionCodeTwo{2469-7826}% \or % TSLP \def\@journalName{ACM Transactions on Speech and Language Processing}% \def\@journalNameShort{ACM Trans. Speech Lang. Process.}% \def\@permissionCodeOne{1550-4875}% + \def\@permissionCodeTwo{2329-9304}% \or % TWEB \def\@journalName{ACM Transactions on the Web}% \def\@journalNameShort{ACM Trans. Web}% \def\@permissionCodeOne{1559-1131}% + \def\@permissionCodeTwo{1559-114X}% \else % FACMP, a dummy journal \def\@journalName{ACM Just Accepted}% \def\@journalNameShort{ACM Accepted}% @@ -1362,12 +1531,13 @@ \ClassError{\@classname}{Incorrect journal #1}% }% \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}% - \global\@ACM@journal@bibstriptrue} + \global\@ACM@journal@bibstriptrue + \global\@ACM@journal@bibstrip@or@togtrue} \def\@journalCode@nr{0} \def\@journalName{}% \def\@journalNameShort{\@journalName}% \def\@permissionCodeOne{XXXX-XXXX}% -\def\@permissionCodeTwo{}% +\def\@permissionCodeTwo{\@permissionCodeOne}% \newcommand\acmConference[4][]{% \gdef\acmConference@shortname{#1}% \gdef\acmConference@name{#2}% @@ -1377,6 +1547,11 @@ \gdef\acmConference@shortname{#2}% \fi \global\@ACM@journal@bibstripfalse + \ifx\@acmBooktitle\@empty\relax + \acmBooktitle{Proceedings of \acmConference@name + \ifx\acmConference@name\acmConference@shortname\else + \ (\acmConference@shortname)\fi}% + \fi } \if@ACM@journal\else \acmConference[Conference'17]{ACM Conference}{July 2017}{Washington, @@ -1384,11 +1559,6 @@ \fi \def\acmBooktitle#1{\gdef\@acmBooktitle{#1}} \acmBooktitle{} -\ifx\acmConference@name\@undefined\else -\acmBooktitle{Proceedings of \acmConference@name - \ifx\acmConference@name\acmConference@shortname\else - \ (\acmConference@shortname)\fi} -\fi \def\@editorsAbbrev{(Ed.)} \def\@acmEditors{} \def\editor#1{\ifx\@acmEditors\@empty @@ -1467,11 +1637,9 @@ \def\position##1{\ignorespaces}% \def\institution##1{##1\ignorespaces}% \def\department{\@ifnextchar[{\@department}{\@department[]}}% - \def\@department[##1]##2{\unskip, ##2\ignorespaces}% - \let\streetaddress\position + \def\@department[##1]##2{##2, \ignorespaces}% \let\city\position \let\state\position - \let\postcode\position \let\country\position Also with #1\unskip.\egroup} \renewcommand{\email}[2][]{% @@ -1521,10 +1689,12 @@ \stepcounter{footnote}\footnotetext{#1}}% \fi} \newcommand\authornotemark[1][\relax]{% - \ifx#1\relax\relax\relax - \g@addto@macro\addresses{\@authornotemark}% - \else - \g@addto@macro\addresses{\@@authornotemark{#1}}% + \if@ACM@anonymous\else + \ifx#1\relax\relax\relax + \g@addto@macro\addresses{\@authornotemark}% + \else + \g@addto@macro\addresses{\@@authornotemark{#1}}% + \fi \fi} \def\acmVolume#1{\def\@acmVolume{#1}} \acmVolume{1} @@ -1542,31 +1712,48 @@ January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi~\@acmYear} -\def\acmPrice#1{\def\@acmPrice{#1}} -\acmPrice{15.00} +\def\acmPrice#1{\ClassWarning{\@classname}{The macro \string\acmPrice + is obsolete. ACM no longer prints the price in bibstrip.}} \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}} \acmSubmissionID{} \def\acmISBN#1{\def\@acmISBN{#1}} -\acmISBN{978-x-xxxx-xxxx-x/YY/MM} +\acmISBN{978-x-xxxx-xxxx-x/YYYY/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 @@ -1644,8 +1831,46 @@ \fi} \AtEndDocument{% \ifx\@received\@empty\else - \par\bigskip\noindent\small\normalfont\@received\par + \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{} +\def\acmContributions#1{\gdef\@acmContributions{#1}} +\acmContributions{} +\let\acmDataLink\acmCodeLink \RequirePackage{comment} \excludecomment{CCSXML} \let\@concepts\@empty @@ -1691,7 +1916,7 @@ acmcopyright,acmlicensed,rightsretained,% usgov,usgovmixed,cagov,cagovmixed,licensedusgovmixed,% licensedcagov,licensedcagovmixed,othergov,licensedothergov,% - iw3c2w3,iw3c2w3g}{% + iw3c2w3,iw3c2w3g,cc}{% \@printpermissiontrue \@printcopyrighttrue \@acmownedtrue @@ -1705,13 +1930,11 @@ \fi \ifnum\acm@copyrightmode=3\relax % rightsretained \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% \fi \ifnum\acm@copyrightmode=4\relax % usgov \@printpermissiontrue \@printcopyrightfalse \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% \fi \ifnum\acm@copyrightmode=6\relax % cagov \@acmownedfalse @@ -1733,18 +1956,23 @@ \fi \ifnum\acm@copyrightmode=13\relax % iw3c2w3 \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% \fi \ifnum\acm@copyrightmode=14\relax % iw3c2w3g \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% + \fi + \ifnum\acm@copyrightmode=15\relax % cc + \@acmownedfalse \fi} \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}} -\setcopyright{acmcopyright} +\setcopyright{acmlicensed} +\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 - Association for Computing Machinery. + ACM\@. \or % acmlicensed Copyright held by the owner/author(s). Publication rights licensed to ACM\@. @@ -1752,22 +1980,21 @@ Copyright held by the owner/author(s). \or % usgov \or % usgovmixed - Association for Computing Machinery. + Copyright held by the owner/author(s). \or % cagov - Crown in Right of Canada. + Copyright Crown in Right of Canada. \or %cagovmixed - Association for Computing Machinery. + Copyright held by the owner/author(s). \or %licensedusgovmixed Copyright held by the owner/author(s). Publication rights licensed to ACM\@. \or % licensedcagov - Crown in Right of Canada. Publication rights licensed to - ACM\@. + Copyright held by the owner/author(s). \or %licensedcagovmixed Copyright held by the owner/author(s). Publication rights licensed to ACM\@. \or % othergov - Association for Computing Machinery. + Copyright held by the owner/author(s). \or % licensedothergov Copyright held by the owner/author(s). Publication rights licensed to ACM\@. @@ -1777,6 +2004,8 @@ \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\@copyrightpermission{% @@ -1788,10 +2017,10 @@ advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is - permitted. To copy otherwise, or republish, to post on servers or to - redistribute to lists, requires prior specific permission - and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + permitted. To copy otherwise, or republish, to post on servers or + to redistribute to lists, requires prior specific permission + and\hspace*{.5pt}/or + a fee. Request permissions from permissions@acm.org. \or % acmlicensed Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided @@ -1799,97 +2028,102 @@ advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit - is permitted. To copy otherwise, or republish, to post on servers - or to redistribute to lists, requires prior specific permission - and\hspace*{.5pt}/or a fee. Request permissions from + is permitted. To copy otherwise, or republish, to post on servers + or to redistribute to lists, requires prior specific permission + and\hspace*{.5pt}/or a fee. Request permissions from permissions@acm.org. \or % rightsretained - Permission to make digital or hard copies of part or all of this work - for personal or classroom use is granted without fee provided that - copies are not made or distributed for profit or commercial advantage - and that copies bear this notice and the full citation on the first - page. Copyrights for third-party components of this work must be - honored. For all other uses, contact the + Permission to make digital or hard copies of all or part of this + work for personal or classroom use is granted without fee provided + that copies are not made or distributed for profit or commercial + advantage and that copies bear this notice and the full citation on + the first page. Copyrights for third-party components of this work + must be honored. For all other uses, contact the owner\hspace*{.5pt}/author(s). \or % usgov This paper is authored by an employee(s) of the United States Government and is in the public domain. Non-exclusive copying or redistribution is allowed, provided that the article citation is given and the authors and agency are clearly identified as its - source. + source. Request permissions from + owner\hspace*{.5pt}/author(s). \or % usgovmixed ACM acknowledges that this contribution was authored or co-authored by an employee, contractor, or affiliate of the United States government. As such, the United States government retains a nonexclusive, royalty-free right to publish or reproduce this - article, or to allow others to do so, for government purposes only. + article, or to allow others to do so, for government purposes + only. Request permissions from owner\hspace*{.5pt}/author(s). \or % cagov - This article was authored by employees of the Government of Canada. - As such, the Canadian government retains all interest in the - copyright to this work and grants to ACM a nonexclusive, - royalty-free right to publish or reproduce this article, or to allow - others to do so, provided that clear attribution is given both to - the authors and the Canadian government agency employing them. - Permission to make digital or hard copies for personal or classroom - use is granted. Copies must bear this notice and the full citation - on the first page. Copyrights for components of this work owned by - others than the Canadian Government must be honored. To copy - otherwise, distribute, republish, or post, requires prior specific - permission and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + This article was authored by employees of the Government of + Canada. As such, the Canadian government retains all interest in + the copyright to this work and grants to ACM a nonexclusive, + royalty-free right to publish or reproduce this article, or to + allow others to do so, provided that clear attribution is given + both to the authors and the Canadian government agency employing + them. Permission to make digital or hard copies for personal or + classroom use is granted. Copies must bear this notice and the full + citation on the first page. Copyrights for components of this work + owned by others than the Canadian Government must be honored. To + copy otherwise, distribute, republish, or post, requires prior + specific permission and/or a fee. Request permissions from + owner\hspace*{.5pt}/author(s). \or % cagovmixed ACM acknowledges that this contribution was co-authored by an affiliate of the national government of Canada. As such, the Crown - in Right of Canada retains an equal interest in the copyright. - Reprints must include clear attribution to ACM and the author's - government agency affiliation. Permission to make digital or hard - copies for personal or classroom use is granted. Copies must bear - this notice and the full citation on the first page. Copyrights for - components of this work owned by others than ACM must be honored. - To copy otherwise, distribute, republish, or post, requires prior - specific permission and\hspace*{.5pt}/or a fee. Request permissions - from permissions@acm.org. + in Right of Canada retains an equal interest in the + copyright. Reprints must include clear attribution to ACM and the + author’s government agency affiliation. Permission to make digital + or hard copies for personal or classroom use is granted. Copies + must bear this notice and the full citation on the first + page. Copyrights for components of this work owned by others than + ACM must be honored. To copy otherwise, distribute, republish, or + post, requires prior specific permission and/or a fee. Request + permissions from owner\hspace*{.5pt}/author(s). \or % licensedusgovmixed Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the United States government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government - purposes only. + purposes only. Request permissions from + owner\hspace*{.5pt}/author(s). \or % licensedcagov - This article was authored by employees of the Government of Canada. - As such, the Canadian government retains all interest in the - copyright to this work and grants to ACM a nonexclusive, - royalty-free right to publish or reproduce this article, or to allow - others to do so, provided that clear attribution is given both to - the authors and the Canadian government agency employing them. - Permission to make digital or hard copies for personal or classroom - use is granted. Copies must bear this notice and the full citation - on the first page. Copyrights for components of this work owned by - others than the Canadian Government must be honored. To copy - otherwise, distribute, republish, or post, requires prior specific - permission and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + This article was authored by employees of the Government of + Canada. As such, the Canadian government retains all interest in + the copyright to this work and grants to ACM a nonexclusive, + royalty-free right to publish or reproduce this article, or to + allow others to do so, provided that clear attribution is given + both to the authors and the Canadian government agency employing + them. Permission to make digital or hard copies for personal or + classroom use is granted. Copies must bear this notice and the full + citation on the first page. Copyrights for components of this work + owned by others than the Canadian Government must be honored. To + copy otherwise, distribute, republish, or post, requires prior + specific permission and/or a fee. Request permissions from + owner\hspace*{.5pt}/author(s). \or % licensedcagovmixed - Publication rights licensed to ACM\@. ACM acknowledges that this + Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the national government of Canada. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government - purposes only. + purposes only. Request permissions from + owner\hspace*{.5pt}/author(s). \or % othergov ACM acknowledges that this contribution was authored or co-authored - by an employee, contractor or affiliate of a national government. As - such, the Government retains a nonexclusive, royalty-free right to - publish or reproduce this article, or to allow others to do so, for - Government purposes only. + by an employee, contractor or affiliate of a national + government. As such, the Government retains a nonexclusive, + royalty-free right to publish or reproduce this article, or to + allow others to do so, for Government purposes only. Request + permissions from owner\hspace*{.5pt}/author(s). \or % licensedothergov Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes - only. + only. Request permissions from owner\hspace*{.5pt}/author(s). \or % iw3c2w3 This paper is published under the Creative Commons Attribution~4.0 International (CC-BY~4.0) license. Authors reserve their rights to @@ -1901,7 +2135,25 @@ (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 + \IfEq{\ACM@cc@type}{zero}{% + \def\ACM@CC@Url{https://creativecommons.org/publicdomain/zero/1.0}}{% + \edef\ACM@CC@Url{https://creativecommons.org/licenses/\ACM@cc@type/\ACM@cc@version}}% + \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} \def\@teaserfigures{} @@ -1924,6 +2176,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 +2210,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@or@tog + \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,13 +2238,19 @@ \fi \if@ACM@manuscript\else \if@ACM@journal@bibstrip\else % Print the conference information - {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par + \if@ACM@engage + {\itshape \@acmBooktitle, \@acmYear.}\par + \else + {\itshape \acmConference@shortname, \acmConference@venue}\par + \fi \fi \fi \if@printcopyright \copyright\ \@copyrightyear\ \@copyrightowner\\ \else - \@copyrightyear.\ + \ifx\@copyrightyear\@empty\else + \@copyrightyear.\ + \fi \fi \if@ACM@manuscript Manuscript submitted to ACM\\ @@ -2002,19 +2272,19 @@ \else \if@ACM@nonacm\else \if@ACM@journal@bibstrip - \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle - \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\ + ACM~\@permissionCodeTwo/\@acmYear/\@acmMonth-ART\@acmArticle\\ \@formatdoi{\@acmDOI}% \else % Conference - \ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN - \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\\fi + \ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN\\\fi \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi% \fi \fi \fi - \fi} + \fi}% + \fi \fi \endgroup + \if@ACM@engage\@typesetengagemetadata\fi \setcounter{footnote}{0}% \@mkabstract \ifx\@translatedabstracts\@empty\else @@ -2025,12 +2295,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 @@ -2041,7 +2313,7 @@ pdfsubject={\@concepts}, pdfkeywords={\@keywords}, pdfcreator={LaTeX with acmart - \csname ver@acmart.cls\endcsname\space + \csname ver@\@classname.cls\endcsname\space and hyperref \csname ver@hyperref.sty\endcsname}}% \andify\authors @@ -2057,7 +2329,46 @@ \@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\@acmContributions\@empty\else\bigskip + \@acmContributions\par + \fi + \ifx\@empty\@authorsaddresses\else\bigskip\@setauthorsaddresses\fi + \zsaveposy{@ACM@acmcpbox@y}% + \par + } +\egroup} \def\@specialsection#1{% \let\@vspace\@vspace@orig \let\@vspacer\@vspacer@orig @@ -2080,6 +2391,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 +2438,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 +2464,10 @@ \@mktitle@iii \or % sigchi-a \@mktitle@iv + \or % acmengage + \@mktitle@iii + \or % acmcp + \@mktitle@i \fi } \def\@titlefont{% @@ -2179,6 +2490,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 +2515,33 @@ \LARGE\mdseries \or % sigchi-a \mdseries + \or % acmengage + \LARGE\mdseries + \or % acmcp + \mdseries \fi} \def\@mktitle@i{\hsize=\textwidth - \@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 + \if@ACM@acmcp + \advance\hsize by -6pc% \fi + \@ACM@title@width=\hsize \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 @@ -2273,8 +2559,12 @@ \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox \fi\fi #1} -\def\streetaddress#1{\unskip\ignorespaces} -\def\postcode#1{\unskip\ignorespaces} +\def\streetaddress#1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your street + address}\unskip\ignorespaces} +\def\postcode#1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your postal + code}\unskip\ignorespaces} \if@ACM@journal \def\position#1{\unskip\ignorespaces} \def\institution#1{\global\@ACM@instpresenttrue @@ -2282,7 +2572,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 +2607,10 @@ \@mkauthors@iii \or % sigchi-a \@mkauthors@iv + \or % acmengage + \@mkauthors@iii + \or % acmcp + \@mkauthors@i \fi \endgroup } @@ -2344,6 +2640,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 @@ -2382,9 +2684,9 @@ \global\let\and\@typeset@author@line \def\@author##1{% \ifx\@currentauthors\@empty - \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}% + \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}% \else - \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}% + \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}% \fi \gdef\and{}}% \def\email##1##2{}% @@ -2404,6 +2706,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}% @@ -2519,11 +2824,14 @@ \def\@mkauthorsaddresses{% \ifnum\num@authors>1\relax Authors' \else Author's \fi - \ifnum\num@authorgroups>1\relax - addresses: \else address: \fi + Contact Information: \bgroup - \def\streetaddress##1{\unskip, ##1}% - \def\postcode##1{\unskip, ##1}% + \def\streetaddress##1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your street + address}\unskip\ignorespaces}% + \def\postcode##1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your postal + code}\unskip\ignorespaces}% \def\position##1{\unskip\ignorespaces}% \gdef\@ACM@institution@separator{, }% \def\institution##1{\unskip\@ACM@institution@separator ##1\gdef\@ACM@institution@separator{ and }}% @@ -2617,6 +2925,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 +2981,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}}% @@ -2710,7 +3025,7 @@ \@acmArticle\if@ACM@printfolios:\thepage\fi% \fi% }% - \if@ACM@journal@bibstrip + \if@ACM@journal@bibstrip@or@tog \ifcase\ACM@format@nr \relax % manuscript \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}% @@ -2746,9 +3061,15 @@ \fancyhead[RE]{\ACM@linecountR}% \fancyhead[RO]{\@headfootfont \shorttitle\quad\textbullet\quad\@acmArticlePage\ACM@linecountR}% - \if@ACM@nonacm\else% - \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No. - \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% + \if@ACM@nonacm\else + \if@ACM@journal@bibstrip + \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, + Vol. \@acmVolume, No.~\@acmNumber, Article \@acmArticle. + Publication date: \@acmPubDate.}% + \else + \fancyfoot[RO,LE]{\footnotesize \acmConference@shortname, + \acmConference@date, \acmConference@venue.}% + \fi \fi \else % Proceedings \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% @@ -2758,12 +3079,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 +3103,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,58 +3125,34 @@ \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.2\textheight*(\ACM@ArticleType@nr-2))}{% + \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} } -\newdimen\@folio@wd -\@folio@wd=\z@ -\newdimen\@folio@ht -\@folio@ht=\z@ -\newdimen\@folio@voffset -\@folio@voffset=\z@ -\def\@folio@max{1} -\ifcase\ACM@format@nr -\relax % manuscript -\or % acmsmall - \@folio@wd=45.75pt\relax - \@folio@ht=1.25in\relax - \@folio@voffset=.2in\relax - \def\@folio@max{8} -\or % acmlarge - \@folio@wd=43.25pt\relax - \@folio@ht=79pt\relax - \@folio@voffset=.55in\relax - \def\@folio@max{10} -\fi -\def\@folioblob{\@tempcnta=0\@acmArticleSeq\relax - \ifnum\@tempcnta=0\relax\else - \loop - \ifnum\@tempcnta>\@folio@max\relax - \advance\@tempcnta by - \@folio@max - \repeat - \advance\@tempcnta by -1\relax - \@tempdima=\@folio@ht\relax - \multiply\@tempdima by \the\@tempcnta\relax - \advance\@tempdima by -\@folio@voffset\relax - \begin{picture}(0,0) - \makebox[\z@]{\raisebox{-\@tempdima}{% - \rlap{% - \raisebox{-0.45\@folio@ht}[\z@][\z@]{% - \rule{\@folio@wd}{\@folio@ht}}}% - \parbox{\@folio@wd}{% - \centering - \textcolor{white}{\LARGE\sffamily\bfseries\@acmArticle}}}} - \end{picture}\fi} - \AtBeginDocument{% \fancypagestyle{firstpagestyle}{% \fancyhf{}% \renewcommand{\headrulewidth}{\z@}% \renewcommand{\footrulewidth}{\z@}% - \if@ACM@journal@bibstrip + \if@ACM@journal@bibstrip@or@tog \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,36 +3163,41 @@ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[LE]{\ACM@linecountL\@folioblob}% - \fancyhead[LO]{\ACM@linecountL}% - \fancyhead[RO]{\@folioblob}% - \fancyheadoffset[RO,LE]{0.6\@folio@wd}% + \fancyhead[LE]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[RO]{\@acmBadgeR}% + \fancyhead[RE]{\@acmBadgeR}% \or % acmlarge \if@ACM@nonacm\else% \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[RO]{\@folioblob}% - \fancyhead[LE]{\ACM@linecountL\@folioblob}% - \fancyhead[LO]{\ACM@linecountL}% - \fancyheadoffset[RO,LE]{1.4\@folio@wd}% + \fancyhead[RO]{\@acmBadgeR}% + \fancyhead[RE]{\@acmBadgeR}% + \fancyhead[LE]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}% \or % acmtog \if@ACM@nonacm\else% - \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No. - \@acmNumber, Article \@acmArticle. Publication date: - \@acmPubDate.}% + \if@ACM@journal@bibstrip + \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, + Vol. \@acmVolume, No.~\@acmNumber, Article \@acmArticle. + Publication date: \@acmPubDate.}% + \else + \fancyfoot[RO,LE]{\footnotesize \acmConference@shortname, + \acmConference@date, \acmConference@venue.}% + \fi \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 +3210,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.2\textheight*(\ACM@ArticleType@nr-2))}{% + \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 @@ -2923,28 +3256,33 @@ \fi } \def\ACM@adddotafter#1{\ifx\relax#1\relax\else\LTX@adddotafter{#1}\fi} -\renewcommand\section{\@startsection{section}{1}{\z@}% +\renewcommand\section{\def\@toclevel{1}% + \@startsection{section}{1}{\z@}% {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% {.25\baselineskip}% {\ACM@NRadjust\@secfont}} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% +\renewcommand\subsection{\def\@toclevel{2}% + \@startsection{subsection}{2}{\z@}% {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% {.25\baselineskip}% {\ACM@NRadjust\@subsecfont}} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% +\renewcommand\subsubsection{\def\@toclevel{3}% + \@startsection{subsubsection}{3}{\z@}% {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% {-3.5\p@}% {\ACM@NRadjust{\@subsubsecfont\@adddotafter}}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% +\renewcommand\paragraph{\def\@toclevel{4}% + \@startsection{paragraph}{4}{\parindent}% {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% {-3.5\p@}% {\ACM@NRadjust{\@parfont\@adddotafter}}} -\newcommand\noindentparagraph{\@startsection{paragraph}{4}{\z@}% +\newcommand\noindentparagraph{\def\@toclevel{4}% + \@startsection{paragraph}{4}{\z@}% {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% {-3.5\p@}% {\ACM@NRadjust{\@parfont}}} - -\renewcommand\part{\@startsection{part}{9}{\z@}% +\renewcommand\part{\def\@toclevel{9}% + \@startsection{part}{9}{\z@}% {-10\p@ \@plus -4\p@ \@minus -2\p@}% {4\p@}% {\ACM@NRadjust\@parfont}} @@ -2952,7 +3290,7 @@ \rightskip\@rightskip \leftskip\z@skip \parindent\z@} -\def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} +\def\@secfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright} \def\@subsubsecfont{\sffamily\itshape} \def\@parfont{\itshape} @@ -2961,16 +3299,16 @@ \relax % manuscript \or % acmsmall \or % acmlarge - \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\large\section@raggedright} \def\@subsecfont{\sffamily\large\section@raggedright} \or % acmtog - \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\large\section@raggedright} \def\@subsecfont{\sffamily\large\section@raggedright} \or % sigconf - \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase} + \def\@secfont{\bfseries\Large\section@raggedright} \def\@subsecfont{\bfseries\Large\section@raggedright} \or % siggraph - \def\@secfont{\sffamily\bfseries\Large\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\bfseries\Large\section@raggedright} \def\@subsecfont{\sffamily\bfseries\Large\section@raggedright} \or % sigplan \def\@secfont{\bfseries\Large\section@raggedright} @@ -2980,15 +3318,36 @@ \def\@subparfont{\itshape} \or % sigchi \setcounter{secnumdepth}{1} - \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright} \or % sigchi-a \setcounter{secnumdepth}{0} - \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright} +\or % acmengage + \def\@secfont{\bfseries\Large\section@raggedright} + \def\@subsecfont{\bfseries\Large\section@raggedright} +\or %acmcp \fi +\AtBeginDocument{% + \@for\@tempa:=-1,0,1,2,3,4,5\do{% + \@ifundefined{r@tocindent\@tempa}{% + \@xp\gdef\csname r@tocindent\@tempa\endcsname{0pt}}{}% + }% +} +\def\@writetocindents{% + \begingroup + \@for\@tempa:=-1,0,1,2,3,4,5\do{% + \immediate\write\@auxout{% + \string\newlabel{tocindent\@tempa}{% + \csname r@tocindent\@tempa\endcsname}}% + }% + \endgroup} \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 +3367,8 @@ \def\@acmplainnotefont{\normalfont} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \newtheoremstyle{acmplain}% {.5\baselineskip\@plus.2\baselineskip @@ -3038,6 +3399,8 @@ \def\@acmdefinitionnotefont{\normalfont} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \newtheoremstyle{acmdefinition}% {.5\baselineskip\@plus.2\baselineskip @@ -3093,6 +3456,8 @@ \def\@proofindent{\noindent} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi \renewenvironment{proof}[1][\proofname]{\par \pushQED{\qed}% @@ -3121,6 +3486,9 @@ \or % sigchi \RequirePackage{pbalance}% \or % sigchi-a + \or % acmengage + \RequirePackage{pbalance}% + \or % acmcp \fi \fi \if@ACM@balance @@ -3143,6 +3511,10 @@ \RequirePackage{balance}% \or % sigchi-a \global\@ACM@balancefalse + \or % acmengage + \RequirePackage{balance}% + \or % acmcp + \global\@ACM@balancefalse \fi \fi } diff --git a/_extensions/quarto-journals/acm/acmart.dtx b/_extensions/quarto-journals/acm/acmart.dtx index e33a089..797f6e0 100644 --- a/_extensions/quarto-journals/acm/acmart.dtx +++ b/_extensions/quarto-journals/acm/acmart.dtx @@ -1,6 +1,6 @@ % \iffalse % -% Copyright 2016-2022, Association for Computing Machinery +% Copyright 2016-2024, Association for Computing Machinery % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3 of this license or (at your option) any @@ -57,7 +57,7 @@ % \ifx\currentjob\guide\OnlyDescription\fi % \GetFileInfo{acmart.dtx} % \title{\LaTeX{} Class for the \emph{Association for Computing -% Machinery}\thanks{\copyright 2016--2022, Association for Computing Machinery}} +% Machinery}\thanks{\copyright 2016--2024, Association for Computing Machinery}} % \author{Boris Veytsman\thanks{% % \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}}, % \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}} @@ -193,7 +193,8 @@ % \begin{enumerate} % \item Run |latex acmart.ins|. This will produce the file % |acmart.cls| -% \item Put the files |acmart.cls| and |ACM-Reference-Format.bst| +% \item Put the files |acmart.cls|, |acm-jdslogo.png|, +% and |ACM-Reference-Format.bst| % in places where \LaTeX{} can find them (see \cite{TeXFAQ} or % the documentation for your \TeX{} system).\label{item:install} % \item Update the database of file names. Again, see \cite{TeXFAQ} @@ -222,6 +223,7 @@ % \item \textsl{comment}, \url{http://www.ctan.org/pkg/comment} % \item \textsl{cm-super}, \url{http://www.ctan.org/pkg/cm-super} % \item \textsl{cmap}, \url{http://www.ctan.org/pkg/cmap} +% \item \textsl{doclicense}, \url{http://www.ctan.org/pkg/doclicense} % \item \textsl{draftwatermark}, \url{http://www.ctan.org/pkg/draftwatermark} % \item \textsl{environ}, \url{http://www.ctan.org/pkg/environ} % \item \textsl{etoolbox}, \url{http://www.ctan.org/pkg/etoolbox} @@ -282,15 +284,17 @@ % \begin{verbatim} % \documentclass[acmtog, review=false]{acmart} % \end{verbatim} -% The possible formats are listed in -% Table~\ref{tab:opts_format}. Note that formats starting with |acm| -% are intended for journals and transactions, while formats starting -% with |sig| are intended for proceedings published as books. -% -% Note that sometimes conference proceedings are published as a -% special issue (or issues) of an ACM journal. In this case, you -% should use the journal format for a conference paper. Please -% contact your conference committee if in doubt. +% The possible formats are listed in Table~\ref{tab:opts_format}. +% Note that formats starting with |acm| are intended for journals, +% transactions, and course materials, while formats starting with +% |sig| are intended for proceedings published as books. +% +% Sometimes conference proceedings are published as a special issue +% (or issues) of an ACM journal. In this case, you should use the +% journal format. The templates |sample-acmsmall-conf.tex| and +% |sample-acmtog-conf.tex| show how to enter conference information. +% Note that you need to comment out |\acmJournal{...}| line for such +% papers to get the conference information in the footers and headers. % % \begin{table} % \centering @@ -301,24 +305,27 @@ % \normalfont Value & Meaning\\ % \midrule % manuscript & A manuscript. This is the default. \\ -% acmsmall & Small single-column format. Used for CIE, CSUR, -% DLT, FAC, GAMES, JACM, JDIQ, JDS, JEA, JERIC, -% JETC, PACMCGIT, PACMHCI, PACMPL, TAAS, TACCESS, TACO, +% acmsmall & Small single-column format. Used for ACMJCSS, CIE, CSUR, +% DLT, FAC, GAMES, JACM, JATS, JDIQ, JDS, JEA, JERIC, +% JETC, JRC, PACMCGIT, PACMHCI, PACMMOD, PACMNET, +% PACMPL, PACMSE, POMACS, TAAS, TACCESS, TACO, % TALG, TALLIP (formerly TALIP), TCPS, TDS, % TEAC, TECS, TELO, THRI, TIIS, TIOT, TISSEC, TIST, TKDD, TMIS, % TOCE, TOCHI, TOCL, % TOCS, TOCT, TODAES, TODS, TOIS, TOIT, TOMACS, TOMM (formerly -% TOMCCAP), TOMPECS, TOMS, TOPC, TOPLAS, TOPS, +% TOMCCAP), TOMPECS, TOMS, TOPC, TOPLAS, TOPML, TOPS, TORS % TOS, TOSEM, TOSN, TQC, TRETS, -% TSAS, TSC, TSLP and TWEB, including special issues. \\ +% TSAS, TSC, TSLP, and TWEB, including special issues. \\ % acmlarge & Large single-column format. Used for DTRAP, HEALTH, -% IMWUT, JOCCH, POMACS and TAP, including special issues. \\ +% IMWUT, JOCCH, and TAP, including special issues. \\ % acmtog & Large double-column format. Used for % TOG, including annual conference Technical Papers.\\ % sigconf & Proceedings format for most ACM -% conferences (with the exceptions listed below) and all ICPS +% conferences (with the exception of SIGPLAN) and all ICPS % volumes.\\ % sigplan & Proceedings format for SIGPLAN conferences.\\ +% acmengage & ACM EngageCSEdu Course materials.\\ +% acmcp & ACM cover page. \\ % \bottomrule % \end{tabularx} % \end{table} @@ -328,6 +335,9 @@ % If a file uses |sigchi| format, a warning is issued, and the format % is automatically switched to |sigconf|. Format |sigchi-a| can be % used for non-ACM documents only (see Section~\ref{sec:sigchi-a}). +% The format |acmcp| is used for ACM cover pages discussed in +% Section~\ref{sec:ug_acmcp}. +% % % There are several Boolean options that can take |true| or |false| % values. They are listed in Table~\ref{tab:opts_bool}. The words @@ -376,11 +386,13 @@ % % The option |balance| determines whether the last page in the two % column mode has balanced columns. By default it is |true|; however, -% it may lead to problems for some documents. Set it to |false| if -% you encounter compilation errors. Note that for one page documents -% \cs{balance} command might cause problems. An alternative is the +% it may lead to problems for some documents. When there are many +% figures near the end of the document, the attempts to balance +% columns may lead to the loss of the figures. Set this option to |false| if +% you encounter problems. An alternative is the % (experimental) option |pbalance|, which uses the new package -% |pbalance| for this end. +% |pbalance|. You may want to try |pbalance=true| to see if you get +% better results. % % The option |urlbreakonhyphens| determines whether URLs can be split % between lines after hyphens. By default it is true. Set it to @@ -406,7 +418,8 @@ % Section~\ref{sec:ug_topmatter})\\ % nonacm & false & Use the class typesetting options for % a non-ACM document, which will not include the conference/journal -% header and footers or permission statements\\ +% header and footers. Currenly such documents allow only a +% Creative Commons license.\\ % timestamp & false & Whether to put a time stamp in the % footer of each page\\ % authordraft & false & Whether author's-draft mode is enabled\\ @@ -488,6 +501,7 @@ % Art, Science and Engineering of Programming (Programming '17)} % \end{verbatim} % +% % An ACM paper should have either \cs{acmJournal} or % \cs{acmConference} command. If it has both (or more) commands, the % last one takes precedence. Note that if you have the command @@ -496,6 +510,11 @@ % formatting. In the samples directory there is a file % |sample-acmsmall-conf.tex| with the example of this usage. % +% An ACM Engage material should \emph{not} use \cs{acmJournal} or +% \cs{acmConference} command. It may use \cs{acmBooktitle} to +% override the default \emph{ACM EngageCSEdu}. It should use \cs{acmYear} +% to set the date of the material. +% % % % \DescribeMacro{\editor}% @@ -555,6 +574,14 @@ % Note that some formats do not typeset e-mails or ORCID identifiers. % Do not worry: the metadata tools will get them. % +% ACM strongly encourages that you include ORCIDs for all authors +% before compiling or submitting for review and/or production +% processing. +% +% If you do not have an ORCID, you may get one for free by +% registering at \url{http://www.orcid.org/}. +% +% % Sometimes an author has several affiliations. In this case, the % \cs{affiliation} command should be repeated: % \begin{verbatim} @@ -610,15 +637,12 @@ % \author{Ben Trovato} % \additionalaffiliation{% % \institution{The Th{\o}rv{\"a}ld Group} -% \streetaddress{1 Th{\o}rv{\"a}ld Circle} % \city{Hekla} % \country{Iceland}} % \affiliation{% % \institution{Institute for Clarity in Documentation} -% \streetaddress{P.O. Box 1212} % \city{Dublin} -% \state{Ohio} -% \postcode{43017-6221}} +% \state{Ohio}} % \end{verbatim} % Here Trovato and Tobin share their affiliation with the Institute % for Clarity in Documentation, but only Ben Trovato is affiliated @@ -628,16 +652,14 @@ % \DescribeMacro{\position}% % \DescribeMacro{\institution}% % \DescribeMacro{\department}% -% \DescribeMacro{\streetaddress}% % \DescribeMacro{\city}% % \DescribeMacro{\state}% -% \DescribeMacro{\postcode}% % \DescribeMacro{\country}% % The \cs{affiliation} and \cs{additionalaffiliation} commands are % further structured to interact with the metadata extraction tools. % Inside these commands you should use the \cs{position}, -% \cs{institution}, \cs{department}, \cs{city}, \cs{streetaddress}, -% \cs{state}, \cs{postcode} and \cs{country} macros to indicate the +% \cs{institution}, \cs{department}, \cs{city}, +% \cs{state}, and \cs{country} macros to indicate the % corresponding parts of the affiliation. Note that in some cases % (for example, journals) these parts are not printed in the resulting % copy, but they \emph{are} necessary since they are used by the XML @@ -650,6 +672,11 @@ % issued. Currently the absence of \cs{country} produces an error; % ACM may change this in the future. % +% Starting 2024, ACM no longer collects or print postal addresses of +% the authors. Thus the commands \cs{streetaddress} and +% \cs{postcode}, present in the previous versions of the class, now +% produce a warining. +% % % An example of the author block: % \begin{verbatim} @@ -658,10 +685,8 @@ % \affiliation{% % \institution{University of New South Wales} % \department{School of Biomedical Engineering} -% \streetaddress{Samuels Building (F25), Kensington Campus} % \city{Sidney} % \state{NSW} -% \postcode{2052} % \country{Australia}} % \email{author@nsw.au.edu} % \author{A. N. Other} @@ -712,51 +737,6 @@ % \end{verbatim} % % -% The command \cs{affiliation} formats its output according to -% American conventions. This might be wrong for some cases. -% Consider, for example, a German address. In Germany, the postcode is -% put before the city and is not separated by a comma. We can handle this -% order using -% \begin{verbatim} -% \affiliation{% -% \institution{Fluginstitut} -% \streetaddress{Sonnenallee 17} -% \postcode{123456} -% \city{Helm} -% \country{Germany}} -% \end{verbatim} -% However, the comma after the postcode is unfortunate: the address will -% be typeset (in some formats) as -% \begin{verbatim} -% Fluginstitut -% Sonenallee 17 -% 123456, Helm, Germany -% \end{verbatim} -% -% -% To overcome this problem, the command \cs{affiliation} has an -% optional parameter |obeypunctuation|, which can be |false| (the -% default) or |true|. If this parameter is |true|, \cs{afffiliation} -% obeys the author's command. Thus -% \begin{verbatim} -% \affiliation[obeypunctuation=true]{% -% \institution{Fluginstitut}\\ -% \streetaddress{Sonnenallee 17}\\ -% \postcode{123456} -% \city{Helm}, -% \country{Germany}} -% \end{verbatim} -% will be typeset as -% \begin{verbatim} -% Fluginstitut -% Sonenallee 17 -% 123456 Helm, Germany -% \end{verbatim} -% -% Note that you should \emph{not} use this option for journals. -% -% It is expected that these commands are inserted by the author of the -% manuscript. % % \DescribeMacro{\thanks}% % Like |amsart| (and unlike standard \LaTeX{}), we allow @@ -844,14 +824,12 @@ % % \DescribeMacro{\acmArticleSeq}% % The articles in the same issue of a journal have a \emph{sequence -% number}. It is used to vertically position the black blob on the first -% page of some formats. By default it is the same as the article number, +% number}. By default it is the same as the article number, % but the command \cs{acmArticleSeq}\marg{n} can be used to change it: % \begin{verbatim} % \acmArticle{39} % The sequence number will be 39 by default % \acmArticleSeq{5} % We redefine it to 5 % \end{verbatim} -% Setting this number to zero suppresses the blob. % % \DescribeMacro{\acmSubmissionID}% % If your paper got a Submission~ID from the Conference Management @@ -861,18 +839,6 @@ % \end{verbatim} % % -% \DescribeMacro{\acmPrice}% -% The macro \cs{acmPrice}\marg{price} sets the price for the article, -% for example, -% \begin{verbatim} -% \acmPrice{25.00} -% \end{verbatim} -% Note that you do not need to put the dollar sign here, just the -% amount. By default the price is \$15.00, unless the copyright is -% set to |usgov|, |rightsretained|, |iw3c2w3|, or |iw3c2w3g|, when it -% is suppressed. Note that to override the defaults you need to set -% the price \emph{after} the \cs{setcopyright} command. Also, the -% command |\acmPrice{}| suppresses the printing of the price. % % \DescribeMacro{\acmISBN}% % Book-like volumes have ISBN numbers attached to them. The macro @@ -894,16 +860,13 @@ % string, as |\acmDOI{}|, suppresses the DOI. % % -% \DescribeMacro{\acmBadgeR}% -% \DescribeMacro{\acmBadgeL}% +% \DescribeMacro{\acmBadge}% % Some conference articles get special distinctions, for example, the % artifact evaluation for PPoPP~2016 % (see~\url{http://ctuning.org/ae/ppopp2016.html}). These articles % display special badges supplied by the conference organizers. This -% class provides commands to add these badges: -% \cs{acmBadgeR}\oarg{url}\marg{graphics} and -% \cs{acmBadgeL}\oarg{url}\marg{graphics}. The first command puts the -% badge to the right of the title, and the second one---to the left. +% class provides command to add these badges: +% \cs{acmBadge}\oarg{url}\marg{graphics}. % The arguments have the following meaning: \oarg{url}, if provided, % sets the link to the badge authority in the screen version, while % \marg{graphics} sets the graphics file with the badge image. The @@ -911,9 +874,9 @@ % the output. For example, if the badge image is |ae-logo.pdf|, the % command is % \begin{verbatim} -% \acmBadgeR[http://ctuning.org/ae/ppopp2016.html]{ae-logo} +% \acmBadge[http://ctuning.org/ae/ppopp2016.html]{ae-logo} % \end{verbatim} -% +% The command can be repeated, if a paper has several badges. % % % \DescribeMacro{\startPage}% @@ -984,14 +947,16 @@ % % \DescribeMacro{\setcopyright} % There are several possibilities for the copyright of the papers -% published by the ACM: the authors may transfer the rights to the ACM, -% license them to the ACM, some or all authors might be employees of the +% published by the ACM: the authors may license the paper +% to the ACM, some or all authors might be employees of the % US or Canadian governments, etc. Accordingly the command % \verb|\setcopyright{...}| is introduced. Its argument is the % copyright status of the paper, for example, % \verb|\setcopyright{acmcopyright}|. The possible values for this % command are listed in Table~\ref{tab:setcopyright}. This command % must be placed in the preamble, before |\begin{document}|. +% Additional information about ACM copyright rules is discussed in +% Section~\ref{sec:ug_cc}. % % \begin{table} % \centering @@ -1003,8 +968,6 @@ % \midrule % \texttt{none} & The copyright and permission information is not % typeset. (This is the option for some ACM conferences.) \\ -% \texttt{acmcopyright} & The authors transfer the copyright to the -% ACM (the ``traditional'' choice).\\ % \texttt{acmlicensed} & The authors retain the copyright but % license the publication rights to ACM\@. \\ % \texttt{rightsretained} & The authors retain the copyright and @@ -1033,9 +996,33 @@ % by IW3C2.\\ % \texttt{iw3c2w3g} & Special statement for conferences organized % by IW3C2, when some authors are approved Google employees.\\ +% \texttt{cc} & Creative Commons license. If this key is set, +% \textsl{doclicense} images are used to typeset the license. See +% also \cs{setcctype} command. \\ +% \texttt{acmcopyright} & The authors transfer the copyright to the +% ACM. This choice is no longer available for the +% non-commissioned authors and will trigger a warning.\\ % \bottomrule % \end{tabularx} % \end{table} +% +% \DescribeMacro{\setcctype}% +% If Creative Commons license is used, the package by default chooses +% CC-BY 4.0 Attribution 4.0 International license. You can override +% this choice by the command \cs{setcctype}\oarg{version}\marg{type}, +% where \oarg{version} can be either 3.0 or 4.0 (4.0 by default), and +% \marg{type} can be one of |zero|, |by|, |by-sa|, |by-nd|, +% |by-nc|, |by-nc-sa|, |by-nc-nd| (see +% \url{https://creativecommons.org/licenses/} for the explanation). +% This command should be used in the preamble only. +% +% Material published under Creative Commons license should include +% the corresponding icon. A modern \TeX\ distribution includes these +% icons in the package \textsl{doclicense}. In case your distribution +% does not have them, ACM provides a file \path{ccicons.zip} with +% these icons. Just unzip it in the same directory where your +% document is. +% % The ACM submission software should generate the right command for you % to paste into your file. % @@ -1135,9 +1122,9 @@ % is |Received| for the first date and |revised| for the subsequent % ones. For example, % \begin{verbatim} -% \received{February 2007} -% \received[revised]{March 2009} -% \received[accepted]{June 2009} +% \received{20 February 2007} +% \received[revised]{12 March 2009} +% \received[accepted]{5 June 2009} % \end{verbatim} % % @@ -1156,6 +1143,92 @@ % \end{verbatim} % % +%\subsection{Top matter of ACM Engage materials} +%\label{sec:ug_engage} +% +% ACM Engage materials resemble conference proceedings, but have some +% special features. First, as a rule, they are released under a +% Creative Commons license. By default CC-BY is used. However, if +% you want to use another variant of CC license, use \cs{setcctype} +% command, for example, |\setcctype{by-nc}|. Second, abstract is +% called \emph{synopsis}. Third, there are special top matter items +% used for the materials, such as \emph{Course,} \emph{Resource Type,} +% \emph{Programming Language,} \emph{CS Topics}. +% +% \DescribeMacro{\setengagemetadata}% +% These items are set with the command +% \cs{setengagemetadata}\marg{name}\marg{value}, for example, +% \begin{verbatim} +% \setengagemetadata{Course}{CS1} +% \setengagemetadata{Programming Language}{Python} +% \setengagemetadata{Knowledge Unit}{Programming Concepts} +% \setengagemetadata{CS Topics}{Functions, Data Types, Expressions, +% Mathematical Reasoning} +% \end{verbatim} +% +% Note that the type of Creative Commons license, if such license is +% used, is automatically added to the metadata. +% +% +%\subsection{ACM cover page} +%\label{sec:ug_acmcp} +% +% ACM cover pages are forms of extended abstracts that are added to +% journals at the late stage. Authors prepare them as separate +% \texttt{.tex} files using |acmcp| format. At present only JDS uses +% them, but in the future this may change. +% +% There are several top matter commands specific for this format. +% +% \DescribeMacro{\acmArticleType}% +% There are five article types accepted by JDS: \emph{Research} (the +% default), \emph{Review}, \emph{Discussion}, \emph{Invited}, and +% \emph{Position}. The command \cs{acmArticleType}\marg{type} sets the +% article type, for example +% \begin{verbatim} +% \acmArticleType{Review} +% \end{verbatim} +% +% \DescribeMacro{\acmCodeLink}% +% \DescribeMacro{\acmDataLink}% +% The commands \cs{acmCodeDataLink}\marg{link} and +% \cs{acmDataLink}\marg{link} set the links to the data and code +% accompanying the paper, for example, +% \begin{verbatim} +% \acmCodeLink{https://github.com/repository/code} +% \acmDataLink{https://datadryad.org/stash/dataset/doi:DOI} +% \end{verbatim} +% You may repeat these commands if you have several repositories. +% +% +% \cs{acmContributions}% +% The command \cs{acmContributions}\marg{contributions} sets the +% contributions of the authors, for example, +% \begin{verbatim} +% \acmContributions{AW designed the study, CD performed it, all +% authors contributed to the writing.} +% \end{verbatim} +% +% ACM cover page should have the following obligatory sections: +% \begin{itemize} +% \item Problem statement, +% \item Methods, +% \item Results, +% \item Significance. +% \end{itemize} +% +% Sometimes the addresses extracted from the authors' data are too +% long to fit on the page. In this case the command +% \cs{authorsaddresses} can be use to override them, for example, +% \begin{verbatim} +% \authorsaddresses{Corresponding author: Ben Trovato, +% \href{mailto:trovato@corporation.com}{trovato@corporation.com}; +% Institute for Clarity in Documentation, P.O. Box 1212, Dublin, +% Ohio, USA, 43017-6221} +% \end{verbatim} +% +% The design of the cover page may require additional runs of latex to +% make the elements of the page align. % %\subsection{Internationalization} %\label{sec:ug_i13n} @@ -1178,7 +1251,7 @@ % languages are \emph{secondary,} and used for translated titles, % keywords, abstracts. Thus the paper above is written in English, % and has a secondary abstract and a secondary title in French. On -% the other hand, a paper in French wih secondary titles and abstracts +% the other hand, a paper in French with secondary titles and abstracts % in English and German should use, for example % \begin{verbatim} % \documentclass[sigconf, @@ -1417,7 +1490,7 @@ % % \DescribeEnv{anonsuppress}% % When the option |anonymous| is selected, \TeX\ suppresses author -% information (including the number of authors) for a blind review. +% information (including the number of authors) for an anonymous review. % However, sometimes the information identifying the authors may be % present in the body of the paper. For example, % \begin{verbatim} @@ -1461,7 +1534,7 @@ % % As for the |printonly| and |screenonly| environments, % |\begin{acks}| and |\end{acks}| should start on a -% line of their own with no leading or trailing spaces. +% line of their own with no leading or trailing spaces or comments. % % \DescribeMacro{\grantsponsor}% % \DescribeMacro{\grantnum}% @@ -1494,7 +1567,7 @@ % % The authors would also like to thank the anonymous referees for % their valuable comments and helpful suggestions. This work is -% supported by the \grantsponsor{GS501100001809}{National Natural +% supported by the \grantsponsor{my-grant-GS501100001809}{National Natural % Science Foundation of % China}{https://doi.org/10.13039/501100001809} under Grant % No.:~\grantnum{GS501100001809}{61273304} @@ -1709,10 +1782,10 @@ % %\subsubsection{Processing using Bib\LaTeX} % You will find in this package two sets of style files for Bib\LaTeX, -% \verb|acmnumeric| and \verb|acmauthoryear|, that mimic the behaviour -% of the ACM-Reference-Format.bst Bib\TeX\ sytle. They provide you +% \verb|acmnumeric| and \verb|acmauthoryear|, that mimic the behavior +% of the ACM-Reference-Format.bst Bib\TeX\ style. They provide you % access to all the power of Bib\LaTeX\ and already include -% support for advanced citation of software artefact from the +% support for advanced citation of software artifacts from the % \verb|biblatex-software| package, also separately available on CTAN. % Look at the \verb|biblatex-software| documentation to learn more about % what it offers. @@ -1721,7 +1794,10 @@ % when using Bib\LaTeX\ instead of Bib\TeX, that we summarize briefly % here (please refer to the official Bib\LaTeX\ documentation for more details). % -% In the preamble of your document you need to load the Bib\LaTeX\ package +% First of all, you need to pass the \verb|natbib=false| option to the document class, +% and remove the \verb|\citestyle{acmauthoryear}| command from the sources (if present). +% +% Then, in the preamble of your document you need to load the Bib\LaTeX\ package % and select the approriate bibliography style, as follows % \begin{verbatim} % \RequirePackage[ @@ -1731,7 +1807,7 @@ % \end{verbatim} % % Also in the preamble, you need to declare the bibliography sources files -% using the \verb|\addbibresouce| directe (one \verb|\addbibresource| +% using the \verb|\addbibresource| command (one \verb|\addbibresource| % command per source file), e.g.: % \begin{verbatim} % \addbibresource{software.bib} @@ -1789,6 +1865,35 @@ % \end{enumerate} % % +% +%\subsubsection{Manual bibliography} +%\label{sec:ug_manual_bibliography} +% +% Some people create bibliographies manually, writing down +% \cs{bibitem} commands explicitly. This approach is \emph{not} +% recommended for ACM styles. The reason is, ACM submissions, besides +% being typeset, are also processed by special programs that extract +% metadata and references. Bibliographies created automatically with +% ACM styles contain customized macros for these programs, for +% example, +% \begin{verbatim} +% \bibitem[Ablamowicz and Fauser(2007)]% +% {Ablamowicz07} +% \bibfield{author}{\bibinfo{person}{Rafal Ablamowicz} {and} +% \bibinfo{person}{Bertfried Fauser}.} \bibinfo{year}{2007}\natexlab{}. +% \newblock \bibinfo{booktitle}{\emph{CLIFFORD: a Maple 11 Package for Clifford +% Algebra Computations, version 11}}. +% \newblock +% \urldef\tempurl% +% \url{http://math.tntech.edu/rafal/cliff11/index.html} +% \showURL{% +% Retrieved February 28, 2008 from \tempurl} +% \end{verbatim} +% +% Manual bibliographies without these macros may slow down the +% publication process, and thus are not recommended for ACM +% submissions. +% %\subsection{Other notable packages and typographic remarks} %\label{sec:ug_other} % @@ -1855,7 +1960,6 @@ % % % -% %\subsection{Disabled or forbidden commands} %\label{sec:ug_disabled} % @@ -1920,10 +2024,7 @@ % % \DescribeMacro{\AtBeginMaketitle}% % Another hook is \cs{AtBeginMaketitle}. The commands in this hook -% are executed before \cs{maketitle}, for example, -% \begin{verbatim} -% \AtBeginMaketitle{\acmPrice{125.00}} -% \end{verbatim} +% are executed before \cs{maketitle}. % % %\subsection{Currently supported publications} @@ -1945,7 +2046,8 @@ % \midrule % \endhead % \bottomrule -% \endfoot +% \endfoot +% ACMJCSS & ACM Journal on Computing and Sustainable Societies \\ % CIE & ACM Computers in Entertainment \\ % CSUR & ACM Computing Surveys\\ % DLT & Distributed Ledger Technologies: Research and Practice\\ @@ -1957,16 +2059,21 @@ % IMWUT & PACM on Interactive, Mobile, Wearable and Ubiquitous % Technologies\\ % JACM & Journal of the ACM \\ +% JATS & ACM Journal on Autonomous Transportation Systems \\ % JDIQ & ACM Journal of Data and Information Quality \\ % JDS & ACM/IMS Journal of Data Science \\ % JEA & ACM Journal of Experimental Algorithmics \\ % JERIC & ACM Journal of Educational Resources in Computing\\ % JETC & ACM Journal on Emerging Technologies in Computing Systems \\ % JOCCH & ACM Journal on Computing and Cultural Heritage \\ +% JRC & ACM Journal on Responsible Computing \\ % PACMCGIT & Proceedings of the ACM on Computer Graphics and % Interactive Techniques\\ % PACMHCI & PACM on Human-Computer Interaction\\ +% PACMOD & PACM on Management of Data\\ +% PACMNET & PACM on Networking\\ % PACMPL & PACM on Programming Languages \\ +% PACMSE & PACM on Software Engineering \\ % POMACS & PACM on Measurement and Analysis of Computing Systems \\ % TAAS & ACM Transactions on Autonomous and Adaptive Systems\\ % TACCESS & ACM Transactions on Accessible Computing\\ @@ -1979,7 +2086,7 @@ % TDS & ACM/IMS Transactions on Data Science\\ % TEAC & ACM Transactions on Economics and Computation\\ % TECS & ACM Transactions on Embedded Computing Systems \\ -% TELO & ACM Transactions on Evolutionary Learning \\ +% TELO & ACM Transactions on Evolutionary Learning and Optimization\\ % THRI & ACM Transactions on Human-Robot Interaction\\ % TIIS & ACM Transactions on Interactive Intelligent Systems\\ % TIOT & ACM Transactions on Internet of Things \\ @@ -2005,7 +2112,9 @@ % TOMS & ACM Transactions on Mathematical Software\\ % TOPC & ACM Transactions on Parallel Computing\\ % TOPLAS & ACM Transactions on Programming Languages and Systems\\ +% TOPML & ransactions on Probabilistic Machine Learning\\ % TOPS & ACM Transactions on Privacy and Security\\ +% TORS & ACM Transactions on Recommender Systems\\ % TOS & ACM Transactions on Storage\\ % TOSEM & ACM Transactions on Software Engineering and Methodology\\ % TOSN & ACM Transactions on Sensor Networks\\ @@ -2023,6 +2132,47 @@ % reserved for new journals which are not assigned an ISSN yet. % % +%\subsection{Samples} +%\label{sec:samples} +% +% There are several samples of acmart documents, that can serve as +% templates for the authors. Among them +% |sample-sig...| are templates for conference papers, while +% |sample-acm...| are templates for journal articles and special +% materials. +% +% Here is the list of the samples: +% \begin{description} +% \item[sample-manuscript:] A proceedings paper in the manuscript format. +% \item[sample-acmsmall:] A journal paper in the |acmsmall| format. +% \item[sample-acmsmall-biblatex:] A journal paper using experimental +% \textsl{biblatex} bibliography processing. +% \item[sample-acmlarge:] A journal paper in the |acmlarge| format. +% \item[sample-acmtog:] A journal paper in the |acmtog| format. +% \item[sample-sigconf:] A proceedings paper in the standard |sigconf| +% format. +% \item[sample-sigconf-biblatex:] A proceedings paper in the |sigconf| +% format using experimental \textsl{biblatex} bibliography +% processing. +% \item[sample-sigconf-authordraft:] A proceedings paper in the +% |sigconf| format with the |authordraft| option selected. +% \item[sample-sigconf-i13n:] A proceedings paper in the +% |sigconf| format with multilanguage titles and abstract. +% \item[sample-sigconf-xelatex:] A proceedings paper in the +% |sigconf| format, Xe\LaTeX\ version. +% \item[sample-sigconf-lualatex:] A proceedings paper in the +% |sigconf| format, Lua\LaTeX\ version. +% \item[sample-sigplan:] A proceedings paper in the |sigplan| format. +% \item[sample-acmsmall-conf:] A proceedings paper in the |acmsmall| +% format for the publication in a journal using this option. +% \item[sample-acmtog-conf:] A proceedings paper in the |acmtog| +% format for the publication in a journal using this option. +% \item[sample-acmcp:] A sample of ACM Cover Page used by JDS. +% \item[sample-acmengage:] A sample of ACM Engage publication. +% \end{description} +% +% +% %\subsection{A note about \texttt{sigchi-a} format} %\label{sec:sigchi-a} % @@ -2062,6 +2212,24 @@ % \item |figure*|: \cs{fulltextwidth}. % \end{enumerate} % +%\subsection{Experiments with tagging} +%\label{sec:ug_tagged} +% +% ACM is firmly committed to produce fully tagged PDFs compliant with +% the accessibility standards. We use the developmental version of +% tagging code by \LaTeX3 team, see the details at +% \url{https://www.latex-project.org/publications/indexbytopic/pdf/} +% and \url{https://tug.org/twg/accessibility/overview.html}. +% +% At present this work is highly experimental. You may try the +% experiments by (1)~using the class |acmart-tagged| in the document +% class line, and (2)~adding the command +% \cs{DocumentMetadata}\oarg{options} in the preamble, see the file +% \path{sample-acmsmall-tagged.tex}. If you do this, please \emph{do +% not ask ACM for support}. On the other hand, bug reports at +% \url{https://github.com/borisveytsman/acmart/issues} will be +% appreciated. +% % % % \StopEventually{ @@ -2086,8 +2254,9 @@ %<*gobble> \ProvidesFile{acmart.dtx} % -%\ProvidesClass{acmart} -[2022/04/09 v1.84 Typesetting articles for the Association for Computing Machinery] +%\ProvidesClass{acmart} +%\ProvidesClass{acmart-tagged} +[2024/12/28 v2.12 Typesetting articles for the Association for Computing Machinery] % \end{macrocode} % % \changes{v1.00}{2016/04/14}{First released version} @@ -2196,7 +2365,15 @@ % \changes{1.75}{2020/10/29}{Documentation update} % \changes{1.78}{2021/05/01}{Documentation update: Word count} % \changes{1.84}{2022/04/09}{New journals: JDS, GAMES} -% +% \changes{1.85}{2022/05/08}{Added CC licenses} +% \changes{1.87}{2022/08/02}{New format: |acmcp|} +% \changes{1.90a}{2023/06/11}{Changes in the sample keywords and concepts} +% \changes{1.92}{2023/09/30}{Documentation update: use of `anonymous' +% throughout} +% \changes{v1.93}{2023/10/22}{Added PACMSE journal option} +% \changes{v2.01}{2024/01/06}{Documentation update: POMACS uses acmsmall} +% \changes{v2.03}{2024/02/04}{Added documentation about samples} +% % And the driver code: % \begin{macrocode} %<*gobble> @@ -2216,7 +2393,8 @@ \end{document} % %<*class> -\def\@classname{acmart} +%\def\@classname{acmart} +%\def\@classname{acmart-tagged} % \end{macrocode} % % @@ -2253,15 +2431,17 @@ % % % \begin{macro}{format} +% \changes{1.85}{2022/05/08}{New format: acmengage} +% \changes{1.87}{2022/08/13}{New format: acmcp} % The possible formats % \begin{macrocode} -\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{% +\define@choicekey*+{\@classname.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}} -\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}} +\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{\@classname.cls}{format=#1}}} \@DeclareACMFormat{manuscript} \@DeclareACMFormat{acmsmall} \@DeclareACMFormat{acmlarge} @@ -2271,6 +2451,8 @@ \@DeclareACMFormat{sigplan} \@DeclareACMFormat{sigchi} \@DeclareACMFormat{sigchi-a} +\@DeclareACMFormat{acmengage} +\@DeclareACMFormat{acmcp} \ExecuteOptionsX{format} % \end{macrocode} % @@ -2279,7 +2461,7 @@ % \begin{macro}{\if@ACM@screen} % Whether we use screen mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{screen}[true]{% \if@ACM@screen \PackageInfo{\@classname}{Using screen mode}% \else @@ -2294,7 +2476,7 @@ % \begin{macro}{\if@ACM@urlbreakonhyphens} % \changes{1.60}{2019/04/22}{introduced macro} % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{urlbreakonhyphens}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{urlbreakonhyphens}[true]{% \if@ACM@urlbreakonhyphens \PackageInfo{\@classname}{Using breaking urls on hyphens}% \else @@ -2310,7 +2492,7 @@ % \changes{v1.46}{2017/08/29}{Modified description} % Whether we define theorem-like environments. % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{acmthm}[true]{% \if@ACM@acmthm \PackageInfo{\@classname}{Requiring acmthm}% \else @@ -2327,7 +2509,7 @@ % \changes{v1.48}{2017/09/09}{Review mode now switches on folios} % Whether we use review mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{review}[true]{% \if@ACM@review \PackageInfo{\@classname}{Using review mode}% \AtBeginDocument{\@ACM@printfoliostrue}% @@ -2344,7 +2526,7 @@ % \changes{v1.03}{2016/04/22}{Added macro} % Whether we use author's-version mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{authorversion}[true]{% \if@ACM@authorversion \PackageInfo{\@classname}{Using authorversion mode}% \else @@ -2361,7 +2543,7 @@ % Special option for non-ACM publications % using the ACM typesetting options. % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{nonacm}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{nonacm}[true]{% \if@ACM@nonacm \PackageInfo{\@classname}{Using nonacm mode}% \AtBeginDocument{\@ACM@printacmreffalse}% @@ -2381,7 +2563,7 @@ % \changes{v1.57}{2018/12/16}{Added macro} % Whether to balance the last page % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{balance}[true]{}{% +\define@boolkey+{\@classname.cls}[@ACM@]{balance}[true]{}{% \PackageError{\@classname}{The option balance can be either true or false}} \ExecuteOptionsX{balance} @@ -2394,7 +2576,7 @@ % \changes{v1.76}{2021/03/16}{Added macro} % Whether to balance the last page % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{pbalance}[true]{}{% +\define@boolkey+{\@classname.cls}[@ACM@]{pbalance}[true]{}{% \PackageError{\@classname}{The option pbalance can be either true or false}} \ExecuteOptionsX{pbalance=false} @@ -2412,7 +2594,7 @@ % \begin{macro}{\if@ACM@natbib} % Whether we use |natbib| mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{natbib}[true]{% \if@ACM@natbib \PackageInfo{\@classname}{Explicitly selecting natbib mode}% \else @@ -2428,7 +2610,7 @@ % \begin{macro}{\if@ACM@anonymous} % Whether we use anonymous mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{anonymous}[true]{% \if@ACM@anonymous \PackageInfo{\@classname}{Using anonymous mode}% \else @@ -2445,7 +2627,7 @@ % \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)} % Whether we use timestamp mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{timestamp}[true]{% \if@ACM@timestamp \PackageInfo{\@classname}{Using timestamp mode}% \else @@ -2463,7 +2645,7 @@ % \changes{v1.36}{2017/05/13}{Corrected typo, thanks to bargteil} % Whether we use author-draft mode % \begin{macrocode} -\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{% +\define@boolkey+{\@classname.cls}[@ACM@]{authordraft}[true]{% \if@ACM@authordraft \PackageInfo{\@classname}{Using authordraft mode}% \@ACM@timestamptrue @@ -2481,7 +2663,9 @@ % \begin{macro}{\ACM@fontsize} % The font size to pass to the base class % \begin{macrocode} +% \changes{v1.87}{2022/08/27}{Added fontsize 8pt} \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}} @@ -2549,6 +2733,17 @@ % % \end{macro} % +% \begin{macro}{\if@ACM@journal@bibstrip@or@tog} +% \changes{v2.03}{2024/02/04}{Introduced macro} +% ACM TOG sometimes uses journal-like bibstrip even for conference +% proceedings, so we need to set it separately +% \begin{macrocode} +\newif\if@ACM@journal@bibstrip@or@tog +% \end{macrocode} +% +% \end{macro} +% +% % \begin{macro}{\if@ACM@sigchiamode} % The formatting of SIGCHI extended abstracts is quite unusual. We have a % special switch for them. @@ -2558,6 +2753,27 @@ % % \end{macro} % +% \begin{macro}{\if@ACM@engage} +% \changes{v1.85}{2022/05/05}{Introduced macro} +% ACM Engage course materials have special formatting +% \begin{macrocode} +\newif\if@ACM@engage +\@ACM@engagefalse +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\if@ACM@acmcp} +% \changes{v1.87}{2022/08/12}{Introduced macro} +% ACM cover page formatting +% \begin{macrocode} +\newif\if@ACM@acmcp +\@ACM@acmcpfalse +% \end{macrocode} +% +% \end{macro} +% +% % % Setting up switches % \begin{macrocode} @@ -2565,13 +2781,13 @@ \ClassWarning{\@classname}{% The format siggraph is now obsolete.\MessageBreak I am switching to sigconf.} - \setkeys{acmart.cls}{format=sigconf} + \setkeys{\@classname.cls}{format=sigconf} \fi \ifnum\ACM@format@nr=7\relax % sigchi \ClassWarning{\@classname}{% The format sigchi is now obsolete.\MessageBreak I am switching to sigconf.} - \setkeys{acmart.cls}{format=sigconf} + \setkeys{\@classname.cls}{format=sigconf} \fi \ifnum\ACM@format@nr=8\relax % sigchi \ClassWarning{\@classname}{% @@ -2601,6 +2817,7 @@ \@ACM@journaltrue \or % acmtog \@ACM@journaltrue + \@ACM@journal@bibstrip@or@togtrue \or % sigconf \@ACM@journalfalse \or % siggraph @@ -2612,9 +2829,17 @@ \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 + \@ACM@journal@bibstriptrue + \@ACM@journal@bibstrip@or@togtrue \else \@ACM@journal@bibstripfalse \fi @@ -2627,6 +2852,43 @@ % % \changes{v1.13}{2016/06/06}{Increased font size for ACM Large} % \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN} +% \changes{v1.87}{2022/08/27}{Set font sizes for |acmengage| and |acmcp|} +% +%<*tagged> +% \changes{v2.09}{2022/08/25}{Saved the old definitions (Ulrike's +% code} +% Before we load the base class we want to save the original +% definitions of sectioning commands since |acmart| redefines them, +% and we need the vanilla versions. +% \begin{macro}{\@startsection@kernel} +% \changes{v2.00}{2023/11/19}{Added macro} +% \begin{macrocode} +\let\@startsection@kernel\@startsection +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@xsect@kernel} +% \changes{v2.00}{2023/11/19}{Added macro} +% \begin{macrocode} +\let\@xsect@kernel\@xsect +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@sect@kernel} +% \changes{v2.00}{2023/11/19}{Added macro} +% \begin{macrocode} +\let\@sect@kernel\@sect +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ssect@kernel} +% \changes{v2.00}{2023/11/19}{Added macro} +% \begin{macrocode} +\let\@ssect@kernel\@ssect +% \end{macrocode} +% \end{macro} +% +% % % % At this point we either have \cs{ACM@fontsize} or use defaults @@ -2651,6 +2913,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} @@ -2692,14 +2958,31 @@ % \end{macrocode} % % \changes{v1.40}{2017/06/05}{Added `textcase' package} -% We need |textcase| for better upcasing +% \changes{v2.12}{2024/12/28}{Removed `textcase' package} +% We no longer need |textcase| for better upcasing. % \begin{macrocode} -\RequirePackage{textcase} +% \RequirePackage{textcase} % \end{macrocode} % % +% \changes{v1.87}{2022/08/14}{Added `framed' package for acmcp} +% \changes{v1.89}{2022/12/25}{Added `zref-savepos' package for acmcp} +% \begin{macrocode} +\if@ACM@acmcp +\RequirePackage{framed} +\RequirePackage{zref-savepos, zref-user} +\fi +% \end{macrocode} +% % -% +% \begin{macro}{\@ACM@acmcp@delta} +% \changes{v1.89}{2022/12/25}{Added dimen} +% We need to store the dimen to store the insert length of amcp box +% \begin{macrocode} +\newdimen\@ACM@acmcp@delta +\@ACM@acmcp@delta=0pt\relax +% \end{macrocode} +% \end{macro} % %\subsection{Citations} % \changes{v1.19}{2016/07/28}{Include 'References' in PDF bookmarks @@ -2845,6 +3128,9 @@ \else \renewcommand\keywordsname{Keywords}% \fi +\if@ACM@engage + \renewcommand\abstractname{Synopsis}% +\fi \ifx\ACM@languages\@empty \else \RequirePackage[\ACM@languages]{babel}% @@ -2855,6 +3141,9 @@ \renewcommand\keywordsname{Keywords}% \fi \renewcommand\acksname{Acknowledgements}% + \if@ACM@engage + \renewcommand\abstractname{Synopsis}% + \fi }% \addto\captionsfrench{% \if@ACM@journal @@ -2999,6 +3288,14 @@ % We need to do this early since we want |hyperref| to have a chance % to redefine them again: % \begin{macrocode} +% +%<*tagged> +\let\@startsection\@startsection@kernel +\let\@sect\@sect@kernel +\let\@ssect\@ssect@kernel +\let\@xsect\@xsect@kernel +% +%<*class&!tagged> \def\@startsection#1#2#3#4#5#6{% \if@noskipsec \leavevmode \fi \par @@ -3078,7 +3375,6 @@ \fi}% \fi \ignorespaces} -\def\@seccntformat#1{\csname the#1\endcsname\quad} \def\@ssect#1#2#3#4#5{% \@tempskipa #3\relax \ifdim \@tempskipa>\z@ @@ -3091,12 +3387,15 @@ \def\@svsechd{#4{\hskip #1\relax #5}}% \fi \@xsect{#3}} +% +%<*class> +\def\@seccntformat#1{\csname the#1\endcsname\quad} % \end{macrocode} % % \end{macro} % -% \begin{macro}{\@startsection} -% \changes{v1.31}{2017/03/04}{Rededined macro} +% \begin{macro}{\@starttoc} +% \changes{v1.31}{2017/03/04}{Redefined macro} % \changes{v1.43}{2017/07/09}{Added \cs{makeatletter}} % The |amsart| package redefines \cs{startsection}. Here we redefine % it again to make the table of contents work. @@ -3106,7 +3405,9 @@ \par\removelastskip\vskip\z@skip \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}% {.5\linespacing}{\centering\contentsnamefont}{#2}% +%\@starttoc@cfgpoint@before{#1}%NEW<<<<<<<<<< (name will change) \@input{\jobname.#1}% +%\@starttoc@cfgpoint@after{#1}%NEW<<<<<<<<<<<< (name will change) \if@filesw \@xp\newwrite\csname tf@#1\endcsname \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax @@ -3209,26 +3510,28 @@ % % % -% Adding |hyperxmp| -% \changes{v1.72}{2020/06/14}{Added hyperxmp} -% \changes{v1.76}{2021/02/21}{Moved hyperxmp before hyperref, see -% \url{https://github.com/borisveytsman/acmart/issues/425}} -% \begin{macrocode} -\RequirePackage{hyperxmp} -% \end{macrocode} % % -% And now, |hyperref| +% Adding |hyperref| % \changes{v1.28}{2017/01/07}{Got rid of warnings in pdf keywords} % \changes{v1.46}{2017/08/25}{Delayed hypersetup since journal options % may change screen mode} % \changes{v1.55}{2018/10/20}{Now we use purple color for links} % \changes{v1.58}{2019/26/01}{Suppressed \cs{addtocounter} in pdf % subject} +% \changes{1.85}{2022/05/08}{Added: acmengage} +% \changes{v1.76}{2021/02/21}{Moved hyperxmp before hyperref, see +% \url{https://github.com/borisveytsman/acmart/issues/425}} +% \changes{1.92}{2023/10/14}{Moved hyperxmp again due to kernel update} +% \changes{2.04}{2024/03/17}{Explicitly load ifdraft since hyperxmp +% tries to load it inside a group} +% \changes{2.04}{2024/03/31}{Deleted loading ifdraft due to the new +% release of hyperxmp} % \begin{macrocode} \let\@footnotemark@nolink\@footnotemark \let\@footnotetext@nolink\@footnotetext \RequirePackage[bookmarksnumbered,unicode]{hyperref} +\RequirePackage{hyperxmp} \pdfstringdefDisableCommands{% \def\addtocounter#1#2{}% \def\unskip{}% @@ -3249,6 +3552,8 @@ \or % sigchi \or % sigchi-a \urlstyle{sf} +\or % acmengage +\or % acmcp \fi \AtEndPreamble{% \if@ACM@urlbreakonhyphens @@ -3436,13 +3741,28 @@ }% \@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 % \end{macrocode} % % % \begin{macro}{\parindent} % \begin{macro}{\parskip} -% Paragraphing +% \changes{1.85}{2022/05/08}{Added: acmengage} +% Paragraphing % \begin{macrocode} \setlength\parindent{10\p@} \setlength\parskip{\z@} @@ -3457,6 +3777,8 @@ \or % sigplan \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi % \end{macrocode} % @@ -3563,6 +3885,10 @@ \or % sigchi \flushbottom \or % sigchi-a +\or % acmengage + \flushbottom +\or % acmcp + \flushbottom \fi % \end{macrocode} % @@ -3624,23 +3950,27 @@ % monotype font declaration} % \changes{v1.74}{2020/10/25}{Changed the order of font loading}% % We use Libertine throughout. +% \changes{v2.12}{2024/12/29}{Use unicode-math and libertinus for Unicode engines}% +% We use Libertine throughout. % \begin{macrocode} \if@ACM@newfonts - \RequirePackage[T1]{fontenc} % Note that the order in which packages are loaded matters, % and the correct order depends on the LaTeX engine used. % See https://github.com/borisveytsman/acmart/issues/402 % and https://github.com/borisveytsman/acmart/issues/410 \ifxetex - \RequirePackage[libertine]{newtxmath} + \RequirePackage{unicode-math} + \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf} \RequirePackage[tt=false]{libertine} \setmonofont[StylisticSet=3]{inconsolata} \else \ifluatex - \RequirePackage[libertine]{newtxmath} + \RequirePackage{unicode-math} + \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf} \RequirePackage[tt=false]{libertine} \setmonofont[StylisticSet=3]{inconsolata} \else + \RequirePackage[T1]{fontenc} \RequirePackage[tt=false, type1=true]{libertine} \RequirePackage[varqu]{zi4} \RequirePackage[libertine]{newtxmath} @@ -3747,6 +4077,10 @@ \let\@vspacer\@vspacer@orig} \AtBeginEnvironment{listing*}{\let\@vspace\@vspace@orig \let\@vspacer\@vspacer@orig} +\AtBeginEnvironment{lstinputlisting}{\let\@vspace\@vspace@orig + \let\@vspacer\@vspacer@orig} +\AtBeginEnvironment{lstinputlisting*}{\let\@vspace\@vspace@orig + \let\@vspacer\@vspacer@orig} % \end{macrocode} % @@ -3788,6 +4122,8 @@ textfont={bf, small}} \captionsetup[table]{labelfont={bf, small}, textfont={bf, small}} + \or % acmengage + \or % acmcp \fi \fi % \end{macrocode} @@ -3938,6 +4274,8 @@ \def\labelenumiv{\theenumiv.} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi % \end{macrocode} % @@ -4050,11 +4388,23 @@ % \changes{1.82}{2022/02/05}{Updated abbreviations and codes for % several journals} % \changes{1.84}{2022/04/09}{New journals: JDS, GAMES} +% \changes{1.85}{2022/05/08}{New journal: JRC} +% \changes{1.87}{2022/10/18}{New journals: ACMJCSS, JATS, TORS} +% \changes{1.88}{2022/10/19}{Added ISSN for GAMES} +% \changes{1.88}{2022/10/23}{Added ISSN for ACMJCSS} +% \changes{1.88}{2022/10/24}{Added PACMNET} +% \changes{1.89}{2023/03/25}{Added PACMMOD} +% \changes{1.89}{2023/03/25}{Added TOPML} +% \changes{1.90}{2023/03/30}{Added TOPML eISSN} +% \changes{2.05}{2024/04/04}{New data for TELO} +% \changes{2.06}{2024/04/13}{Added eISSN for a number of journals} +% \changes{2.07}{2024/04/17}{Another change for TELO} % % We use the |xkeyval| interface to define journal titles and the relevant % information % \begin{macrocode} \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{% + ACMJCSS,% CIE,% CSUR,% DGOV,% @@ -4065,15 +4415,20 @@ HEALTH,% IMWUT,% JACM,% + JATS,% JDIQ,% JDS,% JEA,% JERIC,% JETC,% JOCCH,% + JRC,% PACMCGIT,% PACMHCI,% + PACMMOD,% + PACMNET,% PACMPL,% + PACMSE,% POMACS,% TAAS,% TACCESS,% @@ -4108,8 +4463,10 @@ TOMPECS,% TOMS,% TOPC,% - TOPS,% TOPLAS,% + TOPML,% + TOPS,% + TORS,% TOS,% TOSEM,% TOSN,% @@ -4122,7 +4479,12 @@ 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}% + \def\@permissionCodeTwo{2834-5533}% +\or % CIE \def\@journalName{ACM Computers in Entertainment}% \def\@journalNameShort{ACM Comput. Entertain.}% \def\@permissionCodeOne{1544-3574}% @@ -4130,18 +4492,22 @@ \def\@journalName{ACM Computing Surveys}% \def\@journalNameShort{ACM Comput. Surv.}% \def\@permissionCodeOne{0360-0300}% + \def\@permissionCodeTwo{1557-7341}% \or % DGOV \def\@journalName{Digital Government: Research and Practice}% \def\@journalNameShort{Digit. Gov. Res. Pract.}% \def\@permissionCodeOne{2639-0175}% + \def\@permissionCodeTwo{2639-0175}% \or % DLT \def\@journalName{Distributed Ledger Technologies: Research and Practice}% \def\@journalNameShort{Distrib. Ledger Technol.}% \def\@permissionCodeOne{2769-6472}% + \def\@permissionCodeTwo{2769-6480}% \or % DTRAP \def\@journalName{Digital Threats: Research and Practice}% \def\@journalNameShort{Digit. Threat. Res. Pract.}% \def\@permissionCodeOne{2576-5337}% + \def\@permissionCodeTwo{2576-5337}% \or % FAC \def\@journalName{Formal Aspects of Computing}% \def\@journalNameShort{Form. Asp. Comput.}% @@ -4150,27 +4516,38 @@ \or % GAMES \def\@journalName{ACM Games: Research and Practice}% \def\@journalNameShort{ACM Games}% + \def\@permissionCodeOne{2832-5516}% + \def\@permissionCodeTwo{2832-5516}% \or % HEALTH \def\@journalName{ACM Transactions on Computing for Healthcare}% \def\@journalNameShort{ACM Trans. Comput. Healthcare}% \def\@permissionCodeOne{2637-8051}% + \def\@permissionCodeTwo{2637-8051}% \or % IMWUT \def\@journalName{Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies}% \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}% \def\@permissionCodeOne{2474-9567}% + \def\@permissionCodeTwo{2474-9567}% \@ACM@screentrue \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% \or % JACM \def\@journalName{Journal of the ACM}% \def\@journalNameShort{J. ACM}% \def\@permissionCodeOne{0004-5411}% + \def\@permissionCodeTwo{1557-735X}% +\or % JATS + \def\@journalName{Journal on Autonomous Transportation Systems}% + \def\@journalNameShort{ACM J. Auton. Transport. Syst.}% + \def\@permissionCodeOne{2833-0528}% + \def\@permissionCodeTwo{2833-0528}% \or % JDIQ \def\@journalName{ACM Journal of Data and Information Quality}% \def\@journalNameShort{ACM J. Data Inform. Quality}% \def\@permissionCodeOne{1936-1955}% + \def\@permissionCodeTwo{1936-1963}% \or % JDS - \def\@journalName{ACM/JMS Journal of Data Science}% + \def\@journalName{ACM/IMS Journal of Data Science}% \def\@journalNameShort{ACM/IMS J. Data Sci.}% \def\@permissionCodeOne{2831-3194}% \def\@permissionCodeTwo{2831-3194}% @@ -4178,6 +4555,7 @@ \def\@journalName{ACM Journal of Experimental Algorithmics}% \def\@journalNameShort{ACM J. Exp. Algor.}% \def\@permissionCodeOne{1084-6654}% + \def\@permissionCodeTwo{1084-6654}% \or % JERIC \def\@journalName{ACM Journal of Educational Resources in Computing}% \def\@journalNameShort{ACM J. Edu. Resources in Comput.}% @@ -4186,43 +4564,72 @@ \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}% \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}% \def\@permissionCodeOne{1550-4832}% + \def\@permissionCodeTwo{1550-4840}% \or % JOCCH \def\@journalName{ACM Journal on Computing and Cultural Heritage}% \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}% + \def\@permissionCodeTwo{2832-0565}% \or % PACMCGIT \def\@journalName{Proceedings of the ACM on Computer Graphics and Interactive Techniques}% \def\@journalNameShort{Proc. ACM Comput. Graph. Interact. Tech.}% \def\@permissionCodeOne{2577-6193}% + \def\@permissionCodeTwo{2577-6193}% \@ACM@screentrue \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% \or % PACMHCI \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}% \def\@journalNameShort{Proc. ACM Hum.-Comput. Interact.}% \def\@permissionCodeOne{2573-0142}% + \def\@permissionCodeTwo{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}% + \def\@permissionCodeTwo{2836-6573}% +\or % PACMNET + \def\@journalName{Proceedings of the ACM on Networkng}% + \def\@journalNameShort{Proc. ACM Netw.}% + \def\@permissionCodeOne{2834-5509}% + \def\@permissionCodeTwo{2834-5509}% \or % PACMPL \def\@journalName{Proceedings of the ACM on Programming Languages}% \def\@journalNameShort{Proc. ACM Program. Lang.}% \def\@permissionCodeOne{2475-1421}% + \def\@permissionCodeTwo{2475-1421}% + \@ACM@screentrue + \PackageInfo{\@classname}{Using screen mode due to \@journalCode}% +\or % PACMSE + \def\@journalName{Proceedings of the ACM on Software Engineering}% + \def\@journalNameShort{Proc. ACM Softw. Eng.}% + \def\@permissionCodeOne{2994-970X}% + \def\@permissionCodeTwo{2994-970X}% \@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\@journalNameShort{Proc. ACM Meas. Anal. Comput. Syst.}% \def\@permissionCodeOne{2476-1249}% + \def\@permissionCodeTwo{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.}% \def\@permissionCodeOne{1556-4665}% + \def\@permissionCodeTwo{1556-4703}% \or % TACCESS \def\@journalName{ACM Transactions on Accessible Computing}% \def\@journalNameShort{ACM Trans. Access. Comput.}% \def\@permissionCodeOne{1936-7228}% + \def\@permissionCodeTwo{1936-7236}% \or % TACO \def\@journalName{ACM Transactions on Architecture and Code Optimization}% \def\@journalNameShort{ACM Trans. Arch. Code Optim.}% @@ -4232,18 +4639,22 @@ \def\@journalName{ACM Transactions on Algorithms}% \def\@journalNameShort{ACM Trans. Algor.}% \def\@permissionCodeOne{1549-6325}% + \def\@permissionCodeTwo{1549-6333}% \or % TALLIP \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}% \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}% \def\@permissionCodeOne{2375-4699}% + \def\@permissionCodeTwo{2375-4702}% \or % TAP \def\@journalName{ACM Transactions on Applied Perception}% \def\@journalNameShort{ACM Trans. Appl. Percept.}% \def\@permissionCodeOne{1544-3558}% + \def\@permissionCodeTwo{1544-3965}% \or % TCPS \def\@journalName{ACM Transactions on Cyber-Physical Systems}% \def\@journalNameShort{ACM Trans. Cyber-Phys. Syst.}% \def\@permissionCodeOne{2378-962X}% + \def\@permissionCodeTwo{2378-9638}% \or % TDS \def\@journalName{ACM/IMS Transactions on Data Science}% \def\@journalNameShort{ACM/IMS Trans. Data Sci.}% @@ -4252,26 +4663,32 @@ \def\@journalName{ACM Transactions on Economics and Computation}% \def\@journalNameShort{ACM Trans. Econ. Comput.}% \def\@permissionCodeOne{2167-8375}% + \def\@permissionCodeTwo{2167-8383}% \or % TECS \def\@journalName{ACM Transactions on Embedded Computing Systems}% \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}% \def\@permissionCodeOne{1539-9087}% + \def\@permissionCodeTwo{1558-3465}% \or % TELO - \def\@journalName{ACM Transactions on Evolutionary Learning}% - \def\@journalNameShort{ACM Trans. Evol. Learn.}% - \def\@permissionCodeOne{2688-3007}% + \def\@journalName{ACM Transactions on Evolutionary Learning and Optimization}% + \def\@journalNameShort{ACM Trans. Evol. Learn. Optim.}% + \def\@permissionCodeOne{2688-299X}% + \def\@permissionCodeTwo{2688-3007}% \or % THRI \def\@journalName{ACM Transactions on Human-Robot Interaction}% \def\@journalNameShort{ACM Trans. Hum.-Robot Interact.}% \def\@permissionCodeOne{2573-9522}% + \def\@permissionCodeTwo{2573-9522}% \or % TIIS \def\@journalName{ACM Transactions on Interactive Intelligent Systems}% \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}% \def\@permissionCodeOne{2160-6455}% + \def\@permissionCodeTwo{2160-6463}% \or % TIOT \def\@journalName{ACM Transactions on Internet of Things}% \def\@journalNameShort{ACM Trans. Internet Things}% \def\@permissionCodeOne{2577-6207}% + \def\@permissionCodeTwo{2577-6207}% \or % TISSEC \def\@journalName{ACM Transactions on Information and System Security}% \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}% @@ -4280,54 +4697,67 @@ \def\@journalName{ACM Transactions on Intelligent Systems and Technology}% \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}% \def\@permissionCodeOne{2157-6904}% + \def\@permissionCodeTwo{2157-6912}% \or % TKDD \def\@journalName{ACM Transactions on Knowledge Discovery from Data}% \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}% \def\@permissionCodeOne{1556-4681}% + \def\@permissionCodeTwo{1556-472X}% \or % TMIS \def\@journalName{ACM Transactions on Management Information Systems}% \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}% \def\@permissionCodeOne{2158-656X}% + \def\@permissionCodeTwo{2158-6578}% \or % TOCE \def\@journalName{ACM Transactions on Computing Education}% \def\@journalNameShort{ACM Trans. Comput. Educ.}% \def\@permissionCodeOne{1946-6226}% + \def\@permissionCodeTwo{1946-6226}% \or % TOCHI \def\@journalName{ACM Transactions on Computer-Human Interaction}% \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}% \def\@permissionCodeOne{1073-0516}% + \def\@permissionCodeTwo{1557-7325}% \or % TOCL \def\@journalName{ACM Transactions on Computational Logic}% \def\@journalNameShort{ACM Trans. Comput. Logic}% \def\@permissionCodeOne{1529-3785}% + \def\@permissionCodeTwo{1557-945X}% \or % TOCS \def\@journalName{ACM Transactions on Computer Systems}% \def\@journalNameShort{ACM Trans. Comput. Syst.}% \def\@permissionCodeOne{0734-2071}% + \def\@permissionCodeTwo{1557-7333}% \or % TOCT \def\@journalName{ACM Transactions on Computation Theory}% \def\@journalNameShort{ACM Trans. Comput. Theory}% \def\@permissionCodeOne{1942-3454}% + \def\@permissionCodeTwo{1942-3462}% \or % TODAES \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}% \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}% \def\@permissionCodeOne{1084-4309}% + \def\@permissionCodeTwo{1557-7309}% \or % TODS \def\@journalName{ACM Transactions on Database Systems}% \def\@journalNameShort{ACM Trans. Datab. Syst.}% \def\@permissionCodeOne{0362-5915}% + \def\@permissionCodeTwo{1557-4644}% \or % TOG \def\@journalName{ACM Transactions on Graphics}% \def\@journalNameShort{ACM Trans. Graph.}% - \def\@permissionCodeOne{0730-0301} + \def\@permissionCodeOne{0730-0301}% + \def\@permissionCodeTwo{1557-7368}% \or % TOIS \def\@journalName{ACM Transactions on Information Systems}% \def\@journalNameShort{ACM Trans. Inf. Syst.}% \def\@permissionCodeOne{1046-8188}% + \def\@permissionCodeTwo{1558-2868}% \or % TOIT \def\@journalName{ACM Transactions on Internet Technology}% \def\@journalNameShort{ACM Trans. Internet Technol.}% \def\@permissionCodeOne{1533-5399}% + \def\@permissionCodeTwo{1557-6051}% \or % TOMACS \def\@journalName{ACM Transactions on Modeling and Computer Simulation}% \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}% @@ -4342,58 +4772,82 @@ \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}% \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}% \def\@permissionCodeOne{2376-3639}% + \def\@permissionCodeTwo{2376-3647}% \or % TOMS \def\@journalName{ACM Transactions on Mathematical Software}% \def\@journalNameShort{ACM Trans. Math. Softw.}% \def\@permissionCodeOne{0098-3500}% + \def\@permissionCodeTwo{1557-7295}% \or % TOPC \def\@journalName{ACM Transactions on Parallel Computing}% \def\@journalNameShort{ACM Trans. Parallel Comput.}% - \def\@permissionCodeOne{1539-9087}% -\or % TOPS - \def\@journalName{ACM Transactions on Privacy and Security}% - \def\@journalNameShort{ACM Trans. Priv. Sec.}% - \def\@permissionCodeOne{2471-2566}% + \def\@permissionCodeOne{2329-4949}% + \def\@permissionCodeTwo{2329-4957}% \or % TOPLAS \def\@journalName{ACM Transactions on Programming Languages and Systems}% \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}% \def\@permissionCodeOne{0164-0925}% + \def\@permissionCodeTwo{1558-4593}% +\or % TOPML + \def\@journalName{ACM Transactions on Probabilistic Machine Learning}% + \def\@journalNameShort{ACM Trans. Probab. Mach. Learn.}% + \def\@permissionCodeOne{2836-8924}% + \def\@permissionCodeTwo{2836-8924}% +\or % TOPS + \def\@journalName{ACM Transactions on Privacy and Security}% + \def\@journalNameShort{ACM Trans. Priv. Sec.}% + \def\@permissionCodeOne{2471-2566}% + \def\@permissionCodeTwo{2471-2574}% +\or % TORS + \def\@journalName{ACM Transactions on Recommender Systems}% + \def\@journalNameShort{ACM Trans. Recomm. Syst.}% + \def\@permissionCodeOne{2770-6699}% + \def\@permissionCodeTwo{2770-6699}% \or % TOS \def\@journalName{ACM Transactions on Storage}% \def\@journalNameShort{ACM Trans. Storage}% \def\@permissionCodeOne{1553-3077}% + \def\@permissionCodeTwo{1553-3093}% \or % TOSEM \def\@journalName{ACM Transactions on Software Engineering and Methodology}% \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}% \def\@permissionCodeOne{1049-331X}% + \def\@permissionCodeTwo{1557-7392}% \or % TOSN \def\@journalName{ACM Transactions on Sensor Networks}% \def\@journalNameShort{ACM Trans. Sensor Netw.}% \def\@permissionCodeOne{1550-4859}% + \def\@permissionCodeTwo{1550-4867}% \or % TQC \def\@journalName{ACM Transactions on Quantum Computing}% \def\@journalNameShort{ACM Trans. Quantum Comput.}% \def\@permissionCodeOne{2643-6817}% + \def\@permissionCodeTwo{2643-6817}% \or % TRETS \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}% \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}% \def\@permissionCodeOne{1936-7406}% + \def\@permissionCodeTwo{1936-7414}% \or % TSAS \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}% \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}% \def\@permissionCodeOne{2374-0353}% + \def\@permissionCodeTwo{2374-0361}% \or % TSC \def\@journalName{ACM Transactions on Social Computing}% \def\@journalNameShort{ACM Trans. Soc. Comput.}% \def\@permissionCodeOne{2469-7818}% + \def\@permissionCodeTwo{2469-7826}% \or % TSLP \def\@journalName{ACM Transactions on Speech and Language Processing}% \def\@journalNameShort{ACM Trans. Speech Lang. Process.}% \def\@permissionCodeOne{1550-4875}% + \def\@permissionCodeTwo{2329-9304}% \or % TWEB \def\@journalName{ACM Transactions on the Web}% \def\@journalNameShort{ACM Trans. Web}% \def\@permissionCodeOne{1559-1131}% + \def\@permissionCodeTwo{1559-114X}% \else % FACMP, a dummy journal \def\@journalName{ACM Just Accepted}% \def\@journalNameShort{ACM Accepted}% @@ -4409,23 +4863,28 @@ % And the syntactic sugar around it % \begin{macrocode} \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}% - \global\@ACM@journal@bibstriptrue} + \global\@ACM@journal@bibstriptrue + \global\@ACM@journal@bibstrip@or@togtrue} % \end{macrocode} % % \end{macro} % % The defaults: +% \changes{v2.04}{2024/03/17}{eISSN is printed, rather than pSSN} % \begin{macrocode} \def\@journalCode@nr{0} \def\@journalName{}% \def\@journalNameShort{\@journalName}% \def\@permissionCodeOne{XXXX-XXXX}% -\def\@permissionCodeTwo{}% +\def\@permissionCodeTwo{\@permissionCodeOne}% % \end{macrocode} % % % \begin{macro}{\acmConference} % \changes{v1.59}{2019/04/20}{Setting \cs{@ACM@journal@bibstrip}} +% \changes{v2.02}{2024/01/06}{Moved here setting the conference title +% for bibstrip} +% \changes{v2.03}{2024/02/04}{Made setting bibstrip overriding journal} % This is the conference command % \begin{macrocode} \newcommand\acmConference[4][]{% @@ -4437,6 +4896,11 @@ \gdef\acmConference@shortname{#2}% \fi \global\@ACM@journal@bibstripfalse + \ifx\@acmBooktitle\@empty\relax + \acmBooktitle{Proceedings of \acmConference@name + \ifx\acmConference@name\acmConference@shortname\else + \ (\acmConference@shortname)\fi}% + \fi } \if@ACM@journal\else \acmConference[Conference'17]{ACM Conference}{July 2017}{Washington, @@ -4448,17 +4912,14 @@ % % \begin{macro}{\acmBooktitle} % \changes{v1.44}{2017/08/11}{Added macro} +% \changes{v2.01}{2024/01/06}{Moved default conference title to +% conference setting} % \begin{macro}{\@acmBooktitle} % \changes{v1.44}{2017/08/11}{Added macro} % The book title of the conference: % \begin{macrocode} \def\acmBooktitle#1{\gdef\@acmBooktitle{#1}} \acmBooktitle{} -\ifx\acmConference@name\@undefined\else -\acmBooktitle{Proceedings of \acmConference@name - \ifx\acmConference@name\acmConference@shortname\else - \ (\acmConference@shortname)\fi} -\fi % \end{macrocode} % % \end{macro} @@ -4656,11 +5117,9 @@ \def\position##1{\ignorespaces}% \def\institution##1{##1\ignorespaces}% \def\department{\@ifnextchar[{\@department}{\@department[]}}% - \def\@department[##1]##2{\unskip, ##2\ignorespaces}% - \let\streetaddress\position + \def\@department[##1]##2{##2, \ignorespaces}% \let\city\position \let\state\position - \let\postcode\position \let\country\position Also with #1\unskip.\egroup} % \end{macrocode} @@ -4685,7 +5144,7 @@ % \begin{macro}{\orcid} % \changes{v1.15}{2016/06/25}{Introduced macro} % \changes{v1.76}{2021/03/15}{Added code for orcid links} -% We rededine the command to typeset the current author +% We redefine the command to typeset the current author % \begin{macrocode} \def\orcid#1{\unskip\ignorespaces% \IfBeginWith{#1}{http}{% @@ -4796,10 +5255,12 @@ % Adding a footnote mark to the authors % \begin{macrocode} \newcommand\authornotemark[1][\relax]{% - \ifx#1\relax\relax\relax - \g@addto@macro\addresses{\@authornotemark}% - \else - \g@addto@macro\addresses{\@@authornotemark{#1}}% + \if@ACM@anonymous\else + \ifx#1\relax\relax\relax + \g@addto@macro\addresses{\@authornotemark}% + \else + \g@addto@macro\addresses{\@@authornotemark{#1}}% + \fi \fi} % \end{macrocode} % @@ -4884,12 +5345,13 @@ % \end{macro} % % \begin{macro}{\acmPrice} -% The price +% \changes{v2.00}{2023/10/22}{Deleted macro} +% \changes{v2.01}{2023/12/29}{Now the macro produces a warning} +% The price---obsolete % \begin{macrocode} -\def\acmPrice#1{\def\@acmPrice{#1}} -\acmPrice{15.00} +\def\acmPrice#1{\ClassWarning{\@classname}{The macro \string\acmPrice + is obsolete. ACM no longer prints the price in bibstrip.}} % \end{macrocode} -% % \end{macro} % % @@ -4909,7 +5371,7 @@ % The book ISBN % \begin{macrocode} \def\acmISBN#1{\def\@acmISBN{#1}} -\acmISBN{978-x-xxxx-xxxx-x/YY/MM} +\acmISBN{978-x-xxxx-xxxx-x/YYYY/MM} % \end{macrocode} % % \end{macro} @@ -4926,13 +5388,7 @@ % % \begin{macro}{\if@ACM@badge} % \changes{v1.06}{2016/05/01}{Added macro} -% Whether to print a badge. Note that either a left or right badge -% triggers it: -% \begin{macrocode} -\newif\if@ACM@badge -\@ACM@badgefalse -% \end{macrocode} -% +% \changes{v1.89}{2022/12/27}{Deleted macro} % \end{macro} % % \begin{macro}{\@ACM@badge@width} @@ -4940,7 +5396,7 @@ % The width of the badge % \begin{macrocode} \newlength\@ACM@badge@width -\setlength\@ACM@badge@width{5pc} +\setlength\@ACM@badge@width{3pc} % \end{macrocode} % % \end{macro} @@ -4948,7 +5404,7 @@ % % \begin{macro}{\@ACM@title@width} % \changes{v1.06}{2016/05/01}{Added macro} -% The width of the badge +% The width of the title % \begin{macrocode} \newlength\@ACM@title@width % \end{macrocode} @@ -4958,40 +5414,80 @@ % % \begin{macro}{\@ACM@badge@skip} % \changes{v1.06}{2016/05/01}{Added macro} -% The space between the badge and the title +% \changes{v1.89}{2022/12/27}{Redefined macro} +% The spacing between badges % \begin{macrocode} \newlength\@ACM@badge@skip -\setlength\@ACM@badge@skip{1pc} +\setlength\@ACM@badge@skip{1pt} % \end{macrocode} % % \end{macro} % +% \begin{macro}{\@acmBadgeR} +% \changes{v1.89}{2022/12/27}{Introduced macro} +% \begin{macrocode} +\def\@acmBadgeR{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@acmBadgeL} +% \changes{v1.89}{2022/12/27}{Introduced macro} +% \begin{macrocode} +\def\@acmBadgeL{} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\acmBadgeR} % \changes{v1.06}{2016/05/01}{Added macro} +% \changes{v1.89}{2022/12/27}{Redefined macro} % Setting the right badge % \begin{macrocode} -\newcommand\acmBadgeR[2][]{\@ACM@badgetrue - \def\@acmBadgeR@url{#1}% - \def\@acmBadgeR@image{#2}} -\def\@acmBadgeR@url{} -\def\@acmBadgeR@image{} +\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} % \end{macrocode} % % \end{macro} % % \begin{macro}{\acmBadgeL} % \changes{v1.06}{2016/05/01}{Added macro} +% \changes{v1.89}{2022/12/27}{Redefined macro} % Setting the left badge % \begin{macrocode} -\newcommand\acmBadgeL[2][]{\@ACM@badgetrue - \def\@acmBadgeL@url{#1}% - \def\@acmBadgeL@image{#2}} -\def\@acmBadgeL@url{} -\def\@acmBadgeL@image{} +\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} % \end{macrocode} % % \end{macro} % +% \begin{macro}{\acmBadge} +% \changes{v1.89}{2023/01/07}{Added macro} +% Just a syntax sugar for \cs{acmBadgeR} +% \begin{macrocode} +\let\acmBadge=\acmBadgeR +% \end{macrocode} +% \end{macro} % % \begin{macro}{\startPage} % The start page of the paper @@ -5179,12 +5675,92 @@ \fi} \AtEndDocument{% \ifx\@received\@empty\else - \par\bigskip\noindent\small\normalfont\@received\par + \par\bigskip\noindent{\small\normalfont\@received\par}% \fi} % \end{macrocode} % % \end{macro} % +% \begin{macro}{\acmArticleType} +% \changes{v1.87}{2022/08/13}{Introduced macro} +% Article type. We set up the color. +% \begin{macrocode} +\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} +% +% \end{macro} +% \begin{macro}{\@ACM@color@frame} +% \changes{v1.87}{2022/08/13}{Introduced macro} +% \changes{v1.89}{2022/12/25}{Added saving the position of the bottom} +% The colored frame for the acmcp +% \begin{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} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\acmCodeDataLink} +% \changes{v1.87}{2022/08/13}{Introduced macro} +% \changes{v1.87}{2022/08/28}{Added possibility to have several links} +% The code link +% \begin{macrocode} +\def\acmCodeLink#1{% + \ifx\@acmCodeDataLink\@empty + \gdef\@acmCodeDataLink{\url{#1}}% + \else + \g@addto@macro{\@acmCodeDataLink}{\\ \url{#1}}% + \fi} +\def\@acmCodeDataLink{} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\acmContributions} +% \changes{v1.91}{2023/06/22}{Restored the macro} +% The authors' contrubution statement +% \begin{macrocode} +\def\acmContributions#1{\gdef\@acmContributions{#1}} +\acmContributions{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\acmDataLink} +% \changes{v1.87}{2022/08/13}{Introduced macro} +% \changes{v1.87}{2022/08/28}{Now this is the same as the code link} +% The code link +% \begin{macrocode} +\let\acmDataLink\acmCodeLink +% \end{macrocode} +% +% \end{macro} +% +% +% %\subsection{Concepts system} %\label{sec:concepts} % @@ -5307,6 +5883,9 @@ % \changes{v1.51}{2018/04/05}{Suppress price if the copyright is set % to iw3c2w3 or iw3c2w3g} % \changes{v1.51}{2018/04/05}{Corrected the bug with price suppression} +% \changes{v1.85}{2022/05/08}{Added CC licenses} +% \changes{v2.00}{2023/10/22}{Deleted acmPrice} +% \changes{v2.00}{2023/10/22}{Deleted acmPrice} % Keys: % \begin{macrocode} \define@choicekey*{ACM@}{acmcopyrightmode}[% @@ -5314,7 +5893,7 @@ acmcopyright,acmlicensed,rightsretained,% usgov,usgovmixed,cagov,cagovmixed,licensedusgovmixed,% licensedcagov,licensedcagovmixed,othergov,licensedothergov,% - iw3c2w3,iw3c2w3g}{% + iw3c2w3,iw3c2w3g,cc}{% \@printpermissiontrue \@printcopyrighttrue \@acmownedtrue @@ -5328,13 +5907,11 @@ \fi \ifnum\acm@copyrightmode=3\relax % rightsretained \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% \fi \ifnum\acm@copyrightmode=4\relax % usgov \@printpermissiontrue \@printcopyrightfalse \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% \fi \ifnum\acm@copyrightmode=6\relax % cagov \@acmownedfalse @@ -5356,11 +5933,12 @@ \fi \ifnum\acm@copyrightmode=13\relax % iw3c2w3 \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% \fi \ifnum\acm@copyrightmode=14\relax % iw3c2w3g \@acmownedfalse - \AtBeginDocument{\acmPrice{}}% + \fi + \ifnum\acm@copyrightmode=15\relax % cc + \@acmownedfalse \fi} % \end{macrocode} % @@ -5368,22 +5946,36 @@ % This is the syntactic sugar around setting keys. % \begin{macrocode} \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}} -\setcopyright{acmcopyright} +\setcopyright{acmlicensed} % \end{macrocode} % % \end{macro} % +% \begin{macro}{\setcctype} +% \changes{v1.85}{2022/05/08}{Added macro} +% The type of Creative Commons license used +% \begin{macrocode} +\newcommand\setcctype[2][4.0]{% + \def\ACM@cc@version{#1}% + \def\ACM@cc@type{#2}} +\setcctype{by} +% \end{macrocode} +% +% \end{macro} % % \begin{macro}{\@copyrightowner} % \changes{v1.40}{2017/06/16}{Added new copyright version: % licensedcagov} % \changes{v1.52}{2018/04/09}{Rewording of licenses} +% \changes{v1.85}{2022/05/08}{Added CC licenses} +% \changes{v2.00}{2023/10/22}{Changed wording} +% \changes{v2.04}{2024/03/28}{Changed wording} % Here is the owner of the copyright % \begin{macrocode} \def\@copyrightowner{% \ifcase\acm@copyrightmode\relax % none \or % acmcopyright - Association for Computing Machinery. + ACM\@. \or % acmlicensed Copyright held by the owner/author(s). Publication rights licensed to ACM\@. @@ -5391,22 +5983,21 @@ Copyright held by the owner/author(s). \or % usgov \or % usgovmixed - Association for Computing Machinery. + Copyright held by the owner/author(s). \or % cagov - Crown in Right of Canada. + Copyright Crown in Right of Canada. \or %cagovmixed - Association for Computing Machinery. + Copyright held by the owner/author(s). \or %licensedusgovmixed Copyright held by the owner/author(s). Publication rights licensed to ACM\@. \or % licensedcagov - Crown in Right of Canada. Publication rights licensed to - ACM\@. + Copyright held by the owner/author(s). \or %licensedcagovmixed Copyright held by the owner/author(s). Publication rights licensed to ACM\@. \or % othergov - Association for Computing Machinery. + Copyright held by the owner/author(s). \or % licensedothergov Copyright held by the owner/author(s). Publication rights licensed to ACM\@. @@ -5416,6 +6007,8 @@ \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} % \end{macrocode} % @@ -5431,11 +6024,24 @@ % % \end{macro} % +% \begin{macro}{\@ACM@copyright@check@cc} +% \changes{v1.87}{2022/07/30}{Added macro} +% \changes{v2.00}{2023/10/22}{Moved to warning} +% \changes{v2.09}{2024/08/25}{Deleted macro} +% This macro is no longer needed due to the change in ACM policy. +% \end{macro} +% % \begin{macro}{\@copyrightpermission} % \changes{v1.40}{2017/06/16}{Added new copyright version: licensedcagov} % \changes{v1.50}{2018/02/07}{New copyright statements for iw3c2w3[g]} % \changes{v1.52}{2018/04/09}{Another rewording of copyright % statements for iw3c2w3[g]} +% \changes{v1.85}{2022/05/08}{Added CC licenses} +% \changes{v1.87}{2022/07/30}{CC licenses now are allowed only for +% non-acm or ACM engage publications} +% \changes{v2.09}{2024/08/25}{Deleted checking whether CC licenses are +% allowed} +% \changes{v2.11}{2024/12/21}{Changed URL for CC licenses} % The canned permission block. % \begin{macrocode} \def\@copyrightpermission{% @@ -5447,10 +6053,10 @@ advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is - permitted. To copy otherwise, or republish, to post on servers or to - redistribute to lists, requires prior specific permission - and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + permitted. To copy otherwise, or republish, to post on servers or + to redistribute to lists, requires prior specific permission + and\hspace*{.5pt}/or + a fee. Request permissions from permissions@acm.org. \or % acmlicensed Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided @@ -5458,97 +6064,102 @@ advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit - is permitted. To copy otherwise, or republish, to post on servers - or to redistribute to lists, requires prior specific permission - and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + is permitted. To copy otherwise, or republish, to post on servers + or to redistribute to lists, requires prior specific permission + and\hspace*{.5pt}/or a fee. Request permissions from + permissions@acm.org. \or % rightsretained - Permission to make digital or hard copies of part or all of this work - for personal or classroom use is granted without fee provided that - copies are not made or distributed for profit or commercial advantage - and that copies bear this notice and the full citation on the first - page. Copyrights for third-party components of this work must be - honored. For all other uses, contact the - owner\hspace*{.5pt}/author(s). + Permission to make digital or hard copies of all or part of this + work for personal or classroom use is granted without fee provided + that copies are not made or distributed for profit or commercial + advantage and that copies bear this notice and the full citation on + the first page. Copyrights for third-party components of this work + must be honored. For all other uses, contact the + owner\hspace*{.5pt}/author(s). \or % usgov This paper is authored by an employee(s) of the United States Government and is in the public domain. Non-exclusive copying or redistribution is allowed, provided that the article citation is given and the authors and agency are clearly identified as its - source. + source. Request permissions from + owner\hspace*{.5pt}/author(s). \or % usgovmixed ACM acknowledges that this contribution was authored or co-authored by an employee, contractor, or affiliate of the United States government. As such, the United States government retains a nonexclusive, royalty-free right to publish or reproduce this - article, or to allow others to do so, for government purposes only. + article, or to allow others to do so, for government purposes + only. Request permissions from owner\hspace*{.5pt}/author(s). \or % cagov - This article was authored by employees of the Government of Canada. - As such, the Canadian government retains all interest in the - copyright to this work and grants to ACM a nonexclusive, - royalty-free right to publish or reproduce this article, or to allow - others to do so, provided that clear attribution is given both to - the authors and the Canadian government agency employing them. - Permission to make digital or hard copies for personal or classroom - use is granted. Copies must bear this notice and the full citation - on the first page. Copyrights for components of this work owned by - others than the Canadian Government must be honored. To copy - otherwise, distribute, republish, or post, requires prior specific - permission and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + This article was authored by employees of the Government of + Canada. As such, the Canadian government retains all interest in + the copyright to this work and grants to ACM a nonexclusive, + royalty-free right to publish or reproduce this article, or to + allow others to do so, provided that clear attribution is given + both to the authors and the Canadian government agency employing + them. Permission to make digital or hard copies for personal or + classroom use is granted. Copies must bear this notice and the full + citation on the first page. Copyrights for components of this work + owned by others than the Canadian Government must be honored. To + copy otherwise, distribute, republish, or post, requires prior + specific permission and/or a fee. Request permissions from + owner\hspace*{.5pt}/author(s). \or % cagovmixed ACM acknowledges that this contribution was co-authored by an affiliate of the national government of Canada. As such, the Crown - in Right of Canada retains an equal interest in the copyright. - Reprints must include clear attribution to ACM and the author's - government agency affiliation. Permission to make digital or hard - copies for personal or classroom use is granted. Copies must bear - this notice and the full citation on the first page. Copyrights for - components of this work owned by others than ACM must be honored. - To copy otherwise, distribute, republish, or post, requires prior - specific permission and\hspace*{.5pt}/or a fee. Request permissions - from permissions@acm.org. + in Right of Canada retains an equal interest in the + copyright. Reprints must include clear attribution to ACM and the + author’s government agency affiliation. Permission to make digital + or hard copies for personal or classroom use is granted. Copies + must bear this notice and the full citation on the first + page. Copyrights for components of this work owned by others than + ACM must be honored. To copy otherwise, distribute, republish, or + post, requires prior specific permission and/or a fee. Request + permissions from owner\hspace*{.5pt}/author(s). \or % licensedusgovmixed Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the United States government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government - purposes only. + purposes only. Request permissions from + owner\hspace*{.5pt}/author(s). \or % licensedcagov - This article was authored by employees of the Government of Canada. - As such, the Canadian government retains all interest in the - copyright to this work and grants to ACM a nonexclusive, - royalty-free right to publish or reproduce this article, or to allow - others to do so, provided that clear attribution is given both to - the authors and the Canadian government agency employing them. - Permission to make digital or hard copies for personal or classroom - use is granted. Copies must bear this notice and the full citation - on the first page. Copyrights for components of this work owned by - others than the Canadian Government must be honored. To copy - otherwise, distribute, republish, or post, requires prior specific - permission and\hspace*{.5pt}/or a fee. Request permissions from - permissions@acm.org. + This article was authored by employees of the Government of + Canada. As such, the Canadian government retains all interest in + the copyright to this work and grants to ACM a nonexclusive, + royalty-free right to publish or reproduce this article, or to + allow others to do so, provided that clear attribution is given + both to the authors and the Canadian government agency employing + them. Permission to make digital or hard copies for personal or + classroom use is granted. Copies must bear this notice and the full + citation on the first page. Copyrights for components of this work + owned by others than the Canadian Government must be honored. To + copy otherwise, distribute, republish, or post, requires prior + specific permission and/or a fee. Request permissions from + owner\hspace*{.5pt}/author(s). \or % licensedcagovmixed - Publication rights licensed to ACM\@. ACM acknowledges that this + Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the national government of Canada. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government - purposes only. + purposes only. Request permissions from + owner\hspace*{.5pt}/author(s). \or % othergov ACM acknowledges that this contribution was authored or co-authored - by an employee, contractor or affiliate of a national government. As - such, the Government retains a nonexclusive, royalty-free right to - publish or reproduce this article, or to allow others to do so, for - Government purposes only. + by an employee, contractor or affiliate of a national + government. As such, the Government retains a nonexclusive, + royalty-free right to publish or reproduce this article, or to + allow others to do so, for Government purposes only. Request + permissions from owner\hspace*{.5pt}/author(s). \or % licensedothergov Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes - only. + only. Request permissions from owner\hspace*{.5pt}/author(s). \or % iw3c2w3 This paper is published under the Creative Commons Attribution~4.0 International (CC-BY~4.0) license. Authors reserve their rights to @@ -5560,13 +6171,29 @@ (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 + \IfEq{\ACM@cc@type}{zero}{% + \def\ACM@CC@Url{https://creativecommons.org/publicdomain/zero/1.0}}{% + \edef\ACM@CC@Url{https://creativecommons.org/licenses/\ACM@cc@type/\ACM@cc@version}}% + \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} % \end{macrocode} % % \end{macro} % -% -% +%% % % \begin{macro}{\copyrightyear} % By default, the copyright year is the same as \cs{acmYear}, but @@ -5618,7 +6245,7 @@ % % \begin{macro}{\anon} % \changes{v1.82}{2022/01/11}{Introduced macro}% -% We provide \cs{anon} command, which blinds parts of the text +% We provide \cs{anon} command, which obscures parts of the text % if the package option |anonymous| is set % \begin{macrocode} \newcommand{\anon}[2][ANONYMIZED]{% @@ -5631,7 +6258,7 @@ % % \end{macro} % -% +% %\subsection{Maketitle hook} %\label{sec:hook} % @@ -5657,6 +6284,30 @@ % \end{macrocode} % \end{macro} % +% +%\subsection{ACM Engage top matter} +%\label{sec:acmengagetop} +% +% \begin{macro}{\@acmengagemetadata} +% \changes{v1.85}{2022/05/08}{Introduced macro} +% The special metadata for ACM engage course materials +% \begin{macrocode} +\def\@acmengagemetadata{} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\setengagemetadata} +% \changes{v1.85}{2022/05/08}{Introduced macro} +% Adding topic to engage metadata +% \begin{macrocode} +\def\setengagemetadata#1#2{% + \g@addto@macro{\@acmengagemetadata}{% + \@setengagemetadata{#1}{#2}}} +% \end{macrocode} +% +% \end{macro} +% % \subsection{Typesetting top matter} % \label{sec:maketitle} % @@ -5708,6 +6359,14 @@ % \changes{v1.75}{2020/11/15}{Added \cs{@beginmaketitlehook}} % \changes{v1.76}{2021/04/05}{Put \cs{par} inside group for keywords} % \changes{v1.83}{2022/02/20}{I13n} +% \changes{v1.85}{2022/05/08}{acmengage} +% \changes{v1.87}{2022/07/30}{CC license are allowed for non-acm +% publications} +% \changes{v2.00}{2023/10/24}{Deleted acmPrice} +% \changes{v2.00}{2023/11/05}{Added ``ACM'' for papers} +% \changes{v2.03}{2023/12/04}{Special processing for conferences in +% TOG} +% \changes{v2.11}{2024/12/07}{Deleted conference date from bibstrip} % The (in)famous \cs{maketitle}. Note that in |sigchi-a| mode, authors % are \emph{not} in the title box. % @@ -5745,15 +6404,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@or@tog + \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.}}% @@ -5765,13 +6432,19 @@ \fi \if@ACM@manuscript\else \if@ACM@journal@bibstrip\else % Print the conference information - {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par + \if@ACM@engage + {\itshape \@acmBooktitle, \@acmYear.}\par + \else + {\itshape \acmConference@shortname, \acmConference@venue}\par + \fi \fi \fi \if@printcopyright \copyright\ \@copyrightyear\ \@copyrightowner\\ \else - \@copyrightyear.\ + \ifx\@copyrightyear\@empty\else + \@copyrightyear.\ + \fi \fi \if@ACM@manuscript Manuscript submitted to ACM\\ @@ -5793,19 +6466,19 @@ \else \if@ACM@nonacm\else \if@ACM@journal@bibstrip - \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle - \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\ + ACM~\@permissionCodeTwo/\@acmYear/\@acmMonth-ART\@acmArticle\\ \@formatdoi{\@acmDOI}% \else % Conference - \ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN - \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\\fi + \ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN\\\fi \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi% \fi \fi \fi - \fi} + \fi}% + \fi \fi \endgroup + \if@ACM@engage\@typesetengagemetadata\fi \setcounter{footnote}{0}% \@mkabstract \ifx\@translatedabstracts\@empty\else @@ -5816,12 +6489,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 @@ -5832,7 +6507,7 @@ pdfsubject={\@concepts}, pdfkeywords={\@keywords}, pdfcreator={LaTeX with acmart - \csname ver@acmart.cls\endcsname\space + \csname ver@\@classname.cls\endcsname\space and hyperref \csname ver@hyperref.sty\endcsname}}% \andify\authors @@ -5848,11 +6523,61 @@ \@printendtopmatter \@afterindentfalse \@afterheading + \if@ACM@acmcp + \set@ACM@acmcpbox + \AtEndDocument{\end@ACM@color@frame}% + \@ACM@color@frame + \fi } % \end{macrocode} % % \end{macro} % +% \begin{macro}{\set@ACM@acmcpbox} +% \changes{v1.87}{2022/08/14}{Added macro} +% \changes{v1.89}{2022/12/25}{Added logo} +% \changes{v1.89}{2022/12/25}{Added zref position of the bottom} +% Setting infobox for acmcp +% \begin{macrocode} +\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\@acmContributions\@empty\else\bigskip + \@acmContributions\par + \fi + \ifx\@empty\@authorsaddresses\else\bigskip\@setauthorsaddresses\fi + \zsaveposy{@ACM@acmcpbox@y}% + \par + } +\egroup} +% \end{macrocode} +% +% \end{macro} +% +% % \begin{macro}{\@specialsection} % \changes{v1.66}{2019/11/23}{Suppress warnings about \cs{vspace}} % \changes{v1.67}{2020/01/11}{Paragraph inside group does not print @@ -5860,7 +6585,8 @@ % \changes{v1.68}{2020/01/19}{Deleted grouping altogether} % \changes{v1.69}{2020/02/02}{Changed dot to colon for sigplan} % \changes{v1.78}{2021/05/02}{Again suppressed \cs{vspace} warning} -% This macro starts sections for proceedings and uses \cs{small} for journals +% \changes{1.85}{2022/05/08}{Added: acmengage} +% This macro starts sections for proceedings and uses \cs{small} for journals % \begin{macrocode} \def\@specialsection#1{% \let\@vspace\@vspace@orig @@ -5884,6 +6610,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 @@ -5897,9 +6627,10 @@ % \changes{v1.06}{2016/05/01}{Added processing badges} % \changes{v1.46}{2017/08/29}{Deleted rule} % \changes{v1.78}{2021/05/16}{Added processing the overflowing title box} -% The printing of top matter starts a new page and uses the given -% title box. Note that for |sigchi-a| we print badges here rather -% than in \cs{mktitle} since we want them in the margins. +% \changes{1.85}{2022/05/08}{Added: acmengage} +% \changes{1.89}{2022/12/27}{Moved badges to top header} +% The printing of top matter starts a new page and uses the given +% title box. % % Note that if there are too many authors, |\mktitle@bx| might % overflow the page. Therefore we start with checking this and if @@ -5944,18 +6675,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 } % \end{macrocode} @@ -5963,7 +6686,8 @@ % \end{macro} % % \begin{macro}{\@mktitle} -% The title of the article +% \changes{1.85}{2022/05/08}{Added: acmengage} +% The title of the article % \begin{macrocode} \def\@mktitle{% \ifcase\ACM@format@nr @@ -5985,6 +6709,10 @@ \@mktitle@iii \or % sigchi-a \@mktitle@iv + \or % acmengage + \@mktitle@iii + \or % acmcp + \@mktitle@i \fi } % \end{macrocode} @@ -5995,7 +6723,8 @@ % \changes{v1.06}{2016/05/01}{Added macro} % \changes{v1.45}{2017/08/15}{Switched \cs{bfeseries}\cs{sffamily} to % \cs{sffamily}\cs{bfseries}} -% The font to typeset the title +% \changes{1.85}{2022/05/08}{Added: acmengage} +% The font to typeset the title % \begin{macrocode} \def\@titlefont{% \ifcase\ACM@format@nr @@ -6017,6 +6746,10 @@ \Huge\sffamily\bfseries \or % sigchi-a \Huge\bfseries + \or % acmengage + \Huge\sffamily\bfseries + \or % acmcp + \LARGE\sffamily\bfseries \fi} % \end{macrocode} % @@ -6025,7 +6758,8 @@ % \begin{macro}{\@subtitlefont} % \changes{v1.06}{2016/05/01}{Added macro} % \changes{v1.33}{2017/03/12}{Added \cs{normalsize}} -% The font to typeset the subtitle +% \changes{1.85}{2022/05/08}{Added: acmengage} +% The font to typeset the subtitle % \begin{macrocode} \def\@subtitlefont{\normalsize \ifcase\ACM@format@nr @@ -6047,6 +6781,10 @@ \LARGE\mdseries \or % sigchi-a \mdseries + \or % acmengage + \LARGE\mdseries + \or % acmcp + \mdseries \fi} % \end{macrocode} % @@ -6057,35 +6795,24 @@ % \changes{v1.06}{2016/05/01}{Added processing badges} % \changes{v1.83}{2022/02/20}{Added \cs{translatedtitle} and % \cs{translatedsubtitle}} +% \changes{v1.87}{2022/08/14}{Special treatment for acmcp} +% \changes{v1.88}{2022/10/24}{Moved down title for acmcp} +% \changes{v1.89}{2022/12/27}{Moved badges to top header} +% \changes{v1.89}{2023/01/07}{Moved up acmcp title} % The version of \cs{mktitle} for most journals % \begin{macrocode} \def\@mktitle@i{\hsize=\textwidth - \@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 + \if@ACM@acmcp + \advance\hsize by -6pc% \fi + \@ACM@title@width=\hsize \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}}% % \end{macrocode} % @@ -6103,37 +6830,18 @@ % \changes{v1.06}{2016/05/01}{Added processing badges} % \changes{v1.83}{2022/02/20}{Added \cs{translatedtitle} and % \cs{translatedsubtitle}} -% The version of \cs{@mktitle} for SIG proceedings. Note that since -% the title is centered, we leave space for the left badge even if -% only the right badge is defined. +% \changes{v1.89}{2022/12/27}{Moved badges to top header} +% The version of \cs{@mktitle} for SIG proceedings. % \begin{macrocode} \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}}% % \end{macrocode} % @@ -6195,6 +6903,8 @@ % \changes{v1.15}{2016/07/03}{Added macro} % \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \changes{v1.40}{2017/06/15}{We now do not print this even in SIG} +% \changes{v2.06}{2024/04/13}{We now do not collect postal information +% anymore} % \begin{macro}{\city} % \changes{v1.15}{2016/07/03}{Added macro} % \changes{v1.33}{2017/03/28}{Added obeypunctuation code} @@ -6208,6 +6918,8 @@ % \changes{v1.15}{2016/07/03}{Added macro} % \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \changes{v1.40}{2017/06/15}{We now do not print this even in SIG} +% \changes{v2.06}{2024/04/13}{We now do not collect postal information +% anymore} % \begin{macro}{\country} % \changes{v1.15}{2016/07/03}{Added macro} % \changes{v1.33}{2017/03/28}{Added obeypunctuation code} @@ -6215,13 +6927,18 @@ % \changes{v1.43}{2017/07/11}{Added comma before country for journals} % \changes{v1.46}{2017/08/30}{Corrected spacing for institution} % \changes{v1.73}{2020/09/07}{Check the presence in affil} +% \changes{v1.86}{2022/06/26}{Error if country is empty} % Theoretically we can define the macros for \cs{affiliation} inside % the \cs{@mkauthors}-style commands. However, this would lead to a % strange error if an author uses them outside \cs{affiliation}. Of % course we can make them produce an error message, but\ldots % \begin{macrocode} -\def\streetaddress#1{\unskip\ignorespaces} -\def\postcode#1{\unskip\ignorespaces} +\def\streetaddress#1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your street + address}\unskip\ignorespaces} +\def\postcode#1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your postal + code}\unskip\ignorespaces} \if@ACM@journal \def\position#1{\unskip\ignorespaces} \def\institution#1{\global\@ACM@instpresenttrue @@ -6229,7 +6946,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}% @@ -6237,10 +6956,8 @@ \if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation #2\else#2\par\fi}% -% \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% \def\city#1{\global\@ACM@citypresenttrue\@ACM@addtoaddress{#1}}% \let\state\@ACM@addtoaddress -% \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}% \def\country#1{\global\@ACM@countrypresenttrue\@ACM@addtoaddress{#1}}% \fi % \end{macrocode} @@ -6257,7 +6974,8 @@ % \begin{macro}{\@mkauthors} % \changes{v1.17}{2016/07/09}{TOG now uses the same authors block as % other journals} -% Typesetting the authors +% \changes{1.85}{2022/05/08}{Added: acmengage} +% Typesetting the authors % \begin{macrocode} \def\@mkauthors{\begingroup \hsize=\textwidth @@ -6280,6 +6998,10 @@ \@mkauthors@iii \or % sigchi-a \@mkauthors@iv + \or % acmengage + \@mkauthors@iii + \or % acmcp + \@mkauthors@i \fi \endgroup } @@ -6330,6 +7052,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 % \end{macrocode} % @@ -6427,6 +7155,9 @@ % \changes{v1.78}{2021/05/16}{Unboxing \cs{mktitle@bx}} % This version is used in most journal formats. Note that \cs{and} between % authors with the same affiliation becomes \verb*| and |: +% \changes{v1.87}{2022/08/14}{Special treatment for acmcp} +% \changes{v1.12}{2024/12/28}{Removed MakeTextUppercase due to a bug +% with new kernel} % \begin{macrocode} \def\@mkauthors@i{% \def\@currentauthors{}% @@ -6434,9 +7165,9 @@ \global\let\and\@typeset@author@line \def\@author##1{% \ifx\@currentauthors\@empty - \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}% + \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}% \else - \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}% + \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}% \fi \gdef\and{}}% \def\email##1##2{}% @@ -6456,6 +7187,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}% @@ -6669,16 +7403,21 @@ % \changes{v1.46}{2017/08/27}{Introduced macro} % \changes{v1.65}{2019/10/13}{Deleted cs{@addpunct}} % \changes{v1.77}{2021/04/16}{New separator of institutions} +% \changes{v2.06}{2024/04/13}{\cs{streetaddress} and \cs{postcode} now +% produce warnings} % Typesetting authors' addresses in the footnote style % \begin{macrocode} \def\@mkauthorsaddresses{% \ifnum\num@authors>1\relax Authors' \else Author's \fi - \ifnum\num@authorgroups>1\relax - addresses: \else address: \fi + Contact Information: \bgroup - \def\streetaddress##1{\unskip, ##1}% - \def\postcode##1{\unskip, ##1}% + \def\streetaddress##1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your street + address}\unskip\ignorespaces}% + \def\postcode##1{\ClassWarning{\@classname}{ACM no longer collects + authors' postal addresses. I am ignoring your postal + code}\unskip\ignorespaces}% \def\position##1{\unskip\ignorespaces}% \gdef\@ACM@institution@separator{, }% \def\institution##1{\unskip\@ACM@institution@separator ##1\gdef\@ACM@institution@separator{ and }}% @@ -6877,7 +7616,28 @@ % % \end{macro} % +% \begin{macro}{\@typesetengagemetadata} +% \changes{v1.85}{2022/05/08}{Introduced macro} +% Typesetting special metadata for ACM Engage +% \begin{macrocode} +\def\@typesetengagemetadata{% + \def\@setengagemetadata##1##2{\par\noindent\textbf{##1} ##2\par}% + \@acmengagemetadata} +% \end{macrocode} +% +% \end{macro} % +%<*tagged> +% We stop tagging inside maketitle for now. Ulrike's code again. +% \begin{macrocode} +\ExplSyntaxOn +\AddToHook{cmd/maketitle/before} + {\tagstructbegin{tag=Title}\tagmcbegin{} \tag_stop:} +\AddToHook{cmd/maketitle/after} + {\tag_start:\tagmcend\tagstructend } +\ExplSyntaxOff +% \end{macrocode} +% % %\subsection{Headers and Footers} %\label{sec:head_foot} @@ -6957,7 +7717,8 @@ % \changes{v1.33}{2017/03/29}{Added macro} % \changes{v1.34}{2017/04/10}{Rulers now are continuous} % \changes{v1.69}{2020/02/02}{Do not increase numbers in one column format} -% How to display the box on the right. In one column formats we do +% \changes{1.85}{2022/05/08}{Added: acmengage} +% How to display the box on the right. In one column formats we do % not step the numbers. % \begin{macrocode} \def\ACM@linecountR{% @@ -6981,6 +7742,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}}% @@ -7060,7 +7825,12 @@ % \changes{v1.59}{2019/04/20}{Added logic for conference papers using % journal format} % \changes{v1.59}{2019/04/20}{Moved page styles to \cs{AtBeginDocument}} -% \changes{v1.76}{2021/02/21}{Fixed bug with no line numbers for nonacm} +% \changes{v1.76}{2021/02/21}{Fixed bug with no line numbers for +% nonacm} +% \changes{v1.86}{2022/06/26}{Special treatment of ACM Engage materials} +% \changes{v1.87}{2022/08/14}{Special treatment of ACMCP} +% \changes{v1.91}{2023/06/22}{Redesigned ACMP labels} +% \changes{v2.03}{2024/02/04}{Special treatment of ACM TOG} % The page style for all pages but the first one % \begin{macrocode} \AtBeginDocument{% @@ -7075,7 +7845,7 @@ \@acmArticle\if@ACM@printfolios:\thepage\fi% \fi% }% - \if@ACM@journal@bibstrip + \if@ACM@journal@bibstrip@or@tog \ifcase\ACM@format@nr \relax % manuscript \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}% @@ -7111,9 +7881,15 @@ \fancyhead[RE]{\ACM@linecountR}% \fancyhead[RO]{\@headfootfont \shorttitle\quad\textbullet\quad\@acmArticlePage\ACM@linecountR}% - \if@ACM@nonacm\else% - \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No. - \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% + \if@ACM@nonacm\else + \if@ACM@journal@bibstrip + \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, + Vol. \@acmVolume, No.~\@acmNumber, Article \@acmArticle. + Publication date: \@acmPubDate.}% + \else + \fancyfoot[RO,LE]{\footnotesize \acmConference@shortname, + \acmConference@date, \acmConference@venue.}% + \fi \fi \else % Proceedings \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% @@ -7123,12 +7899,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 @@ -7139,12 +7923,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 @@ -7153,6 +7945,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.2\textheight*(\ACM@ArticleType@nr-2))}{% + \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} } @@ -7161,33 +7968,14 @@ % \end{macro} % % \begin{macro}{\@folio@wd} +% \changes{v2.00}{2023/10/22}{Obsoleted macro} % \begin{macro}{\@folio@ht} +% \changes{v2.00}{2023/10/22}{Obsoleted macro} % \begin{macro}{\@folio@voffset} +% \changes{v2.00}{2023/10/22}{Obsoleted macro} % \begin{macro}{\@folio@max} +% \changes{v2.00}{2023/10/22}{Obsoleted macro} % Folio blob width, height, offsets and max number -% \begin{macrocode} -\newdimen\@folio@wd -\@folio@wd=\z@ -\newdimen\@folio@ht -\@folio@ht=\z@ -\newdimen\@folio@voffset -\@folio@voffset=\z@ -\def\@folio@max{1} -\ifcase\ACM@format@nr -\relax % manuscript -\or % acmsmall - \@folio@wd=45.75pt\relax - \@folio@ht=1.25in\relax - \@folio@voffset=.2in\relax - \def\@folio@max{8} -\or % acmlarge - \@folio@wd=43.25pt\relax - \@folio@ht=79pt\relax - \@folio@voffset=.55in\relax - \def\@folio@max{10} -\fi -% \end{macrocode} -% % \end{macro} % \end{macro} % \end{macro} @@ -7197,38 +7985,12 @@ % \changes{v1.44}{2017/08/11}{Suppress the blob if acmArticleSeq is empty} % \changes{v1.45}{2017/08/15}{Switched \cs{bfeseries}\cs{sffamily} to % \cs{sffamily}\cs{bfseries}} +% \changes{v2.00}{2023/10/22}{Obsoleted macro} % The macro to typeset the folio blob. -% \begin{macrocode} -\def\@folioblob{\@tempcnta=0\@acmArticleSeq\relax - \ifnum\@tempcnta=0\relax\else -% \end{macrocode} -% First, we calculate \cs{@acmArticleSeq} modulo \cs{@folio@max} -% \begin{macrocode} - \loop - \ifnum\@tempcnta>\@folio@max\relax - \advance\@tempcnta by - \@folio@max - \repeat -% \end{macrocode} % -% \begin{macrocode} - \advance\@tempcnta by -1\relax - \@tempdima=\@folio@ht\relax - \multiply\@tempdima by \the\@tempcnta\relax - \advance\@tempdima by -\@folio@voffset\relax - \begin{picture}(0,0) - \makebox[\z@]{\raisebox{-\@tempdima}{% - \rlap{% - \raisebox{-0.45\@folio@ht}[\z@][\z@]{% - \rule{\@folio@wd}{\@folio@ht}}}% - \parbox{\@folio@wd}{% - \centering - \textcolor{white}{\LARGE\sffamily\bfseries\@acmArticle}}}} - \end{picture}\fi} - -% \end{macrocode} +% \end{macro} % % -% \end{macro} % % \begin{macro}{firstpagestyle} % \changes{v1.33}{2017/03/10}{Added timestamp (Michael D.~Adams)} @@ -7239,6 +8001,10 @@ % \changes{v1.59}{2019/04/20}{Added logic for conference papers using % journal format} % \changes{v1.59}{2019/04/20}{Moved page styles to \cs{AtBeginDocument}} +% \changes{v1.87}{2022/08/14}{Special treatment for acmcp} +% \changes{v1.89}{2022/12/27}{Moved badges here} +% \changes{v2.00}{2023/10/22}{Deleted blobs} +% \changes{v2.03}{2024/02/04}{Special treatment of tog} % The page style for the first page only. % \begin{macrocode} \AtBeginDocument{% @@ -7246,10 +8012,11 @@ \fancyhf{}% \renewcommand{\headrulewidth}{\z@}% \renewcommand{\footrulewidth}{\z@}% - \if@ACM@journal@bibstrip + \if@ACM@journal@bibstrip@or@tog \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}% @@ -7260,36 +8027,41 @@ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[LE]{\ACM@linecountL\@folioblob}% - \fancyhead[LO]{\ACM@linecountL}% - \fancyhead[RO]{\@folioblob}% - \fancyheadoffset[RO,LE]{0.6\@folio@wd}% + \fancyhead[LE]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[RO]{\@acmBadgeR}% + \fancyhead[RE]{\@acmBadgeR}% \or % acmlarge \if@ACM@nonacm\else% \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fi% - \fancyhead[RO]{\@folioblob}% - \fancyhead[LE]{\ACM@linecountL\@folioblob}% - \fancyhead[LO]{\ACM@linecountL}% - \fancyheadoffset[RO,LE]{1.4\@folio@wd}% + \fancyhead[RO]{\@acmBadgeR}% + \fancyhead[RE]{\@acmBadgeR}% + \fancyhead[LE]{\ACM@linecountL\@acmBadgeL}% + \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}% \or % acmtog \if@ACM@nonacm\else% - \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No. - \@acmNumber, Article \@acmArticle. Publication date: - \@acmPubDate.}% + \if@ACM@journal@bibstrip + \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, + Vol. \@acmVolume, No.~\@acmNumber, Article \@acmArticle. + Publication date: \@acmPubDate.}% + \else + \fancyfoot[RO,LE]{\footnotesize \acmConference@shortname, + \acmConference@date, \acmConference@venue.}% + \fi \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 @@ -7302,6 +8074,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.2\textheight*(\ACM@ArticleType@nr-2))}{% + \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 }} % \end{macrocode} % @@ -7311,6 +8098,7 @@ %\subsection{Sectioning} %\label{sec:sectioninng} % +% % \begin{macro}{\ACM@NRadjust} % \changes{v1.54}{2018/06/17}{Added macro} % Ross Moore's macro. @@ -7392,28 +8180,33 @@ % \changes{v1.69}{2020/02/02}{No dots for unindented paragraphs} % Sectioning is different for different levels % \begin{macrocode} -\renewcommand\section{\@startsection{section}{1}{\z@}% +\renewcommand\section{\def\@toclevel{1}% + \@startsection{section}{1}{\z@}% {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% {.25\baselineskip}% {\ACM@NRadjust\@secfont}} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% +\renewcommand\subsection{\def\@toclevel{2}% + \@startsection{subsection}{2}{\z@}% {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% {.25\baselineskip}% {\ACM@NRadjust\@subsecfont}} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% +\renewcommand\subsubsection{\def\@toclevel{3}% + \@startsection{subsubsection}{3}{\z@}% {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% {-3.5\p@}% {\ACM@NRadjust{\@subsubsecfont\@adddotafter}}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% +\renewcommand\paragraph{\def\@toclevel{4}% + \@startsection{paragraph}{4}{\parindent}% {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% {-3.5\p@}% {\ACM@NRadjust{\@parfont\@adddotafter}}} -\newcommand\noindentparagraph{\@startsection{paragraph}{4}{\z@}% +\newcommand\noindentparagraph{\def\@toclevel{4}% + \@startsection{paragraph}{4}{\z@}% {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% {-3.5\p@}% {\ACM@NRadjust{\@parfont}}} - -\renewcommand\part{\@startsection{part}{9}{\z@}% +\renewcommand\part{\def\@toclevel{9}% + \@startsection{part}{9}{\z@}% {-10\p@ \@plus -4\p@ \@minus -2\p@}% {4\p@}% {\ACM@NRadjust\@parfont}} @@ -7442,9 +8235,11 @@ % \changes{v1.45}{2017/08/15}{Switched \cs{bfeseries}\cs{sffamily} to % \cs{sffamily}\cs{bfseries}} % \changes{v1.67}{2020/01/11}{Deleted redefinitions of sections} +% \changes{v1.85}{2022/05/08}{Added: acmengage} +% \changes{v2.08}{2024/05/27}{Deleted uppercasing} % Fonts for sections etc. are different for different formats. % \begin{macrocode} -\def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} +\def\@secfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright} \def\@subsubsecfont{\sffamily\itshape} \def\@parfont{\itshape} @@ -7453,16 +8248,16 @@ \relax % manuscript \or % acmsmall \or % acmlarge - \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\large\section@raggedright} \def\@subsecfont{\sffamily\large\section@raggedright} \or % acmtog - \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\large\section@raggedright} \def\@subsecfont{\sffamily\large\section@raggedright} \or % sigconf - \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase} + \def\@secfont{\bfseries\Large\section@raggedright} \def\@subsecfont{\bfseries\Large\section@raggedright} \or % siggraph - \def\@secfont{\sffamily\bfseries\Large\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\bfseries\Large\section@raggedright} \def\@subsecfont{\sffamily\bfseries\Large\section@raggedright} \or % sigplan \def\@secfont{\bfseries\Large\section@raggedright} @@ -7472,12 +8267,16 @@ \def\@subparfont{\itshape} \or % sigchi \setcounter{secnumdepth}{1} - \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright} \or % sigchi-a \setcounter{secnumdepth}{0} - \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase} + \def\@secfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright} +\or % acmengage + \def\@secfont{\bfseries\Large\section@raggedright} + \def\@subsecfont{\bfseries\Large\section@raggedright} +\or %acmcp \fi % \end{macrocode} % @@ -7486,6 +8285,27 @@ % \end{macro} % \end{macro} % +% \changes{v2.10}{2024/10/19}{Added tocindent for paragraphs and +% subparagraphs} +% Amasat does not define tocindents for paragraphs and subparagraphs. +% Here we add them +% \begin{macrocode} +\AtBeginDocument{% + \@for\@tempa:=-1,0,1,2,3,4,5\do{% + \@ifundefined{r@tocindent\@tempa}{% + \@xp\gdef\csname r@tocindent\@tempa\endcsname{0pt}}{}% + }% +} +\def\@writetocindents{% + \begingroup + \@for\@tempa:=-1,0,1,2,3,4,5\do{% + \immediate\write\@auxout{% + \string\newlabel{tocindent\@tempa}{% + \csname r@tocindent\@tempa\endcsname}}% + }% + \endgroup} +% \end{macrocode} +% % \begin{macro}{\@adddotafter} % Add punctuation after a sectioning command % \begin{macrocode} @@ -7502,6 +8322,14 @@ % % \end{macro} % +% \changes{v1.87}{2022/08/14}{No numbering sections for ACMCP} +% \begin{macrocode} +\if@ACM@acmcp + \setcounter{secnumdepth}{-1}% +\fi +% \end{macrocode} +% +% %\subsection{TOC lists} %\label{sec:tocs} % @@ -7569,6 +8397,8 @@ \def\@acmplainnotefont{\normalfont} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi % \end{macrocode} % @@ -7639,6 +8469,8 @@ \def\@acmdefinitionnotefont{\normalfont} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi % \end{macrocode} % @@ -7737,6 +8569,8 @@ \def\@proofindent{\noindent} \or % sigchi \or % sigchi-a +\or % acmengage +\or % acmcp \fi % \end{macrocode} % @@ -7783,6 +8617,9 @@ \or % sigchi \RequirePackage{pbalance}% \or % sigchi-a + \or % acmengage + \RequirePackage{pbalance}% + \or % acmcp \fi \fi \if@ACM@balance @@ -7805,6 +8642,10 @@ \RequirePackage{balance}% \or % sigchi-a \global\@ACM@balancefalse + \or % acmengage + \RequirePackage{balance}% + \or % acmcp + \global\@ACM@balancefalse \fi \fi } diff --git a/_extensions/quarto-journals/acm/acmauthoryear.bbx b/_extensions/quarto-journals/acm/acmauthoryear.bbx index de5e3c6..b3800b9 100644 --- a/_extensions/quarto-journals/acm/acmauthoryear.bbx +++ b/_extensions/quarto-journals/acm/acmauthoryear.bbx @@ -898,3 +898,11 @@ license=false, language=american } + +% We use lowercase DOI + +\DeclareFieldFormat{doi}{% + doi\addcolon + \ifhyperref + {\href{https://doi.org/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} diff --git a/_extensions/quarto-journals/acm/acmnumeric.bbx b/_extensions/quarto-journals/acm/acmnumeric.bbx index c13e401..d83a5a1 100644 --- a/_extensions/quarto-journals/acm/acmnumeric.bbx +++ b/_extensions/quarto-journals/acm/acmnumeric.bbx @@ -882,4 +882,12 @@ vcs=true, license=false, language=american - } \ No newline at end of file + } + +% We use lowercase DOI + +\DeclareFieldFormat{doi}{% + doi\addcolon + \ifhyperref + {\href{https://doi.org/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} From 821bdc2ebe23fc3714496d7ec274ca40645d7f19 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:26:53 +0200 Subject: [PATCH 2/9] clean unused template file --- _extensions/quarto-journals/acm/aft.cls | 644 ---------- _extensions/quarto-journals/acm/te.bst | 1518 ----------------------- 2 files changed, 2162 deletions(-) delete mode 100644 _extensions/quarto-journals/acm/aft.cls delete mode 100644 _extensions/quarto-journals/acm/te.bst diff --git a/_extensions/quarto-journals/acm/aft.cls b/_extensions/quarto-journals/acm/aft.cls deleted file mode 100644 index d3c6498..0000000 --- a/_extensions/quarto-journals/acm/aft.cls +++ /dev/null @@ -1,644 +0,0 @@ -%% -%% This is file `article.cls', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% classes.dtx (with options: `article') -%% -%% This is a generated file. -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at https://latex-project.org/bugs.html -%% (but please observe conditions on bug reports sent to that address!) -%% -%% -%% Copyright (C) 1993-2022 -%% The LaTeX Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the LaTeX base system. -%% -------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% https://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2008 or later. -%% -%% This file has the LPPL maintenance status "maintained". -%% -%% This file may only be distributed together with a copy of the LaTeX -%% base system. You may however distribute the LaTeX base system without -%% such generated files. -%% -%% The list of all files belonging to the LaTeX base distribution is -%% given in the file `manifest.txt'. See also `legal.txt' for additional -%% information. -%% -%% The list of derived (unpacked) files belonging to the distribution -%% and covered by LPPL is defined by the unpacking scripts (with -%% extension .ins) which are part of the distribution. -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{article} - [2021/10/04 v1.4n - Standard LaTeX document class] -\newcommand\@ptsize{} -\newif\if@restonecol -\newif\if@titlepage -\@titlepagefalse -\if@compatibility\else - \DeclareOption{a4paper} - {\setlength\paperheight {297mm}% - \setlength\paperwidth {210mm}} - \DeclareOption{a5paper} - {\setlength\paperheight {210mm}% - \setlength\paperwidth {148mm}} - \DeclareOption{b5paper} - {\setlength\paperheight {250mm}% - \setlength\paperwidth {176mm}} - \DeclareOption{letterpaper} - {\setlength\paperheight {11in}% - \setlength\paperwidth {8.5in}} - \DeclareOption{legalpaper} - {\setlength\paperheight {14in}% - \setlength\paperwidth {8.5in}} - \DeclareOption{executivepaper} - {\setlength\paperheight {10.5in}% - \setlength\paperwidth {7.25in}} - \DeclareOption{landscape} - {\setlength\@tempdima {\paperheight}% - \setlength\paperheight {\paperwidth}% - \setlength\paperwidth {\@tempdima}} -\fi -\if@compatibility - \renewcommand\@ptsize{0} -\else - \DeclareOption{10pt}{\renewcommand\@ptsize{0}} -\fi -\DeclareOption{11pt}{\renewcommand\@ptsize{1}} -\DeclareOption{12pt}{\renewcommand\@ptsize{2}} -\if@compatibility\else - \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} -\fi -\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} -\DeclareOption{draft}{\setlength\overfullrule{5pt}} -\if@compatibility\else - \DeclareOption{final}{\setlength\overfullrule{0pt}} -\fi -\DeclareOption{titlepage}{\@titlepagetrue} -\if@compatibility\else - \DeclareOption{notitlepage}{\@titlepagefalse} -\fi -\if@compatibility\else - \DeclareOption{onecolumn}{\@twocolumnfalse} -\fi -\DeclareOption{twocolumn}{\@twocolumntrue} -\DeclareOption{leqno}{\input{leqno.clo}} -\DeclareOption{fleqn}{\input{fleqn.clo}} -\DeclareOption{openbib}{% - \AtEndOfPackage{% - \renewcommand\@openbib@code{% - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ - }% - \renewcommand\newblock{\par}}% -} -\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final} -\ProcessOptions -\input{size1\@ptsize.clo} -\setlength\lineskip{1\p@} -\setlength\normallineskip{1\p@} -\renewcommand\baselinestretch{} -\setlength\parskip{0\p@ \@plus \p@} -\@lowpenalty 51 -\@medpenalty 151 -\@highpenalty 301 -\setcounter{topnumber}{2} -\renewcommand\topfraction{.7} -\setcounter{bottomnumber}{1} -\renewcommand\bottomfraction{.3} -\setcounter{totalnumber}{3} -\renewcommand\textfraction{.2} -\renewcommand\floatpagefraction{.5} -\setcounter{dbltopnumber}{2} -\renewcommand\dbltopfraction{.7} -\renewcommand\dblfloatpagefraction{.5} -\if@twoside - \def\ps@headings{% - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\thepage\hfil\slshape\leftmark}% - \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\sectionmark##1{% - \markboth {\MakeUppercase{% - \ifnum \c@secnumdepth >\z@ - \thesection\quad - \fi - ##1}}{}}% - \def\subsectionmark##1{% - \markright {% - \ifnum \c@secnumdepth >\@ne - \thesubsection\quad - \fi - ##1}}} -\else - \def\ps@headings{% - \let\@oddfoot\@empty - \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\sectionmark##1{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \thesection\quad - \fi - ##1}}}} -\fi -\def\ps@myheadings{% - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\thepage\hfil\slshape\leftmark}% - \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\@gobbletwo - \let\sectionmark\@gobble - \let\subsectionmark\@gobble - } -\if@titlepage - \newcommand\maketitle{\begin{titlepage}% - \let\footnotesize\small - \let\footnoterule\relax - \let \footnote \thanks - \null\vfil - \vskip 60\p@ - \begin{center}% - {\LARGE \@title \par}% - \vskip 3em% - {\large - \lineskip .75em% - \begin{tabular}[t]{c}% - \@author - \end{tabular}\par}% - \vskip 1.5em% - {\large \@date \par}% % Set date in \large size. - \end{center}\par - \@thanks - \vfil\null - \end{titlepage}% - \setcounter{footnote}{0}% - \global\let\thanks\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 - } -\else - \newcommand\maketitle{\par - \begingroup - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% - \long\def\@makefntext##1{\parindent 1em\noindent - \hb@xt@1.8em{% - \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% - \if@twocolumn - \ifnum \col@number=\@ne - \@maketitle - \else - \twocolumn[\@maketitle]% - \fi - \else - \newpage - \global\@topnum\z@ % Prevents figures from going at top of page. - \@maketitle - \fi - \thispagestyle{plain}\@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{% - \newpage - \null - \vskip 2em% - \begin{center}% - \let \footnote \thanks - {\LARGE \@title \par}% - \vskip 1.5em% - {\large - \lineskip .5em% - \begin{tabular}[t]{c}% - \@author - \end{tabular}\par}% - \vskip 1em% - {\large \@date}% - \end{center}% - \par - \vskip 1.5em} -\fi -\setcounter{secnumdepth}{3} -\newcounter {part} -\newcounter {section} -\newcounter {subsection}[section] -\newcounter {subsubsection}[subsection] -\newcounter {paragraph}[subsubsection] -\newcounter {subparagraph}[paragraph] -\renewcommand \thepart {\@Roman\c@part} -\renewcommand \thesection {\@arabic\c@section} -\renewcommand\thesubsection {\thesection.\@arabic\c@subsection} -\renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection} -\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph} -\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph} -\newcommand\part{% - \if@noskipsec \leavevmode \fi - \par - \addvspace{4ex}% - \@afterindentfalse - \secdef\@part\@spart} - -\def\@part[#1]#2{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{part}% - \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - {\parindent \z@ \raggedright - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >\m@ne - \Large\bfseries \partname\nobreakspace\thepart - \par\nobreak - \fi - \huge \bfseries #2% - \markboth{}{}\par}% - \nobreak - \vskip 3ex - \@afterheading} -\def\@spart#1{% - {\parindent \z@ \raggedright - \interlinepenalty \@M - \normalfont - \huge \bfseries #1\par}% - \nobreak - \vskip 3ex - \@afterheading} -\newcommand\section{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\normalfont\Large\bfseries}} -\newcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\normalfont\large\bfseries}} -\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\normalfont\normalsize\bfseries}} -\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {-1em}% - {\normalfont\normalsize\bfseries}} -\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\normalfont\normalsize\bfseries}} -\if@twocolumn - \setlength\leftmargini {2em} -\else - \setlength\leftmargini {2.5em} -\fi -\leftmargin \leftmargini -\setlength\leftmarginii {2.2em} -\setlength\leftmarginiii {1.87em} -\setlength\leftmarginiv {1.7em} -\if@twocolumn - \setlength\leftmarginv {.5em} - \setlength\leftmarginvi {.5em} -\else - \setlength\leftmarginv {1em} - \setlength\leftmarginvi {1em} -\fi -\setlength \labelsep {.5em} -\setlength \labelwidth{\leftmargini} -\addtolength\labelwidth{-\labelsep} -\@beginparpenalty -\@lowpenalty -\@endparpenalty -\@lowpenalty -\@itempenalty -\@lowpenalty -\renewcommand\theenumi{\@arabic\c@enumi} -\renewcommand\theenumii{\@alph\c@enumii} -\renewcommand\theenumiii{\@roman\c@enumiii} -\renewcommand\theenumiv{\@Alph\c@enumiv} -\newcommand\labelenumi{\theenumi.} -\newcommand\labelenumii{(\theenumii)} -\newcommand\labelenumiii{\theenumiii.} -\newcommand\labelenumiv{\theenumiv.} -\renewcommand\p@enumii{\theenumi} -\renewcommand\p@enumiii{\theenumi(\theenumii)} -\renewcommand\p@enumiv{\p@enumiii\theenumiii} -\newcommand\labelitemi {\labelitemfont \textbullet} -\newcommand\labelitemii {\labelitemfont \bfseries \textendash} -\newcommand\labelitemiii{\labelitemfont \textasteriskcentered} -\newcommand\labelitemiv {\labelitemfont \textperiodcentered} -\newcommand\labelitemfont{\normalfont} -\newenvironment{description} - {\list{}{\labelwidth\z@ \itemindent-\leftmargin - \let\makelabel\descriptionlabel}} - {\endlist} -\newcommand*\descriptionlabel[1]{\hspace\labelsep - \normalfont\bfseries #1} -\if@titlepage - \newenvironment{abstract}{% - \titlepage - \null\vfil - \@beginparpenalty\@lowpenalty - \begin{center}% - \bfseries \abstractname - \@endparpenalty\@M - \end{center}}% - {\par\vfil\null\endtitlepage} -\else - \newenvironment{abstract}{% - \if@twocolumn - \section*{\abstractname}% - \else - \small - \begin{center}% - {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% - \end{center}% - \quotation - \fi} - {\if@twocolumn\else\endquotation\fi} -\fi -\newenvironment{verse} - {\let\\\@centercr - \list{}{\itemsep \z@ - \itemindent -1.5em% - \listparindent\itemindent - \rightmargin \leftmargin - \advance\leftmargin 1.5em}% - \item\relax} - {\endlist} -\newenvironment{quotation} - {\list{}{\listparindent 1.5em% - \itemindent \listparindent - \rightmargin \leftmargin - \parsep \z@ \@plus\p@}% - \item\relax} - {\endlist} -\newenvironment{quote} - {\list{}{\rightmargin\leftmargin}% - \item\relax} - {\endlist} -\if@compatibility - \newenvironment{titlepage} - {% - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse\newpage - \fi - \thispagestyle{empty}% - \setcounter{page}\z@ - }% - {\if@restonecol\twocolumn \else \newpage \fi - } -\else - \newenvironment{titlepage} - {% - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse\newpage - \fi - \thispagestyle{empty}% - \setcounter{page}\@ne - }% - {\if@restonecol\twocolumn \else \newpage \fi - \if@twoside\else - \setcounter{page}\@ne - \fi - } -\fi -\newcommand\appendix{\par - \setcounter{section}{0}% - \setcounter{subsection}{0}% - \gdef\thesection{\@Alph\c@section}} -\setlength\arraycolsep{5\p@} -\setlength\tabcolsep{6\p@} -\setlength\arrayrulewidth{.4\p@} -\setlength\doublerulesep{2\p@} -\setlength\tabbingsep{\labelsep} -\skip\@mpfootins = \skip\footins -\setlength\fboxsep{3\p@} -\setlength\fboxrule{.4\p@} -\renewcommand \theequation {\@arabic\c@equation} -\newcounter{figure} -\renewcommand \thefigure {\@arabic\c@figure} -\def\fps@figure{tbp} -\def\ftype@figure{1} -\def\ext@figure{lof} -\def\fnum@figure{\figurename\nobreakspace\thefigure} -\newenvironment{figure} - {\@float{figure}} - {\end@float} -\newenvironment{figure*} - {\@dblfloat{figure}} - {\end@dblfloat} -\newcounter{table} -\renewcommand\thetable{\@arabic\c@table} -\def\fps@table{tbp} -\def\ftype@table{2} -\def\ext@table{lot} -\def\fnum@table{\tablename\nobreakspace\thetable} -\newenvironment{table} - {\@float{table}} - {\end@float} -\newenvironment{table*} - {\@dblfloat{table}} - {\end@dblfloat} -\newlength\abovecaptionskip -\newlength\belowcaptionskip -\setlength\abovecaptionskip{10\p@} -\setlength\belowcaptionskip{0\p@} -\long\def\@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1: #2}% - \ifdim \wd\@tempboxa >\hsize - #1: #2\par - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip} -\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} -\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} -\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} -\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} -\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} -\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} -\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} -\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} -\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} -\newcommand\@pnumwidth{1.55em} -\newcommand\@tocrmarg{2.55em} -\newcommand\@dotsep{4.5} -\setcounter{tocdepth}{3} -\newcommand\tableofcontents{% - \section*{\contentsname - \@mkboth{% - \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% - \@starttoc{toc}% - } -\newcommand*\l@part[2]{% - \ifnum \c@tocdepth >-2\relax - \addpenalty\@secpenalty - \addvspace{2.25em \@plus\p@}% - \setlength\@tempdima{3em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - {\leavevmode - \large \bfseries #1\hfil - \hb@xt@\@pnumwidth{\hss #2% - \kern-\p@\kern\p@}}\par - \nobreak - \if@compatibility - \global\@nobreaktrue - \everypar{\global\@nobreakfalse\everypar{}}% - \fi - \endgroup - \fi} -\newcommand*\l@section[2]{% - \ifnum \c@tocdepth >\z@ - \addpenalty\@secpenalty - \addvspace{1.0em \@plus\p@}% - \setlength\@tempdima{1.5em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \advance\leftskip\@tempdima - \hskip -\leftskip - #1\nobreak\hfil - \nobreak\hb@xt@\@pnumwidth{\hss #2% - \kern-\p@\kern\p@}\par - \endgroup - \fi} -\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} -\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} -\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} -\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}} -\newcommand\listoffigures{% - \section*{\listfigurename}% - \@mkboth{\MakeUppercase\listfigurename}% - {\MakeUppercase\listfigurename}% - \@starttoc{lof}% - } -\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} -\newcommand\listoftables{% - \section*{\listtablename}% - \@mkboth{% - \MakeUppercase\listtablename}% - {\MakeUppercase\listtablename}% - \@starttoc{lot}% - } -\let\l@table\l@figure -\newdimen\bibindent -\setlength\bibindent{1.5em} -\newenvironment{thebibliography}[1] - {\section*{\refname}% - \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \sloppy - \clubpenalty4000 - \@clubpenalty \clubpenalty - \widowpenalty4000% - \sfcode`\.\@m} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \endlist} -\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} -\let\@openbib@code\@empty -\newenvironment{theindex} - {\if@twocolumn - \@restonecolfalse - \else - \@restonecoltrue - \fi - \twocolumn[\section*{\indexname}]% - \@mkboth{\MakeUppercase\indexname}% - {\MakeUppercase\indexname}% - \thispagestyle{plain}\parindent\z@ - \parskip\z@ \@plus .3\p@\relax - \columnseprule \z@ - \columnsep 35\p@ - \let\item\@idxitem} - {\if@restonecol\onecolumn\else\clearpage\fi} -\newcommand\@idxitem{\par\hangindent 40\p@} -\newcommand\subitem{\@idxitem \hspace*{20\p@}} -\newcommand\subsubitem{\@idxitem \hspace*{30\p@}} -\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} -\renewcommand\footnoterule{% - \kern-3\p@ - \hrule\@width.4\columnwidth - \kern2.6\p@} -\newcommand\@makefntext[1]{% - \parindent 1em% - \noindent - \hb@xt@1.8em{\hss\@makefnmark}#1} -\newcommand\contentsname{Contents} -\newcommand\listfigurename{List of Figures} -\newcommand\listtablename{List of Tables} -\newcommand\refname{References} -\newcommand\indexname{Index} -\newcommand\figurename{Figure} -\newcommand\tablename{Table} -\newcommand\partname{Part} -\newcommand\appendixname{Appendix} -\newcommand\abstractname{Abstract} -\def\today{\ifcase\month\or - January\or February\or March\or April\or May\or June\or - July\or August\or September\or October\or November\or December\fi - \space\number\day, \number\year} -\setlength\columnsep{10\p@} -\setlength\columnseprule{0\p@} -\pagestyle{plain} -\pagenumbering{arabic} -\if@twoside -\else - \raggedbottom -\fi -\if@twocolumn - \twocolumn - \sloppy - \flushbottom -\else - \onecolumn -\fi -\endinput -%% -%% End of file `article.cls'. diff --git a/_extensions/quarto-journals/acm/te.bst b/_extensions/quarto-journals/acm/te.bst deleted file mode 100644 index a3fd512..0000000 --- a/_extensions/quarto-journals/acm/te.bst +++ /dev/null @@ -1,1518 +0,0 @@ -%% -%% This is file `te.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `ay,nat,annote,nm-revv1,jnrlst,keyxyr,dt-beg,yr-par,note-yr,tit-qq,vnum-x,volp-com,num-xser,bkpg-x,edby-par,edbyy,blk-tit,blknt,ppx,ed,xedn,url,url-blk,nfss') -%% -%% AND then the placement of 'edition' was manually changed (to put -%% it after the book title, not after the publisher). [MJO 2007-5-19] -%% -%% ---------------------------------------- -%% *** BibTeX style file for Theoretical Economics *** - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[2005/10/17 4.14 (PWD, AO, DPC)] - % For use with BibTeX version 0.99a or later - %------------------------------------------------------------------- - % This bibliography style file is intended for texts in ENGLISH - % This is an author-year citation style bibliography. As such, it is - % non-standard LaTeX, and requires a special package file to function properly. - % Such a package is natbib.sty by Patrick W. Daly - % The form of the \bibitem entries is - % \bibitem[Jones et al.(1990)]{key}... - % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... - % The essential feature is that the label (the part in brackets) consists - % of the author names, as they should appear in the citation, with the year - % in parentheses following. There must be no space before the opening - % parenthesis! - % With natbib v5.3, a full list of authors may also follow the year. - % In natbib.sty, it is possible to define the type of enclosures that is - % really wanted (brackets or parentheses), but in either case, there must - % be parentheses in the label. - % The \cite command functions as follows: - % \citet{key} ==>> Jones et al. (1990) - % \citet*{key} ==>> Jones, Baker, and Smith (1990) - % \citep{key} ==>> (Jones et al., 1990) - % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) - % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) - % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) - % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) - % \citeauthor{key} ==>> Jones et al. - % \citeauthor*{key} ==>> Jones, Baker, and Smith - % \citeyear{key} ==>> 1990 - %--------------------------------------------------------------------- - -ENTRY - { address - annote - author - booktitle - chapter - edition - editor - eid - howpublished - institution - journal - key - month - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - } - {} - { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} -STRINGS { s t} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ - annote missing$ - { "\bibAnnoteFile{" cite$ * "}" * write$ newline$ } - { "\bibAnnote{" cite$ * "}{" * annote * "}" * write$ newline$ - } - if$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {date.block} -{ - skip$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "\emph{" swap$ * "}" * } - if$ -} -FUNCTION {tie.or.space.prefix} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ -} - -FUNCTION {capitalize} -{ "u" change.case$ "t" change.case$ } - -FUNCTION {space.word} -{ " " swap$ * " " * } - % Here are the language-specific definitions for explicit words. - % Each function has a name bbl.xxx where xxx is the English word. - % The language selected here is ENGLISH -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.editors} -{ "eds." } - -FUNCTION {bbl.editor} -{ "ed." } - -FUNCTION {bbl.edby} -{ "edited by" } - -FUNCTION {bbl.edition} -{ "edition" } - -FUNCTION {bbl.volume} -{ "volume" } - -FUNCTION {bbl.of} -{ "of" } - -FUNCTION {bbl.number} -{ "number" } - -FUNCTION {bbl.nr} -{ "no." } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.pages} -{ "" } - -FUNCTION {bbl.page} -{ "" } - -FUNCTION {bbl.chapter} -{ "chapter" } - -FUNCTION {bbl.techrep} -{ "Technical Report" } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "Ph.D. thesis" } - -MACRO {jan} {"January"} - -MACRO {feb} {"February"} - -MACRO {mar} {"March"} - -MACRO {apr} {"April"} - -MACRO {may} {"May"} - -MACRO {jun} {"June"} - -MACRO {jul} {"July"} - -MACRO {aug} {"August"} - -MACRO {sep} {"September"} - -MACRO {oct} {"October"} - -MACRO {nov} {"November"} - -MACRO {dec} {"December"} - -MACRO {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} -FUNCTION {bibinfo.check} -{ swap$ - duplicate$ missing$ - { - pop$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ pop$ - } - { swap$ - pop$ - } - if$ - } - if$ -} -FUNCTION {bibinfo.warn} -{ swap$ - duplicate$ missing$ - { - swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ "empty " swap$ * " in " * cite$ * warning$ - } - { swap$ - pop$ - } - if$ - } - if$ -} -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - duplicate$ #1 > - { "{ff~}{vv~}{ll}{, jj}" } - { "{vv~}{ll}{, ff}{, jj}" } - if$ - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { - " " * bbl.etal * - } - { - bbl.and - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} -FUNCTION {format.names.ed} -{ - 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ff~}{vv~}{ll}{, jj}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { - - " " * bbl.etal * - } - { - bbl.and - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } - if$ -} - -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.editor - * - } - if$ -} -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - "\enquote{" swap$ * - add.period$ "}" * - } - if$ -} -FUNCTION {format.full.names} -{'s := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { - numnames #2 > - { "," * } - 'skip$ - if$ - bbl.and - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.key.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.key.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {editor.key.full} -{ editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full - { type$ "proceedings" = - 'editor.key.full - 'author.key.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem[{" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "}]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {n.dashify} -{ - 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} -{ bbl.in capitalize - " " * } - -FUNCTION {format.date} -{ year "year" bibinfo.check duplicate$ empty$ - { - "empty year in " cite$ * "; set to ????" * warning$ - pop$ "????" - } - 'skip$ - if$ - extra.label * - before.all 'output.state := - " (" swap$ * ")" * -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - emphasize - } - if$ -} -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ bbl.of space.word * swap$ - emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { number "number" bibinfo.check } - { output.state mid.sentence = - { bbl.number } - { bbl.number capitalize } - if$ - number tie.or.space.prefix "number" bibinfo.check * * - bbl.in space.word * - series "series" bibinfo.check * - } - if$ - } - if$ - } - { "" } - if$ -} - -FUNCTION {format.edition} -{ edition duplicate$ empty$ 'skip$ - { - output.state mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - n.dashify - } - { - } - if$ - "pages" bibinfo.check - } - if$ -} -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ", " * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} -FUNCTION {format.journal.eid} -{ eid "eid" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ 'skip$ - { - ", " * - } - if$ - swap$ * - } - if$ -} -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - eid empty$ - { format.journal.pages } - { format.journal.eid } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check - emphasize -} -FUNCTION {format.in.ed.booktitle} -{ format.booktitle duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - get.bbl.editor - swap$ "," * - " " * swap$ * - "(" swap$ * ")" * - swap$ - " " * swap$ - * } - if$ - word.in swap$ * - } - if$ -} -FUNCTION {format.thesis.type} -{ type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ number "number" bibinfo.check - type duplicate$ empty$ - { pop$ bbl.techrep } - 'skip$ - if$ - "type" bibinfo.check - swap$ duplicate$ empty$ - { pop$ "t" change.case$ } - { tie.or.space.prefix * * } - if$ -} -FUNCTION {format.article.crossref} -{ - word.in - " \cite{" * crossref * "}" * -} -FUNCTION {format.book.crossref} -{ volume duplicate$ empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - pop$ word.in - } - { bbl.volume - capitalize - swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * - } - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.incoll.inproc.crossref} -{ - word.in - " \cite{" * crossref * "}" * -} -FUNCTION {format.org.or.pub} -{ 't := - "" - address empty$ t empty$ and - 'skip$ - { - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - } - if$ -} -FUNCTION {format.publisher.address} -{ publisher "publisher" bibinfo.warn format.org.or.pub -} - -FUNCTION {format.organization.address} -{ organization "organization" bibinfo.check format.org.or.pub -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { - journal - "journal" bibinfo.check - emphasize - "journal" output.check - format.vol.num.pages output - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - format.url output - new.sentence - format.note output - fin.entry -} -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - editor format.key output - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - format.date "year" output.check - date.block - format.btitle "title" output.check - format.edition output - crossref missing$ - { format.bvolume output - new.sentence - format.number.series output - format.publisher.address output - } - { - new.sentence - format.book.crossref output.nonnull - } - if$ - format.url output - new.sentence - format.note output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - editor format.key output - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - format.date "year" output.check - date.block - format.btitle "title" output.check - format.edition output - crossref missing$ - { - format.bvolume output - format.chapter.pages "chapter and pages" output.check - new.sentence - format.number.series output - format.publisher.address output - } - { - format.chapter.pages "chapter and pages" output.check - new.sentence - format.book.crossref output.nonnull - } - if$ - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.number.series output - format.edition output - format.chapter.pages output - format.publisher.address output - } - { format.incoll.inproc.crossref output.nonnull - format.chapter.pages output - } - if$ - format.url output - new.sentence - format.note output - fin.entry -} -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.number.series output - format.pages output - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - format.url output - new.sentence - format.note output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.btitle "title" output.check - format.edition output - new.sentence - organization "organization" bibinfo.check output - address "address" bibinfo.check output - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.btitle - "title" output.check - new.sentence - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title output - new.sentence - howpublished "howpublished" bibinfo.check output - format.url output - new.sentence - format.note output - fin.entry -} -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.btitle - "title" output.check - new.sentence - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.editors output - editor format.key output - format.date "year" output.check - date.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.url output - new.sentence - format.note output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - format.url output - new.sentence - format.note "note" output.check - fin.entry -} - -FUNCTION {default.type} { misc } -READ -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} -INTEGERS { len } -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} -FUNCTION {format.lab.names} -{ 's := - "" 't := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ - " " * bbl.etal * - } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - " " * bbl.etal * - } - { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ - * } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.label} -{ editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.label - 'author.key.label - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" - format.name$ 't := - nameptr #1 > - { - " " * - namesleft #1 = t "others" = and - { "zzzzz" * } - { t sortify * } - if$ - } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} -FUNCTION {editor.sort} -{ editor empty$ - { key empty$ - { "to sort, need editor or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ -} -FUNCTION {presort} -{ calc.label - label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - 'author.editor.sort - { type$ "proceedings" = - 'editor.sort - 'author.sort - if$ - } - if$ - #1 entry.max$ substring$ - 'sort.label := - sort.label - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} -SORT -STRINGS { last.label next.extra } -INTEGERS { last.extra.num number.label } -FUNCTION {initialize.extra.label.stuff} -{ #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'last.extra.num := - #0 'number.label := -} -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'next.extra := - extra.label - duplicate$ empty$ - 'skip$ - { "{\natexlab{" swap$ * "}}" * } - if$ - 'extra.label := - label extra.label * 'label := -} -EXECUTE {initialize.extra.label.stuff} -ITERATE {forward.pass} -REVERSE {reverse.pass} -FUNCTION {bib.sort.order} -{ sort.label - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} -ITERATE {bib.sort.order} -SORT -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\newcommand{\enquote}[1]{``#1''}" - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ - "\providecommand{\urlprefix}{URL }" - write$ newline$ - "\providecommand{\bibAnnoteFile}[1]{%" - write$ newline$ - " \IfFileExists{#1}{\begin{quotation}\noindent\textsc{Key:} #1\\" - write$ newline$ - " \textsc{Annotation:}\ \input{#1}\end{quotation}}{}}" - write$ newline$ - "\providecommand{\bibAnnote}[2]{%" - write$ newline$ - " \begin{quotation}\noindent\textsc{Key:} #1\\" - write$ newline$ - " \textsc{Annotation:}\ #2\end{quotation}}" - write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.state.consts} -ITERATE {call.type$} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -%% End of customized bst file -%% -%% End of file `te.bst'. - \ No newline at end of file From 9bb2d41d0ebf3758816c6b3af708e90defa80b88 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:27:10 +0200 Subject: [PATCH 3/9] update CSL --- .../association-for-computing-machinery.csl | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/_extensions/quarto-journals/acm/association-for-computing-machinery.csl b/_extensions/quarto-journals/acm/association-for-computing-machinery.csl index 4247262..686c45a 100644 --- a/_extensions/quarto-journals/acm/association-for-computing-machinery.csl +++ b/_extensions/quarto-journals/acm/association-for-computing-machinery.csl @@ -11,9 +11,13 @@ Patrick O'Brien obrienpat86@gmail.com + + Junliang Hu + vtta0124@gmail.com + - 2019-12-18T14:04:18+00:00 + 2024-03-10T19:16:53+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -88,7 +92,7 @@ - + @@ -104,7 +108,7 @@ - + @@ -129,14 +133,21 @@ - + + - - - - - + + + + + + + + + + + From 305db7f76b5d6059c84a32628d985b2300049a83 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:27:26 +0200 Subject: [PATCH 4/9] move comment before command --- .../quarto-journals/acm/partials/_acmart_authors.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_extensions/quarto-journals/acm/partials/_acmart_authors.tex b/_extensions/quarto-journals/acm/partials/_acmart_authors.tex index 3aa1c14..d0f82c5 100644 --- a/_extensions/quarto-journals/acm/partials/_acmart_authors.tex +++ b/_extensions/quarto-journals/acm/partials/_acmart_authors.tex @@ -40,13 +40,13 @@ $endif$ $endfor$ -$if(acm-metadata.shortauthors)$ -\renewcommand{\shortauthors}{$acm-metadata.shortauthors$} -$endif$ - %% By default, the full list of authors will be used in the page %% headers. Often, this list is too long, and will overlap %% other information printed in the page headers. This command allows %% the author to define a more concise list %% of authors' names for this purpose. %\renewcommand{\shortauthors}{Trovato et al.} +$if(acm-metadata.shortauthors)$ +\renewcommand{\shortauthors}{$acm-metadata.shortauthors$} +$endif$ + From bdc0c5934391b0f99a3f8b88ebc4c2d9b25494f0 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:27:46 +0200 Subject: [PATCH 5/9] Add metadata for missing optional content --- .../quarto-journals/acm/partials/_acmart_preamble.tex | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_extensions/quarto-journals/acm/partials/_acmart_preamble.tex b/_extensions/quarto-journals/acm/partials/_acmart_preamble.tex index 13532a1..6a132fd 100644 --- a/_extensions/quarto-journals/acm/partials/_acmart_preamble.tex +++ b/_extensions/quarto-journals/acm/partials/_acmart_preamble.tex @@ -11,13 +11,18 @@ %% These commands are for a PROCEEDINGS abstract or paper. \acmConference[$acm-metadata.conference-acronym$]{$acm-metadata.conference-name$}{$acm-metadata.conference-date$}{$acm-metadata.conference-location$} \acmPrice{$acm-metadata.price$} +%% +%% Uncomment \acmBooktitle if the title of the proceedings is different +%% from ``Proceedings of ...''! +%% +$if(acm-metadata.booktitle)$\acmBooktitle{$acm-metadata.booktitle$}$endif$ \acmISBN{$acm-metadata.isbn$} %% Submission ID. %% Use this when submitting an article to a sponsored event. You'll %% receive a unique submission ID from the organizers %% of the event, and this ID should be used as the parameter to this command. -%%\acmSubmissionID{123-A56-BU3} +$if(acm-metadata.submission-id)$\acmSubmissionID{$acm-metadata.submission-id$}$endif$ %% %% For managing citations, it is recommended to use bibliography @@ -43,5 +48,6 @@ %% Uncommenting %% the next command will enable that style. %%\citestyle{acmauthoryear} +$if(acm-metadata.citestyle)$\citestyle{$acm-metadata.citestyle$}$endif$ From bc959675da44c1fccb332a46a4915350074a5b7b Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:51:21 +0200 Subject: [PATCH 6/9] use format ressources to use local class and bst file --- _extensions/quarto-journals/acm/_extension.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_extensions/quarto-journals/acm/_extension.yml b/_extensions/quarto-journals/acm/_extension.yml index 18d85fd..e2a4c99 100644 --- a/_extensions/quarto-journals/acm/_extension.yml +++ b/_extensions/quarto-journals/acm/_extension.yml @@ -25,7 +25,6 @@ contributes: urlcolor: red fig-width: 6.5 fig-height: 4.5 - biblio-style: te.bst documentclass: acmart header-includes: | \definecolor{mypink}{RGB}{219, 48, 122} @@ -36,9 +35,12 @@ contributes: - "partials/_acmart_authors.tex" - "partials/_acmart_abstract.tex" cite-method: natbib + format-resources: + - acmart.cls + - ACM-Reference-Format.bst html: # define default configuration for the html version of your format number-sections: true toc: true theme: custom.scss - csl: association-for-computing-machinery.csl + csl: association-for-computing-machinery.csl \ No newline at end of file From cca01761b3a235a837b7c4dc7a08992d2f2928f0 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 13:51:43 +0200 Subject: [PATCH 7/9] tweak class for font problem to solve #38 - Font not found --- _extensions/quarto-journals/acm/acmart.cls | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_extensions/quarto-journals/acm/acmart.cls b/_extensions/quarto-journals/acm/acmart.cls index 5694f30..1335866 100644 --- a/_extensions/quarto-journals/acm/acmart.cls +++ b/_extensions/quarto-journals/acm/acmart.cls @@ -864,13 +864,13 @@ % and https://github.com/borisveytsman/acmart/issues/410 \ifxetex \RequirePackage{unicode-math} - \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf} + \setmathfont[Scale=MatchUppercase]{LibertinusMath-Regular.otf} \RequirePackage[tt=false]{libertine} \setmonofont[StylisticSet=3]{inconsolata} \else \ifluatex \RequirePackage{unicode-math} - \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf} + \setmathfont[Scale=MatchUppercase]{LibertinusMath-Regular.otf} \RequirePackage[tt=false]{libertine} \setmonofont[StylisticSet=3]{inconsolata} \else From 88dd238d9bcb2bf93956e71a320b01ea7df121ea Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 14:11:47 +0200 Subject: [PATCH 8/9] do not insert the biblio-config as acmart.cls does it --- _extensions/quarto-journals/acm/_extension.yml | 1 + bibliography.bib | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/_extensions/quarto-journals/acm/_extension.yml b/_extensions/quarto-journals/acm/_extension.yml index e2a4c99..125d435 100644 --- a/_extensions/quarto-journals/acm/_extension.yml +++ b/_extensions/quarto-journals/acm/_extension.yml @@ -35,6 +35,7 @@ contributes: - "partials/_acmart_authors.tex" - "partials/_acmart_abstract.tex" cite-method: natbib + biblio-config: false format-resources: - acmart.cls - ACM-Reference-Format.bst diff --git a/bibliography.bib b/bibliography.bib index a782f26..042f46c 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -170,7 +170,7 @@ @String{AdamHilger @String{AddisonWesley = "Addison-Wesley" } @String{AllynBacon = "Allyn and Bacon" } @String{AMS = "American Mathematical Society" } - @String{Birkhauser = "Birkha{\"u}ser" } + @String{Birkhauser = "Birkh{\"a}user" } @String{CambridgePress = "Cambridge University Press" } @String{Chelsea = "Chelsea" } @String{ClaredonPress = "Claredon Press" } @@ -1508,12 +1508,20 @@ @online{TUGInstmem @online{CTANacmart, author = {Boris Veytsman}, - title = {acmart---{C}lass for typesetting publications of {ACM}}, + title = {acmart---{Class} for typesetting publications of {ACM}}, year = 2017, url = {http://www.ctan.org/pkg/acmart}, lastaccessed = {May 27, 2017} } +@online{doclicense, + author = {Robin Schneider}, + title = {The \textsl{doclicense} package}, + year = 2022, + url = {http://www.ctan.org/pkg/doclicense}, + lastaccessed = {May 27, 2022} + } + @ARTICLE{bowman:reasoning, author = {Bowman, Mic and Debray, Saumya K. and Peterson, Larry L.}, title = {Reasoning About Naming Systems}, From c9f4fc0be13ff8ed3b7c29dd69cd526349f720ec Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Apr 2025 14:17:07 +0200 Subject: [PATCH 9/9] Don't support \Description for fancy figure yet to mitigate and check that only #36 - Outer par mode error with Quarto 1.4 remains --- _extensions/quarto-journals/acm/fancy-figure.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/_extensions/quarto-journals/acm/fancy-figure.lua b/_extensions/quarto-journals/acm/fancy-figure.lua index 3ff47ca..bb82e65 100644 --- a/_extensions/quarto-journals/acm/fancy-figure.lua +++ b/_extensions/quarto-journals/acm/fancy-figure.lua @@ -58,12 +58,13 @@ return { end description = pandoc.write(pandoc.Pandoc({description}), "latex") if quarto.doc.is_format("latex") then - local caption = pandoc.write(pandoc.Pandoc({image.caption}), "latex") - local blockStr = "\\begin{figure}\n" .. - "{\\centering \\includegraphics{" .. image.src .. "}}\n" .. - "\\caption{" .. caption .. "}\n\\Description{" - .. description .. "}\n\\end{figure}\n" - return {pandoc.RawInline("latex", blockStr)} + -- local caption = pandoc.write(pandoc.Pandoc({image.caption}), "latex") + -- local blockStr = "\\begin{figure}\n" .. + -- "{\\centering \\includegraphics{" .. image.src .. "}}\n" .. + -- "\\caption{" .. caption .. "}\n\\Description{" + -- .. description .. "}\n\\end{figure}\n" + -- return {pandoc.RawInline("latex", blockStr)} + return image else image.attr.attributes["alt"] = description image.attr.attributes["fig-alt"] = nil