Commit b10e86296e0a88402ce76e9d63ad8c2770733b57
1 parent
ba89b78f
Exists in
master
and in
3 other branches
adding file to compile
Showing
2 changed files
with
2520 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,2422 @@ |
| 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'. | |
| 2422 | + | ... | ... |
| ... | ... | @@ -0,0 +1,98 @@ |
| 1 | +%% | |
| 2 | +%% This is file `iftex.sty', | |
| 3 | + | |
| 4 | +%% | |
| 5 | +%% __________________________________ | |
| 6 | +%% Copyright © 2010–2013 Persian TeX Group | |
| 7 | +%% | |
| 8 | +%% License information appended. | |
| 9 | +%% | |
| 10 | +%% | |
| 11 | +\csname iftexloaded\endcsname | |
| 12 | +\let\iftexloaded\endinput | |
| 13 | +\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else | |
| 14 | + \ProvidesPackage{iftex} | |
| 15 | + [2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, and LuaTeX] | |
| 16 | +\fi | |
| 17 | +\def\RequirePDFTeX{% | |
| 18 | + \ifPDFTeX\else | |
| 19 | + \begingroup | |
| 20 | + \errorcontextlines=-1\relax | |
| 21 | + \newlinechar=10\relax | |
| 22 | + \errmessage{^^J | |
| 23 | + ********************************************^^J | |
| 24 | + * PDFTeX is required to compile this document.^^J | |
| 25 | + * Sorry!^^J | |
| 26 | + ********************************************}% | |
| 27 | + \endgroup | |
| 28 | + \fi} | |
| 29 | +\def\RequireXeTeX{% | |
| 30 | + \ifXeTeX\else | |
| 31 | + \begingroup | |
| 32 | + \errorcontextlines=-1\relax | |
| 33 | + \newlinechar=10\relax | |
| 34 | + \errmessage{^^J | |
| 35 | + ********************************************^^J | |
| 36 | + * XeTeX is required to compile this document.^^J | |
| 37 | + * Sorry!^^J | |
| 38 | + ********************************************}% | |
| 39 | + \endgroup | |
| 40 | + \fi} | |
| 41 | +\def\RequireLuaTeX{% | |
| 42 | + \ifLuaTeX\else | |
| 43 | + \begingroup | |
| 44 | + \errorcontextlines=-1\relax | |
| 45 | + \newlinechar=10\relax | |
| 46 | + \errmessage{^^J | |
| 47 | + ********************************************^^J | |
| 48 | + * LuaTeX is required to compile this document.^^J | |
| 49 | + * Sorry!^^J | |
| 50 | + ********************************************}% | |
| 51 | + \endgroup | |
| 52 | + \fi} | |
| 53 | +\expandafter\ifx\csname ifPDFTeX\endcsname\relax\else | |
| 54 | + \expandafter\endinput | |
| 55 | +\fi | |
| 56 | +\expandafter\ifx\csname ifXeTeX\endcsname\relax\else | |
| 57 | + \expandafter\endinput | |
| 58 | +\fi | |
| 59 | +\expandafter\ifx\csname ifLuaTeX\endcsname\relax\else | |
| 60 | + \expandafter\endinput | |
| 61 | +\fi | |
| 62 | +\newif\ifPDFTeX | |
| 63 | +\begingroup\expandafter\expandafter\expandafter\endgroup | |
| 64 | +\expandafter\ifx\csname pdfmatch\endcsname\relax | |
| 65 | + \PDFTeXfalse | |
| 66 | +\else | |
| 67 | + \PDFTeXtrue | |
| 68 | +\fi | |
| 69 | +\newif\ifXeTeX | |
| 70 | +\begingroup\expandafter\expandafter\expandafter\endgroup | |
| 71 | +\expandafter\ifx\csname XeTeXinterchartoks\endcsname\relax | |
| 72 | + \XeTeXfalse | |
| 73 | +\else | |
| 74 | + \XeTeXtrue | |
| 75 | +\fi | |
| 76 | +\newif\ifLuaTeX | |
| 77 | +\begingroup\expandafter\expandafter\expandafter\endgroup | |
| 78 | +\expandafter\ifx\csname directlua\endcsname\relax | |
| 79 | + \LuaTeXfalse | |
| 80 | +\else | |
| 81 | + \LuaTeXtrue | |
| 82 | +\fi | |
| 83 | +%% | |
| 84 | +%% Copyright © 2010–2013 by Persian TeX Group <persian-tex@tug.org> | |
| 85 | +%% | |
| 86 | +%% Distributable under the LaTeX Project Public License, | |
| 87 | +%% version 1.3c or higher (your choice). The latest version of | |
| 88 | +%% this license is at: http://www.latex-project.org/lppl.txt | |
| 89 | +%% | |
| 90 | +%% This work is "maintained" (as per LPPL maintenance status) | |
| 91 | +%% by Persian TeX Group. | |
| 92 | +%% | |
| 93 | +%% | |
| 94 | +%% | |
| 95 | +%% | |
| 96 | +%% | |
| 97 | +%% End of file `iftex.sty'. | |
| 98 | + | ... | ... |