acmart.cls (79181B)
1 %% 2 %% This is file `acmart.cls', 3 %% generated with the docstrip utility. 4 %% 5 %% The original source files were: 6 %% 7 %% acmart.dtx (with options: `class') 8 %% 9 %% IMPORTANT NOTICE: 10 %% 11 %% For the copyright see the source file. 12 %% 13 %% Any modified versions of this file must be renamed 14 %% with new filenames distinct from acmart.cls. 15 %% 16 %% For distribution of the original source see the terms 17 %% for copying and modification in the file acmart.dtx. 18 %% 19 %% This generated file may be distributed as long as the 20 %% original source files, as listed above, are part of the 21 %% same distribution. (The sources need not necessarily be 22 %% in the same archive or directory.) 23 %% \CharacterTable 24 %% {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 25 %% 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 26 %% Digits \0\1\2\3\4\5\6\7\8\9 27 %% Exclamation \! Double quote \" Hash (number) \# 28 %% Dollar \$ Percent \% Ampersand \& 29 %% Acute accent \' Left paren \( Right paren \) 30 %% Asterisk \* Plus \+ Comma \, 31 %% Minus \- Point \. Solidus \/ 32 %% Colon \: Semicolon \; Less than \< 33 %% Equals \= Greater than \> Question mark \? 34 %% Commercial at \@ Left bracket \[ Backslash \\ 35 %% Right bracket \] Circumflex \^ Underscore \_ 36 %% Grave accent \` Left brace \{ Vertical bar \| 37 %% Right brace \} Tilde \~} 38 \NeedsTeXFormat{LaTeX2e} 39 \ProvidesClass{acmart} 40 [2017/05/14 v1.39 Typesetting articles for Association of 41 Computing Machinery] 42 \def\@classname{acmart} 43 \InputIfFileExists{acmart-preload-hook.tex}{% 44 \ClassWarning{\@classname}{% 45 I am loading acmart-preload-hook.tex. You are fully responsible 46 for any problems from now on.}}{} 47 \RequirePackage{xkeyval} 48 \RequirePackage{xstring} 49 \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{% 50 manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph, 51 sigplan, sigchi, sigchi-a}[manuscript]{}{% 52 \ClassError{\@classname}{The option format must be manuscript, 53 acmsmall, acmlarge, acmtog, sigconf, siggraph, 54 sigplan, sigchi or sigchi-a}} 55 \def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}} 56 \@DeclareACMFormat{manuscript} 57 \@DeclareACMFormat{acmsmall} 58 \@DeclareACMFormat{acmlarge} 59 \@DeclareACMFormat{acmtog} 60 \@DeclareACMFormat{sigconf} 61 \@DeclareACMFormat{siggraph} 62 \@DeclareACMFormat{sigplan} 63 \@DeclareACMFormat{sigchi} 64 \@DeclareACMFormat{sigchi-a} 65 \ExecuteOptionsX{format} 66 \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{% 67 \if@ACM@screen 68 \PackageInfo{\@classname}{Using screen mode}% 69 \else 70 \PackageInfo{\@classname}{Not using screen mode}% 71 \fi}{\PackageError{\@classname}{Option screen can be either true or 72 false}} 73 \ExecuteOptionsX{screen=false} 74 \define@boolkey+{acmart.cls}[@ACM@]{review}[true]{% 75 \if@ACM@review 76 \PackageInfo{\@classname}{Using review mode}% 77 \else 78 \PackageInfo{\@classname}{Not using review mode}% 79 \fi}{\PackageError{\@classname}{Option review can be either true or 80 false}} 81 \ExecuteOptionsX{review=false} 82 \define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{% 83 \if@ACM@authorversion 84 \PackageInfo{\@classname}{Using authorversion mode}% 85 \else 86 \PackageInfo{\@classname}{Not using authorversion mode}% 87 \fi}{\PackageError{\@classname}{Option authorversion can be either true or 88 false}} 89 \ExecuteOptionsX{authorversion=false} 90 \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{% 91 \if@ACM@natbib 92 \PackageInfo{\@classname}{Explicitly selecting natbib mode}% 93 \else 94 \PackageInfo{\@classname}{Explicitly deselecting natbib mode}% 95 \fi}{\PackageError{\@classname}{Option natbib can be either true or 96 false}} 97 \ExecuteOptionsX{natbib=true} 98 \define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{% 99 \if@ACM@anonymous 100 \PackageInfo{\@classname}{Using anonymous mode}% 101 \else 102 \PackageInfo{\@classname}{Not using anonymous mode}% 103 \fi}{\PackageError{\@classname}{Option anonymous can be either true or 104 false}} 105 \ExecuteOptionsX{anonymous=false} 106 \define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{% 107 \if@ACM@timestamp 108 \PackageInfo{\@classname}{Using timestamp mode}% 109 \else 110 \PackageInfo{\@classname}{Not using timestamp mode}% 111 \fi}{\PackageError{\@classname}{Option timestamp can be either true or 112 false}} 113 \ExecuteOptionsX{timestamp=false} 114 \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{% 115 \if@ACM@authordraft 116 \PackageInfo{\@classname}{Using authordraft mode}% 117 \@ACM@timestamptrue 118 \@ACM@reviewtrue 119 \else 120 \PackageInfo{\@classname}{Not using authordraft mode}% 121 \fi}{\PackageError{\@classname}{Option authordraft can be either true or 122 false}} 123 \ExecuteOptionsX{authordraft=false} 124 \def\ACM@fontsize{} 125 \DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}} 126 \DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}} 127 \DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}} 128 \DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}} 129 \DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}} 130 \DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}} 131 \ProcessOptionsX 132 \ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr} 133 \newif\if@ACM@manuscript 134 \newif\if@ACM@journal 135 \newif\if@ACM@sigchiamode 136 \ifnum\ACM@format@nr=5\relax % siggraph 137 \ClassWarning{\@classname}{The format `siggraph' is now obsolete. 138 I am switching to sigconf.} 139 \setkeys{acmart.cls}{format=sigconf} 140 \fi 141 \ifnum\ACM@format@nr=0\relax 142 \@ACM@manuscripttrue 143 \else 144 \@ACM@manuscriptfalse 145 \fi 146 \@ACM@sigchiamodefalse 147 \ifcase\ACM@format@nr 148 \relax % manuscript 149 \@ACM@journaltrue 150 \or % acmsmall 151 \@ACM@journaltrue 152 \or % acmlarge 153 \@ACM@journaltrue 154 \or % acmtog 155 \@ACM@journaltrue 156 \or % sigconf 157 \@ACM@journalfalse 158 \or % siggraph 159 \@ACM@journalfalse 160 \or % sigplan 161 \@ACM@journalfalse 162 \or % sigchi 163 \@ACM@journalfalse 164 \or % sigchi-a 165 \@ACM@journalfalse 166 \@ACM@sigchiamodetrue 167 \fi 168 \ifx\ACM@fontsize\@empty 169 \ifcase\ACM@format@nr 170 \relax % manuscript 171 \def\ACM@fontsize{9pt}% 172 \or % acmsmall 173 \def\ACM@fontsize{10pt}% 174 \or % acmlarge 175 \def\ACM@fontsize{10pt}% 176 \or % acmtog 177 \def\ACM@fontsize{9pt}% 178 \or % sigconf 179 \def\ACM@fontsize{9pt}% 180 \or % siggraph 181 \def\ACM@fontsize{9pt}% 182 \or % sigplan 183 \def\ACM@fontsize{10pt}% 184 \or % sigchi 185 \def\ACM@fontsize{10pt}% 186 \or % sigchi-a 187 \def\ACM@fontsize{10pt}% 188 \fi 189 \fi 190 \ClassInfo{\@classname}{Using fontsize \ACM@fontsize} 191 \LoadClass[\ACM@fontsize, reqno]{amsart} 192 \RequirePackage{microtype} 193 \RequirePackage{totpages} 194 \RequirePackage{environ} 195 \if@ACM@manuscript 196 \RequirePackage{setspace} 197 \onehalfspacing 198 \fi 199 \if@ACM@natbib 200 \RequirePackage{natbib} 201 \renewcommand{\bibsection}{% 202 \section*{\refname}% 203 \phantomsection\addcontentsline{toc}{section}{\refname}% 204 } 205 \renewcommand{\bibfont}{\bibliofont} 206 \renewcommand\setcitestyle[1]{ 207 \@for\@tempa:=#1\do 208 {\def\@tempb{round}\ifx\@tempa\@tempb 209 \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi 210 \def\@tempb{square}\ifx\@tempa\@tempb 211 \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi 212 \def\@tempb{angle}\ifx\@tempa\@tempb 213 \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi 214 \def\@tempb{curly}\ifx\@tempa\@tempb 215 \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi 216 \def\@tempb{semicolon}\ifx\@tempa\@tempb 217 \renewcommand\NAT@sep{;}\fi 218 \def\@tempb{colon}\ifx\@tempa\@tempb 219 \renewcommand\NAT@sep{;}\fi 220 \def\@tempb{comma}\ifx\@tempa\@tempb 221 \renewcommand\NAT@sep{,}\fi 222 \def\@tempb{authoryear}\ifx\@tempa\@tempb 223 \NAT@numbersfalse\fi 224 \def\@tempb{numbers}\ifx\@tempa\@tempb 225 \NAT@numberstrue\NAT@superfalse\fi 226 \def\@tempb{super}\ifx\@tempa\@tempb 227 \NAT@numberstrue\NAT@supertrue\fi 228 \def\@tempb{nobibstyle}\ifx\@tempa\@tempb 229 \let\bibstyle=\@gobble\fi 230 \def\@tempb{bibstyle}\ifx\@tempa\@tempb 231 \let\bibstyle=\@citestyle\fi 232 \def\@tempb{sort}\ifx\@tempa\@tempb 233 \def\NAT@sort{\@ne}\fi 234 \def\@tempb{nosort}\ifx\@tempa\@tempb 235 \def\NAT@sort{\z@}\fi 236 \def\@tempb{compress}\ifx\@tempa\@tempb 237 \def\NAT@cmprs{\@ne}\fi 238 \def\@tempb{nocompress}\ifx\@tempa\@tempb 239 \def\NAT@cmprs{\@z}\fi 240 \def\@tempb{sort&compress}\ifx\@tempa\@tempb 241 \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi 242 \def\@tempb{mcite}\ifx\@tempa\@tempb 243 \let\NAT@merge\@ne\fi 244 \def\@tempb{merge}\ifx\@tempa\@tempb 245 \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi 246 \def\@tempb{elide}\ifx\@tempa\@tempb 247 \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi 248 \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb 249 \NAT@longnamestrue\fi 250 \def\@tempb{nonamebreak}\ifx\@tempa\@tempb 251 \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi 252 \expandafter\NAT@find@eq\@tempa=\relax\@nil 253 \if\@tempc\relax\else 254 \expandafter\NAT@rem@eq\@tempc 255 \def\@tempb{open}\ifx\@tempa\@tempb 256 \xdef\NAT@open{\@tempc}\fi 257 \def\@tempb{close}\ifx\@tempa\@tempb 258 \xdef\NAT@close{\@tempc}\fi 259 \def\@tempb{aysep}\ifx\@tempa\@tempb 260 \xdef\NAT@aysep{\@tempc}\fi 261 \def\@tempb{yysep}\ifx\@tempa\@tempb 262 \xdef\NAT@yrsep{\@tempc}\fi 263 \def\@tempb{notesep}\ifx\@tempa\@tempb 264 \xdef\NAT@cmt{\@tempc}\fi 265 \def\@tempb{citesep}\ifx\@tempa\@tempb 266 \xdef\NAT@sep{\@tempc}\fi 267 \fi 268 }% 269 \NAT@@setcites 270 } 271 \renewcommand\citestyle[1]{% 272 \ifcsname bibstyle@#1\endcsname% 273 \csname bibstyle@#1\endcsname\let\bibstyle\@gobble% 274 \else% 275 \@latex@error{Undefined `#1' citestyle}% 276 \fi 277 }% 278 \fi 279 \newcommand{\bibstyle@acmauthoryear}{% 280 \setcitestyle{% 281 authoryear,% 282 open={[},close={]},citesep={;},% 283 aysep={},yysep={,},% 284 notesep={, }}} 285 \newcommand{\bibstyle@acmnumeric}{% 286 \setcitestyle{% 287 numbers,sort&compress,% 288 open={[},close={]},citesep={,},% 289 notesep={, }}} 290 \if@ACM@natbib 291 \citestyle{acmnumeric} 292 \fi 293 \def\@startsection#1#2#3#4#5#6{% 294 \if@noskipsec \leavevmode \fi 295 \par 296 \@tempskipa #4\relax 297 \@afterindenttrue 298 \ifdim \@tempskipa <\z@ 299 \@tempskipa -\@tempskipa \@afterindentfalse 300 \fi 301 \if@nobreak 302 \everypar{}% 303 \else 304 \addpenalty\@secpenalty\addvspace\@tempskipa 305 \fi 306 \@ifstar 307 {\@ssect{#3}{#4}{#5}{#6}}% 308 {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} 309 \def\@sect#1#2#3#4#5#6[#7]#8{% 310 \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}% 311 \ifnum #2>\c@secnumdepth 312 \let\@svsec\@empty 313 \else 314 \refstepcounter{#1}% 315 \protected@edef\@svsec{\@seccntformat{#1}\relax}% 316 \fi 317 \@tempskipa #5\relax 318 \ifdim \@tempskipa>\z@ 319 \begingroup 320 #6{% 321 \@hangfrom{\hskip #3\relax\@svsec}% 322 \interlinepenalty \@M #8\@@par}% 323 \endgroup 324 \csname #1mark\endcsname{#7}% 325 \ifnum #2>\c@secnumdepth \else 326 \@tochangmeasure{\csname the#1\endcsname}% 327 \fi 328 \addcontentsline{toc}{#1}{% 329 \ifnum #2>\c@secnumdepth \else 330 \protect\numberline{\csname the#1\endcsname}% 331 \fi 332 #7}% 333 \else 334 \def\@svsechd{% 335 #6{\hskip #3\relax 336 \@svsec #8}% 337 \csname #1mark\endcsname{#7}% 338 \ifnum #2>\c@secnumdepth \else 339 \@tochangmeasure{\csname the#1\endcsname\space}% 340 \fi 341 \addcontentsline{toc}{#1}{% 342 \ifnum #2>\c@secnumdepth \else 343 \protect\numberline{\csname the#1\endcsname}% 344 \fi 345 #7}}% 346 \fi 347 \@xsect{#5}} 348 \def\@xsect#1{% 349 \@tempskipa #1\relax 350 \ifdim \@tempskipa>\z@ 351 \par \nobreak 352 \vskip \@tempskipa 353 \@afterheading 354 \else 355 \@nobreakfalse 356 \global\@noskipsectrue 357 \everypar{% 358 \if@noskipsec 359 \global\@noskipsecfalse 360 {\setbox\z@\lastbox}% 361 \clubpenalty\@M 362 \begingroup \@svsechd \endgroup 363 \unskip 364 \@tempskipa #1\relax 365 \hskip -\@tempskipa 366 \else 367 \clubpenalty \@clubpenalty 368 \everypar{}% 369 \fi}% 370 \fi 371 \ignorespaces} 372 \def\@seccntformat#1{\csname the#1\endcsname\quad} 373 \def\@ssect#1#2#3#4#5{% 374 \@tempskipa #3\relax 375 \ifdim \@tempskipa>\z@ 376 \begingroup 377 #4{% 378 \@hangfrom{\hskip #1}% 379 \interlinepenalty \@M #5\@@par}% 380 \endgroup 381 \else 382 \def\@svsechd{#4{\hskip #1\relax #5}}% 383 \fi 384 \@xsect{#3}} 385 \def\@starttoc#1#2{\begingroup 386 \setTrue{#1}% 387 \par\removelastskip\vskip\z@skip 388 \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}% 389 {.5\linespacing}{\centering\contentsnamefont}{#2}% 390 \@input{\jobname.#1}% 391 \if@filesw 392 \@xp\newwrite\csname tf@#1\endcsname 393 \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax 394 \fi 395 \global\@nobreakfalse \endgroup 396 \addvspace{32\p@\@plus14\p@}% 397 } 398 \def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}} 399 \def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}} 400 \let\@footnotemark@nolink\@footnotemark 401 \let\@footnotetext@nolink\@footnotetext 402 \RequirePackage[bookmarksnumbered,unicode]{hyperref} 403 \pdfstringdefDisableCommands{% 404 \def\unskip{}% 405 \def\textbullet{- }% 406 \def\textrightarrow{ -> }% 407 \def\footnotemark{}% 408 } 409 \urlstyle{rm} 410 \ifcase\ACM@format@nr 411 \relax % manuscript 412 \or % acmsmall 413 \or % acmlarge 414 \or % acmtog 415 \or % sigconf 416 \or % siggraph 417 \or % sigplan 418 \urlstyle{sf} 419 \or % sigchi 420 \or % sigchi-a 421 \urlstyle{sf} 422 \fi 423 \if@ACM@screen 424 \hypersetup{colorlinks, 425 linkcolor=ACMRed, 426 citecolor=ACMPurple, 427 urlcolor=ACMDarkBlue, 428 filecolor=ACMDarkBlue} 429 \else 430 \hypersetup{hidelinks} 431 \fi 432 \if@ACM@natbib 433 \let\citeN\cite 434 \let\cite\citep 435 \let\citeANP\citeauthor 436 \let\citeNN\citeyearpar 437 \let\citeyearNP\citeyear 438 \let\citeyear\citeyearpar 439 \let\citeNP\citealt 440 \DeclareRobustCommand\citeA 441 {\begingroup\NAT@swafalse 442 \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}% 443 \providecommand\newblock{}% 444 \else 445 \AtBeginDocument{% 446 \let\shortcite\cite% 447 \providecommand\citename[1]{#1}} 448 \fi 449 \newcommand\shortcite[2][]{% 450 \ifNAT@numbers\cite[#1]{#2}\else\citeyear[#1]{#2}\fi} 451 \def\bibliographystyle#1{% 452 \ifx\@begindocumenthook\@undefined\else 453 \expandafter\AtBeginDocument 454 \fi 455 {\if@filesw 456 \immediate\write\@auxout{\string\bibstyle{#1}}% 457 \fi}} 458 \RequirePackage{graphicx, xcolor} 459 \definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1} 460 \definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0} 461 \definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01} 462 \definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0} 463 \definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0} 464 \definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19} 465 \definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15} 466 \definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21} 467 \if@ACM@authordraft 468 \RequirePackage{draftwatermark} 469 \SetWatermarkFontSize{0.5in} 470 \SetWatermarkColor[gray]{.9} 471 \SetWatermarkText{\parbox{12em}{\centering 472 Unpublished working draft\\ 473 Not for distribution}} 474 \fi 475 \RequirePackage{geometry} 476 \ifcase\ACM@format@nr 477 \relax % manuscript 478 \geometry{letterpaper,head=13pt, 479 marginparwidth=6pc}% 480 \or % acmsmall 481 \geometry{twoside=true, 482 includeheadfoot, head=13pt, foot=2pc, 483 paperwidth=6.75in, paperheight=10in, 484 top=58pt, bottom=44pt, inner=46pt, outer=46pt, 485 marginparwidth=2pc 486 }% 487 \or % acmlarge 488 \geometry{twoside=true, head=13pt, foot=2pc, 489 paperwidth=8.5in, paperheight=11in, 490 includeheadfoot, 491 top=78pt, bottom=114pt, inner=81pt, outer=81pt, 492 marginparwidth=4pc 493 }% 494 \or % acmtog 495 \geometry{twoside=true, head=13pt, foot=2pc, 496 paperwidth=8.5in, paperheight=11in, 497 includeheadfoot, columnsep=24pt, 498 top=52pt, bottom=75pt, inner=52pt, outer=52pt, 499 marginparwidth=2pc 500 }% 501 \or % sigconf 502 \geometry{twoside=true, head=13pt, 503 paperwidth=8.5in, paperheight=11in, 504 includeheadfoot, columnsep=2pc, 505 top=57pt, bottom=73pt, inner=54pt, outer=54pt, 506 marginparwidth=2pc 507 }% 508 \or % siggraph 509 \geometry{twoside=true, head=13pt, 510 paperwidth=8.5in, paperheight=11in, 511 includeheadfoot, columnsep=2pc, 512 top=57pt, bottom=73pt, inner=54pt, outer=54pt, 513 marginparwidth=2pc 514 }% 515 \or % sigplan 516 \geometry{twoside=true, head=13pt, 517 paperwidth=8.5in, paperheight=11in, 518 includeheadfoot=false, columnsep=2pc, 519 top=1in, bottom=1in, inner=0.75in, outer=0.75in, 520 marginparwidth=2pc 521 }% 522 \or % sigchi 523 \geometry{twoside=true, head=13pt, 524 paperwidth=8.5in, paperheight=11in, 525 includeheadfoot, columnsep=2pc, 526 top=66pt, bottom=73pt, inner=54pt, outer=54pt, 527 marginparwidth=2pc 528 }% 529 \or % sigchi-a 530 \geometry{twoside=false, head=13pt, 531 paperwidth=11in, paperheight=8.5in, 532 includeheadfoot, marginparsep=72pt, 533 marginparwidth=170pt, columnsep=20pt, 534 top=72pt, bottom=72pt, left=314pt, right=72pt 535 }% 536 \@mparswitchfalse 537 \reversemarginpar 538 \fi 539 \setlength\parindent{10\p@} 540 \setlength\parskip{\z@} 541 \ifcase\ACM@format@nr 542 \relax % manuscript 543 \or % acmsmall 544 \or % acmlarge 545 \or % acmtog 546 \setlength\parindent{9\p@}% 547 \or % sigconf 548 \or % siggraph 549 \or % sigplan 550 \or % sigchi 551 \or % sigchi-a 552 \fi 553 \setlength\normalparindent{\parindent} 554 \def\copyrightpermissionfootnoterule{\kern-3\p@ 555 \hrule \@width \columnwidth \kern 2.6\p@} 556 \RequirePackage{manyfoot} 557 \SelectFootnoteRule[2]{copyrightpermission} 558 \DeclareNewFootnote{copyrightpermission} 559 \def\footnoterule{\kern-3\p@ 560 \hrule \@width 4pc \kern 2.6\p@} 561 \def\endminipage{% 562 \par 563 \unskip 564 \ifvoid\@mpfootins\else 565 \vskip\skip\@mpfootins 566 \normalcolor 567 \unvbox\@mpfootins 568 \fi 569 \@minipagefalse %% added 24 May 89 570 \color@endgroup 571 \egroup 572 \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}} 573 \def\@makefntext{\noindent\@makefnmark} 574 \if@ACM@sigchiamode 575 \long\def\@footnotetext#1{\marginpar{% 576 \reset@font\small 577 \interlinepenalty\interfootnotelinepenalty 578 \protected@edef\@currentlabel{% 579 \csname p@footnote\endcsname\@thefnmark 580 }% 581 \color@begingroup 582 \@makefntext{% 583 \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% 584 \color@endgroup}}% 585 \fi 586 \long\def\@mpfootnotetext#1{% 587 \global\setbox\@mpfootins\vbox{% 588 \unvbox\@mpfootins 589 \reset@font\footnotesize 590 \hsize\columnwidth 591 \@parboxrestore 592 \protected@edef\@currentlabel 593 {\csname p@mpfootnote\endcsname\@thefnmark}% 594 \color@begingroup\centering 595 \@makefntext{% 596 \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% 597 \color@endgroup}} 598 \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}} 599 \def\@textbottom{\vskip \z@ \@plus 1pt} 600 \let\@texttop\relax 601 \RequirePackage{iftex} 602 \ifPDFTeX 603 \input{glyphtounicode} 604 \pdfgentounicode=1 605 \fi 606 \RequirePackage{cmap} 607 \newif\if@ACM@newfonts 608 \@ACM@newfontstrue 609 \IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not 610 have libertine package installed. Please upgrade your 611 TeX}\@ACM@newfontsfalse} 612 \IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not 613 have zi4 package installed. Please upgrade your TeX}\@ACM@newfontsfalse} 614 \IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not 615 have newtxmath package installed. Please upgrade your 616 TeX}\@ACM@newfontsfalse} 617 \if@ACM@newfonts 618 \RequirePackage[tt=false, type1=true]{libertine} 619 \RequirePackage[varqu]{zi4} 620 \RequirePackage[libertine]{newtxmath} 621 \RequirePackage[T1]{fontenc} 622 \fi 623 \if@ACM@sigchiamode 624 \renewcommand{\familydefault}{\sfdefault} 625 \fi 626 \RequirePackage{caption, float} 627 \captionsetup[table]{position=top} 628 \if@ACM@journal 629 \captionsetup{labelfont={sf, small}, 630 textfont={sf, small}, margin=\z@} 631 \captionsetup[figure]{name={Fig.}} 632 \else 633 \captionsetup{labelfont={bf}, 634 textfont={bf}, labelsep=colon, margin=\z@} 635 \ifcase\ACM@format@nr 636 \relax % manuscript 637 \or % acmsmall 638 \or % acmlarge 639 \or % acmtog 640 \or % sigconf 641 \or % siggraph 642 \captionsetup{textfont={it}} 643 \or % sigplan 644 \captionsetup{labelfont={bf}, 645 textfont={normalfont}, labelsep=period, margin=\z@} 646 \or % sigchi 647 \captionsetup[figure]{labelfont={bf, small}, 648 textfont={bf, small}} 649 \or % sigchi-a 650 \captionsetup[figure]{labelfont={bf, small}, 651 textfont={bf, small}} 652 \fi 653 \fi 654 \newfloat{sidebar}{}{sbar} 655 \floatname{sidebar}{Sidebar} 656 \renewenvironment{sidebar}{\Collect@Body\@sidebar}{} 657 \long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}% 658 \marginpar{\small#1}\egroup} 659 \newenvironment{marginfigure}{\Collect@Body\@marginfigure}{} 660 \long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}% 661 \marginpar{\centering\small#1}\egroup} 662 \newenvironment{margintable}{\Collect@Body\@margintable}{} 663 \long\def\@margintable#1{\bgroup\captionsetup{type=table}% 664 \marginpar{\centering\small#1}\egroup} 665 \newdimen\fulltextwidth 666 \fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep) 667 \if@ACM@sigchiamode 668 \def\@dblfloat{\bgroup\columnwidth=\fulltextwidth 669 \let\@endfloatbox\@endwidefloatbox 670 \def\@fpsadddefault{\def\@fps{tp}}% 671 \@float} 672 \fi 673 \if@ACM@sigchiamode 674 \def\end@dblfloat{% 675 \end@float\egroup} 676 \fi 677 \def\@endwidefloatbox{% 678 \par\vskip\z@skip 679 \@minipagefalse 680 \outer@nobreak 681 \egroup 682 \color@endbox 683 \global\setbox\@currbox=\vbox{\moveleft 684 \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}% 685 \wd\@currbox=\textwidth 686 } 687 \ifcase\ACM@format@nr 688 \relax % manuscript 689 \or % acmsmall 690 \or % acmlarge 691 \or % acmtog 692 \or % sigconf 693 \or % siggraph 694 \or % sigplan 695 \def\labelenumi{\theenumi.} 696 \def\labelenumii{\theenumii.} 697 \def\labelenumiii{\theenumiii.} 698 \def\labelenumiv{\theenumiv.} 699 \or % sigchi 700 \or % sigchi-a 701 \fi 702 \newdimen\@ACM@labelwidth 703 \AtBeginDocument{% 704 \setlength\labelsep{4pt} 705 \setlength{\@ACM@labelwidth}{6.5pt} 706 707 %% First-level list: when beginning after the first line of an 708 %% indented paragraph or ending before an indented paragraph, labels 709 %% should not hang to the left of the preceding/following text. 710 \setlength\leftmargini{\z@} 711 \addtolength\leftmargini{\parindent} 712 \addtolength\leftmargini{2\labelsep} 713 \addtolength\leftmargini{\@ACM@labelwidth} 714 715 %% Second-level and higher lists. 716 \setlength\leftmarginii{\z@} 717 \addtolength\leftmarginii{0.5\labelsep} 718 \addtolength\leftmarginii{\@ACM@labelwidth} 719 \setlength\leftmarginiii{\leftmarginii} 720 \setlength\leftmarginiv{\leftmarginiii} 721 \setlength\leftmarginv{\leftmarginiv} 722 \setlength\leftmarginvi{\leftmarginv} 723 \@listi} 724 \newskip\listisep 725 \listisep\smallskipamount 726 \def\@listI{\leftmargin\leftmargini 727 \labelwidth\leftmargini \advance\labelwidth-\labelsep 728 \listparindent\z@ 729 \topsep\listisep} 730 \let\@listi\@listI 731 \def\@listii{\leftmargin\leftmarginii 732 \labelwidth\leftmarginii \advance\labelwidth-\labelsep 733 \topsep\z@skip} 734 \def\@listiii{\leftmargin\leftmarginiii 735 \labelwidth\leftmarginiii \advance\labelwidth-\labelsep} 736 \def\@listiv{\leftmargin\leftmarginiv 737 \labelwidth\leftmarginiv \advance\labelwidth-\labelsep} 738 \def\@listv{\leftmargin\leftmarginv 739 \labelwidth\leftmarginv \advance\labelwidth-\labelsep} 740 \def\@listvi{\leftmargin\leftmarginvi 741 \labelwidth\leftmarginvi \advance\labelwidth-\labelsep} 742 \renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1} 743 \renewenvironment{description}{\list{}{% 744 \labelwidth\@ACM@labelwidth 745 \let\makelabel\descriptionlabel}% 746 }{ 747 \endlist 748 } 749 \let\enddescription=\endlist % for efficiency 750 \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{% 751 CIE,% 752 CSUR,% 753 IMWUT,% 754 JACM,% 755 JDIQ,% 756 JEA,% 757 JERIC,% 758 JETC,% 759 JOCCH,% 760 PACMHCI,% 761 PACMPL,% 762 POMACS,% 763 TAAS,% 764 TACCESS,% 765 TACO,% 766 TALG,% 767 TALLIP,% 768 TAP,% 769 TCPS,% 770 TEAC,% 771 TECS,% 772 TIIS,% 773 TISSEC,% 774 TIST,% 775 TKDD,% 776 TMIS,% 777 TOCE,% 778 TOCHI,% 779 TOCL,% 780 TOCS,% 781 TOCT,% 782 TODAES,% 783 TODS,% 784 TOG,% 785 TOIS,% 786 TOIT,% 787 TOMACS,% 788 TOMM,% 789 TOMPECS,% 790 TOMS,% 791 TOPC,% 792 TOPS,% 793 TOPLAS,% 794 TOS,% 795 TOSEM,% 796 TOSN,% 797 TRETS,% 798 TSAS,% 799 TSC,% 800 TSLP,% 801 TWEB% 802 }{% 803 \ifcase\@journalCode@nr 804 \relax % CIE 805 \def\@journalName{ACM Computers in Entertainment}% 806 \def\@journalNameShort{ACM Comput. Entertain.}% 807 \def\@permissionCodeOne{1544-3574}% 808 \or % CSUR 809 \def\@journalName{ACM Computing Surveys}% 810 \def\@journalNameShort{ACM Comput. Surv.}% 811 \def\@permissionCodeOne{0360-0300}% 812 \or % IMWUT 813 \def\@journalName{Proceedings of the ACM on Interactive, Mobile, 814 Wearable and Ubiquitous Technologies}% 815 \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}% 816 \def\@permissionCodeOne{2474-9567}% 817 \or % JACM 818 \def\@journalName{Journal of the ACM}% 819 \def\@journalNameShort{J. ACM}% 820 \def\@permissionCodeOne{0004-5411}% 821 \or % JDIQ 822 \def\@journalName{ACM Journal of Data and Information Quality}% 823 \def\@journalNameShort{ACM J. Data Inform. Quality}% 824 \def\@permissionCodeOne{1936-1955}% 825 \or % JEA 826 \def\@journalName{ACM Journal of Experimental Algorithmics}% 827 \def\@journalNameShort{ACM J. Exp. Algor.}% 828 \def\@permissionCodeOne{1084-6654}% 829 \or % JERIC 830 \def\@journalName{ACM Journal of Educational Resources in Computing}% 831 \def\@journalNameShort{ACM J. Edu. Resources in Comput.}% 832 \def\@permissionCodeOne{1073-0516}% 833 \or % JETC 834 \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}% 835 \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}% 836 \def\@permissionCodeOne{1550-4832}% 837 \or % JOCCH 838 \def\@journalName{ACM Journal on Computing and Cultural Heritage}% 839 \def\@journalName{ACM J. Comput. Cult. Herit.}% 840 \or % PACMHCI 841 \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}% 842 \def\@journalName{Proc. ACM Hum.-Comput. Interact.}% 843 \def\@permissionCodeOne{2573-0142}% 844 \or % PACMPL 845 \def\@journalName{Proceedings of the ACM on Programming Languages}% 846 \def\@journalName{Proc. ACM Program. Lang.}% 847 \def\@permissionCodeOne{2475-1421}% 848 \or % POMACS 849 \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}% 850 \def\@journalName{Proc. ACM Meas. Anal. Comput. Syst.}% 851 \def\@permissionCodeOne{2476-1249}% 852 \or % TAAS 853 \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}% 854 \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}% 855 \def\@permissionCodeOne{1556-4665}% 856 \or % TACCESS 857 \def\@journalName{ACM Transactions on Accessible Computing}% 858 \def\@journalNameShort{ACM Trans. Access. Comput.}% 859 \def\@permissionCodeOne{1936-7228}% 860 \or % TACO 861 \def\@journalName{ACM Transactions on Architecture and Code Optimization}% 862 \or % TALG 863 \def\@journalName{ACM Transactions on Algorithms}% 864 \def\@journalNameShort{ACM Trans. Algor.}% 865 \def\@permissionCodeOne{1549-6325}% 866 \or % TALLIP 867 \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}% 868 \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}% 869 \def\@permissionCodeOne{2375-4699}% 870 \or % TAP 871 \def\@journalName{ACM Transactions on Applied Perception}% 872 \or % TCPS 873 \def\@journalName{ACM Transactions on Cyber-Physical Systems}% 874 \or % TEAC 875 \def\@journalName{ACM Transactions on Economics and Computation}% 876 \or % TECS 877 \def\@journalName{ACM Transactions on Embedded Computing Systems}% 878 \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}% 879 \def\@permissionCodeOne{1539-9087}% 880 \or % TIIS 881 \def\@journalName{ACM Transactions on Interactive Intelligent Systems}% 882 \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}% 883 \def\@permissionCodeOne{2160-6455}% 884 \or % TISSEC 885 \def\@journalName{ACM Transactions on Information and System Security}% 886 \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}% 887 \def\@permissionCodeOne{1094-9224}% 888 \or % TIST 889 \def\@journalName{ACM Transactions on Intelligent Systems and Technology}% 890 \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}% 891 \def\@permissionCodeOne{2157-6904}% 892 \or % TKDD 893 \def\@journalName{ACM Transactions on Knowledge Discovery from Data}% 894 \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}% 895 \def\@permissionCodeOne{1556-4681}% 896 \or % TMIS 897 \def\@journalName{ACM Transactions on Management Information Systems}% 898 \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}% 899 \def\@permissionCodeOne{2158-656X}% 900 \or % TOCE 901 \def\@journalName{ACM Transactions on Computing Education}% 902 \def\@journalNameShort{ACM Trans. Comput. Educ.}% 903 \def\@permissionCodeOne{1946-6226}% 904 \or % TOCHI 905 \def\@journalName{ACM Transactions on Computer-Human Interaction}% 906 \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}% 907 \def\@permissionCodeOne{1073-0516}% 908 \or % TOCL 909 \def\@journalName{ACM Transactions on Computational Logic}% 910 \def\@journalNameShort{ACM Trans. Comput. Logic}% 911 \def\@permissionCodeOne{1529-3785}% 912 \or % TOCS 913 \def\@journalName{ACM Transactions on Computer Systems}% 914 \def\@journalNameShort{ACM Trans. Comput. Syst.}% 915 \def\@permissionCodeOne{0734-2071}% 916 \or % TOCT 917 \def\@journalName{ACM Transactions on Computation Theory}% 918 \def\@journalNameShort{ACM Trans. Comput. Theory}% 919 \def\@permissionCodeOne{1942-3454}% 920 \or % TODAES 921 \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}% 922 \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}% 923 \def\@permissionCodeOne{1084-4309}% 924 \or % TODS 925 \def\@journalName{ACM Transactions on Database Systems}% 926 \def\@journalNameShort{ACM Trans. Datab. Syst.}% 927 \def\@permissionCodeOne{0362-5915}% 928 \or % TOG 929 \def\@journalName{ACM Transactions on Graphics}% 930 \def\@journalNameShort{ACM Trans. Graph.}% 931 \def\@permissionCodeOne{0730-0301} 932 \or % TOIS 933 \def\@journalName{ACM Transactions on Information Systems}% 934 \def\@journalName{ACM Transactions on Information Systems}% 935 \def\@permissionCodeOne{1046-8188}% 936 \or % TOIT 937 \def\@journalName{ACM Transactions on Internet Technology}% 938 \def\@journalNameShort{ACM Trans. Internet Technol.}% 939 \def\@permissionCodeOne{1533-5399}% 940 \or % TOMACS 941 \def\@journalName{ACM Transactions on Modeling and Computer Simulation}% 942 \def\@journalName{ACM Transactions on Modeling and Computer Simulation}% 943 \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}% 944 \or % TOMM 945 \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}% 946 \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}% 947 \def\@permissionCodeOne{1551-6857}% 948 \def\@permissionCodeTwo{0100}% 949 \or % TOMPECS 950 \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}% 951 \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}% 952 \def\@permissionCodeOne{2376-3639}% 953 \or % TOMS 954 \def\@journalName{ACM Transactions on Mathematical Software}% 955 \def\@journalNameShort{ACM Trans. Math. Softw.}% 956 \def\@permissionCodeOne{0098-3500}% 957 \or % TOPC 958 \def\@journalName{ACM Transactions on Parallel Computing}% 959 \def\@journalNameShort{ACM Trans. Parallel Comput.}% 960 \def\@permissionCodeOne{1539-9087}% 961 \or % TOPS 962 \def\@journalName{ACM Transactions on Privacy and Security}% 963 \def\@journalNameShort{ACM Trans. Priv. Sec.}% 964 \def\@permissionCodeOne{2471-2566}% 965 \or % TOPLAS 966 \def\@journalName{ACM Transactions on Programming Languages and Systems}% 967 \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}% 968 \def\@permissionCodeOne{0164-0925}% 969 \or % TOS 970 \def\@journalName{ACM Transactions on Storage}% 971 \def\@journalNameShort{ACM Trans. Storage}% 972 \def\@permissionCodeOne{1553-3077}% 973 \or % TOSEM 974 \def\@journalName{ACM Transactions on Software Engineering and Methodology}% 975 \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}% 976 \def\@permissionCodeOne{1049-331X}% 977 \or % TOSN 978 \def\@journalName{ACM Transactions on Sensor Networks}% 979 \def\@journalNameShort{ACM Trans. Sensor Netw.}% 980 \def\@permissionCodeOne{1550-4859}% 981 \or % TRETS 982 \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}% 983 \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}% 984 \def\@permissionCodeOne{1936-7406}% 985 \or % TSAS 986 \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}% 987 \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}% 988 \def\@permissionCodeOne{2374-0353}% 989 \or % TSC 990 \def\@journalName{ACM Transactions on Social Computing}% 991 \def\@journalNameShort{ACM Trans. Soc. Comput.}% 992 \def\@permissionCodeOne{2469-7818}% 993 \or % TSLP 994 \def\@journalName{ACM Transactions on Speech and Language Processing}% 995 \def\@journalNameShort{ACM Trans. Speech Lang. Process.}% 996 \def\@permissionCodeOne{1550-4875}% 997 \or % TWEB 998 \def\@journalName{ACM Transactions on the Web}% 999 \def\@journalNameShort{ACM Trans. Web}% 1000 \def\@permissionCodeOne{1559-1131}% 1001 \fi 1002 \ClassInfo{\@classname}{Using journal code \@journalCode}% 1003 }{% 1004 \ClassError{\@classname}{Incorrect journal #1}% 1005 }% 1006 \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}} 1007 \def\@journalCode@nr{0} 1008 \def\@journalName{}% 1009 \def\@journalNameShort{\@journalName}% 1010 \def\@permissionCodeOne{XXXX-XXXX}% 1011 \def\@permissionCodeTwo{}% 1012 \newcommand\acmConference[4][]{% 1013 \gdef\acmConference@shortname{#1}% 1014 \gdef\acmConference@name{#2}% 1015 \gdef\acmConference@date{#3}% 1016 \gdef\acmConference@venue{#4}% 1017 \ifx\acmConference@shortname\@empty 1018 \gdef\acmConference@shortname{#2}% 1019 \fi} 1020 \acmConference[Conference'17]{ACM Conference}{July 2017}{Washington, 1021 DC, USA} 1022 \def\subtitle#1{\def\@subtitle{#1}} 1023 \subtitle{} 1024 \newcount\num@authorgroups 1025 \num@authorgroups=0\relax 1026 \newif\if@insideauthorgroup 1027 \@insideauthorgroupfalse 1028 \renewcommand\author[2][]{% 1029 \if@insideauthorgroup\else 1030 \global\advance\num@authorgroups by 1\relax 1031 \global\@insideauthorgrouptrue 1032 \fi 1033 \ifx\addresses\@empty 1034 \if@ACM@anonymous 1035 \gdef\addresses{\@author{Anonymous Author(s)}}% 1036 \gdef\authors{Anonymous Author(s)}% 1037 \else 1038 \gdef\addresses{\@author{#2}}% 1039 \gdef\authors{#2}% 1040 \fi 1041 \else 1042 \if@ACM@anonymous\else 1043 \g@addto@macro\addresses{\and\@author{#2}}% 1044 \g@addto@macro\authors{\and#2}% 1045 \fi 1046 \fi 1047 \if@ACM@anonymous 1048 \ifx\shortauthors\@empty 1049 \gdef\shortauthors{Anon.}% 1050 \fi 1051 \else 1052 \def\@tempa{#1}% 1053 \ifx\@tempa\@empty 1054 \ifx\shortauthors\@empty 1055 \gdef\shortauthors{#2}% 1056 \else 1057 \g@addto@macro\shortauthors{\and#2}% 1058 \fi 1059 \else 1060 \ifx\shortauthors\@empty 1061 \gdef\shortauthors{#1}% 1062 \else 1063 \g@addto@macro\shortauthors{\and#1}% 1064 \fi 1065 \fi 1066 \fi} 1067 \newcommand{\affiliation}[2][]{% 1068 \global\@insideauthorgroupfalse 1069 \if@ACM@anonymous\else 1070 \g@addto@macro\addresses{\affiliation{#1}{#2}}% 1071 \fi} 1072 \define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}% 1073 [true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}} 1074 \def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}} 1075 \def\@additionalaffiliation#1{\bgroup 1076 \def\position##1{\ignorespaces}% 1077 \def\institution##1{##1\ignorespaces}% 1078 \def\department{\@ifnextchar[{\@department}{\@department[]}}% 1079 \def\@department[##1]##2{\unskip, ##2\ignorespaces}% 1080 \let\streetaddress\position 1081 \let\city\position 1082 \let\state\position 1083 \let\postcode\position 1084 \let\country\position 1085 Also with #1\unskip.\egroup} 1086 \renewcommand{\email}[2][]{% 1087 \if@ACM@anonymous\else 1088 \g@addto@macro\addresses{\email{#1}{#2}}% 1089 \fi} 1090 \let\orcid\@gobble 1091 \def\@titlenotes{} 1092 \def\titlenote#1{% 1093 \g@addto@macro\@title{\footnotemark}% 1094 \if@ACM@anonymous 1095 \g@addto@macro\@titlenotes{% 1096 \stepcounter{footnote}\footnotetext{Title note}}% 1097 \else 1098 \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}% 1099 \fi} 1100 \def\@subtitlenotes{} 1101 \def\subtitlenote#1{% 1102 \g@addto@macro\@subtitle{\footnotemark}% 1103 \if@ACM@anonymous 1104 \g@addto@macro\@subtitlenotes{% 1105 \stepcounter{footnote}\footnotetext{Subtitle note}}% 1106 \else 1107 \g@addto@macro\@subtitlenotes{% 1108 \stepcounter{footnote}\footnotetext{#1}}% 1109 \fi} 1110 \def\@authornotes{} 1111 \def\authornote#1{% 1112 \if@ACM@anonymous\else 1113 \g@addto@macro\addresses{\@authornotemark}% 1114 \g@addto@macro\@authornotes{% 1115 \stepcounter{footnote}\footnotetext{#1}}% 1116 \fi} 1117 \newcommand\authornotemark[1][\relax]{% 1118 \ifx#1\relax\relax\relax 1119 \g@addto@macro\addresses{\@authornotemark}% 1120 \else 1121 \g@addto@macro\addresses{\@@authornotemark{#1}}% 1122 \fi} 1123 \def\acmVolume#1{\def\@acmVolume{#1}} 1124 \acmVolume{1} 1125 \def\acmNumber#1{\def\@acmNumber{#1}} 1126 \acmNumber{1} 1127 \def\acmArticle#1{\def\@acmArticle{#1}} 1128 \acmArticle{1} 1129 \def\acmArticleSeq#1{\def\@acmArticleSeq{#1}} 1130 \acmArticleSeq{\@acmArticle} 1131 \def\acmYear#1{\def\@acmYear{#1}} 1132 \acmYear{\the\year} 1133 \def\acmMonth#1{\def\@acmMonth{#1}} 1134 \acmMonth{\the\month} 1135 \def\@acmPubDate{\ifcase\@acmMonth\or 1136 January\or February\or March\or April\or May\or June\or 1137 July\or August\or September\or October\or November\or 1138 December\fi~\@acmYear} 1139 \def\acmPrice#1{\def\@acmPrice{#1}} 1140 \acmPrice{15.00} 1141 \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}} 1142 \acmSubmissionID{} 1143 \def\acmISBN#1{\def\@acmISBN{#1}} 1144 \acmISBN{978-x-xxxx-xxxx-x/YY/MM} 1145 \def\acmDOI#1{\def\@acmDOI{#1}} 1146 \acmDOI{10.1145/nnnnnnn.nnnnnnn} 1147 \newif\if@ACM@badge 1148 \@ACM@badgefalse 1149 \newlength\@ACM@badge@width 1150 \setlength\@ACM@badge@width{5pc} 1151 \newlength\@ACM@title@width 1152 \newlength\@ACM@badge@skip 1153 \setlength\@ACM@badge@skip{1pc} 1154 \newcommand\acmBadgeR[2][]{\@ACM@badgetrue 1155 \def\@acmBadgeR@url{#1}% 1156 \def\@acmBadgeR@image{#2}} 1157 \def\@acmBadgeR@url{} 1158 \def\@acmBadgeR@image{} 1159 \newcommand\acmBadgeL[2][]{\@ACM@badgetrue 1160 \def\@acmBadgeL@url{#1}% 1161 \def\@acmBadgeL@image{#2}} 1162 \def\@acmBadgeL@url{} 1163 \def\@acmBadgeL@image{} 1164 \def\startPage#1{\def\@startPage{#1}} 1165 \startPage{} 1166 \def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is 1167 obsolete. I am going to ignore it}} 1168 \def\keywords#1{\def\@keywords{#1}} 1169 \keywords{} 1170 \renewenvironment{abstract}{\Collect@Body\@saveabstract}{} 1171 \long\def\@saveabstract#1{\long\gdef\@abstract{#1}} 1172 \@saveabstract{} 1173 \long\def\@lempty{} 1174 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{% 1175 \if@ACM@printccs 1176 \ClassInfo{\@classname}{Printing CCS}% 1177 \else 1178 \ClassInfo{\@classname}{Suppressing CCS}% 1179 \fi}{\ClassError{\@classname}{printccs must be true or false}} 1180 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{% 1181 \if@ACM@printacmref 1182 \ClassInfo{\@classname}{Printing bibformat}% 1183 \else 1184 \ClassInfo{\@classname}{Suppressing bibformat}% 1185 \fi}{\ClassError{\@classname}{printacmref must be true or false}} 1186 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{% 1187 \if@ACM@printfolios 1188 \ClassInfo{\@classname}{Printing folios}% 1189 \else 1190 \ClassInfo{\@classname}{Suppressing folios}% 1191 \fi}{\ClassError{\@classname}{printfolios must be true or false}} 1192 \define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{% 1193 \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to 1194 #1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be 1195 numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}} 1196 \def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}} 1197 \settopmatter{printccs=true, printacmref=true} 1198 \if@ACM@manuscript 1199 \settopmatter{printfolios=true} 1200 \else 1201 \if@ACM@journal 1202 \settopmatter{printfolios=true} 1203 \else 1204 \settopmatter{printfolios=false} 1205 \fi 1206 \fi 1207 \settopmatter{authorsperrow=0} 1208 \def\@received{} 1209 \newcommand\received[2][]{\def\@tempa{#1}% 1210 \ifx\@tempa\@empty 1211 \ifx\@received\@empty 1212 \gdef\@received{Received #2}% 1213 \else 1214 \g@addto@macro{\@received}{; revised #2}% 1215 \fi 1216 \else 1217 \ifx\@received\@empty 1218 \gdef\@received{#1 #2}% 1219 \else 1220 \g@addto@macro{\@received}{; #1 #2}% 1221 \fi 1222 \fi} 1223 \AtEndDocument{% 1224 \ifx\@received\@empty\else 1225 \par\bigskip\noindent\small\normalfont\@received\par 1226 \fi} 1227 \RequirePackage{comment} 1228 \excludecomment{CCSXML} 1229 \let\@concepts\@empty 1230 \newcommand\ccsdesc[2][100]{% 1231 \ccsdesc@parse#1~#2~} 1232 \RequirePackage{textcomp} 1233 \def\ccsdesc@parse#1~#2~#3~{% 1234 \expandafter\ifx\csname CCS@#2\endcsname\relax 1235 \expandafter\gdef\csname CCS@#2\endcsname{\textbullet\ \textbf{#2} \textrightarrow\ }% 1236 \g@addto@macro{\@concepts}{\csname CCS@#2\endcsname}\fi 1237 \expandafter\g@addto@macro\expandafter{\csname CCS@#2\endcsname}{% 1238 \ifnum#1>499\textbf{#3}; \else 1239 \ifnum#1>299\textit{#3}; \else 1240 #3; \fi\fi}} 1241 \newif\if@printcopyright 1242 \@printcopyrighttrue 1243 \newif\if@printpermission 1244 \@printpermissiontrue 1245 \newif\if@acmowned 1246 \@acmownedtrue 1247 \define@choicekey*{ACM@}{acmcopyrightmode}[% 1248 \acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,% 1249 rightsretained,usgov,usgovmixed,cagov,cagovmixed,% 1250 licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{% 1251 \@printpermissiontrue 1252 \@printcopyrighttrue 1253 \@acmownedtrue 1254 \ifnum\acm@copyrightmode=0\relax % none 1255 \@printpermissionfalse 1256 \@printcopyrightfalse 1257 \@acmownedfalse 1258 \fi 1259 \ifnum\acm@copyrightmode=2\relax % acmlicensed 1260 \@acmownedfalse 1261 \fi 1262 \ifnum\acm@copyrightmode=3\relax % rightsretained 1263 \@acmownedfalse 1264 \acmPrice{}% 1265 \fi 1266 \ifnum\acm@copyrightmode=4\relax % usgov 1267 \@printpermissiontrue 1268 \@printcopyrightfalse 1269 \@acmownedfalse 1270 \acmPrice{}% 1271 \fi 1272 \ifnum\acm@copyrightmode=6\relax % cagov 1273 \@acmownedfalse 1274 \fi 1275 \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed 1276 \@acmownedfalse 1277 \fi 1278 \ifnum\acm@copyrightmode=9\relax % licensedcagovmixed 1279 \@acmownedfalse 1280 \fi 1281 \ifnum\acm@copyrightmode=10\relax % othergov 1282 \@acmownedtrue 1283 \fi 1284 \ifnum\acm@copyrightmode=11\relax % licensedothergov 1285 \@acmownedfalse 1286 \fi} 1287 \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}} 1288 \setcopyright{acmcopyright} 1289 \def\@copyrightowner{% 1290 \ifcase\acm@copyrightmode\relax % none 1291 \or % acmcopyright 1292 Association for Computing Machinery. 1293 \or % acmlicensed 1294 Copyright held by the owner/author(s). Publication rights licensed to 1295 Association for Computing Machinery. 1296 \or % rightsretained 1297 Copyright held by the owner/author(s). 1298 \or % usgov 1299 \or % usgovmixed 1300 Association for Computing Machinery. 1301 \or % cagov 1302 Crown in Right of Canada. 1303 \or %cagovmixed 1304 Association for Computing Machinery. 1305 \or %licensedusgovmixed 1306 Copyright held by the owner/author(s). Publication rights licensed to 1307 Association for Computing Machinery. 1308 \or %licensedcagovmixed 1309 Copyright held by the owner/author(s). Publication rights licensed to 1310 Association for Computing Machinery. 1311 \or % othergov 1312 Association for Computing Machinery. 1313 \or % licensedothergov 1314 Copyright held by the owner/author(s). Publication rights licensed to 1315 Association for Computing Machinery. 1316 \fi} 1317 \def\@formatdoi#1{\url{https://doi.org/#1}} 1318 \def\@copyrightpermission{% 1319 \ifcase\acm@copyrightmode\relax % none 1320 \or % acmcopyright 1321 Permission to make digital or hard copies of all or part of this 1322 work for personal or classroom use is granted without fee provided 1323 that copies are not made or distributed for profit or commercial 1324 advantage and that copies bear this notice and the full citation on 1325 the first page. Copyrights for components of this work owned by 1326 others than ACM must be honored. Abstracting with credit is 1327 permitted. To copy otherwise, or republish, to post on servers or to 1328 redistribute to lists, requires prior specific permission 1329 and\hspace*{.5pt}/or a fee. Request permissions from 1330 permissions@acm.org. 1331 \or % acmlicensed 1332 Permission to make digital or hard copies of all or part of this 1333 work for personal or classroom use is granted without fee provided 1334 that copies are not made or distributed for profit or commercial 1335 advantage and that copies bear this notice and the full citation on 1336 the first page. Copyrights for components of this work owned by 1337 others than the author(s) must be honored. Abstracting with credit 1338 is permitted. To copy otherwise, or republish, to post on servers 1339 or to redistribute to lists, requires prior specific permission 1340 and\hspace*{.5pt}/or a fee. Request permissions from 1341 permissions@acm.org. 1342 \or % rightsretained 1343 Permission to make digital or hard copies of part or all of this work 1344 for personal or classroom use is granted without fee provided that 1345 copies are not made or distributed for profit or commercial advantage 1346 and that copies bear this notice and the full citation on the first 1347 page. Copyrights for third-party components of this work must be 1348 honored. For all other uses, contact the 1349 owner\hspace*{.5pt}/author(s). 1350 \or % usgov 1351 This paper is authored by an employee(s) of the United States 1352 Government and is in the public domain. Non-exclusive copying or 1353 redistribution is allowed, provided that the article citation is 1354 given and the authors and agency are clearly identified as its 1355 source. 1356 \or % usgovmixed 1357 ACM acknowledges that this contribution was authored or co-authored 1358 by an employee, or contractor of the national government. As such, 1359 the Government retains a nonexclusive, royalty-free right to 1360 publish or reproduce this article, or to allow others to do so, for 1361 Government purposes only. Permission to make digital or hard copies 1362 for personal or classroom use is granted. Copies must bear this 1363 notice and the full citation on the first page. Copyrights for 1364 components of this work owned by others than ACM must be 1365 honored. To copy otherwise, distribute, republish, or post, 1366 requires prior specific permission and\hspace*{.5pt}/or a 1367 fee. Request permissions from permissions@acm.org. 1368 \or % cagov 1369 This article was authored by employees of the Government of Canada. 1370 As such, the Canadian government retains all interest in the 1371 copyright to this work and grants to ACM a nonexclusive, 1372 royalty-free right to publish or reproduce this article, or to allow 1373 others to do so, provided that clear attribution is given both to 1374 the authors and the Canadian government agency employing them. 1375 Permission to make digital or hard copies for personal or classroom 1376 use is granted. Copies must bear this notice and the full citation 1377 on the first page. Copyrights for components of this work owned by 1378 others than the Canadain Government must be honored. To copy 1379 otherwise, distribute, republish, or post, requires prior specific 1380 permission and\hspace*{.5pt}/or a fee. Request permissions from 1381 permissions@acm.org. 1382 \or % cagovmixed 1383 ACM acknowledges that this contribution was co-authored by an 1384 affiliate of the national government of Canada. As such, the Crown 1385 in Right of Canada retains an equal interest in the copyright. 1386 Reprints must include clear attribution to ACM and the author's 1387 government agency affiliation. Permission to make digital or hard 1388 copies for personal or classroom use is granted. Copies must bear 1389 this notice and the full citation on the first page. Copyrights for 1390 components of this work owned by others than ACM must be honored. 1391 To copy otherwise, distribute, republish, or post, requires prior 1392 specific permission and\hspace*{.5pt}/or a fee. Request permissions 1393 from permissions@acm.org. 1394 \or % licensedusgovmixed 1395 Publication rights licensed to ACM\@. ACM acknowledges that this 1396 contribution was authored or co-authored by an employee, contractor 1397 or affiliate of the United States government. As such, the 1398 Government retains a nonexclusive, royalty-free right to publish or 1399 reproduce this article, or to allow others to do so, for Government 1400 purposes only. 1401 \or % licensedcagovmixed 1402 Publication rights licensed to ACM\@. ACM acknowledges that this 1403 contribution was authored or co-authored by an employee, contractor 1404 or affiliate of the national government of Canada. As such, the 1405 Government retains a nonexclusive, royalty-free right to publish or 1406 reproduce this article, or to allow others to do so, for Government 1407 purposes only. 1408 \or % othergov 1409 ACM acknowledges that this contribution was authored or co-authored 1410 by an employee, contractor or affiliate of a national government. As 1411 such, the Government retains a nonexclusive, royalty-free right to 1412 publish or reproduce this article, or to allow others to do so, for 1413 Government purposes only. 1414 \or % licensedothergov 1415 Publication rights licensed to ACM\@. ACM acknowledges that this 1416 contribution was authored or co-authored by an employee, contractor 1417 or affiliate of a national government. As such, the Government 1418 retains a nonexclusive, royalty-free right to publish or reproduce 1419 this article, or to allow others to do so, for Government purposes 1420 only. 1421 \fi} 1422 \def\copyrightyear#1{\def\@copyrightyear{#1}} 1423 \copyrightyear{\@acmYear} 1424 \def\@teaserfigures{} 1425 \newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{} 1426 \long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}} 1427 \renewcommand{\thanks}[1]{% 1428 \@ifnotempty{#1}{% 1429 \if@ACM@anonymous 1430 \g@addto@macro\thankses{\thanks{A note}}% 1431 \else 1432 \g@addto@macro\thankses{\thanks{#1}}% 1433 \fi}} 1434 \newbox\mktitle@bx 1435 \def\maketitle{% 1436 \if@ACM@anonymous 1437 % Anonymize omission of \author-s 1438 \ifnum\num@authorgroups=0\author{}\fi 1439 \fi 1440 \begingroup 1441 \let\@footnotemark\@footnotemark@nolink 1442 \let\@footnotetext\@footnotetext@nolink 1443 \renewcommand\thefootnote{\@fnsymbol\c@footnote}% 1444 \global\@topnum\z@ % this prevents floats from falling 1445 % at the top of page 1 1446 \global\@botnum\z@ % we do not want them to be on bottom either 1447 \hsize=\textwidth 1448 \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}% 1449 \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers 1450 \@printtopmatter 1451 \if@ACM@sigchiamode\@mkauthors\fi 1452 \setcounter{footnote}{0}% 1453 \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}% 1454 \@titlenotes 1455 \@subtitlenotes 1456 \@authornotes 1457 \let\@makefnmark\relax \let\@thefnmark\relax 1458 \let\@makefntext\noindent 1459 \ifx\@empty\thankses\else 1460 \footnotetextcopyrightpermission{% 1461 \def\par{\let\par\@par}\parindent\z@\@setthanks}% 1462 \fi 1463 \footnotetextcopyrightpermission{% 1464 \if@ACM@authordraft 1465 \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries 1466 Unpublished 1467 working draft. Not for distribution}}% 1468 \color[gray]{0.9}% 1469 \fi 1470 \parindent\z@\parskip0.1\baselineskip 1471 \if@ACM@authorversion\else 1472 \if@printpermission\@copyrightpermission\par\fi 1473 \fi 1474 \if@ACM@manuscript\else 1475 \if@ACM@journal\else % Print the conference information 1476 {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par 1477 \fi 1478 \fi 1479 \if@printcopyright 1480 \copyright\ \@copyrightyear\ \@copyrightowner\\ 1481 \else 1482 \@copyrightyear.\ 1483 \fi 1484 \if@ACM@manuscript 1485 Manuscript submitted to ACM\\ 1486 \else 1487 \if@ACM@authorversion 1488 This is the author's version of the work. It is posted here for 1489 your personal use. Not for redistribution. The definitive Version 1490 of Record was published in 1491 \if@ACM@journal 1492 \emph{\@journalName}% 1493 \else 1494 \emph{Proceedings of \acmConference@name, \acmConference@date}% 1495 \fi 1496 \ifx\@acmDOI\@empty 1497 . 1498 \else 1499 , \@formatdoi{\@acmDOI}. 1500 \fi\\ 1501 \else 1502 \if@ACM@journal 1503 \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle 1504 \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\ 1505 \@formatdoi{\@acmDOI}% 1506 \else % Conference 1507 ACM~ISBN~\@acmISBN 1508 \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\ 1509 \@formatdoi{\@acmDOI}% 1510 \fi 1511 \fi 1512 \fi} 1513 \endgroup 1514 \setcounter{footnote}{0}% 1515 \@mkabstract 1516 \if@ACM@printccs 1517 \ifx\@concepts\@empty\else\bgroup 1518 {\@specialsection{CCS Concepts}% 1519 \@concepts\par}\egroup 1520 \fi 1521 \fi 1522 \ifx\@keywords\@empty\else\bgroup 1523 {\if@ACM@journal 1524 \@specialsection{Additional Key Words and Phrases}% 1525 \else 1526 \@specialsection{Keywords}% 1527 \fi 1528 \@keywords}\par\egroup 1529 \fi 1530 \andify\authors 1531 \andify\shortauthors 1532 \global\let\authors=\authors 1533 \global\let\shortauthors=\shortauthors 1534 \if@ACM@printacmref 1535 \@mkbibcitation 1536 \fi 1537 \hypersetup{pdfauthor={\authors}, 1538 pdftitle={\@title}, pdfkeywords={\@concepts}}% 1539 \@printendtopmatter 1540 \@afterindentfalse 1541 \@afterheading 1542 } 1543 \def\@specialsection#1{% 1544 \ifcase\ACM@format@nr 1545 \relax % manuscript 1546 \par\medskip\small\noindent#1: % 1547 \or % acmsmall 1548 \par\medskip\small\noindent#1: % 1549 \or % acmlarge 1550 \par\medskip\small\noindent#1: % 1551 \or % acmtog 1552 \par\medskip\small\noindent#1: % 1553 \or % sigconf 1554 \section*{#1}% 1555 \or % siggraph 1556 \section*{#1}% 1557 \or % sigplan 1558 \paragraph*{#1}% 1559 \or % sigchi 1560 \section*{#1}% 1561 \or % sigchi-a 1562 \section*{#1}% 1563 \fi} 1564 \def\@printtopmatter{% 1565 \ifx\@startPage\@empty 1566 \gdef\@startPage{1}% 1567 \else 1568 \setcounter{page}{\@startPage}% 1569 \fi 1570 \thispagestyle{firstpagestyle}% 1571 \noindent 1572 \ifcase\ACM@format@nr 1573 \relax % manuscript 1574 \box\mktitle@bx\par 1575 \noindent\hrulefill\par 1576 \or % acmsmall 1577 \box\mktitle@bx\par 1578 \noindent\hrulefill\par 1579 \or % acmlarge 1580 \box\mktitle@bx\par 1581 \noindent\hrulefill\par 1582 \or % acmtog 1583 \twocolumn[\box\mktitle@bx]% 1584 \or % sigconf 1585 \twocolumn[\box\mktitle@bx]% 1586 \or % siggraph 1587 \twocolumn[\box\mktitle@bx]% 1588 \or % sigplan 1589 \twocolumn[\box\mktitle@bx]% 1590 \or % sigchi 1591 \twocolumn[\box\mktitle@bx]% 1592 \or % sigchi-a 1593 \par\box\mktitle@bx\par\bigskip 1594 \if@ACM@badge 1595 \marginpar{\noindent 1596 \ifx\@acmBadgeL@image\@empty\else 1597 \href{\@acmBadgeL@url}{% 1598 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}% 1599 \hskip\@ACM@badge@skip 1600 \fi 1601 \ifx\@acmBadgeR@image\@empty\else 1602 \href{\@acmBadgeR@url}{% 1603 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}% 1604 \fi}% 1605 \fi 1606 \fi 1607 } 1608 \def\@mktitle{% 1609 \ifcase\ACM@format@nr 1610 \relax % manuscript 1611 \@mktitle@i 1612 \or % acmsmall 1613 \@mktitle@i 1614 \or % acmlarge 1615 \@mktitle@i 1616 \or % acmtog 1617 \@mktitle@i 1618 \or % sigconf 1619 \@mktitle@iii 1620 \or % siggraph 1621 \@mktitle@iii 1622 \or % sigplan 1623 \@mktitle@iii 1624 \or % sigchi 1625 \@mktitle@iii 1626 \or % sigchi-a 1627 \@mktitle@iv 1628 \fi 1629 } 1630 \def\@titlefont{% 1631 \ifcase\ACM@format@nr 1632 \relax % manuscript 1633 \LARGE\bfseries\sffamily 1634 \or % acmsmall 1635 \LARGE\bfseries\sffamily 1636 \or % acmlarge 1637 \LARGE\bfseries\sffamily 1638 \or % acmtog 1639 \Huge\sffamily 1640 \or % sigconf 1641 \Huge\sffamily\bfseries 1642 \or % siggraph 1643 \Huge\sffamily\bfseries 1644 \or % sigplan 1645 \Huge\bfseries 1646 \or % sigchi 1647 \Huge\sffamily\bfseries 1648 \or % sigchi-a 1649 \Huge\bfseries 1650 \fi} 1651 \def\@subtitlefont{\normalsize 1652 \ifcase\ACM@format@nr 1653 \relax % manuscript 1654 \mdseries 1655 \or % acmsmall 1656 \mdseries 1657 \or % acmlarge 1658 \mdseries 1659 \or % acmtog 1660 \LARGE 1661 \or % sigconf 1662 \LARGE\mdseries 1663 \or % siggraph 1664 \LARGE\mdseries 1665 \or % sigplan 1666 \LARGE\mdseries 1667 \or % sigchi 1668 \LARGE\mdseries 1669 \or % sigchi-a 1670 \mdseries 1671 \fi} 1672 \def\@mktitle@i{\hsize=\textwidth 1673 \@ACM@title@width=\hsize 1674 \ifx\@acmBadgeL@image\@empty\else 1675 \advance\@ACM@title@width by -\@ACM@badge@width 1676 \advance\@ACM@title@width by -\@ACM@badge@skip 1677 \fi 1678 \ifx\@acmBadgeR@image\@empty\else 1679 \advance\@ACM@title@width by -\@ACM@badge@width 1680 \advance\@ACM@title@width by -\@ACM@badge@skip 1681 \fi 1682 \setbox\mktitle@bx=\vbox{\noindent\@titlefont 1683 \ifx\@acmBadgeL@image\@empty\else 1684 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{% 1685 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}% 1686 \hskip\@ACM@badge@skip 1687 \fi 1688 \parbox[t]{\@ACM@title@width}{\raggedright 1689 \@titlefont\noindent 1690 \@title 1691 \ifx\@subtitle\@empty\else 1692 \par\noindent{\@subtitlefont\@subtitle} 1693 \fi}% 1694 \ifx\@acmBadgeR@image\@empty\else 1695 \hskip\@ACM@badge@skip 1696 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{% 1697 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}% 1698 \fi 1699 \par\bigskip}}% 1700 \def\@mktitle@iii{\hsize=\textwidth 1701 \setbox\mktitle@bx=\vbox{\@titlefont\centering 1702 \@ACM@title@width=\hsize 1703 \if@ACM@badge 1704 \advance\@ACM@title@width by -2\@ACM@badge@width 1705 \advance\@ACM@title@width by -2\@ACM@badge@skip 1706 \parbox[b]{\@ACM@badge@width}{\strut 1707 \ifx\@acmBadgeL@image\@empty\else 1708 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{% 1709 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}% 1710 \fi}% 1711 \hskip\@ACM@badge@skip 1712 \fi 1713 \parbox[t]{\@ACM@title@width}{\centering\@titlefont 1714 \@title 1715 \ifx\@subtitle\@empty\else 1716 \par\noindent{\@subtitlefont\@subtitle} 1717 \fi 1718 }% 1719 \if@ACM@badge 1720 \hskip\@ACM@badge@skip 1721 \parbox[b]{\@ACM@badge@width}{\strut 1722 \ifx\@acmBadgeR@image\@empty\else 1723 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{% 1724 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}% 1725 \fi}% 1726 \fi 1727 \par\bigskip}}% 1728 \def\@mktitle@iv{\hsize=\textwidth 1729 \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont 1730 \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par 1731 \noindent\@title 1732 \ifx\@subtitle\@empty\else 1733 \par\noindent\@subtitlefont\@subtitle 1734 \fi 1735 \par\bigskip}}% 1736 \newbox\@ACM@commabox 1737 \def\@ACM@addtoaddress#1{% 1738 \ifvmode\else 1739 \if@ACM@affiliation@obeypunctuation\else 1740 \setbox\@ACM@commabox=\hbox{, }% 1741 \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox 1742 \fi\fi 1743 #1} 1744 \if@ACM@journal 1745 \let\position\@gobble 1746 \def\institution#1{#1\ignorespaces}% 1747 \newcommand\department[2][0]{}% 1748 \let\streetaddress\@gobble 1749 \let\city\@gobble 1750 \let\state\@gobble 1751 \let\postcode\@gobble 1752 \let\country\@gobble 1753 \else 1754 \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% 1755 \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% 1756 \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation 1757 #2\else#2\par\fi}% 1758 \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% 1759 \let\city\@ACM@addtoaddress 1760 \let\state\@ACM@addtoaddress 1761 \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}% 1762 \let\country\@ACM@addtoaddress 1763 \fi 1764 \def\@mkauthors{\begingroup 1765 \hsize=\textwidth 1766 \ifcase\ACM@format@nr 1767 \relax % manuscript 1768 \@mkauthors@i 1769 \or % acmsmall 1770 \@mkauthors@i 1771 \or % acmlarge 1772 \@mkauthors@i 1773 \or % acmtog 1774 \@mkauthors@i 1775 \or % sigconf 1776 \@mkauthors@iii 1777 \or % siggraph 1778 \@mkauthors@iii 1779 \or % sigplan 1780 \@mkauthors@iii 1781 \or % sigchi 1782 \@mkauthors@iii 1783 \or % sigchi-a 1784 \@mkauthors@iv 1785 \fi 1786 \endgroup 1787 } 1788 \def\@authorfont{\Large\sffamily} 1789 \def\@affiliationfont{\normalsize\normalfont} 1790 \ifcase\ACM@format@nr 1791 \relax % manuscript 1792 \or % acmsmall 1793 \def\@authorfont{\large\sffamily} 1794 \def\@affiliationfont{\small\normalfont} 1795 \or % acmlarge 1796 \or % acmtog 1797 \def\@authorfont{\LARGE\sffamily} 1798 \def\@affiliationfont{\large} 1799 \or % sigconf 1800 \def\@authorfont{\LARGE} 1801 \def\@affiliationfont{\large} 1802 \or % siggraph 1803 \def\@authorfont{\normalsize\normalfont} 1804 \def\@affiliationfont{\normalsize\normalfont} 1805 \or % sigplan 1806 \def\@authorfont{\Large\normalfont} 1807 \def\@affiliationfont{\normalsize\normalfont} 1808 \or % sigchi 1809 \def\@authorfont{\bfseries} 1810 \def\@affiliationfont{\mdseries} 1811 \or % sigchi-a 1812 \def\@authorfont{\bfseries} 1813 \def\@affiliationfont{\mdseries} 1814 \fi 1815 \def\@typeset@author@line{% 1816 \andify\@currentauthors\par\noindent 1817 \@currentauthors\def\@currentauthors{}% 1818 \ifx\@currentaffiliations\@empty\else 1819 \andify\@currentaffiliations 1820 \unskip, {\@currentaffiliations}\par 1821 \fi 1822 \def\@currentaffiliations{}} 1823 \def\@mkauthors@i{% 1824 \def\@currentauthors{}% 1825 \def\@currentaffiliations{}% 1826 \global\let\and\@typeset@author@line 1827 \def\@author##1{% 1828 \ifx\@currentauthors\@empty 1829 \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}% 1830 \else 1831 \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}% 1832 \fi 1833 \gdef\and{}}% 1834 \def\email##1##2{}% 1835 \def\affiliation##1##2{% 1836 \def\@tempa{##2}\ifx\@tempa\@empty\else 1837 \ifx\@currentaffiliations\@empty 1838 \gdef\@currentaffiliations{% 1839 \setkeys{@ACM@affiliation@}{obeypunctuation=false}% 1840 \setkeys{@ACM@affiliation@}{##1}% 1841 \@affiliationfont##2}% 1842 \else 1843 \g@addto@macro{\@currentaffiliations}{\and 1844 \setkeys{@ACM@affiliation@}{obeypunctuation=false}% 1845 \setkeys{@ACM@affiliation@}{##1}##2}% 1846 \fi 1847 \fi 1848 \global\let\and\@typeset@author@line}% 1849 \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip 1850 \noindent\addresses\@typeset@author@line 1851 \par\medskip}% 1852 } 1853 \newbox\author@bx 1854 \newdimen\author@bx@wd 1855 \newskip\author@bx@sep 1856 \author@bx@sep=1pc\relax 1857 \def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}% 1858 \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi 1859 \@authorfont\@currentauthors\par\@affiliationfont 1860 \@currentaffiliation}\egroup 1861 \box\author@bx\hspace{\author@bx@sep}% 1862 \gdef\@currentauthors{}% 1863 \gdef\@currentaffiliation{}} 1864 \def\@mkauthors@iii{% 1865 \author@bx@wd=\textwidth\relax 1866 \advance\author@bx@wd by -\author@bx@sep\relax 1867 \ifnum\@ACM@authorsperrow>0\relax 1868 \divide\author@bx@wd by \@ACM@authorsperrow\relax 1869 \else 1870 \ifcase\num@authorgroups 1871 \relax % 0? 1872 \or % 1=one author per row 1873 \or % 2=two authors per row 1874 \divide\author@bx@wd by \num@authorgroups\relax 1875 \or % 3=three authors per row 1876 \divide\author@bx@wd by \num@authorgroups\relax 1877 \or % 4=two authors per row (!) 1878 \divide\author@bx@wd by 2\relax 1879 \else % three authors per row 1880 \divide\author@bx@wd by 3\relax 1881 \fi 1882 \fi 1883 \advance\author@bx@wd by -\author@bx@sep\relax 1884 \gdef\@currentauthors{}% 1885 \gdef\@currentaffiliation{}% 1886 \def\@author##1{\ifx\@currentauthors\@empty 1887 \gdef\@currentauthors{\par##1}% 1888 \else 1889 \g@addto@macro\@currentauthors{\par##1}% 1890 \fi 1891 \gdef\and{}}% 1892 \def\email##1##2{\ifx\@currentaffiliation\@empty 1893 \gdef\@currentaffiliation{\nolinkurl{##2}}% 1894 \else 1895 \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}% 1896 \fi}% 1897 \def\affiliation##1##2{\ifx\@currentaffiliation\@empty 1898 \gdef\@currentaffiliation{% 1899 \setkeys{@ACM@affiliation@}{obeypunctuation=false}% 1900 \setkeys{@ACM@affiliation@}{##1}##2}% 1901 \else 1902 \g@addto@macro\@currentaffiliation{\par 1903 \setkeys{@ACM@affiliation@}{obeypunctuation=false}% 1904 \setkeys{@ACM@affiliation@}{##1}##2}% 1905 \fi 1906 \global\let\and\@typeset@author@bx 1907 }% 1908 \hsize=\textwidth 1909 \global\setbox\mktitle@bx=\vbox{\noindent 1910 \box\mktitle@bx\par\medskip\leavevmode 1911 \lineskip=1pc\relax\centering\hspace*{-1em}% 1912 \addresses\let\and\@typeset@author@bx\and\par\bigskip}} 1913 \def\@mkauthors@iv{% 1914 \author@bx@wd=\columnwidth\relax 1915 \advance\author@bx@wd by -\author@bx@sep\relax 1916 \ifnum\@ACM@authorsperrow>0\relax 1917 \divide\author@bx@wd by \@ACM@authorsperrow\relax 1918 \else 1919 \ifcase\num@authorgroups 1920 \relax % 0? 1921 \or % 1=one author per row 1922 \else % 2=two authors per row 1923 \divide\author@bx@wd by 2\relax 1924 \fi 1925 \fi 1926 \advance\author@bx@wd by -\author@bx@sep\relax 1927 \gdef\@currentauthors{}% 1928 \gdef\@currentaffiliation{}% 1929 \def\@author##1{\ifx\@currentauthors\@empty 1930 \gdef\@currentauthors{\par##1}% 1931 \else 1932 \g@addto@macro\@currentauthors{\par##1}% 1933 \fi 1934 \gdef\and{}}% 1935 \def\email##1##2{\ifx\@currentaffiliation\@empty 1936 \gdef\@currentaffiliation{\nolinkurl{##2}}% 1937 \else 1938 \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}% 1939 \fi}% 1940 \def\affiliation##1##2{\ifx\@currentaffiliation\@empty 1941 \gdef\@currentaffiliation{% 1942 \setkeys{@ACM@affiliation@}{obeypunctuation=false}% 1943 \setkeys{@ACM@affiliation@}{##1}##2}% 1944 \else 1945 \g@addto@macro\@currentaffiliation{\par 1946 \setkeys{@ACM@affiliation@}{obeypunctuation=false}% 1947 \setkeys{@ACM@affiliation@}{##1}##2}% 1948 \fi 1949 \global\let\and\@typeset@author@bx}% 1950 \bgroup\hsize=\columnwidth 1951 \par\raggedright\leftskip=\z@ 1952 \lineskip=1pc\noindent 1953 \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup} 1954 \def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}} 1955 \def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}} 1956 \def\@mkteasers{% 1957 \ifx\@teaserfigures\@empty\else 1958 \def\@teaser##1{\par\bigskip\bgroup 1959 \captionsetup{type=figure}##1\egroup\par} 1960 \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par 1961 \noindent\@teaserfigures\par\medskip}% 1962 \fi} 1963 \def\@setaddresses{} 1964 \def\@mkabstract{\bgroup 1965 \ifx\@abstract\@lempty\else 1966 {\phantomsection\addcontentsline{toc}{section}{Abstract}% 1967 \if@ACM@journal 1968 \small\noindent 1969 \else 1970 \section*{Abstract}% 1971 \fi 1972 \ignorespaces\@abstract\par}% 1973 \fi\egroup} 1974 \def\@mkbibcitation{\bgroup 1975 \def\footnotemark{}% 1976 \def\\{\unskip{} \ignorespaces}% 1977 \def\footnote{\ClassError{\@classname}{Please do note use footnotes 1978 inside \string\title{} or \string\author{} command! Use 1979 \string\titlenote{} or \string\authornote{} instead!}}% 1980 \par\medskip\small\noindent{\bfseries ACM Reference format:}\par\nobreak 1981 \noindent\authors. \@acmYear. \@title. 1982 \if@ACM@journal 1983 \textit{\@journalNameShort} 1984 \@acmVolume, \@acmNumber, Article~\@acmArticle\ (\@acmPubDate), 1985 \ref{TotPages}~pages. 1986 \else 1987 In \textit{Proceedings of \acmConference@name, \acmConference@venue, 1988 \acmConference@date 1989 \ifx\acmConference@name\acmConference@shortname\else 1990 \ (\acmConference@shortname)\fi 1991 ,} \ref{TotPages}~pages. 1992 \fi\par 1993 \noindent\@formatdoi{\@acmDOI} 1994 \par\egroup} 1995 \def\@printendtopmatter{\par\medskip 1996 \ifcase\ACM@format@nr 1997 \relax % manuscript 1998 \noindent\hrulefill\par\medskip 1999 \or % acmsmall 2000 \noindent\hrulefill\par\medskip 2001 \or % acmlarge 2002 \noindent\hrulefill\par\medskip 2003 \or % acmtog 2004 \par\bigskip 2005 \or % sigconf 2006 \par\bigskip 2007 \or % siggraph 2008 \par\bigskip 2009 \or % sigplan 2010 \par\bigskip 2011 \or % sigchi 2012 \par\bigskip 2013 \or % sigchi-a 2014 \fi 2015 } 2016 \def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses} 2017 \RequirePackage{fancyhdr} 2018 \if@ACM@review 2019 \newsavebox{\ACM@linecount@bx} 2020 \newlength\ACM@linecount@bxht 2021 \newcount\ACM@linecount 2022 \ACM@linecount\@ne\relax 2023 \def\ACM@mk@linecount{% 2024 \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{% 2025 \setlength{\ACM@linecount@bxht}{-\baselineskip}% 2026 \loop{\color{ACMRed}\scriptsize\the\ACM@linecount}\\ 2027 \global\advance\ACM@linecount by \@ne 2028 \addtolength{\ACM@linecount@bxht}{\baselineskip}% 2029 \ifdim\ACM@linecount@bxht<\textheight\repeat}}} 2030 \fi 2031 \def\ACM@linecountL{% 2032 \if@ACM@review 2033 \ACM@mk@linecount 2034 \begin{picture}(0,0)% 2035 \put(-26,-22){\usebox{\ACM@linecount@bx}}% 2036 \end{picture}% 2037 \fi} 2038 \def\ACM@linecountR{% 2039 \if@ACM@review 2040 \ACM@mk@linecount 2041 \begin{picture}(0,0)% 2042 \put(20,-22){\usebox{\ACM@linecount@bx}}% 2043 \end{picture}% 2044 \fi} 2045 \if@ACM@timestamp 2046 % Subtracting 30 from \time gives us the effect of rounding-down despite 2047 % \numexpr rounding to nearest 2048 \newcounter{ACM@time@hours} 2049 \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax} 2050 \newcounter{ACM@time@minutes} 2051 \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax} 2052 \newcommand\ACM@timestamp{% 2053 \footnotesize% 2054 \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }% 2055 \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }% 2056 page~\thepage\ (pp. \@startPage-\pageref*{TotPages})% 2057 \ifx\@acmSubmissionID\@empty\relax\else 2058 ~Submission~ID: \@acmSubmissionID 2059 \fi 2060 } 2061 \fi 2062 \def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi} 2063 \def\@headfootfont{% 2064 \ifcase\ACM@format@nr 2065 \relax % manuscript 2066 \sffamily 2067 \or % acmsmall 2068 \sffamily 2069 \or % acmlarge 2070 \sffamily 2071 \or % acmtog 2072 \sffamily 2073 \or % sigconf 2074 \sffamily 2075 \or % siggraph 2076 \sffamily 2077 \or % sigplan 2078 \sffamily 2079 \or % sigchi 2080 \sffamily 2081 \or % sigchi-a 2082 \sffamily 2083 \fi} 2084 \fancypagestyle{standardpagestyle}{% 2085 \fancyhf{}% 2086 \renewcommand{\headrulewidth}{\z@}% 2087 \renewcommand{\footrulewidth}{\z@}% 2088 \ifcase\ACM@format@nr 2089 \relax % manuscript 2090 \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}% 2091 \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}% 2092 \fancyhead[RE]{\@shortauthors}% 2093 \fancyhead[LO]{\ACM@linecountL\shorttitle}% 2094 \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}% 2095 \or % acmsmall 2096 \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% 2097 \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% 2098 \fancyhead[RE]{\@headfootfont\@shortauthors}% 2099 \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}% 2100 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. 2101 \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% 2102 \or % acmlarge 2103 \fancyhead[LE]{\ACM@linecountL\@headfootfont 2104 \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}% 2105 \fancyhead[LO]{\ACM@linecountL}% 2106 \fancyhead[RO]{\@headfootfont 2107 \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}% 2108 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. 2109 \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% 2110 \or % acmtog 2111 \fancyhead[LE]{\ACM@linecountL\@headfootfont 2112 \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}% 2113 \fancyhead[LO]{\ACM@linecountL}% 2114 \fancyhead[RE]{\ACM@linecountR}% 2115 \fancyhead[RO]{\@headfootfont 2116 \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}% 2117 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. 2118 \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% 2119 \else % Proceedings 2120 \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% 2121 \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}% 2122 \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}% 2123 \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname, 2124 \acmConference@date, \acmConference@venue}% 2125 \fancyhead[RO]{\@headfootfont\acmConference@shortname, 2126 \acmConference@date, \acmConference@venue\ACM@linecountR}% 2127 \fi 2128 \if@ACM@sigchiamode 2129 \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}% 2130 \fi 2131 \if@ACM@timestamp 2132 \fancyfoot[LO,RE]{\ACM@timestamp} 2133 \fi 2134 } 2135 \pagestyle{standardpagestyle} 2136 \newdimen\@folio@wd 2137 \@folio@wd=\z@ 2138 \newdimen\@folio@ht 2139 \@folio@ht=\z@ 2140 \newdimen\@folio@voffset 2141 \@folio@voffset=\z@ 2142 \def\@folio@max{1} 2143 \ifcase\ACM@format@nr 2144 \relax % manuscript 2145 \or % acmsmall 2146 \@folio@wd=45.75pt\relax 2147 \@folio@ht=1.25in\relax 2148 \@folio@voffset=.2in\relax 2149 \def\@folio@max{8} 2150 \or % acmlarge 2151 \@folio@wd=43.25pt\relax 2152 \@folio@ht=79pt\relax 2153 \@folio@voffset=.55in\relax 2154 \def\@folio@max{10} 2155 \fi 2156 \def\@folioblob{\@tempcnta=\@acmArticleSeq\relax 2157 \loop 2158 \ifnum\@tempcnta>\@folio@max\relax 2159 \advance\@tempcnta by - \@folio@max 2160 \repeat 2161 \advance\@tempcnta by -1\relax 2162 \@tempdima=\@folio@ht\relax 2163 \multiply\@tempdima by \the\@tempcnta\relax 2164 \advance\@tempdima by -\@folio@voffset\relax 2165 \begin{picture}(0,0) 2166 \makebox[\z@]{\raisebox{-\@tempdima}{% 2167 \rlap{% 2168 \raisebox{-0.45\@folio@ht}[\z@][\z@]{% 2169 \rule{\@folio@wd}{\@folio@ht}}}% 2170 \parbox{\@folio@wd}{% 2171 \centering 2172 \textcolor{white}{\LARGE\bfseries\sffamily\@acmArticle}}}} 2173 \end{picture}} 2174 2175 \fancypagestyle{firstpagestyle}{% 2176 \fancyhf{}% 2177 \renewcommand{\headrulewidth}{\z@}% 2178 \renewcommand{\footrulewidth}{\z@}% 2179 \ifcase\ACM@format@nr 2180 \relax % manuscript 2181 \fancyhead[L]{\ACM@linecountL}% 2182 \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}% 2183 \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}% 2184 \or % acmsmall 2185 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. 2186 \@acmNumber, Article \@acmArticle. Publication date: 2187 \@acmPubDate.}% 2188 \fancyhead[LE]{\ACM@linecountL\@folioblob}% 2189 \fancyhead[LO]{\ACM@linecountL}% 2190 \fancyhead[RO]{\@folioblob}% 2191 \fancyheadoffset[RO,LE]{0.6\@folio@wd}% 2192 \or % acmlarge 2193 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. 2194 \@acmNumber, Article \@acmArticle. Publication date: 2195 \@acmPubDate.}% 2196 \fancyhead[RO]{\@folioblob}% 2197 \fancyhead[LE]{\ACM@linecountL\@folioblob}% 2198 \fancyhead[LO]{\ACM@linecountL}% 2199 \fancyheadoffset[RO,LE]{1.4\@folio@wd}% 2200 \or % acmtog 2201 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. 2202 \@acmNumber, Article \@acmArticle. Publication date: 2203 \@acmPubDate.}% 2204 \fancyhead[L]{\ACM@linecountL}% 2205 \fancyhead[R]{\ACM@linecountR}% 2206 \else % Conference proceedings 2207 \fancyhead[L]{\ACM@linecountL}% 2208 \fancyhead[R]{\ACM@linecountR}% 2209 \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% 2210 \fi 2211 \if@ACM@timestamp 2212 \ifnum\ACM@format@nr=0\relax % Manuscript 2213 \fancyfoot[LO,RE]{\ACM@timestamp\quad 2214 \footnotesize Manuscript submitted to ACM} 2215 \else 2216 \fancyfoot[LO,RE]{\ACM@timestamp} 2217 \fi 2218 \fi 2219 } 2220 \renewcommand\section{\@startsection{section}{1}{\z@}% 2221 {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2222 {.25\baselineskip}% 2223 {\@secfont}} 2224 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% 2225 {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2226 {.25\baselineskip}% 2227 {\@subsecfont}} 2228 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{10pt}% 2229 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2230 {-3.5\p@}% 2231 {\@subsubsecfont\@adddotafter}} 2232 \renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% 2233 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2234 {-3.5\p@}% 2235 {\@parfont\@adddotafter}} 2236 \renewcommand\part{\@startsection{part}{9}{\z@}% 2237 {-10\p@ \@plus -4\p@ \@minus -2\p@}% 2238 {4\p@}% 2239 {\@parfont}} 2240 \def\section@raggedright{\@rightskip\@flushglue 2241 \rightskip\@rightskip 2242 \leftskip\z@skip 2243 \parindent\z@} 2244 \def\@secfont{\sffamily\bfseries\section@raggedright\MakeUppercase} 2245 \def\@subsecfont{\sffamily\bfseries\section@raggedright} 2246 \def\@subsubsecfont{\sffamily\itshape} 2247 \def\@parfont{\itshape} 2248 \setcounter{secnumdepth}{3} 2249 \ifcase\ACM@format@nr 2250 \relax % manuscript 2251 \or % acmsmall 2252 \or % acmlarge 2253 \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase} 2254 \def\@subsecfont{\sffamily\large\section@raggedright} 2255 \or % acmtog 2256 \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase} 2257 \def\@subsecfont{\sffamily\large\section@raggedright} 2258 \or % sigconf 2259 \def\@secfont{\bfseries\Large\section@raggedright\MakeUppercase} 2260 \def\@subsecfont{\bfseries\Large\section@raggedright} 2261 \or % siggraph 2262 \def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeUppercase} 2263 \def\@subsecfont{\bfseries\sffamily\Large\section@raggedright} 2264 \or % sigplan 2265 \def\@secfont{\bfseries\Large\section@raggedright} 2266 \def\@subsecfont{\bfseries\section@raggedright} 2267 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% 2268 {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2269 {.25\baselineskip}% 2270 {\@subsubsecfont}} 2271 \def\@subsubsecfont{\bfseries\section@raggedright} 2272 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 2273 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2274 {-3.5\p@}% 2275 {\@parfont\@addspaceafter}} 2276 \def\@parfont{\bfseries\itshape} 2277 \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% 2278 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% 2279 {-3.5\p@}% 2280 {\@subparfont\@addspaceafter}} 2281 \def\@subparfont{\itshape} 2282 \or % sigchi 2283 \setcounter{secnumdepth}{1} 2284 \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase} 2285 \def\@subsecfont{\bfseries\sffamily\section@raggedright} 2286 \or % sigchi-a 2287 \setcounter{secnumdepth}{0} 2288 \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase} 2289 \def\@subsecfont{\bfseries\sffamily\section@raggedright} 2290 \fi 2291 \def\@adddotafter#1{#1\@addpunct{.}} 2292 \def\@addspaceafter#1{#1\@addpunct{\enspace}} 2293 \providecommand*\@dotsep{4.5} 2294 \def\@acmplainbodyfont{\itshape} 2295 \def\@acmplainindent{\parindent} 2296 \def\@acmplainheadfont{\scshape} 2297 \def\@acmplainnotefont{\@empty} 2298 \ifcase\ACM@format@nr 2299 \relax % manuscript 2300 \or % acmsmall 2301 \or % acmlarge 2302 \or % acmtog 2303 \or % sigconf 2304 \or % siggraph 2305 \or % sigplan 2306 \def\@acmplainbodyfont{\itshape} 2307 \def\@acmplainindent{\z@} 2308 \def\@acmplainheadfont{\bfseries} 2309 \def\@acmplainnotefont{\normalfont} 2310 \or % sigchi 2311 \or % sigchi-a 2312 \fi 2313 \newtheoremstyle{acmplain}% 2314 {.5\baselineskip\@plus.2\baselineskip 2315 \@minus.2\baselineskip}% space above 2316 {.5\baselineskip\@plus.2\baselineskip 2317 \@minus.2\baselineskip}% space below 2318 {\@acmplainbodyfont}% body font 2319 {\@acmplainindent}% indent amount 2320 {\@acmplainheadfont}% head font 2321 {.}% punctuation after head 2322 {.5em}% spacing after head 2323 {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec 2324 \def\@acmdefinitionbodyfont{\normalfont} 2325 \def\@acmdefinitionindent{\parindent} 2326 \def\@acmdefinitionheadfont{\itshape} 2327 \def\@acmdefinitionnotefont{\@empty} 2328 \ifcase\ACM@format@nr 2329 \relax % manuscript 2330 \or % acmsmall 2331 \or % acmlarge 2332 \or % acmtog 2333 \or % sigconf 2334 \or % siggraph 2335 \or % sigplan 2336 \def\@acmdefinitionbodyfont{\normalfont} 2337 \def\@acmdefinitionindent{\z@} 2338 \def\@acmdefinitionheadfont{\bfseries} 2339 \def\@acmdefinitionnotefont{\normalfont} 2340 \or % sigchi 2341 \or % sigchi-a 2342 \fi 2343 \newtheoremstyle{acmdefinition}% 2344 {.5\baselineskip\@plus.2\baselineskip 2345 \@minus.2\baselineskip}% space above 2346 {.5\baselineskip\@plus.2\baselineskip 2347 \@minus.2\baselineskip}% space below 2348 {\@acmdefinitionbodyfont}% body font 2349 {\@acmdefinitionindent}% indent amount 2350 {\@acmdefinitionheadfont}% head font 2351 {.}% punctuation after head 2352 {.5em}% spacing after head 2353 {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec 2354 \theoremstyle{acmplain} 2355 \newtheorem{theorem}{Theorem}[section] 2356 \newtheorem{conjecture}[theorem]{Conjecture} 2357 \newtheorem{proposition}[theorem]{Proposition} 2358 \newtheorem{lemma}[theorem]{Lemma} 2359 \newtheorem{corollary}[theorem]{Corollary} 2360 \theoremstyle{acmdefinition} 2361 \newtheorem{example}[theorem]{Example} 2362 \newtheorem{definition}[theorem]{Definition} 2363 \theoremstyle{acmplain} 2364 \def\@proofnamefont{\scshape} 2365 \def\@proofindent{\indent} 2366 \ifcase\ACM@format@nr 2367 \relax % manuscript 2368 \or % acmsmall 2369 \or % acmlarge 2370 \or % acmtog 2371 \or % sigconf 2372 \or % siggraph 2373 \or % sigplan 2374 \def\@proofnamefont{\itshape} 2375 \def\@proofindent{\noindent} 2376 \or % sigchi 2377 \or % sigchi-a 2378 \fi 2379 \renewenvironment{proof}[1][\proofname]{\par 2380 \pushQED{\qed}% 2381 \normalfont \topsep6\p@\@plus6\p@\relax 2382 \trivlist 2383 \item[\@proofindent\hskip\labelsep 2384 {\@proofnamefont #1\@addpunct{.}}]\ignorespaces 2385 }{% 2386 \popQED\endtrivlist\@endpefalse 2387 } 2388 \specialcomment{acks}{% 2389 \begingroup 2390 \section*{Acknowledgments} 2391 \phantomsection\addcontentsline{toc}{section}{Acknowledgments} 2392 }{% 2393 \endgroup 2394 } 2395 \def\grantsponsor#1#2#3{#2} 2396 \newcommand\grantnum[3][]{#3% 2397 \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi} 2398 \if@ACM@screen 2399 \includecomment{screenonly} 2400 \excludecomment{printonly} 2401 \else 2402 \excludecomment{screenonly} 2403 \includecomment{printonly} 2404 \fi 2405 \if@ACM@anonymous 2406 \excludecomment{anonsuppress} 2407 \excludecomment{acks} 2408 \else 2409 \includecomment{anonsuppress} 2410 \fi 2411 \newcommand\showeprint[2][arxiv]{% 2412 \def\@tempa{#1}% 2413 \ifx\@tempa\@empty\def\@tempa{arxiv}\fi 2414 \def\@tempb{arxiv}% 2415 \ifx\@tempa\@tempb 2416 arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2% 2417 \fi} 2418 \normalsize\normalfont\frenchspacing 2419 \endinput 2420 %% 2421 %% End of file `acmart.cls'.