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