1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710 |
- %%
- %% This is file `acmart.cls',
- %% generated with the docstrip utility.
- %%
- %% The original source files were:
- %%
- %% acmart.dtx (with options: `class')
- %%
- %% IMPORTANT NOTICE:
- %%
- %% For the copyright see the source file.
- %%
- %% Any modified versions of this file must be renamed
- %% with new filenames distinct from acmart.cls.
- %%
- %% For distribution of the original source see the terms
- %% for copying and modification in the file acmart.dtx.
- %%
- %% This generated file may be distributed as long as the
- %% original source files, as listed above, are part of the
- %% same distribution. (The sources need not necessarily be
- %% in the same archive or directory.)
- %% \CharacterTable
- %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
- %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
- %% Digits \0\1\2\3\4\5\6\7\8\9
- %% Exclamation \! Double quote \" Hash (number) \#
- %% Dollar \$ Percent \% Ampersand \&
- %% Acute accent \' Left paren \( Right paren \)
- %% Asterisk \* Plus \+ Comma \,
- %% Minus \- Point \. Solidus \/
- %% Colon \: Semicolon \; Less than \<
- %% Equals \= Greater than \> Question mark \?
- %% Commercial at \@ Left bracket \[ Backslash \\
- %% Right bracket \] Circumflex \^ Underscore \_
- %% Grave accent \` Left brace \{ Vertical bar \|
- %% Right brace \} Tilde \~}
- \NeedsTeXFormat{LaTeX2e}
- \ProvidesClass{acmart}
- [2018/11/11 v1.56 Typesetting articles for the Association for
- Computing Machinery]
- \def\@classname{acmart}
- \InputIfFileExists{acmart-preload-hook.tex}{%
- \ClassWarning{\@classname}{%
- I am loading acmart-preload-hook.tex. You are fully responsible
- for any problems from now on.}}{}
- \RequirePackage{xkeyval}
- \RequirePackage{xstring}
- \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
- manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
- sigplan, sigchi, sigchi-a}[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}}}
- \@DeclareACMFormat{manuscript}
- \@DeclareACMFormat{acmsmall}
- \@DeclareACMFormat{acmlarge}
- \@DeclareACMFormat{acmtog}
- \@DeclareACMFormat{sigconf}
- \@DeclareACMFormat{siggraph}
- \@DeclareACMFormat{sigplan}
- \@DeclareACMFormat{sigchi}
- \@DeclareACMFormat{sigchi-a}
- \ExecuteOptionsX{format}
- \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
- \if@ACM@screen
- \PackageInfo{\@classname}{Using screen mode}%
- \else
- \PackageInfo{\@classname}{Not using screen mode}%
- \fi}{\PackageError{\@classname}{The option screen can be either true or
- false}}
- \ExecuteOptionsX{screen=false}
- \define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{%
- \if@ACM@acmthm
- \PackageInfo{\@classname}{Requiring acmthm}%
- \else
- \PackageInfo{\@classname}{Suppressing acmthm}%
- \fi}{\PackageError{\@classname}{The option acmthm can be either true or
- false}}
- \ExecuteOptionsX{acmthm=true}
- \define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
- \if@ACM@review
- \PackageInfo{\@classname}{Using review mode}%
- \AtBeginDocument{\@ACM@printfoliostrue}%
- \else
- \PackageInfo{\@classname}{Not using review mode}%
- \fi}{\PackageError{\@classname}{The option review can be either true or
- false}}
- \ExecuteOptionsX{review=false}
- \define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
- \if@ACM@authorversion
- \PackageInfo{\@classname}{Using authorversion mode}%
- \else
- \PackageInfo{\@classname}{Not using authorversion mode}%
- \fi}{\PackageError{\@classname}{The option authorversion can be either true or
- false}}
- \ExecuteOptionsX{authorversion=false}
- \define@boolkey+{acmart.cls}[@ACM@]{nonacm}[true]{%
- \if@ACM@nonacm
- \PackageInfo{\@classname}{Using nonacm mode}%
- \AtBeginDocument{\@ACM@printacmreffalse}%
- % in 'nonacm' mode we disable the "ACM Reference Format"
- % printing by default, but this can be re-enabled by the
- % user using \settopmatter{printacmref=true}
- \else
- \PackageInfo{\@classname}{Not using nonacm mode}%
- \fi}{\PackageError{\@classname}{The option nonacm can be either true or
- false}}
- \ExecuteOptionsX{nonacm=false}
- \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
- \if@ACM@natbib
- \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
- \else
- \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
- \fi}{\PackageError{\@classname}{The option natbib can be either true or
- false}}
- \ExecuteOptionsX{natbib=true}
- \define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
- \if@ACM@anonymous
- \PackageInfo{\@classname}{Using anonymous mode}%
- \else
- \PackageInfo{\@classname}{Not using anonymous mode}%
- \fi}{\PackageError{\@classname}{The option anonymous can be either true or
- false}}
- \ExecuteOptionsX{anonymous=false}
- \define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
- \if@ACM@timestamp
- \PackageInfo{\@classname}{Using timestamp mode}%
- \else
- \PackageInfo{\@classname}{Not using timestamp mode}%
- \fi}{\PackageError{\@classname}{The option timestamp can be either true or
- false}}
- \ExecuteOptionsX{timestamp=false}
- \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
- \if@ACM@authordraft
- \PackageInfo{\@classname}{Using authordraft mode}%
- \@ACM@timestamptrue
- \@ACM@reviewtrue
- \else
- \PackageInfo{\@classname}{Not using authordraft mode}%
- \fi}{\PackageError{\@classname}{The option authordraft can be either true or
- false}}
- \ExecuteOptionsX{authordraft=false}
- \def\ACM@fontsize{}
- \DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
- \DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
- \DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
- \DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
- \DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
- \DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
- \ProcessOptionsX
- \ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
- \newif\if@ACM@manuscript
- \newif\if@ACM@journal
- \newif\if@ACM@sigchiamode
- \ifnum\ACM@format@nr=5\relax % siggraph
- \ClassWarning{\@classname}{The format siggraph is now obsolete.
- I am switching to sigconf.}
- \setkeys{acmart.cls}{format=sigconf}
- \fi
- \ifnum\ACM@format@nr=0\relax
- \@ACM@manuscripttrue
- \else
- \@ACM@manuscriptfalse
- \fi
- \@ACM@sigchiamodefalse
- \ifcase\ACM@format@nr
- \relax % manuscript
- \@ACM@journaltrue
- \or % acmsmall
- \@ACM@journaltrue
- \or % acmlarge
- \@ACM@journaltrue
- \or % acmtog
- \@ACM@journaltrue
- \or % sigconf
- \@ACM@journalfalse
- \or % siggraph
- \@ACM@journalfalse
- \or % sigplan
- \@ACM@journalfalse
- \or % sigchi
- \@ACM@journalfalse
- \or % sigchi-a
- \@ACM@journalfalse
- \@ACM@sigchiamodetrue
- \fi
- \ifx\ACM@fontsize\@empty
- \ifcase\ACM@format@nr
- \relax % manuscript
- \def\ACM@fontsize{9pt}%
- \or % acmsmall
- \def\ACM@fontsize{10pt}%
- \or % acmlarge
- \def\ACM@fontsize{10pt}%
- \or % acmtog
- \def\ACM@fontsize{9pt}%
- \or % sigconf
- \def\ACM@fontsize{9pt}%
- \or % siggraph
- \def\ACM@fontsize{9pt}%
- \or % sigplan
- \def\ACM@fontsize{10pt}%
- \or % sigchi
- \def\ACM@fontsize{10pt}%
- \or % sigchi-a
- \def\ACM@fontsize{10pt}%
- \fi
- \fi
- \ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
- \LoadClass[\ACM@fontsize, reqno]{amsart}
- \RequirePackage{microtype}
- \RequirePackage{etoolbox}
- \RequirePackage{refcount}
- \RequirePackage{totpages}
- \RequirePackage{environ}
- \if@ACM@manuscript
- \RequirePackage{setspace}
- \onehalfspacing
- \fi
- \RequirePackage{textcase}
- \if@ACM@natbib
- \RequirePackage{natbib}
- \renewcommand{\bibsection}{%
- \section*{\refname}%
- \phantomsection\addcontentsline{toc}{section}{\refname}%
- }
- \renewcommand{\bibfont}{\bibliofont}
- \renewcommand\setcitestyle[1]{
- \@for\@tempa:=#1\do
- {\def\@tempb{round}\ifx\@tempa\@tempb
- \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
- \def\@tempb{square}\ifx\@tempa\@tempb
- \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
- \def\@tempb{angle}\ifx\@tempa\@tempb
- \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
- \def\@tempb{curly}\ifx\@tempa\@tempb
- \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
- \def\@tempb{semicolon}\ifx\@tempa\@tempb
- \renewcommand\NAT@sep{;}\fi
- \def\@tempb{colon}\ifx\@tempa\@tempb
- \renewcommand\NAT@sep{;}\fi
- \def\@tempb{comma}\ifx\@tempa\@tempb
- \renewcommand\NAT@sep{,}\fi
- \def\@tempb{authoryear}\ifx\@tempa\@tempb
- \NAT@numbersfalse\fi
- \def\@tempb{numbers}\ifx\@tempa\@tempb
- \NAT@numberstrue\NAT@superfalse\fi
- \def\@tempb{super}\ifx\@tempa\@tempb
- \NAT@numberstrue\NAT@supertrue\fi
- \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
- \let\bibstyle=\@gobble\fi
- \def\@tempb{bibstyle}\ifx\@tempa\@tempb
- \let\bibstyle=\@citestyle\fi
- \def\@tempb{sort}\ifx\@tempa\@tempb
- \def\NAT@sort{\@ne}\fi
- \def\@tempb{nosort}\ifx\@tempa\@tempb
- \def\NAT@sort{\z@}\fi
- \def\@tempb{compress}\ifx\@tempa\@tempb
- \def\NAT@cmprs{\@ne}\fi
- \def\@tempb{nocompress}\ifx\@tempa\@tempb
- \def\NAT@cmprs{\z@}\fi
- \def\@tempb{sort&compress}\ifx\@tempa\@tempb
- \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
- \def\@tempb{mcite}\ifx\@tempa\@tempb
- \let\NAT@merge\@ne\fi
- \def\@tempb{merge}\ifx\@tempa\@tempb
- \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
- \def\@tempb{elide}\ifx\@tempa\@tempb
- \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
- \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
- \NAT@longnamestrue\fi
- \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
- \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
- \expandafter\NAT@find@eq\@tempa=\relax\@nil
- \if\@tempc\relax\else
- \expandafter\NAT@rem@eq\@tempc
- \def\@tempb{open}\ifx\@tempa\@tempb
- \xdef\NAT@open{\@tempc}\fi
- \def\@tempb{close}\ifx\@tempa\@tempb
- \xdef\NAT@close{\@tempc}\fi
- \def\@tempb{aysep}\ifx\@tempa\@tempb
- \xdef\NAT@aysep{\@tempc}\fi
- \def\@tempb{yysep}\ifx\@tempa\@tempb
- \xdef\NAT@yrsep{\@tempc}\fi
- \def\@tempb{notesep}\ifx\@tempa\@tempb
- \xdef\NAT@cmt{\@tempc}\fi
- \def\@tempb{citesep}\ifx\@tempa\@tempb
- \xdef\NAT@sep{\@tempc}\fi
- \fi
- }%
- \NAT@@setcites
- }
- \renewcommand\citestyle[1]{%
- \ifcsname bibstyle@#1\endcsname%
- \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
- \else%
- \@latex@error{Undefined `#1' citestyle}%
- \fi
- }%
- \fi
- \newcommand{\bibstyle@acmauthoryear}{%
- \setcitestyle{%
- authoryear,%
- open={[},close={]},citesep={;},%
- aysep={},yysep={,},%
- notesep={, }}}
- \newcommand{\bibstyle@acmnumeric}{%
- \setcitestyle{%
- numbers,sort&compress,%
- open={[},close={]},citesep={,},%
- notesep={, }}}
- \if@ACM@natbib
- \citestyle{acmnumeric}
- \fi
- \def\@startsection#1#2#3#4#5#6{%
- \if@noskipsec \leavevmode \fi
- \par
- \@tempskipa #4\relax
- \@afterindenttrue
- \ifdim \@tempskipa <\z@
- \@tempskipa -\@tempskipa \@afterindentfalse
- \fi
- \if@nobreak
- \everypar{}%
- \else
- \addpenalty\@secpenalty\addvspace\@tempskipa
- \fi
- \@ifstar
- {\@ssect{#3}{#4}{#5}{#6}}%
- {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
- \def\@sect#1#2#3#4#5#6[#7]#8{%
- \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
- \ifnum #2>\c@secnumdepth
- \let\@svsec\@empty
- \else
- \refstepcounter{#1}%
- \protected@edef\@svsec{\@seccntformat{#1}\relax}%
- \fi
- \@tempskipa #5\relax
- \ifdim \@tempskipa>\z@
- \begingroup
- #6{%
- \@hangfrom{\hskip #3\relax\@svsec}%
- \interlinepenalty \@M #8\@@par}%
- \endgroup
- \csname #1mark\endcsname{#7}%
- \ifnum #2>\c@secnumdepth \else
- \@tochangmeasure{\csname the#1\endcsname}%
- \fi
- \addcontentsline{toc}{#1}{%
- \ifnum #2>\c@secnumdepth \else
- \protect\numberline{\csname the#1\endcsname}%
- \fi
- #7}%
- \else
- \def\@svsechd{%
- #6{\hskip #3\relax
- \@svsec #8}%
- \csname #1mark\endcsname{#7}%
- \ifnum #2>\c@secnumdepth \else
- \@tochangmeasure{\csname the#1\endcsname\space}%
- \fi
- \addcontentsline{toc}{#1}{%
- \ifnum #2>\c@secnumdepth \else
- \protect\numberline{\csname the#1\endcsname}%
- \fi
- #7}}%
- \fi
- \@xsect{#5}}
- \def\@xsect#1{%
- \@tempskipa #1\relax
- \ifdim \@tempskipa>\z@
- \par \nobreak
- \vskip \@tempskipa
- \@afterheading
- \else
- \@nobreakfalse
- \global\@noskipsectrue
- \everypar{%
- \if@noskipsec
- \global\@noskipsecfalse
- {\setbox\z@\lastbox}%
- \clubpenalty\@M
- \begingroup \@svsechd \endgroup
- \unskip
- \@tempskipa #1\relax
- \hskip -\@tempskipa
- \else
- \clubpenalty \@clubpenalty
- \everypar{}%
- \fi}%
- \fi
- \ignorespaces}
- \def\@seccntformat#1{\csname the#1\endcsname\quad}
- \def\@ssect#1#2#3#4#5{%
- \@tempskipa #3\relax
- \ifdim \@tempskipa>\z@
- \begingroup
- #4{%
- \@hangfrom{\hskip #1}%
- \interlinepenalty \@M #5\@@par}%
- \endgroup
- \else
- \def\@svsechd{#4{\hskip #1\relax #5}}%
- \fi
- \@xsect{#3}}
- \def\@starttoc#1#2{\begingroup\makeatletter
- \setTrue{#1}%
- \par\removelastskip\vskip\z@skip
- \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
- {.5\linespacing}{\centering\contentsnamefont}{#2}%
- \@input{\jobname.#1}%
- \if@filesw
- \@xp\newwrite\csname tf@#1\endcsname
- \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
- \fi
- \global\@nobreakfalse \endgroup
- \addvspace{32\p@\@plus14\p@}%
- }
- \def\l@section{\@tocline{1}{0pt}{1pc}{2pc}{}}
- \def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
- \def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
- \def\@makefntext{\noindent\@makefnmark}
- \if@ACM@sigchiamode
- \long\def\@footnotetext#1{\marginpar{%
- \reset@font\small
- \interlinepenalty\interfootnotelinepenalty
- \protected@edef\@currentlabel{%
- \csname p@footnote\endcsname\@thefnmark
- }%
- \color@begingroup
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
- \color@endgroup}}%
- \fi
- \long\def\@mpfootnotetext#1{%
- \global\setbox\@mpfootins\vbox{%
- \unvbox\@mpfootins
- \reset@font\footnotesize
- \hsize\columnwidth
- \@parboxrestore
- \protected@edef\@currentlabel
- {\csname p@mpfootnote\endcsname\@thefnmark}%
- \color@begingroup\centering
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
- \color@endgroup}}
- \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
- \let\@footnotemark@nolink\@footnotemark
- \let\@footnotetext@nolink\@footnotetext
- \RequirePackage[bookmarksnumbered,unicode]{hyperref}
- \pdfstringdefDisableCommands{%
- \def\unskip{}%
- \def\textbullet{- }%
- \def\textrightarrow{ -> }%
- \def\footnotemark{}%
- }
- \urlstyle{rm}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \or % sigconf
- \or % siggraph
- \or % sigplan
- \urlstyle{sf}
- \or % sigchi
- \or % sigchi-a
- \urlstyle{sf}
- \fi
- \AtEndPreamble{%
- \if@ACM@screen
- \hypersetup{colorlinks,
- linkcolor=ACMPurple,
- citecolor=ACMPurple,
- urlcolor=ACMDarkBlue,
- filecolor=ACMDarkBlue}
- \else
- \hypersetup{hidelinks}
- \fi
- \hypersetup{pdflang={en},
- pdfdisplaydoctitle}}
- \if@ACM@natbib
- \let\citeN\cite
- \let\cite\citep
- \let\citeANP\citeauthor
- \let\citeNN\citeyearpar
- \let\citeyearNP\citeyear
- \let\citeNP\citealt
- \DeclareRobustCommand\citeA
- {\begingroup\NAT@swafalse
- \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
- \providecommand\newblock{}%
- \else
- \AtBeginDocument{%
- \let\shortcite\cite%
- \providecommand\citename[1]{#1}}
- \fi
- \newcommand\shortcite[2][]{%
- \ifNAT@numbers\cite[#1]{#2}\else\citeyearpar[#1]{#2}\fi}
- \def\bibliographystyle#1{%
- \ifx\@begindocumenthook\@undefined\else
- \expandafter\AtBeginDocument
- \fi
- {\if@filesw
- \immediate\write\@auxout{\string\bibstyle{#1}}%
- \fi}}
- \RequirePackage{graphicx}
- \RequirePackage[prologue]{xcolor}
- \definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
- \definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
- \definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
- \definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
- \definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
- \definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
- \definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
- \definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
- \if@ACM@authordraft
- \RequirePackage{draftwatermark}
- \SetWatermarkFontSize{0.5in}
- \SetWatermarkColor[gray]{.9}
- \SetWatermarkText{\parbox{12em}{\centering
- Unpublished working draft.\\
- Not for distribution.}}
- \fi
- \RequirePackage{geometry}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \geometry{letterpaper,head=13pt,
- marginparwidth=6pc,heightrounded}%
- \or % acmsmall
- \geometry{twoside=true,
- includeheadfoot, head=13pt, foot=2pc,
- paperwidth=6.75in, paperheight=10in,
- top=58pt, bottom=44pt, inner=46pt, outer=46pt,
- marginparwidth=2pc,heightrounded
- }%
- \or % acmlarge
- \geometry{twoside=true, head=13pt, foot=2pc,
- paperwidth=8.5in, paperheight=11in,
- includeheadfoot,
- top=78pt, bottom=114pt, inner=81pt, outer=81pt,
- marginparwidth=4pc,heightrounded
- }%
- \or % acmtog
- \geometry{twoside=true, head=13pt, foot=2pc,
- paperwidth=8.5in, paperheight=11in,
- includeheadfoot, columnsep=24pt,
- top=52pt, bottom=75pt, inner=52pt, outer=52pt,
- marginparwidth=2pc,heightrounded
- }%
- \or % sigconf
- \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 % siggraph
- \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 % sigplan
- \geometry{twoside=true, head=13pt,
- paperwidth=8.5in, paperheight=11in,
- includeheadfoot=false, columnsep=2pc,
- top=1in, bottom=1in, inner=0.75in, outer=0.75in,
- marginparwidth=2pc,heightrounded
- }%
- \or % sigchi
- \geometry{twoside=true, head=13pt,
- paperwidth=8.5in, paperheight=11in,
- includeheadfoot, columnsep=2pc,
- top=66pt, bottom=73pt, inner=54pt, outer=54pt,
- marginparwidth=2pc,heightrounded
- }%
- \or % sigchi-a
- \geometry{twoside=false, head=13pt,
- paperwidth=297mm, paperheight=210mm,
- includeheadfoot, marginparsep=72pt,
- marginparwidth=170pt, columnsep=20pt,
- top=72pt, bottom=72pt, left=314pt, right=72pt
- }%
- \@mparswitchfalse
- \reversemarginpar
- \fi
- \setlength\parindent{10\p@}
- \setlength\parskip{\z@}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \setlength\parindent{9\p@}%
- \or % sigconf
- \or % siggraph
- \or % sigplan
- \or % sigchi
- \or % sigchi-a
- \fi
- \setlength\normalparindent{\parindent}
- \def\copyrightpermissionfootnoterule{\kern-3\p@
- \hrule \@width \columnwidth \kern 2.6\p@}
- \RequirePackage{manyfoot}
- \SelectFootnoteRule[2]{copyrightpermission}
- \DeclareNewFootnote{authorsaddresses}
- \SelectFootnoteRule[2]{copyrightpermission}
- \DeclareNewFootnote{copyrightpermission}
- \def\footnoterule{\kern-3\p@
- \hrule \@width 4pc \kern 2.6\p@}
- \def\endminipage{%
- \par
- \unskip
- \ifvoid\@mpfootins\else
- \vskip\skip\@mpfootins
- \normalcolor
- \unvbox\@mpfootins
- \fi
- \@minipagefalse
- \color@endgroup
- \egroup
- \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
- \def\@textbottom{\vskip \z@ \@plus 1pt}
- \let\@texttop\relax
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \flushbottom
- \or % sigconf
- \flushbottom
- \or % siggraph
- \flushbottom
- \or % sigplan
- \flushbottom
- \or % sigchi
- \flushbottom
- \or % sigchi-a
- \fi
- \RequirePackage{iftex}
- \ifPDFTeX
- \input{glyphtounicode}
- \pdfglyphtounicode{f_f}{FB00}
- \pdfglyphtounicode{f_f_i}{FB03}
- \pdfglyphtounicode{f_f_l}{FB04}
- \pdfglyphtounicode{f_i}{FB01}
- \pdfglyphtounicode{t_t}{0074 0074}
- \pdfglyphtounicode{f_t}{0066 0074}
- \pdfglyphtounicode{T_h}{0054 0068}
- \pdfgentounicode=1
- \fi
- \RequirePackage{cmap}
- \newif\if@ACM@newfonts
- \@ACM@newfontstrue
- \IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
- have the libertine package installed. Please upgrade your
- TeX}\@ACM@newfontsfalse}
- \IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
- have the zi4 package installed. Please upgrade your
- TeX}\@ACM@newfontsfalse}
- \IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
- have the newtxmath package installed. Please upgrade your
- TeX}\@ACM@newfontsfalse}
- \if@ACM@newfonts
- \RequirePackage[T1]{fontenc}
- \ifxetex
- \RequirePackage[tt=false]{libertine}
- \setmonofont{inconsolata}
- \else
- \RequirePackage[tt=false, type1=true]{libertine}
- \fi
- \RequirePackage[varqu]{zi4}
- \RequirePackage[libertine]{newtxmath}
- \fi
- \let\liningnums\@undefined
- \AtEndPreamble{%
- \DeclareTextFontCommand{\liningnums}{\libertineLF}}
- \if@ACM@sigchiamode
- \renewcommand{\familydefault}{\sfdefault}
- \fi
- \newif\if@Description@present
- \@Description@presenttrue
- \newif\if@undescribed@images
- \@undescribed@imagesfalse
- \newcommand\Description[2][]{\global\@Description@presenttrue}
- \AtEndDocument{\if@undescribed@images
- \ClassWarningNoLine{\@classname}{Some images may lack descriptions}\fi}
- \AtBeginEnvironment{figure}{\@Description@presentfalse}
- \AtBeginEnvironment{figure*}{\@Description@presentfalse}
- \AtEndEnvironment{figure}{\if@Description@present\else
- \global\@undescribed@imagestrue
- \ClassWarning{\@classname}{A possible image without description}\fi}
- \AtEndEnvironment{figure*}{\if@Description@present\else
- \global\@undescribed@imagestrue
- \ClassWarning{\@classname}{A possible image without description}\fi}
- \RequirePackage{caption, float}
- \captionsetup[table]{position=top}
- \if@ACM@journal
- \captionsetup{labelfont={sf, small},
- textfont={sf, small}, margin=\z@}
- \captionsetup[figure]{name={Fig.}}
- \else
- \captionsetup{labelfont={bf},
- textfont={bf}, labelsep=colon, margin=\z@}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \or % sigconf
- \or % siggraph
- \captionsetup{textfont={it}}
- \or % sigplan
- \captionsetup{labelfont={bf},
- textfont={normalfont}, labelsep=period, margin=\z@}
- \or % sigchi
- \captionsetup[figure]{labelfont={bf, small},
- textfont={bf, small}}
- \captionsetup[table]{labelfont={bf, small},
- textfont={bf, small}}
- \or % sigchi-a
- \captionsetup[figure]{labelfont={bf, small},
- textfont={bf, small}}
- \captionsetup[table]{labelfont={bf, small},
- textfont={bf, small}}
- \fi
- \fi
- \newfloat{sidebar}{}{sbar}
- \floatname{sidebar}{Sidebar}
- \renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
- \long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}%
- \marginpar{\small#1}\egroup}
- \newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
- \long\def\@marginfigure#1{\bgroup
- \captionsetup{type=figure}%
- \marginpar{\@Description@presentfalse\centering
- \small#1\if@Description@present\else
- \global\@undescribed@imagestrue
- \ClassWarning{\@classname}{A possible image without description}
- \fi}%
- \egroup}
- \newenvironment{margintable}{\Collect@Body\@margintable}{}
- \long\def\@margintable#1{\bgroup\captionsetup{type=table}%
- \marginpar{\centering\small#1}\egroup}
- \newdimen\fulltextwidth
- \fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
- \if@ACM@sigchiamode
- \def\@dblfloat{\bgroup\columnwidth=\fulltextwidth
- \let\@endfloatbox\@endwidefloatbox
- \def\@fpsadddefault{\def\@fps{tp}}%
- \@float}
- \fi
- \if@ACM@sigchiamode
- \def\end@dblfloat{%
- \end@float\egroup}
- \fi
- \def\@endwidefloatbox{%
- \par\vskip\z@skip
- \@minipagefalse
- \outer@nobreak
- \egroup
- \color@endbox
- \global\setbox\@currbox=\vbox{\moveleft
- \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
- \wd\@currbox=\textwidth
- }
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \or % sigconf
- \or % siggraph
- \or % sigplan
- \def\labelenumi{\theenumi.}
- \def\labelenumii{\theenumii.}
- \def\labelenumiii{\theenumiii.}
- \def\labelenumiv{\theenumiv.}
- \or % sigchi
- \or % sigchi-a
- \fi
- \newdimen\@ACM@labelwidth
- \AtBeginDocument{%
- \setlength\labelsep{4pt}
- \setlength{\@ACM@labelwidth}{6.5pt}
-
- %% First-level list: when beginning after the first line of an
- %% indented paragraph or ending before an indented paragraph, labels
- %% should not hang to the left of the preceding/following text.
- \setlength\leftmargini{\z@}
- \addtolength\leftmargini{\parindent}
- \addtolength\leftmargini{2\labelsep}
- \addtolength\leftmargini{\@ACM@labelwidth}
-
- %% Second-level and higher lists.
- \setlength\leftmarginii{\z@}
- \addtolength\leftmarginii{0.5\labelsep}
- \addtolength\leftmarginii{\@ACM@labelwidth}
- \setlength\leftmarginiii{\leftmarginii}
- \setlength\leftmarginiv{\leftmarginiii}
- \setlength\leftmarginv{\leftmarginiv}
- \setlength\leftmarginvi{\leftmarginv}
- \@listi}
- \newskip\listisep
- \listisep\smallskipamount
- \def\@listI{\leftmargin\leftmargini
- \labelwidth\leftmargini \advance\labelwidth-\labelsep
- \listparindent\z@
- \topsep\listisep}
- \let\@listi\@listI
- \def\@listii{\leftmargin\leftmarginii
- \labelwidth\leftmarginii \advance\labelwidth-\labelsep
- \topsep\z@skip}
- \def\@listiii{\leftmargin\leftmarginiii
- \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
- \def\@listiv{\leftmargin\leftmarginiv
- \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
- \def\@listv{\leftmargin\leftmarginv
- \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
- \def\@listvi{\leftmargin\leftmarginvi
- \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
- \renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1}
- \renewenvironment{description}{\list{}{%
- \labelwidth\@ACM@labelwidth
- \let\makelabel\descriptionlabel}%
- }{
- \endlist
- }
- \let\enddescription=\endlist % for efficiency
- \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
- CIE,%
- CSUR,%
- DTRAP,%
- IMWUT,%
- JACM,%
- JDIQ,%
- JEA,%
- JERIC,%
- JETC,%
- JOCCH,%
- PACMCGIT,%
- PACMHCI,%
- PACMPL,%
- POMACS,%
- TAAS,%
- TACCESS,%
- TACO,%
- TALG,%
- TALLIP,%
- TAP,%
- TCPS,%
- TDSCI,%
- TEAC,%
- TECS,%
- THRI,%
- TIIS,%
- TIOT,%
- TISSEC,%
- TIST,%
- TKDD,%
- TMIS,%
- TOCE,%
- TOCHI,%
- TOCL,%
- TOCS,%
- TOCT,%
- TODAES,%
- TODS,%
- TOG,%
- TOIS,%
- TOIT,%
- TOMACS,%
- TOMM,%
- TOMPECS,%
- TOMS,%
- TOPC,%
- TOPS,%
- TOPLAS,%
- TOS,%
- TOSEM,%
- TOSN,%
- TRETS,%
- TSAS,%
- TSC,%
- TSLP,%
- TWEB%
- }{%
- \ifcase\@journalCode@nr
- \relax % CIE
- \def\@journalName{ACM Computers in Entertainment}%
- \def\@journalNameShort{ACM Comput. Entertain.}%
- \def\@permissionCodeOne{1544-3574}%
- \or % CSUR
- \def\@journalName{ACM Computing Surveys}%
- \def\@journalNameShort{ACM Comput. Surv.}%
- \def\@permissionCodeOne{0360-0300}%
- \or % DTRAP
- \def\@journalName{Digital Threats: Research and Practice}%
- \def\@journalNameShort{Digit. Threat. Res. Pract.}%
- \def\@permissionCodeOne{2576-5337}%
- \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}%
- \@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}%
- \or % JDIQ
- \def\@journalName{ACM Journal of Data and Information Quality}%
- \def\@journalNameShort{ACM J. Data Inform. Quality}%
- \def\@permissionCodeOne{1936-1955}%
- \or % JEA
- \def\@journalName{ACM Journal of Experimental Algorithmics}%
- \def\@journalNameShort{ACM J. Exp. Algor.}%
- \def\@permissionCodeOne{1084-6654}%
- \or % JERIC
- \def\@journalName{ACM Journal of Educational Resources in Computing}%
- \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
- \def\@permissionCodeOne{1073-0516}%
- \or % JETC
- \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
- \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
- \def\@permissionCodeOne{1550-4832}%
- \or % JOCCH
- \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
- \def\@journalNameShort{ACM J. Comput. Cult. Herit.}%
- \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}%
- \@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}%
- \@ACM@screentrue
- \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
- \or % PACMPL
- \def\@journalName{Proceedings of the ACM on Programming Languages}%
- \def\@journalNameShort{Proc. ACM Program. Lang.}%
- \def\@permissionCodeOne{2475-1421}%
- \@ACM@screentrue
- \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
- \or % POMACS
- \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
- \def\@journalNameShort{Proc. ACM Meas. Anal. Comput. Syst.}%
- \def\@permissionCodeOne{2476-1249}%
- \@ACM@screentrue
- \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
- \or % TAAS
- \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
- \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
- \def\@permissionCodeOne{1556-4665}%
- \or % TACCESS
- \def\@journalName{ACM Transactions on Accessible Computing}%
- \def\@journalNameShort{ACM Trans. Access. Comput.}%
- \def\@permissionCodeOne{1936-7228}%
- \or % TACO
- \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
- \def\@journalNameShort{ACM Trans. Arch. Code Optim.}%
- \or % TALG
- \def\@journalName{ACM Transactions on Algorithms}%
- \def\@journalNameShort{ACM Trans. Algor.}%
- \def\@permissionCodeOne{1549-6325}%
- \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}%
- \or % TAP
- \def\@journalName{ACM Transactions on Applied Perception}%
- \or % TCPS
- \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
- \or % TDSCI
- \def\@journalName{ACM Transactions on Data Science}%
- \def\@journalNameShort{ACM Trans. Data Sci.}%
- \def\@permissionCodeOne{2577-3224}%
- \or % TEAC
- \def\@journalName{ACM Transactions on Economics and Computation}%
- \or % TECS
- \def\@journalName{ACM Transactions on Embedded Computing Systems}%
- \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
- \def\@permissionCodeOne{1539-9087}%
- \or % THRI
- \def\@journalName{ACM Transactions on Human-Robot Interaction}%
- \def\@journalNameShort{ACM Trans. Hum.-Robot Interact.}%
- \def\@permissionCodeOne{2573-9522}%
- \or % TIIS
- \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
- \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
- \def\@permissionCodeOne{2160-6455}%
- \or % TIOT
- \def\@journalName{ACM Transactions on Internet of Things}%
- \def\@journalNameShort{ACM Trans. Internet Things}%
- \def\@permissionCodeOne{2577-6207}%
- \or % TISSEC
- \def\@journalName{ACM Transactions on Information and System Security}%
- \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
- \def\@permissionCodeOne{1094-9224}%
- \or % TIST
- \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
- \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
- \def\@permissionCodeOne{2157-6904}%
- \or % TKDD
- \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
- \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
- \def\@permissionCodeOne{1556-4681}%
- \or % TMIS
- \def\@journalName{ACM Transactions on Management Information Systems}%
- \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
- \def\@permissionCodeOne{2158-656X}%
- \or % TOCE
- \def\@journalName{ACM Transactions on Computing Education}%
- \def\@journalNameShort{ACM Trans. Comput. Educ.}%
- \def\@permissionCodeOne{1946-6226}%
- \or % TOCHI
- \def\@journalName{ACM Transactions on Computer-Human Interaction}%
- \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
- \def\@permissionCodeOne{1073-0516}%
- \or % TOCL
- \def\@journalName{ACM Transactions on Computational Logic}%
- \def\@journalNameShort{ACM Trans. Comput. Logic}%
- \def\@permissionCodeOne{1529-3785}%
- \or % TOCS
- \def\@journalName{ACM Transactions on Computer Systems}%
- \def\@journalNameShort{ACM Trans. Comput. Syst.}%
- \def\@permissionCodeOne{0734-2071}%
- \or % TOCT
- \def\@journalName{ACM Transactions on Computation Theory}%
- \def\@journalNameShort{ACM Trans. Comput. Theory}%
- \def\@permissionCodeOne{1942-3454}%
- \or % TODAES
- \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
- \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
- \def\@permissionCodeOne{1084-4309}%
- \or % TODS
- \def\@journalName{ACM Transactions on Database Systems}%
- \def\@journalNameShort{ACM Trans. Datab. Syst.}%
- \def\@permissionCodeOne{0362-5915}%
- \or % TOG
- \def\@journalName{ACM Transactions on Graphics}%
- \def\@journalNameShort{ACM Trans. Graph.}%
- \def\@permissionCodeOne{0730-0301}
- \or % TOIS
- \def\@journalName{ACM Transactions on Information Systems}%
- \def\@permissionCodeOne{1046-8188}%
- \or % TOIT
- \def\@journalName{ACM Transactions on Internet Technology}%
- \def\@journalNameShort{ACM Trans. Internet Technol.}%
- \def\@permissionCodeOne{1533-5399}%
- \or % TOMACS
- \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
- \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
- \or % TOMM
- \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
- \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
- \def\@permissionCodeOne{1551-6857}%
- \def\@permissionCodeTwo{0100}%
- \or % TOMPECS
- \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}%
- \or % TOMS
- \def\@journalName{ACM Transactions on Mathematical Software}%
- \def\@journalNameShort{ACM Trans. Math. Softw.}%
- \def\@permissionCodeOne{0098-3500}%
- \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}%
- \or % TOPLAS
- \def\@journalName{ACM Transactions on Programming Languages and Systems}%
- \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
- \def\@permissionCodeOne{0164-0925}%
- \or % TOS
- \def\@journalName{ACM Transactions on Storage}%
- \def\@journalNameShort{ACM Trans. Storage}%
- \def\@permissionCodeOne{1553-3077}%
- \or % TOSEM
- \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
- \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
- \def\@permissionCodeOne{1049-331X}%
- \or % TOSN
- \def\@journalName{ACM Transactions on Sensor Networks}%
- \def\@journalNameShort{ACM Trans. Sensor Netw.}%
- \def\@permissionCodeOne{1550-4859}%
- \or % TRETS
- \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
- \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
- \def\@permissionCodeOne{1936-7406}%
- \or % TSAS
- \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
- \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
- \def\@permissionCodeOne{2374-0353}%
- \or % TSC
- \def\@journalName{ACM Transactions on Social Computing}%
- \def\@journalNameShort{ACM Trans. Soc. Comput.}%
- \def\@permissionCodeOne{2469-7818}%
- \or % TSLP
- \def\@journalName{ACM Transactions on Speech and Language Processing}%
- \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
- \def\@permissionCodeOne{1550-4875}%
- \or % TWEB
- \def\@journalName{ACM Transactions on the Web}%
- \def\@journalNameShort{ACM Trans. Web}%
- \def\@permissionCodeOne{1559-1131}%
- \fi
- \ClassInfo{\@classname}{Using journal code \@journalCode}%
- }{%
- \ClassError{\@classname}{Incorrect journal #1}%
- }%
- \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}}
- \def\@journalCode@nr{0}
- \def\@journalName{}%
- \def\@journalNameShort{\@journalName}%
- \def\@permissionCodeOne{XXXX-XXXX}%
- \def\@permissionCodeTwo{}%
- \newcommand\acmConference[4][]{%
- \gdef\acmConference@shortname{#1}%
- \gdef\acmConference@name{#2}%
- \gdef\acmConference@date{#3}%
- \gdef\acmConference@venue{#4}%
- \ifx\acmConference@shortname\@empty
- \gdef\acmConference@shortname{#2}%
- \fi}
- \acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
- DC, USA}
- \def\acmBooktitle#1{\gdef\@acmBooktitle{#1}}
- \acmBooktitle{Proceedings of \acmConference@name
- \ifx\acmConference@name\acmConference@shortname\else
- \ (\acmConference@shortname)\fi}
- \def\@editorsAbbrev{(Ed.)}
- \def\@acmEditors{}
- \def\editor#1{\ifx\@acmEditors\@empty
- \gdef\@acmEditors{#1}%
- \else
- \gdef\@editorsAbbrev{(Eds.)}%
- \g@addto@macro\@acmEditors{\and#1}%
- \fi}
- \def\subtitle#1{\def\@subtitle{#1}}
- \subtitle{}
- \newcount\num@authorgroups
- \num@authorgroups=0\relax
- \newcount\num@authors
- \num@authors=0\relax
- \newif\if@insideauthorgroup
- \@insideauthorgroupfalse
- \renewcommand\author[2][]{%
- \global\advance\num@authors by 1\relax
- \if@insideauthorgroup\else
- \global\advance\num@authorgroups by 1\relax
- \global\@insideauthorgrouptrue
- \fi
- \ifx\addresses\@empty
- \if@ACM@anonymous
- \gdef\addresses{\@author{Anonymous Author(s)%
- \ifx\@acmSubmissionID\@empty\else\\Submission Id:
- \@acmSubmissionID\fi}}%
- \gdef\authors{Anonymous Author(s)}%
- \else
- \gdef\addresses{\@author{#2}}%
- \gdef\authors{#2}%
- \fi
- \else
- \if@ACM@anonymous\else
- \g@addto@macro\addresses{\and\@author{#2}}%
- \g@addto@macro\authors{\and#2}%
- \fi
- \fi
- \if@ACM@anonymous
- \ifx\shortauthors\@empty
- \gdef\shortauthors{Anon.
- \ifx\@acmSubmissionID\@empty\else Submission Id:
- \@acmSubmissionID\fi}%
- \fi
- \else
- \def\@tempa{#1}%
- \ifx\@tempa\@empty
- \ifx\shortauthors\@empty
- \gdef\shortauthors{#2}%
- \else
- \g@addto@macro\shortauthors{\and#2}%
- \fi
- \else
- \ifx\shortauthors\@empty
- \gdef\shortauthors{#1}%
- \else
- \g@addto@macro\shortauthors{\and#1}%
- \fi
- \fi
- \fi}
- \newcommand{\affiliation}[2][]{%
- \global\@insideauthorgroupfalse
- \if@ACM@anonymous\else
- \g@addto@macro\addresses{\affiliation{#1}{#2}}%
- \fi}
- \define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
- [true]{}{\ClassError{\@classname}{The option obeypunctuation can be either true or false}}
- \def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
- \def\@additionalaffiliation#1{\bgroup
- \def\position##1{\ignorespaces}%
- \def\institution##1{##1\ignorespaces}%
- \def\department{\@ifnextchar[{\@department}{\@department[]}}%
- \def\@department[##1]##2{\unskip, ##2\ignorespaces}%
- \let\streetaddress\position
- \let\city\position
- \let\state\position
- \let\postcode\position
- \let\country\position
- Also with #1\unskip.\egroup}
- \renewcommand{\email}[2][]{%
- \if@ACM@anonymous\else
- \g@addto@macro\addresses{\email{#1}{#2}}%
- \fi}
- \def\orcid#1{\unskip\ignorespaces}
- \def\authorsaddresses#1{\def\@authorsaddresses{#1}}
- \authorsaddresses{\@mkauthorsaddresses}
- \def\@titlenotes{}
- \def\titlenote#1{%
- \g@addto@macro\@title{\footnotemark}%
- \if@ACM@anonymous
- \g@addto@macro\@titlenotes{%
- \stepcounter{footnote}\footnotetext{Title note}}%
- \else
- \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
- \fi}
- \def\@subtitlenotes{}
- \def\subtitlenote#1{%
- \g@addto@macro\@subtitle{\footnotemark}%
- \if@ACM@anonymous
- \g@addto@macro\@subtitlenotes{%
- \stepcounter{footnote}\footnotetext{Subtitle note}}%
- \else
- \g@addto@macro\@subtitlenotes{%
- \stepcounter{footnote}\footnotetext{#1}}%
- \fi}
- \def\@authornotes{}
- \def\authornote#1{%
- \if@ACM@anonymous\else
- \g@addto@macro\addresses{\@authornotemark}%
- \g@addto@macro\@authornotes{%
- \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}}%
- \fi}
- \def\acmVolume#1{\def\@acmVolume{#1}}
- \acmVolume{1}
- \def\acmNumber#1{\def\@acmNumber{#1}}
- \acmNumber{1}
- \def\acmArticle#1{\def\@acmArticle{#1}}
- \acmArticle{}
- \def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
- \acmArticleSeq{\@acmArticle}
- \def\acmYear#1{\def\@acmYear{#1}}
- \acmYear{\the\year}
- \def\acmMonth#1{\def\@acmMonth{#1}}
- \acmMonth{\the\month}
- \def\@acmPubDate{\ifcase\@acmMonth\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~\@acmYear}
- \def\acmPrice#1{\def\@acmPrice{#1}}
- \acmPrice{15.00}
- \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}}
- \acmSubmissionID{}
- \def\acmISBN#1{\def\@acmISBN{#1}}
- \acmISBN{978-x-xxxx-xxxx-x/YY/MM}
- \def\acmDOI#1{\def\@acmDOI{#1}}
- \acmDOI{10.1145/nnnnnnn.nnnnnnn}
- \newif\if@ACM@badge
- \@ACM@badgefalse
- \newlength\@ACM@badge@width
- \setlength\@ACM@badge@width{5pc}
- \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{}
- \def\startPage#1{\def\@startPage{#1}}
- \startPage{}
- \def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is
- obsolete. I am going to ignore it}}
- \def\keywords#1{\def\@keywords{#1}}
- \keywords{}
- \renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
- \long\def\@saveabstract#1{\long\gdef\@abstract{#1}}
- \@saveabstract{}
- \long\def\@lempty{}
- \define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{%
- \if@ACM@printccs
- \ClassInfo{\@classname}{Printing CCS}%
- \else
- \ClassInfo{\@classname}{Suppressing CCS}%
- \fi}{\ClassError{\@classname}{The option printccs can be either true or false}}
- \define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
- \if@ACM@printacmref
- \ClassInfo{\@classname}{Printing bibformat}%
- \else
- \ClassInfo{\@classname}{Suppressing bibformat}%
- \fi}{\ClassError{\@classname}{The option printacmref can be either true or false}}
- \define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
- \if@ACM@printfolios
- \ClassInfo{\@classname}{Printing folios}%
- \else
- \ClassInfo{\@classname}{Suppressing folios}%
- \fi}{\ClassError{\@classname}{The option printfolios can be either true or false}}
- \define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{%
- \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to
- #1}}{\ClassWarning{\@classname}{The parameter authorsperrow must be
- numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}}
- \def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
- \settopmatter{printccs=true, printacmref=true}
- \if@ACM@manuscript
- \settopmatter{printfolios=true}
- \else
- \if@ACM@journal
- \settopmatter{printfolios=true}
- \else
- \settopmatter{printfolios=false}
- \fi
- \fi
- \settopmatter{authorsperrow=0}
- \def\@received{}
- \newcommand\received[2][]{\def\@tempa{#1}%
- \ifx\@tempa\@empty
- \ifx\@received\@empty
- \gdef\@received{Received #2}%
- \else
- \g@addto@macro{\@received}{; revised #2}%
- \fi
- \else
- \ifx\@received\@empty
- \gdef\@received{#1 #2}%
- \else
- \g@addto@macro{\@received}{; #1 #2}%
- \fi
- \fi}
- \AtEndDocument{%
- \ifx\@received\@empty\else
- \par\bigskip\noindent\small\normalfont\@received\par
- \fi}
- \RequirePackage{comment}
- \excludecomment{CCSXML}
- \let\@concepts\@empty
- \newcounter{@concepts}
- \newcommand\ccsdesc[2][100]{%
- \ccsdesc@parse#1~#2~~\ccsdesc@parse@end}
- \RequirePackage{textcomp}
- \def\ccsdesc@parse#1~#2~#3~{%
- \stepcounter{@concepts}%
- \expandafter\ifx\csname CCS@General@#2\endcsname\relax
- \expandafter\gdef\csname CCS@General@#2\endcsname{\textbullet\
- \textbf{#2}}%
- \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{; }%
- \expandafter\gdef\csname CCS@Specific@#2\endcsname{}%
- \g@addto@macro{\@concepts}{\csname CCS@General@#2\endcsname
- \csname CCS@Punctuation@#2\endcsname
- \csname CCS@Specific@#2\endcsname}%
- \fi
- \ifx#3\relax\relax\else
- \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{
- \textrightarrow\ }%
- \expandafter\g@addto@macro\expandafter{\csname CCS@Specific@#2\endcsname}{%
- \addtocounter{@concepts}{-1}%
- \ifnum#1>499\textbf{#3}\else
- \ifnum#1>299\textit{#3}\else
- #3\fi\fi\ifnum\value{@concepts}=0.\else; \fi}%
- \fi
- \ccsdesc@parse@finish}
- \def\ccsdesc@parse@finish#1\ccsdesc@parse@end{}
- \newif\if@printcopyright
- \@printcopyrighttrue
- \newif\if@printpermission
- \@printpermissiontrue
- \newif\if@acmowned
- \@acmownedtrue
- \define@choicekey*{ACM@}{acmcopyrightmode}[%
- \acm@copyrightinput\acm@copyrightmode]{none,%
- acmcopyright,acmlicensed,rightsretained,%
- usgov,usgovmixed,cagov,cagovmixed,licensedusgovmixed,%
- licensedcagov,licensedcagovmixed,othergov,licensedothergov,%
- iw3c2w3,iw3c2w3g}{%
- \@printpermissiontrue
- \@printcopyrighttrue
- \@acmownedtrue
- \ifnum\acm@copyrightmode=0\relax % none
- \@printpermissionfalse
- \@printcopyrightfalse
- \@acmownedfalse
- \fi
- \ifnum\acm@copyrightmode=2\relax % acmlicensed
- \@acmownedfalse
- \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
- \fi
- \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
- \@acmownedfalse
- \fi
- \ifnum\acm@copyrightmode=9\relax % licensedcagov
- \@acmownedfalse
- \fi
- \ifnum\acm@copyrightmode=10\relax % licensedcagovmixed
- \@acmownedfalse
- \fi
- \ifnum\acm@copyrightmode=11\relax % othergov
- \@acmownedtrue
- \fi
- \ifnum\acm@copyrightmode=12\relax % licensedothergov
- \@acmownedfalse
- \fi
- \ifnum\acm@copyrightmode=13\relax % iw3c2w3
- \@acmownedfalse
- \AtBeginDocument{\acmPrice{}}%
- \fi
- \ifnum\acm@copyrightmode=14\relax % iw3c2w3g
- \@acmownedfalse
- \AtBeginDocument{\acmPrice{}}%
- \fi}
- \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
- \setcopyright{acmcopyright}
- \def\@copyrightowner{%
- \ifcase\acm@copyrightmode\relax % none
- \or % acmcopyright
- Association for Computing Machinery.
- \or % acmlicensed
- Copyright held by the owner/author(s). Publication rights licensed to
- ACM\@.
- \or % rightsretained
- Copyright held by the owner/author(s).
- \or % usgov
- \or % usgovmixed
- Association for Computing Machinery.
- \or % cagov
- Crown in Right of Canada.
- \or %cagovmixed
- Association for Computing Machinery.
- \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\@.
- \or %licensedcagovmixed
- Copyright held by the owner/author(s). Publication rights licensed to
- ACM\@.
- \or % othergov
- Association for Computing Machinery.
- \or % licensedothergov
- Copyright held by the owner/author(s). Publication rights licensed to
- ACM\@.
- \or % ic2w3www
- IW3C2 (International World Wide Web Conference Committee), published
- under Creative Commons CC-BY~4.0 License.
- \or % ic2w3wwwgoogle
- IW3C2 (International World Wide Web Conference Committee), published
- under Creative Commons CC-BY-NC-ND~4.0 License.
- \fi}
- \def\@formatdoi#1{\url{https://doi.org/#1}}
- \def\@copyrightpermission{%
- \ifcase\acm@copyrightmode\relax % none
- \or % acmcopyright
- 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 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.
- \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
- 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 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.
- \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).
- \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.
- \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.
- \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.
- \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.
- \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.
- \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.
- \or % licensedcagovmixed
- 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.
- \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.
- \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.
- \or % iw3c2w3
- This paper is published under the Creative Commons Attribution~4.0
- International (CC-BY~4.0) license. Authors reserve their rights to
- disseminate the work on their personal and corporate Web sites with
- the appropriate attribution.
- \or % iw3c2w3g
- This paper is published under the Creative Commons
- Attribution-NonCommercial-NoDerivs~4.0 International
- (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.
- \fi}
- \def\copyrightyear#1{\def\@copyrightyear{#1}}
- \copyrightyear{\@acmYear}
- \def\@teaserfigures{}
- \newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
- \long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
- \renewcommand{\thanks}[1]{%
- \@ifnotempty{#1}{%
- \if@ACM@anonymous
- \g@addto@macro\thankses{\thanks{A note}}%
- \else
- \g@addto@macro\thankses{\thanks{#1}}%
- \fi}}
- \newbox\mktitle@bx
- \def\maketitle{%
- \if@ACM@anonymous
- % Anonymize omission of \author-s
- \ifnum\num@authorgroups=0\author{}\fi
- \fi
- \begingroup
- \let\@footnotemark\@footnotemark@nolink
- \let\@footnotetext\@footnotetext@nolink
- \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
- \hsize=\textwidth
- \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
- \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
- \@printtopmatter
- \if@ACM@sigchiamode\@mkauthors\fi
- \setcounter{footnote}{0}%
- \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
- \@titlenotes
- \@subtitlenotes
- \@authornotes
- \let\@makefnmark\relax
- \let\@thefnmark\relax
- \let\@makefntext\noindent
- \ifx\@empty\thankses\else
- \footnotetextauthorsaddresses{%
- \def\par{\let\par\@par}\parindent\z@\@setthanks}%
- \fi
- \ifx\@empty\@authorsaddresses\else
- \if@ACM@anonymous\else
- \if@ACM@journal
- \footnotetextauthorsaddresses{%
- \def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}%
- \fi
- \fi
- \fi
- \if@ACM@nonacm\else\footnotetextcopyrightpermission{%
- \if@ACM@authordraft
- \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
- Unpublished working draft. Not for distribution.}}%
- \color[gray]{0.9}%
- \fi
- \parindent\z@\parskip0.1\baselineskip
- \if@ACM@authorversion\else
- \if@printpermission\@copyrightpermission\par\fi
- \fi
- \if@ACM@manuscript\else
- \if@ACM@journal\else % Print the conference information
- {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par
- \fi
- \fi
- \if@printcopyright
- \copyright\ \@copyrightyear\ \@copyrightowner\\
- \else
- \@copyrightyear.\
- \fi
- \if@ACM@manuscript
- Manuscript submitted to ACM\\
- \else
- \if@ACM@authorversion
- All rights remain with the authors.
- \else
- \if@ACM@nonacm\else
- \if@ACM@journal
- \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle
- \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\
- \@formatdoi{\@acmDOI}%
- \else % Conference
- \ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN
- \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\\fi
- \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi%
- \fi
- \fi
- \fi
- \fi}
- \fi
- \endgroup
- \setcounter{footnote}{0}%
- \@mkabstract
- \if@ACM@printccs
- \ifx\@concepts\@empty\else\bgroup
- {\@specialsection{CCS Concepts}%
- \@concepts\par}\egroup
- \fi
- \fi
- \ifx\@keywords\@empty\else\bgroup
- {\if@ACM@journal
- \@specialsection{Additional Key Words and Phrases}%
- \else
- \@specialsection{Keywords}%
- \fi
- \@keywords}\par\egroup
- \fi
- \andify\authors
- \andify\shortauthors
- \global\let\authors=\authors
- \global\let\shortauthors=\shortauthors
- \if@ACM@printacmref
- \@mkbibcitation
- \fi
- \hypersetup{%
- pdfauthor={\authors},
- pdftitle={\@title},
- pdfsubject={\@concepts},
- pdfkeywords={\@keywords},
- pdfcreator={LaTeX with acmart
- \csname ver@acmart.cls\endcsname\space
- and hyperref
- \csname ver@hyperref.sty\endcsname}}%
- \global\@topnum\z@ % this prevents floats from falling
- % at the top of page 1
- \global\@botnum\z@ % we do not want them to be on the bottom either
- \@printendtopmatter
- \@afterindentfalse
- \@afterheading
- }
- \def\@specialsection#1{%
- \ifcase\ACM@format@nr
- \relax % manuscript
- \par\medskip\small\noindent#1: %
- \or % acmsmall
- \par\medskip\small\noindent#1: %
- \or % acmlarge
- \par\medskip\small\noindent#1: %
- \or % acmtog
- \par\medskip\small\noindent#1: %
- \or % sigconf
- \section*{#1}%
- \or % siggraph
- \section*{#1}%
- \or % sigplan
- \paragraph*{#1}%
- \or % sigchi
- \section*{#1}%
- \or % sigchi-a
- \section*{#1}%
- \fi}
- \def\@printtopmatter{%
- \ifx\@startPage\@empty
- \gdef\@startPage{1}%
- \else
- \setcounter{page}{\@startPage}%
- \fi
- \thispagestyle{firstpagestyle}%
- \noindent
- \ifcase\ACM@format@nr
- \relax % manuscript
- \box\mktitle@bx\par
- \or % acmsmall
- \box\mktitle@bx\par
- \or % acmlarge
- \box\mktitle@bx\par
- \or % acmtog
- \twocolumn[\box\mktitle@bx]%
- \or % sigconf
- \twocolumn[\box\mktitle@bx]%
- \or % siggraph
- \twocolumn[\box\mktitle@bx]%
- \or % sigplan
- \twocolumn[\box\mktitle@bx]%
- \or % sigchi
- \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
- \fi
- }
- \def\@mktitle{%
- \ifcase\ACM@format@nr
- \relax % manuscript
- \@mktitle@i
- \or % acmsmall
- \@mktitle@i
- \or % acmlarge
- \@mktitle@i
- \or % acmtog
- \@mktitle@i
- \or % sigconf
- \@mktitle@iii
- \or % siggraph
- \@mktitle@iii
- \or % sigplan
- \@mktitle@iii
- \or % sigchi
- \@mktitle@iii
- \or % sigchi-a
- \@mktitle@iv
- \fi
- }
- \def\@titlefont{%
- \ifcase\ACM@format@nr
- \relax % manuscript
- \LARGE\sffamily\bfseries
- \or % acmsmall
- \LARGE\sffamily\bfseries
- \or % acmlarge
- \LARGE\sffamily\bfseries
- \or % acmtog
- \Huge\sffamily
- \or % sigconf
- \Huge\sffamily\bfseries
- \or % siggraph
- \Huge\sffamily\bfseries
- \or % sigplan
- \Huge\bfseries
- \or % sigchi
- \Huge\sffamily\bfseries
- \or % sigchi-a
- \Huge\bfseries
- \fi}
- \def\@subtitlefont{\normalsize
- \ifcase\ACM@format@nr
- \relax % manuscript
- \mdseries
- \or % acmsmall
- \mdseries
- \or % acmlarge
- \mdseries
- \or % acmtog
- \LARGE
- \or % sigconf
- \LARGE\mdseries
- \or % siggraph
- \LARGE\mdseries
- \or % sigplan
- \LARGE\mdseries
- \or % sigchi
- \LARGE\mdseries
- \or % sigchi-a
- \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
- \fi
- \setbox\mktitle@bx=\vbox{\noindent\@titlefont
- \ifx\@acmBadgeL@image\@empty\else
- \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
- \hskip\@ACM@badge@skip
- \fi
- \parbox[t]{\@ACM@title@width}{\raggedright
- \@titlefont\noindent
- \@title
- \ifx\@subtitle\@empty\else
- \par\noindent{\@subtitlefont\@subtitle}
- \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
- \ifx\@subtitle\@empty\else
- \par\noindent{\@subtitlefont\@subtitle}
- \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
- \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
- \noindent\@title
- \ifx\@subtitle\@empty\else
- \par\noindent\@subtitlefont\@subtitle
- \fi
- \par\bigskip}}%
- \newbox\@ACM@commabox
- \def\@ACM@addtoaddress#1{%
- \ifvmode\else
- \if@ACM@affiliation@obeypunctuation\else
- \setbox\@ACM@commabox=\hbox{, }%
- \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
- \fi\fi
- #1}
- \def\streetaddress#1{\unskip\ignorespaces}
- \def\postcode#1{\unskip\ignorespaces}
- \if@ACM@journal
- \def\position#1{\unskip\ignorespaces}
- \def\institution#1{\unskip~#1\ignorespaces}
- \def\city#1{\unskip\ignorespaces}
- \def\state#1{\unskip\ignorespaces}
- \newcommand\department[2][0]{\unskip\ignorespaces}
- \def\country#1{\if@ACM@affiliation@obeypunctuation\else, \fi#1\ignorespaces}
- \else
- \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
- \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
- \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
- #2\else#2\par\fi}%
- \let\city\@ACM@addtoaddress
- \let\state\@ACM@addtoaddress
- \let\country\@ACM@addtoaddress
- \fi
- \def\@mkauthors{\begingroup
- \hsize=\textwidth
- \ifcase\ACM@format@nr
- \relax % manuscript
- \@mkauthors@i
- \or % acmsmall
- \@mkauthors@i
- \or % acmlarge
- \@mkauthors@i
- \or % acmtog
- \@mkauthors@i
- \or % sigconf
- \@mkauthors@iii
- \or % siggraph
- \@mkauthors@iii
- \or % sigplan
- \@mkauthors@iii
- \or % sigchi
- \@mkauthors@iii
- \or % sigchi-a
- \@mkauthors@iv
- \fi
- \endgroup
- }
- \def\@authorfont{\Large\sffamily}
- \def\@affiliationfont{\normalsize\normalfont}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \def\@authorfont{\large\sffamily}
- \def\@affiliationfont{\small\normalfont}
- \or % acmlarge
- \or % acmtog
- \def\@authorfont{\LARGE\sffamily}
- \def\@affiliationfont{\large}
- \or % sigconf
- \def\@authorfont{\LARGE}
- \def\@affiliationfont{\large}
- \or % siggraph
- \def\@authorfont{\normalsize\normalfont}
- \def\@affiliationfont{\normalsize\normalfont}
- \or % sigplan
- \def\@authorfont{\Large\normalfont}
- \def\@affiliationfont{\normalsize\normalfont}
- \or % sigchi
- \def\@authorfont{\bfseries}
- \def\@affiliationfont{\mdseries}
- \or % sigchi-a
- \def\@authorfont{\bfseries}
- \def\@affiliationfont{\mdseries}
- \fi
- \def\@typeset@author@line{%
- \andify\@currentauthors\par\noindent
- \@currentauthors\def\@currentauthors{}%
- \ifx\@currentaffiliations\@empty\else
- \andify\@currentaffiliations
- \unskip, {\@currentaffiliations}\par
- \fi
- \def\@currentaffiliations{}}
- \def\@mkauthors@i{%
- \def\@currentauthors{}%
- \def\@currentaffiliations{}%
- \global\let\and\@typeset@author@line
- \def\@author##1{%
- \ifx\@currentauthors\@empty
- \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}%
- \else
- \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}%
- \fi
- \gdef\and{}}%
- \def\email##1##2{}%
- \def\affiliation##1##2{%
- \def\@tempa{##2}\ifx\@tempa\@empty\else
- \ifx\@currentaffiliations\@empty
- \gdef\@currentaffiliations{%
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
- \setkeys{@ACM@affiliation@}{##1}%
- \@affiliationfont##2}%
- \else
- \g@addto@macro{\@currentaffiliations}{\and
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
- \setkeys{@ACM@affiliation@}{##1}##2}%
- \fi
- \fi
- \global\let\and\@typeset@author@line}%
- \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
- \noindent\addresses\@typeset@author@line
- \par\medskip}%
- }
- \newbox\author@bx
- \newdimen\author@bx@wd
- \newskip\author@bx@sep
- \author@bx@sep=1pc\relax
- \def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}%
- \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
- \@authorfont\@currentauthors\par\@affiliationfont
- \@currentaffiliation}\egroup
- \box\author@bx\hspace{\author@bx@sep}%
- \gdef\@currentauthors{}%
- \gdef\@currentaffiliation{}}
- \def\@mkauthors@iii{%
- \author@bx@wd=\textwidth\relax
- \advance\author@bx@wd by -\author@bx@sep\relax
- \ifnum\@ACM@authorsperrow>0\relax
- \divide\author@bx@wd by \@ACM@authorsperrow\relax
- \else
- \ifcase\num@authorgroups
- \relax % 0?
- \or % 1=one author per row
- \or % 2=two authors per row
- \divide\author@bx@wd by \num@authorgroups\relax
- \or % 3=three authors per row
- \divide\author@bx@wd by \num@authorgroups\relax
- \or % 4=two authors per row (!)
- \divide\author@bx@wd by 2\relax
- \else % three authors per row
- \divide\author@bx@wd by 3\relax
- \fi
- \fi
- \advance\author@bx@wd by -\author@bx@sep\relax
- \gdef\@currentauthors{}%
- \gdef\@currentaffiliation{}%
- \def\@author##1{\ifx\@currentauthors\@empty
- \gdef\@currentauthors{\par##1}%
- \else
- \g@addto@macro\@currentauthors{\par##1}%
- \fi
- \gdef\and{}}%
- \def\email##1##2{\ifx\@currentaffiliation\@empty
- \gdef\@currentaffiliation{\nolinkurl{##2}}%
- \else
- \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
- \fi}%
- \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
- \gdef\@currentaffiliation{%
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
- \setkeys{@ACM@affiliation@}{##1}##2}%
- \else
- \g@addto@macro\@currentaffiliation{\par
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
- \setkeys{@ACM@affiliation@}{##1}##2}%
- \fi
- \global\let\and\@typeset@author@bx
- }%
- \hsize=\textwidth
- \global\setbox\mktitle@bx=\vbox{\noindent
- \box\mktitle@bx\par\medskip\leavevmode
- \lineskip=1pc\relax\centering\hspace*{-1em}%
- \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
- \def\@mkauthors@iv{%
- \author@bx@wd=\columnwidth\relax
- \advance\author@bx@wd by -\author@bx@sep\relax
- \ifnum\@ACM@authorsperrow>0\relax
- \divide\author@bx@wd by \@ACM@authorsperrow\relax
- \else
- \ifcase\num@authorgroups
- \relax % 0?
- \or % 1=one author per row
- \else % 2=two authors per row
- \divide\author@bx@wd by 2\relax
- \fi
- \fi
- \advance\author@bx@wd by -\author@bx@sep\relax
- \gdef\@currentauthors{}%
- \gdef\@currentaffiliation{}%
- \def\@author##1{\ifx\@currentauthors\@empty
- \gdef\@currentauthors{\par##1}%
- \else
- \g@addto@macro\@currentauthors{\par##1}%
- \fi
- \gdef\and{}}%
- \def\email##1##2{\ifx\@currentaffiliation\@empty
- \gdef\@currentaffiliation{\nolinkurl{##2}}%
- \else
- \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
- \fi}%
- \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
- \gdef\@currentaffiliation{%
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
- \setkeys{@ACM@affiliation@}{##1}##2}%
- \else
- \g@addto@macro\@currentaffiliation{\par
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
- \setkeys{@ACM@affiliation@}{##1}##2}%
- \fi
- \global\let\and\@typeset@author@bx}%
- \bgroup\hsize=\columnwidth
- \par\raggedright\leftskip=\z@
- \lineskip=1pc\noindent
- \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
- \def\@mkauthorsaddresses{%
- \ifnum\num@authors>1\relax
- Authors' \else Author's \fi
- \ifnum\num@authorgroups>1\relax
- addresses: \else address: \fi
- \bgroup
- \def\streetaddress##1{\unskip\@addpunct, ##1}%
- \def\postcode##1{\unskip\@addpunct, ##1}%
- \def\position##1{\unskip\ignorespaces}%
- \def\institution##1{\unskip\@addpunct, ##1}%
- \def\city##1{\unskip\@addpunct, ##1}%
- \def\state##1{\unskip\@addpunct, ##1}%
- \renewcommand\department[2][0]{\unskip\@addpunct, ##2}%
- \def\country##1{\unskip\@addpunct, ##1}%
- \def\and{\unskip\@addpunct; }%
- \def\@author##1{##1}%
- \def\email##1##2{\unskip\@addpunct, \nolinkurl{##2}}%
- \addresses
- \egroup}
- \def\@setaddresses{}
- \def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}}
- \def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}}
- \def\@mkteasers{%
- \ifx\@teaserfigures\@empty\else
- \def\@teaser##1{\par\bigskip\bgroup
- \captionsetup{type=figure}##1\egroup\par}
- \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
- \noindent\@Description@presentfalse
- \@teaserfigures\par\if@Description@present\else
- \global\@undescribed@imagestrue
- \ClassWarning{\@classname}{A possible image without
- description}\fi
- \medskip}%
- \fi}
- \def\@mkabstract{\bgroup
- \ifx\@abstract\@lempty\else
- {\phantomsection\addcontentsline{toc}{section}{Abstract}%
- \if@ACM@journal
- \everypar{\setbox\z@\lastbox\everypar{}}\small
- \else
- \section*{\abstractname}%
- \fi
- \ignorespaces\@abstract\par}%
- \fi\egroup}
- \def\@mkbibcitation{\bgroup
- \def\@pages@word{\ifnum\getrefnumber{TotPages}=1\relax page\else pages\fi}%
- \def\footnotemark{}%
- \def\\{\unskip{} \ignorespaces}%
- \def\footnote{\ClassError{\@classname}{Please do not use footnotes
- inside a \string\title{} or \string\author{} command! Use
- \string\titlenote{} or \string\authornote{} instead!}}%
- \def\@article@string{\ifx\@acmArticle\@empty{\ }\else,
- Article~\@acmArticle\ \fi}%
- \par\medskip\small\noindent{\bfseries ACM Reference Format:}\par\nobreak
- \noindent\bgroup
- \def\\{\unskip{}, \ignorespaces}\authors\egroup. \@acmYear. \@title
- \ifx\@subtitle\@empty. \else: \@subtitle. \fi
- \if@ACM@nonacm\else
- % The 'nonacm' option disables 'printacmref' by default,
- % and the present \@mkbibcitation definition is never used
- % in this case. The conditional remains useful if the user
- % explicitly sets \settopmatter{printacmref=true}.
- \if@ACM@journal
- \textit{\@journalNameShort}
- \@acmVolume, \@acmNumber \@article@string (\@acmPubDate),
- \ref{TotPages}~\@pages@word.
- \else
- In \textit{\@acmBooktitle}%
- \ifx\@acmEditors\@empty\textit{.}\else
- \andify\@acmEditors\textit{, }\@acmEditors~\@editorsAbbrev.%
- \fi\
- ACM, New York, NY, USA%
- \@article@string\unskip, \ref{TotPages}~\@pages@word.
- \fi
- \fi
- \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi
- \par\egroup}
- \def\@printendtopmatter{\par\bigskip}
- \def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
- \def\@setauthorsaddresses{\@authorsaddresses\unskip\@addpunct.}
- \RequirePackage{fancyhdr}
- \if@ACM@review
- \newsavebox{\ACM@linecount@bx}
- \newlength\ACM@linecount@bxht
- \newcount\ACM@linecount
- \ACM@linecount\@ne\relax
- \def\ACM@mk@linecount{%
- \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
- \setlength{\ACM@linecount@bxht}{0pt}%
- \loop{\color{red}\scriptsize\the\ACM@linecount}\\
- \global\advance\ACM@linecount by \@ne
- \addtolength{\ACM@linecount@bxht}{\baselineskip}%
- \ifdim\ACM@linecount@bxht<\textheight\repeat
- {\color{red}\scriptsize\the\ACM@linecount}\hfill
- \global\advance\ACM@linecount by \@ne}}}
- \fi
- \def\ACM@linecountL{%
- \if@ACM@review
- \ACM@mk@linecount
- \begin{picture}(0,0)%
- \put(-26,-22){\usebox{\ACM@linecount@bx}}%
- \end{picture}%
- \fi}
- \def\ACM@linecountR{%
- \if@ACM@review
- \ACM@mk@linecount
- \begin{picture}(0,0)%
- \put(20,-22){\usebox{\ACM@linecount@bx}}%
- \end{picture}%
- \fi}
- \if@ACM@timestamp
- % Subtracting 30 from \time gives us the effect of rounding down despite
- % \numexpr rounding to nearest
- \newcounter{ACM@time@hours}
- \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
- \newcounter{ACM@time@minutes}
- \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
- \newcommand\ACM@timestamp{%
- \footnotesize%
- \ifx\@acmSubmissionID\@empty\relax\else
- Submission ID: \@acmSubmissionID.{ }%
- \fi
- \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
- \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{. }%
- Page \thepage\ of \@startPage--\pageref*{TotPages}.%
- }
- \fi
- \def\@shortauthors{%
- \if@ACM@anonymous
- Anon.
- \ifx\@acmSubmissionID\@empty\else Submission Id: \@acmSubmissionID\fi
- \else\shortauthors\fi}
- \def\@headfootfont{\sffamily}
- \fancypagestyle{standardpagestyle}{%
- \fancyhf{}%
- \renewcommand{\headrulewidth}{\z@}%
- \renewcommand{\footrulewidth}{\z@}%
- \def\@acmArticlePage{%
- \ifx\@acmArticle\empty%
- \if@ACM@printfolios\thepage\fi%
- \else%
- \@acmArticle\if@ACM@printfolios:\thepage\fi%
- \fi%
- }
- \ifcase\ACM@format@nr
- \relax % manuscript
- \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}%
- \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
- \fancyhead[RE]{\@shortauthors}%
- \fancyhead[LO]{\ACM@linecountL\shorttitle}%
- \if@ACM@nonacm\else%
- \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}
- \fi%
- \or % acmsmall
- \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticlePage}%
- \fancyhead[RO]{\@headfootfont\@acmArticlePage}%
- \fancyhead[RE]{\@headfootfont\@shortauthors}%
- \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
- \if@ACM@nonacm\else%
- \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
- \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
- \fi%
- \or % acmlarge
- \fancyhead[LE]{\ACM@linecountL\@headfootfont
- \@acmArticlePage\quad\textbullet\quad\@shortauthors}%
- \fancyhead[LO]{\ACM@linecountL}%
- \fancyhead[RO]{\@headfootfont
- \shorttitle\quad\textbullet\quad\@acmArticlePage}%
- \if@ACM@nonacm\else%
- \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
- \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
- \fi%
- \or % acmtog
- \fancyhead[LE]{\ACM@linecountL\@headfootfont
- \@acmArticlePage\quad\textbullet\quad\@shortauthors}%
- \fancyhead[LO]{\ACM@linecountL}%
- \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.}%
- \fi%
- \else % Proceedings
- \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
- \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
- \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
- \if@ACM@nonacm\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
- \if@ACM@sigchiamode
- \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
- \fi
- \if@ACM@timestamp
- \fancyfoot[LO,RE]{\ACM@timestamp}
- \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}
-
- \fancypagestyle{firstpagestyle}{%
- \fancyhf{}%
- \renewcommand{\headrulewidth}{\z@}%
- \renewcommand{\footrulewidth}{\z@}%
- \ifcase\ACM@format@nr
- \relax % manuscript
- \fancyhead[L]{\ACM@linecountL}%
- \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
- \if@ACM@nonacm\else%
- \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
- \fi%
- \or % acmsmall
- \if@ACM@nonacm\else%
- \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
- \@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}%
- \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}%
- \or % acmtog
- \if@ACM@nonacm\else%
- \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
- \@acmNumber, Article \@acmArticle. Publication date:
- \@acmPubDate.}%
- \fi%
- \fancyhead[L]{\ACM@linecountL}%
- \fancyhead[R]{\ACM@linecountR}%
- \else % Conference proceedings
- \fancyhead[L]{\ACM@linecountL}%
- \fancyhead[R]{\ACM@linecountR}%
- \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
- \fi
- \if@ACM@timestamp
- \ifnum\ACM@format@nr=0\relax % Manuscript
- \fancyfoot[LO,RE]{\ACM@timestamp\quad
- \if@ACM@nonacm\else
- \footnotesize Manuscript submitted to ACM
- \fi}
- \else
- \fancyfoot[LO,RE]{\ACM@timestamp}
- \fi
- \fi
- }
- \let\ACM@ps@plain\ps@plain
- \let\ACM@ps@myheadings\ps@myheadings
- \let\ACM@ps@headings\ps@headings
- \def\ACM@restore@pagestyle{%
- \let\ps@plain\ACM@ps@plain
- \let\ps@myheadings\ACM@ps@myheadings
- \let\ps@headings\ACM@ps@headings}
- \AtBeginDocument{\ACM@restore@pagestyle}
- \def\ACM@NRadjust#1{%
- \begingroup
- \expandafter\ifx\csname Sectionformat\endcsname\relax
- % do nothing when \Sectionformat is unknown
- \def\next{\endgroup #1}%
- \else
- \def\next{\endgroup
- \let\realSectionformat\Sectionformat
- \def\ACM@sect@format@{#1}%
- \let\Sectionformat\ACM@NR@adjustedSectionformat
- %% next lines added 2018-06-17 to ensure section number is styled
- \let\real@adddotafter\@adddotafter
- \let\@adddotafter\ACM@adddotafter
- #1{}% imposes the styles, but nullifies \MakeUppercase
- \let\@adddotafter\real@adddotafter
- }%
- \fi \next
- }
- \def\ACM@NR@adjustedSectionformat#1#2{%
- \realSectionformat{\ACM@sect@format{#1}}{#2}%
- \let\Sectionformat\realSectionformat}
- \DeclareRobustCommand{\ACM@sect@format}{\ACM@sect@format@}
- \def\ACM@sect@format@null#1{#1}
- \let\ACM@sect@format@\ACM@sect@format@null
- \AtBeginDocument{%
- \expandafter\ifx\csname LTX@adddotafter\endcsname\relax
- \let\LTX@adddotafter\@adddotafter
- \fi
- }
- \def\ACM@adddotafter#1{\ifx\relax#1\relax\else\LTX@adddotafter{#1}\fi}
- \renewcommand\section{\@startsection{section}{1}{\z@}%
- {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
- {.25\baselineskip}%
- {\ACM@NRadjust\@secfont}}
- \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
- {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
- {.25\baselineskip}%
- {\ACM@NRadjust\@subsecfont}}
- \renewcommand\subsubsection{\@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}%
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
- {-3.5\p@}%
- {\ACM@NRadjust{\@parfont\@adddotafter}}}
- \renewcommand\part{\@startsection{part}{9}{\z@}%
- {-10\p@ \@plus -4\p@ \@minus -2\p@}%
- {4\p@}%
- {\ACM@NRadjust\@parfont}}
- \def\section@raggedright{\@rightskip\@flushglue
- \rightskip\@rightskip
- \leftskip\z@skip
- \parindent\z@}
- \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\sffamily\bfseries\section@raggedright}
- \def\@subsubsecfont{\sffamily\itshape}
- \def\@parfont{\itshape}
- \setcounter{secnumdepth}{3}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\sffamily\large\section@raggedright}
- \or % acmtog
- \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\sffamily\large\section@raggedright}
- \or % sigconf
- \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\bfseries\Large\section@raggedright}
- \or % siggraph
- \def\@secfont{\sffamily\bfseries\Large\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\sffamily\bfseries\Large\section@raggedright}
- \or % sigplan
- \def\@secfont{\bfseries\Large\section@raggedright}
- \def\@subsecfont{\bfseries\section@raggedright}
- \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
- {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
- {.25\baselineskip}%
- {\@subsubsecfont}}
- \def\@subsubsecfont{\bfseries\section@raggedright}
- \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
- {-3.5\p@}%
- {\@parfont\@addspaceafter}}
- \def\@parfont{\bfseries\itshape}
- \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
- {-3.5\p@}%
- {\@subparfont\@addspaceafter}}
- \def\@subparfont{\itshape}
- \or % sigchi
- \setcounter{secnumdepth}{1}
- \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\sffamily\bfseries\section@raggedright}
- \or % sigchi-a
- \setcounter{secnumdepth}{0}
- \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
- \def\@subsecfont{\sffamily\bfseries\section@raggedright}
- \fi
- \def\@adddotafter#1{#1\@addpunct{.}}
- \def\@addspaceafter#1{#1\@addpunct{\enspace}}
- \providecommand*\@dotsep{4.5}
- \def\@acmplainbodyfont{\itshape}
- \def\@acmplainindent{\parindent}
- \def\@acmplainheadfont{\scshape}
- \def\@acmplainnotefont{\@empty}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \or % sigconf
- \or % siggraph
- \or % sigplan
- \def\@acmplainbodyfont{\itshape}
- \def\@acmplainindent{\z@}
- \def\@acmplainheadfont{\bfseries}
- \def\@acmplainnotefont{\normalfont}
- \or % sigchi
- \or % sigchi-a
- \fi
- \newtheoremstyle{acmplain}%
- {.5\baselineskip\@plus.2\baselineskip
- \@minus.2\baselineskip}% space above
- {.5\baselineskip\@plus.2\baselineskip
- \@minus.2\baselineskip}% space below
- {\@acmplainbodyfont}% body font
- {\@acmplainindent}% indent amount
- {\@acmplainheadfont}% head font
- {.}% punctuation after head
- {.5em}% spacing after head
- {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
- \def\@acmdefinitionbodyfont{\normalfont}
- \def\@acmdefinitionindent{\parindent}
- \def\@acmdefinitionheadfont{\itshape}
- \def\@acmdefinitionnotefont{\@empty}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \or % sigconf
- \or % siggraph
- \or % sigplan
- \def\@acmdefinitionbodyfont{\normalfont}
- \def\@acmdefinitionindent{\z@}
- \def\@acmdefinitionheadfont{\bfseries}
- \def\@acmdefinitionnotefont{\normalfont}
- \or % sigchi
- \or % sigchi-a
- \fi
- \newtheoremstyle{acmdefinition}%
- {.5\baselineskip\@plus.2\baselineskip
- \@minus.2\baselineskip}% space above
- {.5\baselineskip\@plus.2\baselineskip
- \@minus.2\baselineskip}% space below
- {\@acmdefinitionbodyfont}% body font
- {\@acmdefinitionindent}% indent amount
- {\@acmdefinitionheadfont}% head font
- {.}% punctuation after head
- {.5em}% spacing after head
- {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
- \theoremstyle{acmplain}
- \AtEndPreamble{%
- \if@ACM@acmthm
- \theoremstyle{acmplain}
- \@ifundefined{theorem}{%
- \newtheorem{theorem}{Theorem}[section]
- }{}
- \@ifundefined{conjecture}{%
- \newtheorem{conjecture}[theorem]{Conjecture}
- }{}
- \@ifundefined{proposition}{%
- \newtheorem{proposition}[theorem]{Proposition}
- }{}
- \@ifundefined{lemma}{%
- \newtheorem{lemma}[theorem]{Lemma}
- }{}
- \@ifundefined{corollary}{%
- \newtheorem{corollary}[theorem]{Corollary}
- }{}
- \theoremstyle{acmdefinition}
- \@ifundefined{example}{%
- \newtheorem{example}[theorem]{Example}
- }{}
- \@ifundefined{definition}{%
- \newtheorem{definition}[theorem]{Definition}
- }{}
- \fi
- \theoremstyle{acmplain}
- }
- \def\@proofnamefont{\scshape}
- \def\@proofindent{\indent}
- \ifcase\ACM@format@nr
- \relax % manuscript
- \or % acmsmall
- \or % acmlarge
- \or % acmtog
- \or % sigconf
- \or % siggraph
- \or % sigplan
- \def\@proofnamefont{\itshape}
- \def\@proofindent{\noindent}
- \or % sigchi
- \or % sigchi-a
- \fi
- \renewenvironment{proof}[1][\proofname]{\par
- \pushQED{\qed}%
- \normalfont \topsep6\p@\@plus6\p@\relax
- \trivlist
- \item[\@proofindent\hskip\labelsep
- {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
- }{%
- \popQED\endtrivlist\@endpefalse
- }
- \newcommand\acksname{Acknowledgments}
- \specialcomment{acks}{%
- \begingroup
- \section*{\acksname}
- \phantomsection\addcontentsline{toc}{section}{\acksname}
- }{%
- \endgroup
- }
- \def\grantsponsor#1#2#3{#2}
- \newcommand\grantnum[3][]{#3%
- \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
- \AtEndPreamble{%
- \if@ACM@screen
- \includecomment{screenonly}
- \excludecomment{printonly}
- \else
- \excludecomment{screenonly}
- \includecomment{printonly}
- \fi
- \if@ACM@anonymous
- \excludecomment{anonsuppress}
- \excludecomment{acks}
- \else
- \includecomment{anonsuppress}
- \fi}
- \newcommand\showeprint[2][arxiv]{%
- \def\@tempa{#1}%
- \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
- \def\@tempb{arxiv}%
- \ifx\@tempa\@tempb
- arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2%
- \fi}
- \normalsize\normalfont\frenchspacing
- \endinput
- %%
- %% End of file `acmart.cls'.
|