LaTeX Class For Association Computing Machinery Acmart Instructions

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 111 [warning: Documents this large are best viewed by clicking the View PDF Link!]

L
A
T
E
X Class for Association for Computing
Machinery
Boris Veytsman
2017/08/31, v1.47
Abstract
is package provides a class for typeseing publications of Association for
Computing Machinery.
Contents
1 Introduction 3
2 User’s guide 3
2.1 Installation ................................... 3
2.2 Invocation and options ............................ 5
2.3 Topmaer commands ............................. 7
2.4 Algorithms ................................... 19
2.5 Figures and tables ............................... 19
2.6 eorems .................................... 21
2.7 Online-only and oine-only material .................... 21
2.8 Note about anonymous mode ........................ 22
2.9 Acknowledgments ............................... 22
2.10 Bibliography .................................. 23
2.11 Colors ..................................... 25
2.12 Other notable packages and typographic remarks ............. 26
2.13 A note for wizards: acmart-preload-hook.tex .............. 26
3 Implementation 28
3.1 Identication .................................. 28
3.2 Preload ..................................... 28
3.3 Options ..................................... 28
3.4 Seing switches ................................ 31
©2016–2017, Association for Computing Machinery
borisv@lk.net,boris@varphi.com
1
3.5 Loading base class and package ....................... 32
3.6 Paper size and paragraphing ......................... 39
3.7 Fonts ...................................... 42
3.8 Floats ...................................... 43
3.9 Lists ....................................... 45
3.10 Top maer data ................................ 47
3.11 Concepts system ................................ 59
3.12 Copyright system ............................... 60
3.13 Typeseing top maer ............................ 65
3.14 Headers and Footers .............................. 79
3.15 Sectioning ................................... 84
3.16 TOC Lists .................................... 86
3.17 eorems .................................... 86
3.18 Acknowledgments ............................... 89
3.19 Conditional typeseing ............................ 89
3.20 Additional bibliography commands ..................... 90
3.21 End of Class .................................. 90
2
1 Introduction
Association for Computing Machinery is the world’s largest educational and scientic
computing society, which delivers resources that advance computing as a science and a
profession1. It was one of the early adopters of T
E
X for its typeseing.
It provided several dierent classes for a number of journal and conference proceed-
ings. Unfortunately during the years since these classes were wrien, the code was
patched many times, and the support of the dierent versions of the classes became
dicult.
is package provides the uniform interface for all ACM publications. It is intended
to replace all dierent classes and packages and provide an up to date L
A
T
E
X package.
e package uses only free T
E
X packages and fonts included in T
E
XLive, MikT
E
X
and other popular T
E
X distributions. It is intended to be published in these distributions
itself, which minimizes users’ eorts in the installation and support of the package.
I am grateful to Michael D. Adams, Leif Andersen, Dirk Beyer, Benjamin Byholm,
Michael Ekstrand, Mahew Fluet, Paolo G. Giarrusso, Ben Greenman, LianTze Lim, Ben
Liblit, Kai Mindermann, Frank Mielbach, Ross Moore, John Owens, Joel Nider, To-
bias Pape, Mathias Rav, Maeo Riondato, Craig Rodkin, Bernard Rous, David Shamma,
Stephen Spencer, John Wickerson, and many others for their invaluable help.
e development version of the package is available at https://github.com/
borisveytsman/acmart.
2 User’s guide
e class uses many commands and customizaton options, so it might appear intim-
idating for a casual user. Do not panic! Many of these commands and options can
be safely le with their default values, or the values recommended by your confer-
ence or journal editors. If you have problems or questions, do not hesitate to ask me
directly or the community at https://github.com/borisveytsman/acmart,https:
//tex.stackexchange.com or the closest T
E
X Users Group. e world-wide T
E
X Users
Group is at https://tug.org/; please consider joining us if you use T
E
X regularly.
2.1 Installation
Most probably, you already have this package installed in your favorite T
E
X distribution;
if not, you may want to upgrade. You may need to upgrade it anyway since the package
uses a number of relatively recent packages, especially the ones related to the fonts.
e latest released version of the package can be found on CTAN: https://www.
ctan.org/pkg/acmart. e development version can be found on GitHub: https://
github.com/borisveytsman/acmart. At this address you can le a bug report—or even
contribute your own enhancement making a pull request.
Most users should not aempt to install this package themselves, and rather rely on
their T
E
X distributions to provide it. If you decide to install the package yourself, follow
the standard rules:
1http://www.acm.org/
3
1. Run latex on acmart.ins. is will produce the le acmart.cls
2. Put the le acmart.cls and the bibliography les *.bst to the places where L
A
T
E
X
can nd them (see [1] or the documentation for your T
E
X system).
3. Update the database of le names. Again, see [1] or the documentation for your
T
E
X system for the system-specic details.
4. e le acmart.pdf provides the documentation for the package (this is the le
you are probably reading now).
As an alternative to items 2and 3you can just put the les in the working directory
where your .tex le is.
e class uses a number of other packages. ey are included in all major T
E
X dis-
tributions (T
E
XLive, MacT
E
X, MikT
E
X) of 2015 and later, so you probably have them
installed. Just in case here is the list of these packages:
amscls,http://www.ctan.org/pkg/amscls
amsfonts,http://www.ctan.org/pkg/amsfonts
amsmath,http://www.ctan.org/pkg/amsmath
binhex,http://www.ctan.org/pkg/binhex
caption,http://www.ctan.org/pkg/caption
comment,http://www.ctan.org/pkg/comment
cm-super,http://www.ctan.org/pkg/cm-super
cmap,http://www.ctan.org/pkg/cmap
drawatermark,http://www.ctan.org/pkg/draftwatermark
environ,http://www.ctan.org/pkg/environ
etoolbox,http://www.ctan.org/pkg/etoolbox
fancyhdr,http://www.ctan.org/pkg/fancyhdr
oat,http://www.ctan.org/pkg/float
fontaxes,http://www.ctan.org/pkg/fontaxes
geometry,http://www.ctan.org/pkg/geometry
graphics,http://www.ctan.org/pkg/graphics
hyperref,http://www.ctan.org/pkg/hyperref
iuatex,http://www.ctan.org/pkg/ifluatex
ifxetex,http://www.ctan.org/pkg/ifxetex
4
inconsolata,http://www.ctan.org/pkg/inconsolata
libertine,http://www.ctan.org/pkg/libertine
manyfoot,http://www.ctan.org/pkg/manyfoot
microtype,http://www.ctan.org/pkg/microtype
mmap,http://www.ctan.org/pkg/mmap
ms,http://www.ctan.org/pkg/ms
mweights,http://www.ctan.org/pkg/mweights
natbib,http://www.ctan.org/pkg/natbib
nccfoots,http://www.ctan.org/pkg/nccfoots
newtx,http://www.ctan.org/pkg/newtx
oberdiek,http://www.ctan.org/pkg/oberdiek
pdex-def,http://www.ctan.org/pkg/pdftex-def
refcount,http://www.ctan.org/pkg/refcount
setspace,http://www.ctan.org/pkg/setspace
textcase,http://www.ctan.org/pkg/textcase
totpages,http://www.ctan.org/pkg/totpages
trimspaces,http://www.ctan.org/pkg/trimspaces
upquote,http://www.ctan.org/pkg/upquote
url,http://www.ctan.org/pkg/url
xcolor,http://www.ctan.org/pkg/xcolor
xkeyval,http://www.ctan.org/pkg/xkeyval
xstring,http://www.ctan.org/pkg/xstring
2.2 Invocation and options
To use the class put in the preamble of your document
\documentclass[hoptionsi]{acmart}
ere are several options corresponding to the type of the document and its general
appearance. ey are described below. Generally speaking, the options have key=value
forms, for example
\documentclass[format=acmsmall, screen=true, review=false]{acmart}
5
Table 1: e possible values for the format option
Value Meaning
manuscript A manuscript. is is the default
acmsmall Small single column format, used for CIE, CSUR, JACM, JDIQ, JEA,
JERIC, JETC, PACMHCI, PACMPL, TAAS, TACCESS, TACO, TALG,
TALLIP (formerly TALIP), TCPS, TEAC, TECS, THRI, TIIS, TISSEC,
TIST, TKDD, TMIS, TOCE, TOCHI, TOCL, TOCS, TOCT, TODAES,
TODS, TOIS, TOIT, TOMACS, TOMM (formerly TOMCCAP), TOM-
PECS, TOMS, TOPC, TOPLAS, TOPS, TOS, TOSEM, TOSN, TRETS,
TSAS, TSC, TSLP, TWEB, including special issues.
acmlarge Large single column format, used for IMWUT, JOCCH, POMACS,
TAP, including special issues.
acmtog Large double column format, used for TOG, including special issues.
sigconf Proceedings format for most of ACM conferences (with the exceptions
listed below) and all ICPS volumes.
siggraph As of March 2017, this format is no longer used. Please use sigconf
for SIGGRAPH conferences.
sigplan Proceedings format for SIGPLAN conferences.
sigchi Proceedings format for SIGCHI conferences.
sigchi-a Format for SIGCHI extended abstract.
e option format describes the format of the output. ere are several possible
values for this option, for example,
\documentclass[format=acmtog]{acmart}
Actually the words format= can be omied, e.g.,
\documentclass[acmtog, review=false]{acmart}
e possible formats are listed in Table 1. Note that formats starting with acm are in-
tended for journals and transactions, while formats starting with sig are intended for
proceedings published as books.
Note that sometimes conference proceedings are published as a special issue (or is-
sues) of an ACM journal. In this case you should use the journal format for a conference
paper. Please contact your conference commiee if in doubt.
ere are several Boolean options which can take true or false values. ey are
listed in Table 2. e words =true can be omied when seing the Boolean option, so
instead of screen=true one can write just screen, for example,
\documentclass[acmsmall, screen, review]{acmart}
e option review is useful when combined with the manuscript format option: it
provides a version suitable for reviewers and copyeditors.
6
Table 2: Boolean options
Option Default Meaning
review false A review version: lines are numbered, hyperlinks are
colored
screen see text A screen version: hyperlinks are colored
natbib true Whether to use natbib package (see Section 2.10)
anonymous false Whether to make author(s) anonymous
authorversion false Whether to generate a special version for authors’ per-
sonal use or posting (see Section 2.3)
timestamp false Whether to put a time stamp in the footer of each page
authordraft false Whether author’s dra mode is enabled
acmthm true Whether to dene theorem-like environments, see Sec-
tion 2.6
e default for the option screen depends on the publication. At present it is false
for all publications but PACM, since PACM is now electronic-only. us PACM titles
(see Table 3set this option to true. is option may in the future involve additional
features suitable for on-screen versions of the articles.
e option natbib is used when the corresponding BibT
E
X style is based on natbib.
In most cases you do not need to set it. See Section 2.10.
e option anonymous is used for anonymous review process: all author information
becomes obscured.
e option timestamp is used to include a time stamp in the footer of each page.
When preparing a document, this can help avoid confusing dierent revisions. e
footer also include the page range of the document. is helps detect missing pages
in hard copies.
e option authordraft is intended for the authors’ dras, not intended for distri-
bution. It typesets copyright block to give the authors the idea of its size and overall
size of the paper, but overprints it with the phrase “Unpublished working dra. Not
for distribution”, which also is used as a watermark. is option sets timestamp and
review to true, but these decisions can be overriden by seing these options to false
aer authordraft.
2.3 Topmatter commands
A number of commands set up top maer information, or, in the computer science jar-
gon, metadata for the article. ey establish the publication name, article title, authors,
doi and other data. Some of these commands, like \title or \author, should be put by
the authors. Others, like \acmVolume or \acmDOI—by the editors. Below we describe
these commands and mention who should issue them. ese macros should be used be-
fore the \maketitle command. Note that in the previous versions of ACM classes some
of these commands should be used before \maketitle, and some aer it. Now they all
must be used before \maketitle.
7
e class internally loads amsart class, so many top maer commands are inherited
from amsart [2].
e macro \acmJournal{hshortNamei}sets the name of the journal or transaction\acmJournal
for journals and transactions. e argument is the short name of the publication in
uppercase, for example,
\acmJournal{TOMS}
e currently recognized journals are listed in Table 3. Note that conference proceedings
published in book form do not set this macro.
It is expected that this command is inserted by the author of the manuscript when
she decides to which journal to submit the manuscript.
e macro \acmConference[hshort namei]{hnamei}{hdatei}{hvenuei}is used for\acmConference
conference proceedings published in the book form. e arguments are the following:
short name: the abbreviated name of the conference (optional).
name: the name of the conference.
date: the date(s) of the conference.
venue: the place of the conference.
Examples:
\acmConference[TD’15]{Technical Data Conference}{November
12--16}{Dallas, TX, USA}
\acmConference{SA’15 Art Papers}{November 02--06, 2015}{Kobe, Japan}
By default we assume that the conference proceedings are published in the book\acmBooktitle
named Proceedings of CONFERENCE, where CONFERENCE is the name of the conference
inferred from the command \acmConference above. However, sometimes the book title
is dierent. e command \acmBooktitle may be used to set this title, for example,
\acmBooktitle{Companion to the first International Conference on the
Art, Science and Engineering of Programming (Programming ’17)}
In most cases conference proceedings are edited. You can use the command\editor
\editor[heditori]to set the editor of the volume. is command can be repeated, for
example,
\editor{Jennifer B. Sartor}
\editor{Theo D’Hondt}
\editor{Wolfgang De Meuter}
e command \title, as in amsart class, has two arguments: one optional, and one\title
mandatory:
8
Table 3: ACM publications and arguments of the \acmJournal command
Abbreviation Publication
CIE ACM Computers in Entertainment
CSUR ACM Computing Surveys
IMWUT PACM on Interactive, Mobile, Wearable and Ubiquitous Technologies
JACM Journal of the ACM
JDIQ ACM Journal of Data and Information ality
JEA ACM Journal of Experimental Algorithmics
JERIC ACM Journal of Educational Resources in Computing
JETC ACM Journal on Emerging Technologies in Computing Systems
JOCCH ACM Journal on Computing and Cultural Heritage
PACMHCI PACM on Human-Computer Interaction
PACMPL PACM on Programming Languages
POMACS PACM on Measurement and Analysis of Computing Systems
TAAS ACM Transactions on Autonomous and Adaptive Systems
TACCESS ACM Transactions on Accessible Computing
TACO ACM Transactions on Architecture and Code Optimization
TALG ACM Transactions on Algorithms
TALLIP ACM Transactions on Asian and Low-Resource Language Information Processing
TAP ACM Transactions on Applied Perception
TCPS ACM Transactions on Cyber-Physical Systems
TEAC ACM Transactions on Economics and Computation
TECS ACM Transactions on Embedded Computing Systems
THRI ACM Transactions on Human-Robot Interaction
TIIS ACM Transactions on Interactive Intelligent Systems
TISSEC ACM Transactions on Information and System Security
TIST ACM Transactions on Intelligent Systems and Technology
TKDD ACM Transactions on Knowledge Discovery from Data
TMIS ACM Transactions on Management Information Systems
TOCE ACM Transactions on Computing Education
TOCHI ACM Transactions on Computer-Human Interaction
TOCL ACM Transactions on Computational Logic
TOCS ACM Transactions on Computer Systems
TOCT ACM Transactions on Computation eory
TODAES ACM Transactions on Design Automation of Electronic Systems
TODS ACM Transactions on Database Systems
TOG ACM Transactions on Graphics
TOIS ACM Transactions on Information Systems
TOIT ACM Transactions on Internet Technology
TOMACS ACM Transactions on Modeling and Computer Simulation
TOMM ACM Transactions on Multimedia Computing, Communications and Applications
TOMPECS ACM Transactions on Modeling and Performance Evaluation of Computing Systems
TOMS ACM Transactions on Mathematical Soware
TOPC ACM Transactions on Parallel Computing
TOPLAS ACM Transactions on Programming Languages and Systems
TOPS ACM Transactions on Privacy and Security
TOS ACM Transactions on Storage
TOSEM ACM Transactions on Soware Engineering and Methodology
TOSN ACM Transactions on Sensor Networks
TRETS ACM Transactions on Recongurable Technology and Systems
TSAS ACM Transactions on Spatial Algorithms and Systems
TSC ACM Transactions on Social Computing
TSLP ACM Transactions on Speech and Language Processing
TWEB ACM Transactions on the Web
9
\title[hShortTitlei]{hFullTitlei}
e mandatory argument is the full title of the article. e optional argument, if present,
denes the shorter version of the title for running heads. If the optional argument is
absent, the full title is used instead.
It is expected that this command is inserted by the author of the manuscript.
Besides title, ACM classes allow subtitle, set with the \subtitle{hsubtitlei}macro.\subtitle
e commands for specication of authors are highly structured. e reason is, they
serve double duty: the authors’ information is typeset in the manuscript, and is used by
the metadata extraction tools for indexing and cataloguing. erefore it is very impor-
tant to follow the guidelines exactly.
e basic commands are \author,\orcid (for the researchers registered with OR-\author
\orcid
\affiliation
\email
CID, http://www.orcid.org/), \affiliation and \email. In the simplest case you
enter them in this order:
\author{...}
\orcid{...}
\affiliation{...}
\email{...}
Do not use L
A
T
E
X\and macro! Each author deserves his or her own \author command.
Note that some formats do not typset e-mails of ORCID identiers. Do not worry:
metadata tools will get them.
Sometimes an author has several aliations. In this case the \affiliation com-
mand should be repeated:
\author{...}
\orcid{...}
\affiliation{...}
\affiliation{...}
\email{...}
Similarly you can repeat \email command.
You may have several authors with the same aliation, dierent aliations, or over-
lapping aliations (author A1is aliated with institutions I1and I2, while author A2is
aliated with I2only, and author A3is aliated with I1and I3, . . . ). e recommended
solution is to put the \affiliation commands aer each author, possibly repeating
them:
\author{...}
\orcid{...}
\affiliation{...}
\affiliation{...}
\email{...}
\author{...}
\orcid{...}
\affiliation{...}
\email{...}
10
\author{...}
\orcid{...}
\affiliation{...}
\affiliation{...}
\email{...}
In some cases when several authors share the same aliation you may try to save the
space using the format
\author{...}
\email{...}
\author{...}
\email{...}
\affiliation{...}
However, this format is not generally recommended.
In some cases too many aliations take too much space. e command \additionalaffiliation{haliationi}\additionalaffiliation
creates a footnote aer author’s name with the words “Also with {haliationi}. You
should use this command only as the last resort. An example of usage is:
\author{G. Tobin}
\author{Ben Trovato}
\additionalaffiliation{%
\institution{The Th{\o}rv{\"a}ld Group}
\streetaddress{1 Th{\o}rv{\"a}ld Circle}
\city{Hekla}
\country{Iceland}}
\affiliation{%
\institution{Institute for Clarity in Documentation}
\streetaddress{P.O. Box 1212}
\city{Dublin}
\state{Ohio}
\postcode{43017-6221}
}
Here Trovato and Tobin share their aliation with the Institute for Clarity in Documen-
tation, but only Ben Trovato is aliated with e ørv¨
ald Group.
e \affiliation and \additionalaffiliation commands are further structured\position
\institution
\department
\streetaddress
\city
\state
\postcode
\country
to interact with the metadata extraction tools. Inside these commands you should use
\position,\institution,\department,\city,\streetaddress,\state,\postcode
and \country macros to indicate the corresponding parts of the aliation. Note that in
some cases (for example, journals) these parts are not printed in the resulting copy, but
they are necessary since they are used by the XML metadata extraction programs. Do
not put commas or \\ between the elements of \affiliation: they will be provided
automatically.
An example of the author block:
11
\author{A. U. Thor}
\orcid{1234-4564-1234-4565}
\affiliation{%
\institution{University of New South Wales}
\department{School of Biomedical Engineering}
\streetaddress{Samuels Building (F25), Kensington Campus}
\city{Sidney}
\state{NSW}
\postcode{2052}
\country{Australia}}
\email{author@nsw.au.edu}
\author{A. N. Other}
\affiliation{%
\institution{University of New South Wales}
\city{Sidney}
\state{NSW}
\country{Australia}}
\author{C. O. Respondent}
\orcid{1234-4565-4564-1234}
\affiliation{%
\institution{University of Pennsylvania}
\city{Philadelphia}
\state{PA}
\country{USA}}
\affiliation{%
\institution{University of New South Wales}
\city{Sidney}
\state{NSW}
\country{Australia}}
Note that old ACM conference formats did not allow for more than six authors and
required some eorts from the authors to achieve alignment. e new format is much
beer in this.
Sometimes an author works in several departments within the same insitution. ere
could be two situations: the departments are independent, or one department is within
another. In the rst case just repeat the command \department several times. To handle
the second case the command has an optional numerical parameter. e departments
with higher numbers are higher in the organizational chart. Compare
\affiliation{%
\department[0]{Department of Lunar Studies} % 0 is the default
\department[1]{John Doe Institute} % higher than 0
\institution{University of San Serriffe}
\country{San Serriffe}}
and
\affiliation{%
12
\department{Department of Lunar Studies} % Not within JD Inst!
\department{John Doe Institute}
\institution{University of San Serriffe}
\country{San Serriffe}}
e command \affiliation formats the output according to American conven-
tions. is might be wrong for some cases. Consider, for example, a German address. In
Germany postcode is put before city and is not separated by a comma. We can handle
this order using
\affiliation{%
\institution{Fluginstitut}
\streetaddress{Sonnenallee 17}
\postcode{123456}
\city{Helm}
\country{Germany}
}
However, the comma aer postcode is unfortunate: the address will be typeset (in some
formats) as
Fluginstitut
Sonenallee 17
123456, Helm, Germany
To overcome this problem, the command \affiliation has an optional parameter
obeypunctuation, which can be false (the default) or true. If this parameter is true,
\afffiliation obeys the author’s command. us
\affiliation[obeypuctuation=true]{%
\institution{Fluginstitut}\\
\streetaddress{Sonnenallee 17}\\
\postcode{123456}
\city{Helm},
\country{Germany}
}
will be typeset as
Fluginstitut
Sonenallee 17
123456 Helm, Germany
Note that you should not use this option for journals.
It is expected that these commands are inserted by the author of the manuscript.
Like amsart (and unlike standard L
A
T
E
X), we allow \thanks only outside of commands\thanks
13
\title and \author. is command is obsolete, and should not be used in most cases.
Do not list your acknowledgements and grant sponsors here: put this information in the
acks environment (see Section 2.9).
In some formats the addresses are printed as a footnote on the rst page. By default\authorsaddresses
L
A
T
E
X typesets them itself using the information you give it. However, you can override
its choice using the commmand \authorsaddresses{hcontact addressesi}, for example,
\authorsaddresses{%
Authors’ addresses: G.˜Zhou, Computer Science Department, College of
William and Mary, 104 Jameson Rd, Williamsburg, PA 23185, US;
V.˜B\’eranger, Inria Paris-Rocquencourt, Rocquencourt, France;
A.˜Patel, Rajiv Gandhi University, Rono-Hills, Doimukh, Arunachal
Pradesh, India; H.˜Chan, Tsinghua University, 30 Shuangqing Rd,
Haidian Qu, Beijing Shi, China; T.˜Yan, Eaton Innovation Center,
Prague, Czech Republic; T.˜He, C.˜Huang, J.˜A.˜Stankovic University
of Virginia, School of Engineering Charlottesville, VA 22903, USA;
T. F. Abdelzaher, (Current address) NASA Ames Research Center,
Moffett Field, California 94035.}
You can suppress printing authors’ addresses by seing them to an empty string:
\authorsaddresses{}.
While the command \thanks generates a note without footnote mark, sometimes\titlenote
\subtitlenote
\authornote
the authors might need notes more tightly connected to the title, subtitle or author. e
commands \titlenote,\subtitlenote and \authornote that follow the correspond-
ing commands (\title,\subtitle and \author) generate such notes, for example
\title{This is a title}
\titlenote{This is a titlenote}
\author{A. U. Thor}
\authornote{This is an authornote}
Please never use \footnotes inside \author or \title commands, since this con-
fuses metadata extraction soware (actually these commands now produce errors).
Sometimes one may need to have the same footnote connected to several authors.\authornotemark
e command \authornotemark[hnumberi]adds just the footnote mark, for example
\author{A. U. Thor}
\authornote{Both authors contributed equally to the paper}
...
\author{A. N. Other}
\authornotemark[1]
e correct numbering of these marks is the responsibility of the user.
e macros \acmVolume,\acmNumber,\acmArticle,\acmYear and \acmMonth are\acmVolume
\acmNumber
\acmArticle
\acmYear
\acmMonth
inserted by the editor and set the journal volume, issue, article number, year and month
corrspondingly. e arguments of all these commands, including \acmMonth is numer-
ical, including \acmMonth, for example,
14
\acmVolume{9}
\acmNumber{4}
\acmArticle{39}
\acmYear{2010}
\acmMonth{3}
Note that \acmArticle is used not only for journals, but also for some conference pro-
ceedings.
e articles in the same issue of a journal have a sequential number. It is used to\acmArticleSeq
vertically position the black blob in some formats. By default it is the same as article
number, but the command \acmArticleSeq{hni}can be used to change it:
\acmArticle{39} % The sequence number will be 39 by default
\acmArticleSeq{5} % We redefine it to 5
Seing this number to zero suppresses the blob.
If you paper got a Submission ID from the Conference Management System, put it\acmSubmissionID
here:
\acmSubmissionID{123-A56-BU3}
e macro \acmPrice{hpricei}sets the price for the article\acmPrice
\acmPrice{25.00}
Note that you do not need to put the dollar sign here, just the amount. By default
the price is $15.00, unless the copyright is set to usgov or rightsretained, when it
is suppressed. Note that to override the defaults you need to set the price aer the
\setcopyright command to override the default. Also, the command \acmPrice{}
suppresses the printing of the price.
Book-like volumes have ISBN numbers aached to them. e macro \acmISBN{hISBN i}\acmISBN
sets it. Normally it is set by the typeseer, for example,
\acmISBN{978-1-4503-3916-2}
Seing it to empty string, as \acmISBN{}, suppresses printing of ISBN.
e macro \acmDOI{hDOIi}sets the DOI number of the article, for example,\acmDOI
\acmDOI{10.1145/9999997.9999999}
It is normally set by the typeseer. Seing it to empty string, \acmDOI{} suppresses
DOI.
Some conference articles get special distinction, for example, the artifact evaluation\acmBadgeR
\acmBadgeL for PPoPP 2016 (see http://ctuning.org/ae/ppopp2016.html). ese articles display
special badges supplied by the conference organizers. e class provides commands to
15
add these badges: \acmBadgeR[hurli]{hgraphicsi}and \acmBadgeL[hurli]{hgraphicsi}.
e rst command puts the badge to the right of the title, and the second one—to the
le. e exception is the sigchi-a mode for SIGCHI Extended abstract, which puts
the badges on the le margin. e argument have the following meaning: [hurli], if
provided, sets the link to the badge authority in the screen version, while {hgraphicsi}
sets the graphics le with the badge image. e le must be a cropped square, which is
scaled to a standard size in the output. For example, if the badge image is ae-logo.pdf,
the command is
\acmBadgeR[http://ctuning.org/ae/ppopp2016.html]{ae-logo}
e macro \startPage{hpagei}sets the rst page of the article in the journal or\startPage
book. It is used by the typeseer.
e command \keywords{hkeyword, keyword,. . . i}sets keywords for the article.\terms
\keywords ey must be separated by commas, for example,
\keywords{wireless sensor networks, media access control,
multi-channel, radio interference, time synchronization}
ACM publications are classied according to the ACM Computing ClassicationCCSXML
\ccsdesc Scheme (CCS). CCS codes are used both in the typeset version of the publications and
in the metadata in the various databases. erefore you need to provide both T
E
X com-
mands and XML metadata with the paper.
e tool at http://dl.acm.org/ccs.cfm can be used to generate CCS codes. Aer
you select the topics, click on “Generate CCS codes” to get the result like the following:
\begin{CCSXML}
<ccs2012>
<concept>
<concept_id>10010520.10010553.10010562</concept_id>
<concept_desc>Computer systems organization˜Embedded systems</concept_desc>
<concept_significance>500</concept_significance>
</concept>
<concept>
<concept_id>10010520.10010575.10010755</concept_id>
<concept_desc>Computer systems organization˜Redundancy</concept_desc>
<concept_significance>300</concept_significance>
</concept>
<concept>
<concept_id>10010520.10010553.10010554</concept_id>
<concept_desc>Computer systems organization˜Robotics</concept_desc>
<concept_significance>100</concept_significance>
</concept>
<concept>
<concept_id>10003033.10003083.10003095</concept_id>
<concept_desc>Networks˜Network reliability</concept_desc>
<concept_significance>100</concept_significance>
</concept>
16
Table 4: Parameters for \setcopyright command
Parameter Meaning
none e copyright and permission information is not typeset
(this is the option for some ACM conferences).
acmcopyright e authors transfer the copyright to ACM (the “traditional”
choice).
acmlicensed e authors retain the copyright but license the publication
rights to ACM.
rightsretained e authors retain the copyright and publication rights to
themselves or somebody else.
usgov All the authors are employees of the US Government.
usgovmixed Some authors are employees of the US Government.
cagov All the authors are employees of the Canadian Government.
cagovmixed Some authors are employees of the Canadian Government.
licensedusgovmixed Some authors are employees of the US Government, and the
publication rights are licensed to ACM.
licensedcagov All the authors are employees of the Canadian Government,
and the publication rights are licensed to ACM.
licensedcagovmixed Some authors are employees of the Canadian Government,
and the publication rights are licensed to ACM.
othergov Authors are employees of a Government other than US or
Canada.
licensedothergov Authors are employees of a Government other than US or
Canada, and the publication rights are licensed to ACM.
</ccs2012>
\end{CCSXML}
\ccsdesc[500]{Computer systems organization˜Embedded systems}
\ccsdesc[300]{Computer systems organization˜Redundancy}
\ccsdesc{Computer systems organization˜Robotics}
\ccsdesc[100]{Networks˜Network reliability}
You need to just copy this code and paste it in your paper anywhere before
\maketitle.
ere are several possibilities for the copyright of the papers published by ACM:\setcopyright
the authors may transfer the rights to ACM, license them to ACM, some or all authors
might be employees of the US or Canada Government, etc. Accordingly the command
\setcopyright{...} is introduced. Its argument is the copyright status of the paper,
for example, \setcopyright{acmcopyright}. e possible values for this command
are listed in Table 4.
e ACM submission soware should generate the right command for you to paste
into your le.
17
Each copyright statement must have the year of copyright. By default it is the same\copyrightyear
as \acmYear, but you can override this decision using the macro \copyrightyear, e.g.,
\acmYear{2016}
\copyrightyear{2015}
ere is a special case for a personal copy that the authors may be allowed to generate
for their use or a posting on a personal site (check the instructions for the specic journal
or conference for the details). e document option authorversion=true produces
the special form of the copyright statement for this case. Note that you still need the
\setcopyright command and (optionally) \copyrightyear command to tell T
E
X about
the copyright owner and year. Also, you should be aware that due to the dierent sizes
of the permssion blocks for the printed version and authors’ version the page breaks
might be dierent between them.
e environment abstract must precede \maketitle command. Again, this is dif-abstract
ferent from the standard L
A
T
E
X.
A special kind of gure is used for many two-column conference proceedings.teaserfigure
is gure is placed just aer the authors, but before the main text. e environ-
ment teaserfigure is used for these gures. is environment must be used before
\maketitle, for example,
\begin{teaserfigure}
\includegraphics[width=\textwidth]{sampleteaser}
\caption{This is a teaser}
\label{fig:teaser}
\end{teaserfigure}
Some information in the top maer is printed for certain journals or proceed-\settopmatter
ings and suppressed for others. You may override these defaults using the command
\settopmatter{hseingsi}. e seings and their meanings are listed in Table 5. For
example,
\settopmatter{printacmref=false, printccs=true, printfolios=true}
e parameter authorsperrow requires some explanation. In conference proceedings
authors’ information is typeset in boxes, several boxes per row (see sample-sigconf.pdf,
sample-sigplan.pdf etc.). e number of the boxes per row is determined automat-
ically. If you want to override this decision, you may do it using this parameter, for
example,
\settopmatter{authorsperrow=4}
However, in most cases you should not do this and use the default seings. Seing
authorsperrow to 0 will revert to default seings.
e command \received[hstagei]{hdatei}sets the history of the publication. e\received
18
Table 5: Seings for \settopmatter command
Parameter Values Meaning
printccs true/false Whether to print CCS categories
printacmref true/false Whether to print ACM bibliographic entry
printfolios true/false Whether to print page numbers (folios)
authorsperrow numeric Number of authors per row for title page in conference
proceedings formats
[hstagei]argument is optional; the default is Received for the rst date and revised
for the subsequent ones. For example
\received{February 2007}
\received[revised]{March 2009}
\received[accepted]{June 2009}
e macro \maketitle must be the last command in the top maer group: i.e., it\maketitle
must follow the commands dened in this section.
Aer the command \maketitle the macro \shortauthors stores the names of the\shortauthors
authors for the running head. You may redene it if the list of author’s name is too long,
e.g.,
\maketitle
\renewcommand{\shortauthors}{Zhou et al.}
2.4 Algorithms
ere are now several good packages for typeseing algorithms [3,4,5], and the authors
are now free to choose their favorite one.
2.5 Figures and tables
New ACM styles use the standard L
A
T
E
X interface for gures and tables. ere are some
important items to be aware of, however.
1. e captions for gures must be entered aer the gure bodies, and for the tables
before the table bodies.
2. ACM uses the standard types for gures and types and adds several new ones. In
total there are the following types:
gure, table: a standard gure or table, taking full text width in one-column for-
mats and one column in two-column formats.
gure*, table* in two-column formats, a special gure or table taking full text
width.
19
teasergure: a special gure before \maketitle.
sidebar, margingure, margintable: in the sigchi-a format, special sidebars,
tables and gures on the margin.
3. Accordingly, when scaling the images, one should use the following sizes:
(a) For figure in one-column mode, figure* in two-column mode or teaserfigure
\textwidth (in the one-column you can also use \columnwidth, which co-
incides with \textwidth in this case).
(b) For figure in two-column mode—\columnwidth.
(c) For marginfigure\marginparwidth.
(d) For figure* in SIGCHI Extended abstracts—\fulltextwidth.
It is strongly recommended to use the package booktabs [6] and follow its main
principles of typography with respect to tables:
1. Never, ever use vertical rules.
2. Never use double rules.
It is also a good idea not to overuse horizontal rules.
For table footnotes you have several options described in TeX FAQ [1]. e simplest
one is to use \minipage environment:
\begin{table}
\caption{Simulation Configuration}
\label{tab:conf}
\begin{minipage}{\columnwidth}
\begin{center}
\begin{tabular}{ll}
\toprule
TERRAIN\footnote{This is a table footnote. This is a
table footnote. This is a table footnote.} &
(200\,m$\times$200\,m) Square\\
Node Number & 289\\
Node Placement & Uniform\\
Application & Many-to-Many/Gossip CBR Streams\\
Payload Size & 32 bytes\\
Routing Layer & GF\\
MAC Layer & CSMA/MMSN\\
Radio Layer & RADIO-ACCNOISE\\
Radio Bandwidth & 250Kbps\\
Radio Range & 20m--45m\\
\bottomrule
\end{tabular}
\end{center}
\bigskip
\footnotesize\emph{Source:} This is a table
sourcenote. This is a table sourcenote. This is a table
20
sourcenote.
\emph{Note:} This is a table footnote.
\end{minipage}
\end{table}
SIGCHI extended abstract extensively uses margin space. e package providessidebar
marginfigure
margintable
three environments for this with option captions:
sidebar: textual information on the margin
margingure: a gure on the margin
margintable: a table on the margin
Tables and gures (including margin tables and margin gures) are by default cen-
tered. However, in some cases (for example, when you use several subimages per gure)
you may need to override this decision. A good way to do so is to put the contents into
a\minipage of the width \columnwidth.
2.6 eorems
ACM classes dene two theorem styles and several pre-dened theorem environments:
acmplain: this is the style used for theorem,conjecture,proposition,lemma, and
corollary, and
acmdenition: this is the style used for example and definition.
ese environments are dened by default. In the unusual circumstance that a user
does not wish to have these environments dened, the option acmthm=false in the
preamble will suppress them.
2.7 Online-only and oline-only material
Some supplementary material in ACM publication is put online, but not in the printedprintonly
screenonly version. e text inside the environment screenonly will be typeset only when the op-
tion screen (see Section 2.2) is set to true. Conversely, the text inside the environment
printonly is typset only when this option is set to false. For example
\section{Supplementary materials}
\begin{printonly}
This section is included in the online version of the paper.
\end{printonly}
\begin{screenonly}
(The actual section).
\end{screenonly}
21
We use comment package for typeseing this code, so \begin and \end should start
at the rst positions of the lines of their own (no initial spaces etc.).
2.8 Note about anonymous mode
When the option anonymous is selected, T
E
X suppresses author information (includinganonsuppress
number of authors) for a blind review. However, sometimes the information identifying
the authors may be present in the body of the paper
\begin{anonsuppress}
This is the continuation of the previous work by the author
\cite{prev1, prev2}.
\end{anonsuppress}
As for printonly and screenonly environments, \begin{anonsuppress} and
\end{anonsuppress} should start the line of their own (no leading or trailing spaces).
2.9 Acknowledgments
e traditional “Acknowledgments” section is conventionally used to thank persons and
granting agencies for their help and support. However, there are several important con-
siderations about this section.
First, in the anonymous mode this section must be omied: it gives too much in-
formation to the reviewers. Second, the data about the grants is extracted and stored
separately by the postprocessing soware. ACM classes provide facilities for both these
tasks.
e environment acks starts an unnumbered section “Acknowledgments” unless theacks
anonymous mode is chosen. Put all thanks inside this environment.
As for printonly and screenonly environments, \begin{acks} and \end{acks}
should start the line of their own (no leading or trailing spaces).
All the nancial support must be listed using the commands \grantsponsor and\grantsponsor
\grantnum \grantnum. ese commands tell the postprocessing soware about the granting orga-
nization and the grant. e format of the command is the following:
\grantsponsor{hsponsorIDi}{hnamei}{hurli}
\grantnum[hurli]{hsponsorIDi}{hnumberi}.
Here {hsponsorIDi}is the unique ID used to match grants to sponsors, {hnamei}is
the name of the sponsor, {hurli}is its URL, and {hnumberi}is the grant number.
e {hsponsorIDi}of the \grantnum command must correspond to \sponsorID of a
\grantsponsor command. Some awards have their own web pages, which you can in-
clude using the optional argument of \grantnum command.
At present {hsponsorIDi}is chosen by the authors and can be an arbitrary key, in
the same way the label of \cite is arbitrarily chosen. ere might be a change to this
policy if ACM decides to create a global database of sponsoring organizations.
Example:
22
\begin{acks}
The authors would like to thank Dr. Yuhua Li for providing the
matlab code of the \textit{BEPS} method.
The authors would also like to thank the anonymous referees for
their valuable comments and helpful suggestions. The work is
supported by the \grantsponsor{GS501100001809}{National Natural
Science Foundation of
China}{https://doi.org/10.13039/501100001809} under Grant
No.:˜\grantnum{GS501100001809}{61273304}
and˜\grantnum[http://www.nnsf.cn/youngscientsts]{GS501100001809}{Young
Scientsts’ Support Program}.
\end{acks}
2.10 Bibliography
ACM uses the natbib package for formaing references and the style ACM-Reference-Format.
bst for BibT
E
X processing. You may disable loading of natbib by using the option
natbib=false in \documentclass. However, it is not recommended, as well as the use
of BibT
E
X styles other than ACM-Reference-Format.bst, and may delay the processing
of the manuscript.
If you use natbib, you can select one of two predened sitation styles: the author-\citestyle
year format acmauthoryear or the numeric format acmnumeric using the command
\citestyle, for example,
\citestyle{acmauthoryear}
Note that numeric citations are the default mode for most formats.
You may further customize natbib using \setcitestyle command, for example,\setcitestyle
\setcitestyle{numbers,sort&compress}
If you use natbib, then commands like \citep and \citeauthor are automatically
supported. e command \shortcite is the same as \cite in numerical mode, and
cites the year in the author-date mode.
ere are several customized BibT
E
X entries and elds in ACM style ACM-Reference-Format.
bst you may want to be aware of.
e style supports elds doi and url, for example,
doi = "10.1145/1188913.1188915",
url = "http://ccrma.stanford.edu/˜jos/bayes/bayes.pdf",
e style supports arXiv recommended elds eprint and (optionally) primaryclass,
for example,
eprint = "960935712",
primaryclass = "cs",
23
See the examples at http://arxiv.org/hypertex/bibstyles/.
ere are special entries online and game for Web pages and games, for example,
@online{Thornburg01,
author = "Harry Thornburg",
year = "2001",
title = "Introduction to Bayesian Statistics",
url = "http://ccrma.stanford.edu/˜jos/bayes/bayes.html",
month = mar,
lastaccessed = "March 2, 2005",
}
For these entries you can use the lastaccessed eld to add the access date to the URL.
ere are two ways to enter video and audio sources in the bibliograpy correspond-
ing to two dierent possibilies. For standalone sources available on WWW you can use
an online entry, seing there howpublished eld, for example,
@online{Obama08,
author = "Barack Obama",
year = "2008",
title = "A more perfect union",
howpublished = "Video",
day = "5",
url = "http://video.google.com/videoplay?docid=6528042696351994555",
month = mar,
lastaccessed = "March 21, 2008",
}
For the sources available as aachments to conference proceedings and similar doc-
uments, you can use the usual inproceedings entry, again seing the howpublished
eld:
@Inproceedings{Novak03,
author = "Dave Novak",
title = "Solder man",
booktitle = "ACM SIGGRAPH 2003 Video Review on Animation theater Program",
year = "2003",
publisher = "ACM Press",
address = "New York, NY",
pages = "4",
month = "March 21, 2008",
doi = "10.9999/woot07-S422",
howpublished = "Video",
}
Sometimes you need to cite a complete issue of a journal. e entry periodical is
intended for this:
24
@periodical{JCohen96,
key = "Cohen",
editor = "Jacques Cohen",
title = "Special issue: Digital Libraries",
journal = "Communications of the {ACM}",
volume = "39",
number = "11",
month = nov,
year = "1996",
}
If you do not know the year of publication, the style will add “[n. d.]” (for “no date”)
entry.
If you do not know the author (this is oen the case for online entries), use key eld
to add a key for sorting and citations, for example,
@online{TUGInstmem,
key = {TUG},
year = 2017,
title = "Institutional members of the {\TeX} Users Group",
url = "http://wwtug.org/instmem.html",
lastaccessed = "May 27, 2017",
}
2.11 Colors
While printed ACM publications are usually black and white, screen mode allows the
use of colors. e ACM classes pre-dene several colors according to [7]: ACMBlue,
ACMYellow,ACMOrange,ACMRed,ACMLightBlue,ACMGreen,ACMPurple,ACMDarkBlue.
You can use them in the color assignments.
ACM provides the following recommendation on color use.
e most accessible approach would be to ensure that your article is still readable
when printed in greyscale. e most notable reasons for this are:
1. e most common type of inherited Color Vision Deciency (CVD) is red-green
(in which similar-brightness colors that only dier in their amounts of red or green
are oen confused), and it aects up to 8% of males and 0.5% of females of Northern
European descent.
2. e most common type of acquired Color Vision Deciency (CVD) is blue-yellow
(including mild cases for many older adults).
3. Most printing is in Black & White.
4. Situational impairments (e.g., bright sunlight shining on a mobile screen) tend to
reduce the entire color gamut, reducing color discriminability.
25
Note: It is not safe to encode information using only variations in color (i.e., only
dierences in hue and/or saturation), as there is bound to be someone aected!
To ensure that you are using the most accessible colors, ACM recommends that you
choose sets of colors to help ensure suitable variations in Black & White using either of
the following tools:
1. ColourBrewer: http://colorbrewer2.org/
2. ACE: e Accessible Colour Evaluator: http://daprlab.com/ace/ for designing
WCAG 2.0 compliant palees.
2.12 Other notable packages and typographic remarks
Several other packages are recommended for specialized tasks.
e package subcaption [8] is recommended for complex gures with several sub-
plots or subgures that require separate subcaptioning. e packages nomencl [9] and
glossaries [10] can be used for the automatic creation of the lists of symbols and concepts
used.
By default acmart prevents all widows and orphans (i.e. lonely lines at the beginning
and the end of the page) and hyphenation at the end of the page. is is done by rather
strict seings
\widowpenalty=10000
\clubpenalty=10000
\brokenpenalty=10000
However, this may lead to frustrating results when the authors must obey a page limit.
Seing these penalties to smaller values may help if you absolutely need to.
Another problem might be the too strict line breaking rules. Again, a strategically
placed \sloppy command or puing the problematic paragraph inside sloppypar en-
vironment might help—but beware the results might be, well, sloppy.
Note that the uppercasing in section titles is done using textcase package [11], so
command \NoCaseChange inside title may help to prevent extraneous uppercasing.
2.13 A note for wizards: acmart-preload-hook.tex
Sometimes you need to change the behavior of acmart. e usual way to do this is
to redene commands in the preamble. However, these denitions are executed aer
acmart is loaded, and certain decisions are made. is presents a number of problems.
For example, one may want to use titletoc package with acmart. is pack-
age should be loaded before hyperref. However, since acmart loads hyperref itself,
the line \usepackage{titletoc} in the preamble will lead to grief (see http://tex.
stackexchange.com/questions/357265/using-titletoc-with-acm-acmart-style).
Another example is passing options to package. Suppose you want to use dvipsnames
option of xcolor package. Normally you cannot do this because acmart loads this pack-
age itself without options.
26
e le acmart-preload-hook.tex may be used to solve these problems. If this
le exists, it will be processed before any other package. You can use this le to load
packages or pass options to them. For example, if you put in this le
\let\LoadClassOrig\LoadClass
\renewcommand\LoadClass[2][]{\LoadClassOrig[#1]{#2}%
\usepackage{titletoc}}
then titletoc will be loaded before hyperref. If you put in this le
\PassOptionsToPackage{dvipsnames}{xcolor}
you will pass dvipsnames to xcolor.
Important note. is hook makes it too easy to create a manuscript which is not
acceptable by ACM. Even easier it is to create a le which cannot be compiled. So please
do not use it unless you know what you are doing. And if you use it, do not ask for support.
If you decided to use this hook, you are on your own.
27
3 Implementation
3.1 Identication
We start with the declaration who we are. Most .dtx les put driver code in a separate
driver le .drv. We roll this code into the main le, and use the pseudo-guard <gobble>
for it.
1hclassi\NeedsTeXFormat{LaTeX2e}
2h*gobblei
3\ProvidesFile{acmart.dtx}
4h/gobblei
5hclassi\ProvidesClass{acmart}
6[2017/08/31 v1.47 Typesetting articles for Association of
7Computing Machinery]
And the driver code:
8h*gobblei
9\documentclass{ltxdoc}
10 \usepackage{array,booktabs,amsmath,graphicx,fancyvrb,tabularx}
11 \usepackage[tt=false, type1=true]{libertine}
12 \usepackage[varqu]{zi4}
13 \usepackage[libertine]{newtxmath}
14 \usepackage[tableposition=top]{caption}
15 \usepackage{hypdoc}
16 \PageIndex
17 \CodelineIndex
18 \RecordChanges
19 \EnableCrossrefs
20 \begin{document}
21 \DocInput{acmart.dtx}
22 \end{document}
23 h/gobblei
24 h*classi
25 \def\@classname{acmart}
3.2 Preload
We preload acmart-preload-hook:
26 \InputIfFileExists{acmart-preload-hook.tex}{%
27 \ClassWarning{\@classname}{%
28 I am loading acmart-preload-hook.tex. You are fully responsible
29 for any problems from now on.}}{}
3.3 Options
We need xkeyval since some of our options may have values:
30 \RequirePackage{xkeyval}
We use xstring to check whether user input is integer
31 \RequirePackage{xstring}
28
format e possible formats
32 \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
33 manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
34 sigplan, sigchi, sigchi-a}[manuscript]{}{%
35 \ClassError{\@classname}{The option format must be manuscript,
36 acmsmall, acmlarge, acmtog, sigconf, siggraph,
37 sigplan, sigchi or sigchi-a}}
38 \def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
39 \@DeclareACMFormat{manuscript}
40 \@DeclareACMFormat{acmsmall}
41 \@DeclareACMFormat{acmlarge}
42 \@DeclareACMFormat{acmtog}
43 \@DeclareACMFormat{sigconf}
44 \@DeclareACMFormat{siggraph}
45 \@DeclareACMFormat{sigplan}
46 \@DeclareACMFormat{sigchi}
47 \@DeclareACMFormat{sigchi-a}
48 \ExecuteOptionsX{format}
\if@ACM@screen Whether we use screen mode
49 \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
50 \if@ACM@screen
51 \PackageInfo{\@classname}{Using screen mode}%
52 \else
53 \PackageInfo{\@classname}{Not using screen mode}%
54 \fi}{\PackageError{\@classname}{Option screen can be either true or
55 false}}
56 \ExecuteOptionsX{screen=false}
\if@ACM@acmthm Whether we dene theorem-like environments.
57 \define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{%
58 \if@ACM@acmthm
59 \PackageInfo{\@classname}{Requiring acmthm}%
60 \else
61 \PackageInfo{\@classname}{Suppressing acmthm}%
62 \fi}{\PackageError{\@classname}{Option acmthm can be either true or
63 false}}
64 \ExecuteOptionsX{acmthm=true}
\if@ACM@review Whether we use review mode
65 \define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
66 \if@ACM@review
67 \PackageInfo{\@classname}{Using review mode}%
68 \else
69 \PackageInfo{\@classname}{Not using review mode}%
70 \fi}{\PackageError{\@classname}{Option review can be either true or
71 false}}
72 \ExecuteOptionsX{review=false}
29
\if@ACM@authorversion Whether we use author’s version
73 \define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
74 \if@ACM@authorversion
75 \PackageInfo{\@classname}{Using authorversion mode}%
76 \else
77 \PackageInfo{\@classname}{Not using authorversion mode}%
78 \fi}{\PackageError{\@classname}{Option authorversion can be either true or
79 false}}
80 \ExecuteOptionsX{authorversion=false}
\if@ACM@natbib@override
\if@ACM@natbib Whether we use natbib mode
81 \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
82 \if@ACM@natbib
83 \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
84 \else
85 \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
86 \fi}{\PackageError{\@classname}{Option natbib can be either true or
87 false}}
88 \ExecuteOptionsX{natbib=true}
\if@ACM@anonymous Whether we use anonymous mode
89 \define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
90 \if@ACM@anonymous
91 \PackageInfo{\@classname}{Using anonymous mode}%
92 \else
93 \PackageInfo{\@classname}{Not using anonymous mode}%
94 \fi}{\PackageError{\@classname}{Option anonymous can be either true or
95 false}}
96 \ExecuteOptionsX{anonymous=false}
\if@ACM@timestamp Whether we use timestamp mode
97 \define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
98 \if@ACM@timestamp
99 \PackageInfo{\@classname}{Using timestamp mode}%
100 \else
101 \PackageInfo{\@classname}{Not using timestamp mode}%
102 \fi}{\PackageError{\@classname}{Option timestamp can be either true or
103 false}}
104 \ExecuteOptionsX{timestamp=false}
\if@ACM@authordraft Whether we use authordra mode
105 \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
106 \if@ACM@authordraft
107 \PackageInfo{\@classname}{Using authordraft mode}%
108 \@ACM@timestamptrue
109 \@ACM@reviewtrue
110 \else
30
111 \PackageInfo{\@classname}{Not using authordraft mode}%
112 \fi}{\PackageError{\@classname}{Option authordraft can be either true or
113 false}}
114 \ExecuteOptionsX{authordraft=false}
\ACM@fontsize e font size to pass to the base class
115 \def\ACM@fontsize{}
116 \DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
117 \DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
118 \DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
119 \DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
120 \DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
121 \DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
122 \ProcessOptionsX
123 \ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
3.4 Setting switches
\if@ACM@manuscript Whether we use manuscript mode
124 \newif\if@ACM@manuscript
\if@ACM@journal ere are two kinds of publications: journals and books
125 \newif\if@ACM@journal
\if@ACM@sigchiamode e formaing of SIGCHI abstracts is quite unusual. We have a special switch for them.
126 \newif\if@ACM@sigchiamode
Seing up switches
127 \ifnum\ACM@format@nr=5\relax % siggraph
128 \ClassWarning{\@classname}{The format ‘siggraph’ is now obsolete.
129 I am switching to sigconf.}
130 \setkeys{acmart.cls}{format=sigconf}
131 \fi
132 \ifnum\ACM@format@nr=0\relax
133 \@ACM@manuscripttrue
134 \else
135 \@ACM@manuscriptfalse
136 \fi
137 \@ACM@sigchiamodefalse
138 \ifcase\ACM@format@nr
139 \relax % manuscript
140 \@ACM@journaltrue
141 \or % acmsmall
142 \@ACM@journaltrue
143 \or % acmlarge
144 \@ACM@journaltrue
145 \or % acmtog
31
146 \@ACM@journaltrue
147 \or % sigconf
148 \@ACM@journalfalse
149 \or % siggraph
150 \@ACM@journalfalse
151 \or % sigplan
152 \@ACM@journalfalse
153 \or % sigchi
154 \@ACM@journalfalse
155 \or % sigchi-a
156 \@ACM@journalfalse
157 \@ACM@sigchiamodetrue
158 \fi
3.5 Loading base class and package
At this point we either have \ACM@fontsize, or use defaults
159 \ifx\ACM@fontsize\@empty
160 \ifcase\ACM@format@nr
161 \relax % manuscript
162 \def\ACM@fontsize{9pt}%
163 \or % acmsmall
164 \def\ACM@fontsize{10pt}%
165 \or % acmlarge
166 \def\ACM@fontsize{10pt}%
167 \or % acmtog
168 \def\ACM@fontsize{9pt}%
169 \or % sigconf
170 \def\ACM@fontsize{9pt}%
171 \or % siggraph
172 \def\ACM@fontsize{9pt}%
173 \or % sigplan
174 \def\ACM@fontsize{10pt}%
175 \or % sigchi
176 \def\ACM@fontsize{10pt}%
177 \or % sigchi-a
178 \def\ACM@fontsize{10pt}%
179 \fi
180 \fi
181 \ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
182 \LoadClass[\ACM@fontsize, reqno]{amsart}
183 \RequirePackage{microtype}
We need etoolbox for delayed code
184 \RequirePackage{etoolbox}
We need totpages package to calculate the number of pages and refcount to use
the number
185 \RequirePackage{refcount}
186 \RequirePackage{totpages}
32
e amsmath \collect@body is dened using \def. We load environ to access the
\long version of the command
187 \RequirePackage{environ}
We use setspace for doublespacing
188 \if@ACM@manuscript
189 \RequirePackage{setspace}
190 \onehalfspacing
191 \fi
We need textcase for beer upcasing
192 \RequirePackage{textcase}
Citations. We patch \setcitestyle to allow, e.g., \setcitestyle{sort} and
\setcitestyle{nosort}. We patch \citestyle to warn about undened citation
styles.
193 \if@ACM@natbib
194 \RequirePackage{natbib}
195 \renewcommand{\bibsection}{%
196 \section*{\refname}%
197 \phantomsection\addcontentsline{toc}{section}{\refname}%
198 }
199 \renewcommand{\bibfont}{\bibliofont}
200 \renewcommand\setcitestyle[1]{
201 \@for\@tempa:=#1\do
202 {\def\@tempb{round}\ifx\@tempa\@tempb
203 \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
204 \def\@tempb{square}\ifx\@tempa\@tempb
205 \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
206 \def\@tempb{angle}\ifx\@tempa\@tempb
207 \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
208 \def\@tempb{curly}\ifx\@tempa\@tempb
209 \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
210 \def\@tempb{semicolon}\ifx\@tempa\@tempb
211 \renewcommand\NAT@sep{;}\fi
212 \def\@tempb{colon}\ifx\@tempa\@tempb
213 \renewcommand\NAT@sep{;}\fi
214 \def\@tempb{comma}\ifx\@tempa\@tempb
215 \renewcommand\NAT@sep{,}\fi
216 \def\@tempb{authoryear}\ifx\@tempa\@tempb
217 \NAT@numbersfalse\fi
218 \def\@tempb{numbers}\ifx\@tempa\@tempb
219 \NAT@numberstrue\NAT@superfalse\fi
220 \def\@tempb{super}\ifx\@tempa\@tempb
221 \NAT@numberstrue\NAT@supertrue\fi
222 \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
223 \let\bibstyle=\@gobble\fi
224 \def\@tempb{bibstyle}\ifx\@tempa\@tempb
225 \let\bibstyle=\@citestyle\fi
226 \def\@tempb{sort}\ifx\@tempa\@tempb
33
227 \def\NAT@sort{\@ne}\fi
228 \def\@tempb{nosort}\ifx\@tempa\@tempb
229 \def\NAT@sort{\z@}\fi
230 \def\@tempb{compress}\ifx\@tempa\@tempb
231 \def\NAT@cmprs{\@ne}\fi
232 \def\@tempb{nocompress}\ifx\@tempa\@tempb
233 \def\NAT@cmprs{\@z}\fi
234 \def\@tempb{sort&compress}\ifx\@tempa\@tempb
235 \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
236 \def\@tempb{mcite}\ifx\@tempa\@tempb
237 \let\NAT@merge\@ne\fi
238 \def\@tempb{merge}\ifx\@tempa\@tempb
239 \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
240 \def\@tempb{elide}\ifx\@tempa\@tempb
241 \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
242 \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
243 \NAT@longnamestrue\fi
244 \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
245 \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
246 \expandafter\NAT@find@eq\@tempa=\relax\@nil
247 \if\@tempc\relax\else
248 \expandafter\NAT@rem@eq\@tempc
249 \def\@tempb{open}\ifx\@tempa\@tempb
250 \xdef\NAT@open{\@tempc}\fi
251 \def\@tempb{close}\ifx\@tempa\@tempb
252 \xdef\NAT@close{\@tempc}\fi
253 \def\@tempb{aysep}\ifx\@tempa\@tempb
254 \xdef\NAT@aysep{\@tempc}\fi
255 \def\@tempb{yysep}\ifx\@tempa\@tempb
256 \xdef\NAT@yrsep{\@tempc}\fi
257 \def\@tempb{notesep}\ifx\@tempa\@tempb
258 \xdef\NAT@cmt{\@tempc}\fi
259 \def\@tempb{citesep}\ifx\@tempa\@tempb
260 \xdef\NAT@sep{\@tempc}\fi
261 \fi
262 }%
263 \NAT@@setcites
264 }
265 \renewcommand\citestyle[1]{%
266 \ifcsname bibstyle@#1\endcsname%
267 \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
268 \else%
269 \@latex@error{Undefined ‘#1’ citestyle}%
270 \fi
271 }%
272 \fi
\bibstyle@acmauthoryear e default author-year format:
273 \newcommand{\bibstyle@acmauthoryear}{%
274 \setcitestyle{%
34
275 authoryear,%
276 open={[},close={]},citesep={;},%
277 aysep={},yysep={,},%
278 notesep={, }}}
\bibstyle@acmnumeric e default numeric format:
279 \newcommand{\bibstyle@acmnumeric}{%
280 \setcitestyle{%
281 numbers,sort&compress,%
282 open={[},close={]},citesep={,},%
283 notesep={, }}}
e default is numeric:
284 \if@ACM@natbib
285 \citestyle{acmnumeric}
286 \fi
\@startsection Before we call hyperref, we redene \startsection commands to their L
A
T
E
X de-
faults, since amsart ones are too AMS-specic. We need to do this early since we want
hyperref to have a chance to redene them again:
287 \def\@startsection#1#2#3#4#5#6{%
288 \if@noskipsec \leavevmode \fi
289 \par
290 \@tempskipa #4\relax
291 \@afterindenttrue
292 \ifdim \@tempskipa <\z@
293 \@tempskipa -\@tempskipa \@afterindentfalse
294 \fi
295 \if@nobreak
296 \everypar{}%
297 \else
298 \addpenalty\@secpenalty\addvspace\@tempskipa
299 \fi
300 \@ifstar
301 {\@ssect{#3}{#4}{#5}{#6}}%
302 {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
303 \def\@sect#1#2#3#4#5#6[#7]#8{%
304 \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
305 \ifnum #2>\c@secnumdepth
306 \let\@svsec\@empty
307 \else
308 \refstepcounter{#1}%
309 \protected@edef\@svsec{\@seccntformat{#1}\relax}%
310 \fi
311 \@tempskipa #5\relax
312 \ifdim \@tempskipa>\z@
313 \begingroup
314 #6{%
315 \@hangfrom{\hskip #3\relax\@svsec}%
35
316 \interlinepenalty \@M #8\@@par}%
317 \endgroup
318 \csname #1mark\endcsname{#7}%
319 \ifnum #2>\c@secnumdepth \else
320 \@tochangmeasure{\csname the#1\endcsname}%
321 \fi
322 \addcontentsline{toc}{#1}{%
323 \ifnum #2>\c@secnumdepth \else
324 \protect\numberline{\csname the#1\endcsname}%
325 \fi
326 #7}%
327 \else
328 \def\@svsechd{%
329 #6{\hskip #3\relax
330 \@svsec #8}%
331 \csname #1mark\endcsname{#7}%
332 \ifnum #2>\c@secnumdepth \else
333 \@tochangmeasure{\csname the#1\endcsname\space}%
334 \fi
335 \addcontentsline{toc}{#1}{%
336 \ifnum #2>\c@secnumdepth \else
337 \protect\numberline{\csname the#1\endcsname}%
338 \fi
339 #7}}%
340 \fi
341 \@xsect{#5}}
342 \def\@xsect#1{%
343 \@tempskipa #1\relax
344 \ifdim \@tempskipa>\z@
345 \par \nobreak
346 \vskip \@tempskipa
347 \@afterheading
348 \else
349 \@nobreakfalse
350 \global\@noskipsectrue
351 \everypar{%
352 \if@noskipsec
353 \global\@noskipsecfalse
354 {\setbox\z@\lastbox}%
355 \clubpenalty\@M
356 \begingroup \@svsechd \endgroup
357 \unskip
358 \@tempskipa #1\relax
359 \hskip -\@tempskipa
360 \else
361 \clubpenalty \@clubpenalty
362 \everypar{}%
363 \fi}%
364 \fi
365 \ignorespaces}
36
366 \def\@seccntformat#1{\csname the#1\endcsname\quad}
367 \def\@ssect#1#2#3#4#5{%
368 \@tempskipa #3\relax
369 \ifdim \@tempskipa>\z@
370 \begingroup
371 #4{%
372 \@hangfrom{\hskip #1}%
373 \interlinepenalty \@M #5\@@par}%
374 \endgroup
375 \else
376 \def\@svsechd{#4{\hskip #1\relax #5}}%
377 \fi
378 \@xsect{#3}}
\@startsection Amsart redenes \startsection. Here we redene it again to make TOC working
379 \def\@starttoc#1#2{\begingroup\makeatletter
380 \setTrue{#1}%
381 \par\removelastskip\vskip\z@skip
382 \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
383 {.5\linespacing}{\centering\contentsnamefont}{#2}%
384 \@input{\jobname.#1}%
385 \if@filesw
386 \@xp\newwrite\csname tf@#1\endcsname
387 \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
388 \fi
389 \global\@nobreakfalse \endgroup
390 \addvspace{32\p@\@plus14\p@}%
391 }
\l@subsection Section spacing is more generous than for amsart
392 \def\l@section{\@tocline{1}{0pt}{1pc}{2pc}{}}
\l@subsection Amsart has too large spacing
393 \def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
\l@subsubsection Amsart has too large spacing
394 \def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
And hyperref
395 \let\@footnotemark@nolink\@footnotemark
396 \let\@footnotetext@nolink\@footnotetext
397 \RequirePackage[bookmarksnumbered,unicode]{hyperref}
398 \pdfstringdefDisableCommands{%
399 \def\unskip{}%
400 \def\textbullet{- }%
401 \def\textrightarrow{ -> }%
402 \def\footnotemark{}%
403 }
404 \urlstyle{rm}
37
405 \ifcase\ACM@format@nr
406 \relax % manuscript
407 \or % acmsmall
408 \or % acmlarge
409 \or % acmtog
410 \or % sigconf
411 \or % siggraph
412 \or % sigplan
413 \urlstyle{sf}
414 \or % sigchi
415 \or % sigchi-a
416 \urlstyle{sf}
417 \fi
418 \AtEndPreamble{%
419 \if@ACM@screen
420 \hypersetup{colorlinks,
421 linkcolor=ACMRed,
422 citecolor=ACMPurple,
423 urlcolor=ACMDarkBlue,
424 filecolor=ACMDarkBlue}
425 \else
426 \hypersetup{hidelinks}
427 \fi}
Bibliography mangling.
428 \if@ACM@natbib
429 \let\citeN\cite
430 \let\cite\citep
431 \let\citeANP\citeauthor
432 \let\citeNN\citeyearpar
433 \let\citeyearNP\citeyear
434 \let\citeyear\citeyearpar
435 \let\citeNP\citealt
436 \DeclareRobustCommand\citeA
437 {\begingroup\NAT@swafalse
438 \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
439 \providecommand\newblock{}%
440 \else
441 \AtBeginDocument{%
442 \let\shortcite\cite%
443 \providecommand\citename[1]{#1}}
444 \fi
445 \newcommand\shortcite[2][]{%
446 \ifNAT@numbers\cite[#1]{#2}\else\citeyear[#1]{#2}\fi}
\bibliographystyle Amsart redenes \bibliographystyle since it prefers AMS bibliography. We turn it
back to L
A
T
E
X denition:
447 \def\bibliographystyle#1{%
448 \ifx\@begindocumenthook\@undefined\else
449 \expandafter\AtBeginDocument
38
450 \fi
451 {\if@filesw
452 \immediate\write\@auxout{\string\bibstyle{#1}}%
453 \fi}}
Graphics and color
454 \RequirePackage{graphicx, xcolor}
We dene ACM colors according to [7]:
455 \definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
456 \definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
457 \definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
458 \definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
459 \definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
460 \definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
461 \definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
462 \definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
Author dra mode
463 \if@ACM@authordraft
464 \RequirePackage{draftwatermark}
465 \SetWatermarkFontSize{0.5in}
466 \SetWatermarkColor[gray]{.9}
467 \SetWatermarkText{\parbox{12em}{\centering
468 Unpublished working draft\\
469 Not for distribution}}
470 \fi
3.6 Paper size and paragraphing
We use geometry for dimensions. Note the presently margins do not depend on the
font size option - maybe we will need to change this. See https://github.com/
borisveytsman/acmart/issues/5#issuecomment-272881329.
471 \RequirePackage{geometry}
472 \ifcase\ACM@format@nr
473 \relax % manuscript
474 \geometry{letterpaper,head=13pt,
475 marginparwidth=6pc,heightrounded}%
476 \or % acmsmall
477 \geometry{twoside=true,
478 includeheadfoot, head=13pt, foot=2pc,
479 paperwidth=6.75in, paperheight=10in,
480 top=58pt, bottom=44pt, inner=46pt, outer=46pt,
481 marginparwidth=2pc,heightrounded
482 }%
483 \or % acmlarge
484 \geometry{twoside=true, head=13pt, foot=2pc,
485 paperwidth=8.5in, paperheight=11in,
486 includeheadfoot,
487 top=78pt, bottom=114pt, inner=81pt, outer=81pt,
39
488 marginparwidth=4pc,heightrounded
489 }%
490 \or % acmtog
491 \geometry{twoside=true, head=13pt, foot=2pc,
492 paperwidth=8.5in, paperheight=11in,
493 includeheadfoot, columnsep=24pt,
494 top=52pt, bottom=75pt, inner=52pt, outer=52pt,
495 marginparwidth=2pc,heightrounded
496 }%
497 \or % sigconf
498 \geometry{twoside=true, head=13pt,
499 paperwidth=8.5in, paperheight=11in,
500 includeheadfoot, columnsep=2pc,
501 top=57pt, bottom=73pt, inner=54pt, outer=54pt,
502 marginparwidth=2pc,heightrounded
503 }%
504 \or % siggraph
505 \geometry{twoside=true, head=13pt,
506 paperwidth=8.5in, paperheight=11in,
507 includeheadfoot, columnsep=2pc,
508 top=57pt, bottom=73pt, inner=54pt, outer=54pt,
509 marginparwidth=2pc,heightrounded
510 }%
511 \or % sigplan
512 \geometry{twoside=true, head=13pt,
513 paperwidth=8.5in, paperheight=11in,
514 includeheadfoot=false, columnsep=2pc,
515 top=1in, bottom=1in, inner=0.75in, outer=0.75in,
516 marginparwidth=2pc,heightrounded
517 }%
518 \or % sigchi
519 \geometry{twoside=true, head=13pt,
520 paperwidth=8.5in, paperheight=11in,
521 includeheadfoot, columnsep=2pc,
522 top=66pt, bottom=73pt, inner=54pt, outer=54pt,
523 marginparwidth=2pc,heightrounded
524 }%
525 \or % sigchi-a
526 \geometry{twoside=false, head=13pt,
527 paperwidth=11in, paperheight=8.5in,
528 includeheadfoot, marginparsep=72pt,
529 marginparwidth=170pt, columnsep=20pt,
530 top=72pt, bottom=72pt, left=314pt, right=72pt
531 }%
532 \@mparswitchfalse
533 \reversemarginpar
534 \fi
\parindent
\parskip
Paragraphing
535 \setlength\parindent{10\p@}
40
536 \setlength\parskip{\z@}
537 \ifcase\ACM@format@nr
538 \relax % manuscript
539 \or % acmsmall
540 \or % acmlarge
541 \or % acmtog
542 \setlength\parindent{9\p@}%
543 \or % sigconf
544 \or % siggraph
545 \or % sigplan
546 \or % sigchi
547 \or % sigchi-a
548 \fi
\normalparindent amsart denes the \normalparindent length and initializes it to 12pt (the value of
\parindent in amsart). It is later used to set the \listparindent length in the
quotation environment and the \parindent length in the \@footnotetext command.
We set \normalparindent to the value of \parindent as selected by acmart for con-
sistent paragraph indents.
549 \setlength\normalparindent{\parindent}
Footnotes require some consideration. We have several layers of footnotes: front-
maer footnotes, “regular” footnotes and the special insert for bibstrip. In the old ACM
classes bibstrip was a \@float. e problem with oats is that they tend to, well, oat—
and we want the guarantee they stay.
We use manyfoot for layered footnotes instead.
\copyrightpermissionfootnoterule is is the footnote rule that separates bibstrip from the rest of the paper. It is a full
width rule.
550 \def\copyrightpermissionfootnoterule{\kern-3\p@
551 \hrule \@width \columnwidth \kern 2.6\p@}
552 \RequirePackage{manyfoot}
553 \SelectFootnoteRule[2]{copyrightpermission}
554 \DeclareNewFootnote{authorsaddresses}
555 \SelectFootnoteRule[2]{copyrightpermission}
556 \DeclareNewFootnote{copyrightpermission}
\footnoterule Tschichold’s rules:
557 \def\footnoterule{\kern-3\p@
558 \hrule \@width 4pc \kern 2.6\p@}
\endminipage We do not use footnote rules in minipages
559 \def\endminipage{%
560 \par
561 \unskip
562 \ifvoid\@mpfootins\else
563 \vskip\skip\@mpfootins
564 \normalcolor
41
565 \unvbox\@mpfootins
566 \fi
567 \@minipagefalse %% added 24 May 89
568 \color@endgroup
569 \egroup
570 \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
\@makefntext We do note use indentation for footnotes
571 \def\@makefntext{\noindent\@makefnmark}
\@footnotetext In sigchi-a mode our footnotes are on the margins!
572 \if@ACM@sigchiamode
573 \long\def\@footnotetext#1{\marginpar{%
574 \reset@font\small
575 \interlinepenalty\interfootnotelinepenalty
576 \protected@edef\@currentlabel{%
577 \csname p@footnote\endcsname\@thefnmark
578 }%
579 \color@begingroup
580 \@makefntext{%
581 \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
582 \color@endgroup}}%
583 \fi
\@mpfootnotetext We want the footnotes in minipages centered:
584 \long\def\@mpfootnotetext#1{%
585 \global\setbox\@mpfootins\vbox{%
586 \unvbox\@mpfootins
587 \reset@font\footnotesize
588 \hsize\columnwidth
589 \@parboxrestore
590 \protected@edef\@currentlabel
591 {\csname p@mpfootnote\endcsname\@thefnmark}%
592 \color@begingroup\centering
593 \@makefntext{%
594 \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
595 \color@endgroup}}
\@makefnmark AMS classes use a buggy denition of \makefnmark. We revert to the standard one.
596 \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
\@textbottom Added some stretch according to David Carlisle’s advice at hp://tex.stackexchange.com/a/62318/5522
597 \def\@textbottom{\vskip \z@ \@plus 1pt}
598 \let\@texttop\relax
3.7 Fonts
Somehow PDFTeX and XeTeX require dierent incantations to make PDF compliant
with the current Acrobat bugs. Xpdf is much beer.
42
e code below is by Ross Moore.
599 \RequirePackage{iftex}
600 \ifPDFTeX
601 \input{glyphtounicode}
602 \pdfglyphtounicode{f_f}{FB00}
603 \pdfglyphtounicode{f_f_i}{FB03}
604 \pdfglyphtounicode{f_f_l}{FB04}
605 \pdfglyphtounicode{f_i}{FB01}
606 \pdfglyphtounicode{t_t}{00740074}
607 \pdfglyphtounicode{f_t}{00660074}
608 \pdfglyphtounicode{T_h}{00540068}
609 \pdfgentounicode=1
610 \fi
611 \RequirePackage{cmap}
\if@ACM@newfonts Whether we load the new fonts
612 \newif\if@ACM@newfonts
613 \@ACM@newfontstrue
614 \IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
615 have libertine package installed. Please upgrade your
616 TeX}\@ACM@newfontsfalse}
617 \IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
618 have zi4 package installed. Please upgrade your TeX}\@ACM@newfontsfalse}
619 \IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
620 have newtxmath package installed. Please upgrade your
621 TeX}\@ACM@newfontsfalse}
We use Libertine throughout.
622 \if@ACM@newfonts
623 \RequirePackage[tt=false, type1=true]{libertine}
624 \RequirePackage[varqu]{zi4}
625 \RequirePackage[libertine]{newtxmath}
626 \RequirePackage[T1]{fontenc}
627 \fi
\liningnums Libertine denes \liningnums, which makes fontspec unhappy. While we do not use
fontspec, some users do. ..
628 \let\liningnums\@undefined
629 \AtEndPreamble{%
630 \DeclareTextFontCommand{\liningnums}{\libertineLF}}
e SIGCHI extended abstracts are sans serif:
631 \if@ACM@sigchiamode
632 \renewcommand{\familydefault}{\sfdefault}
633 \fi
3.8 Floats
We use caption package
43
634 \RequirePackage{caption, float}
635 \captionsetup[table]{position=top}
636 \if@ACM@journal
637 \captionsetup{labelfont={sf, small},
638 textfont={sf, small}, margin=\z@}
639 \captionsetup[figure]{name={Fig.}}
640 \else
641 \captionsetup{labelfont={bf},
642 textfont={bf}, labelsep=colon, margin=\z@}
643 \ifcase\ACM@format@nr
644 \relax % manuscript
645 \or % acmsmall
646 \or % acmlarge
647 \or % acmtog
648 \or % sigconf
649 \or % siggraph
650 \captionsetup{textfont={it}}
651 \or % sigplan
652 \captionsetup{labelfont={bf},
653 textfont={normalfont}, labelsep=period, margin=\z@}
654 \or % sigchi
655 \captionsetup[figure]{labelfont={bf, small},
656 textfont={bf, small}}
657 \or % sigchi-a
658 \captionsetup[figure]{labelfont={bf, small},
659 textfont={bf, small}}
660 \fi
661 \fi
sidebar e sidebar environment:
662 \newfloat{sidebar}{}{sbar}
663 \floatname{sidebar}{Sidebar}
664 \renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
\@sidebar e processing of the saved text
665 \long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}%
666 \marginpar{\small#1}\egroup}
marginfigure e margingure environment:
667 \newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
\@marginfigure e processing of the saved text
668 \long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}%
669 \marginpar{\centering\small#1}\egroup}
margintable e margintable environment:
670 \newenvironment{margintable}{\Collect@Body\@margintable}{}
44
\@margintable e processing of the saved text
671 \long\def\@margintable#1{\bgroup\captionsetup{type=table}%
672 \marginpar{\centering\small#1}\egroup}
SIGCHI extended abstract provides an interesting possibility to push into the margin.
Here we use figure* and table* for this.
\fulltextwidth We dene the width of the boxes as
673 \newdimen\fulltextwidth
674 \fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
\@dblfloat We redene the double oat command. First, we make the size bigger. Second, our
default position is going to be tp (to give marginalia a chance)
675 \if@ACM@sigchiamode
676 \def\@dblfloat{\bgroup\columnwidth=\fulltextwidth
677 \let\@endfloatbox\@endwidefloatbox
678 \def\@fpsadddefault{\def\@fps{tp}}%
679 \@float}
680 \fi
\end@dblfloat And the end. Just adding a \bgroup.
681 \if@ACM@sigchiamode
682 \def\end@dblfloat{%
683 \end@float\egroup}
684 \fi
\@endwidefloatbox is is the end of a wide box - we basically move everything to the le
685 \def\@endwidefloatbox{%
686 \par\vskip\z@skip
687 \@minipagefalse
688 \outer@nobreak
689 \egroup
690 \color@endbox
691 \global\setbox\@currbox=\vbox{\moveleft
692 \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
693 \wd\@currbox=\textwidth
694 }
3.9 Lists
695 \ifcase\ACM@format@nr
696 \relax % manuscript
697 \or % acmsmall
698 \or % acmlarge
699 \or % acmtog
700 \or % sigconf
701 \or % siggraph
702 \or % sigplan
703 \def\labelenumi{\theenumi.}
45
704 \def\labelenumii{\theenumii.}
705 \def\labelenumiii{\theenumiii.}
706 \def\labelenumiv{\theenumiv.}
707 \or % sigchi
708 \or % sigchi-a
709 \fi
AMS uses generous margins for the lists. Note that amsart denes \leftmargin val-
ues for list levels at begin document, so we must redene them in the same manner. Also,
note that amsart redenes enumerate and itemize environments with a \makelabel
command that uses \llap, so the \labelwidth value is (eectively) irrelevant; nonethe-
less, we follow amsart and set \labelwidth to \leftmargin minus \labelsep.
710 \newdimen\@ACM@labelwidth
711 \AtBeginDocument{%
712 \setlength\labelsep{4pt}
713 \setlength{\@ACM@labelwidth}{6.5pt}
714
715 %% First-level list: when beginning after the first line of an
716 %% indented paragraph or ending before an indented paragraph, labels
717 %% should not hang to the left of the preceding/following text.
718 \setlength\leftmargini{\z@}
719 \addtolength\leftmargini{\parindent}
720 \addtolength\leftmargini{2\labelsep}
721 \addtolength\leftmargini{\@ACM@labelwidth}
722
723 %% Second-level and higher lists.
724 \setlength\leftmarginii{\z@}
725 \addtolength\leftmarginii{0.5\labelsep}
726 \addtolength\leftmarginii{\@ACM@labelwidth}
727 \setlength\leftmarginiii{\leftmarginii}
728 \setlength\leftmarginiv{\leftmarginiii}
729 \setlength\leftmarginv{\leftmarginiv}
730 \setlength\leftmarginvi{\leftmarginv}
731 \@listi}
732 \newskip\listisep
733 \listisep\smallskipamount
734 \def\@listI{\leftmargin\leftmargini
735 \labelwidth\leftmargini \advance\labelwidth-\labelsep
736 \listparindent\z@
737 \topsep\listisep}
738 \let\@listi\@listI
739 \def\@listii{\leftmargin\leftmarginii
740 \labelwidth\leftmarginii \advance\labelwidth-\labelsep
741 \topsep\z@skip}
742 \def\@listiii{\leftmargin\leftmarginiii
743 \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
744 \def\@listiv{\leftmargin\leftmarginiv
745 \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
746 \def\@listv{\leftmargin\leftmarginv
747 \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
46
748 \def\@listvi{\leftmargin\leftmarginvi
749 \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
\descriptionlabel We do not use default colon as \amsart does:
750 \renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1}
\description Make description environment indentation consistent with that of itemize and
enumerate environments.
751 \renewenvironment{description}{\list{}{%
752 \labelwidth\@ACM@labelwidth
753 \let\makelabel\descriptionlabel}%
754 }{
755 \endlist
756 }
757 \let\enddescription=\endlist % for efficiency
3.10 Top matter data
We use keyval interface to dene journal title and relevant information
758 \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
759 CIE,%
760 CSUR,%
761 IMWUT,%
762 JACM,%
763 JDIQ,%
764 JEA,%
765 JERIC,%
766 JETC,%
767 JOCCH,%
768 PACMHCI,%
769 PACMPL,%
770 POMACS,%
771 TAAS,%
772 TACCESS,%
773 TACO,%
774 TALG,%
775 TALLIP,%
776 TAP,%
777 TCPS,%
778 TEAC,%
779 TECS,%
780 THRI,%
781 TIIS,%
782 TISSEC,%
783 TIST,%
784 TKDD,%
785 TMIS,%
786 TOCE,%
787 TOCHI,%
47
788 TOCL,%
789 TOCS,%
790 TOCT,%
791 TODAES,%
792 TODS,%
793 TOG,%
794 TOIS,%
795 TOIT,%
796 TOMACS,%
797 TOMM,%
798 TOMPECS,%
799 TOMS,%
800 TOPC,%
801 TOPS,%
802 TOPLAS,%
803 TOS,%
804 TOSEM,%
805 TOSN,%
806 TRETS,%
807 TSAS,%
808 TSC,%
809 TSLP,%
810 TWEB%
811 }{%
812 \ifcase\@journalCode@nr
813 \relax % CIE
814 \def\@journalName{ACM Computers in Entertainment}%
815 \def\@journalNameShort{ACM Comput. Entertain.}%
816 \def\@permissionCodeOne{1544-3574}%
817 \or % CSUR
818 \def\@journalName{ACM Computing Surveys}%
819 \def\@journalNameShort{ACM Comput. Surv.}%
820 \def\@permissionCodeOne{0360-0300}%
821 \or % IMWUT
822 \def\@journalName{Proceedings of the ACM on Interactive, Mobile,
823 Wearable and Ubiquitous Technologies}%
824 \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}%
825 \def\@permissionCodeOne{2474-9567}%
826 \@ACM@screentrue
827 \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
828 \or % JACM
829 \def\@journalName{Journal of the ACM}%
830 \def\@journalNameShort{J. ACM}%
831 \def\@permissionCodeOne{0004-5411}%
832 \or % JDIQ
833 \def\@journalName{ACM Journal of Data and Information Quality}%
834 \def\@journalNameShort{ACM J. Data Inform. Quality}%
835 \def\@permissionCodeOne{1936-1955}%
836 \or % JEA
837 \def\@journalName{ACM Journal of Experimental Algorithmics}%
48
838 \def\@journalNameShort{ACM J. Exp. Algor.}%
839 \def\@permissionCodeOne{1084-6654}%
840 \or % JERIC
841 \def\@journalName{ACM Journal of Educational Resources in Computing}%
842 \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
843 \def\@permissionCodeOne{1073-0516}%
844 \or % JETC
845 \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
846 \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
847 \def\@permissionCodeOne{1550-4832}%
848 \or % JOCCH
849 \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
850 \def\@journalName{ACM J. Comput. Cult. Herit.}%
851 \or % PACMHCI
852 \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}%
853 \def\@journalName{Proc. ACM Hum.-Comput. Interact.}%
854 \def\@permissionCodeOne{2573-0142}%
855 \@ACM@screentrue
856 \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
857 \or % PACMPL
858 \def\@journalName{Proceedings of the ACM on Programming Languages}%
859 \def\@journalName{Proc. ACM Program. Lang.}%
860 \def\@permissionCodeOne{2475-1421}%
861 \@ACM@screentrue
862 \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
863 \or % POMACS
864 \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
865 \def\@journalName{Proc. ACM Meas. Anal. Comput. Syst.}%
866 \def\@permissionCodeOne{2476-1249}%
867 \@ACM@screentrue
868 \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
869 \or % TAAS
870 \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
871 \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
872 \def\@permissionCodeOne{1556-4665}%
873 \or % TACCESS
874 \def\@journalName{ACM Transactions on Accessible Computing}%
875 \def\@journalNameShort{ACM Trans. Access. Comput.}%
876 \def\@permissionCodeOne{1936-7228}%
877 \or % TACO
878 \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
879 \or % TALG
880 \def\@journalName{ACM Transactions on Algorithms}%
881 \def\@journalNameShort{ACM Trans. Algor.}%
882 \def\@permissionCodeOne{1549-6325}%
883 \or % TALLIP
884 \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}%
885 \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}%
886 \def\@permissionCodeOne{2375-4699}%
887 \or % TAP
49
888 \def\@journalName{ACM Transactions on Applied Perception}%
889 \or % TCPS
890 \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
891 \or % TEAC
892 \def\@journalName{ACM Transactions on Economics and Computation}%
893 \or % TECS
894 \def\@journalName{ACM Transactions on Embedded Computing Systems}%
895 \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
896 \def\@permissionCodeOne{1539-9087}%
897 \or % THRI
898 \def\@journalName{ACM Transactions on Human-Robot Interaction}%
899 \def\@journalNameShort{ACM Trans. Hum.-Robot Interact.}%
900 \def\@permissionCodeOne{2573-9522}%
901 \or % TIIS
902 \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
903 \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
904 \def\@permissionCodeOne{2160-6455}%
905 \or % TISSEC
906 \def\@journalName{ACM Transactions on Information and System Security}%
907 \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
908 \def\@permissionCodeOne{1094-9224}%
909 \or % TIST
910 \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
911 \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
912 \def\@permissionCodeOne{2157-6904}%
913 \or % TKDD
914 \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
915 \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
916 \def\@permissionCodeOne{1556-4681}%
917 \or % TMIS
918 \def\@journalName{ACM Transactions on Management Information Systems}%
919 \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
920 \def\@permissionCodeOne{2158-656X}%
921 \or % TOCE
922 \def\@journalName{ACM Transactions on Computing Education}%
923 \def\@journalNameShort{ACM Trans. Comput. Educ.}%
924 \def\@permissionCodeOne{1946-6226}%
925 \or % TOCHI
926 \def\@journalName{ACM Transactions on Computer-Human Interaction}%
927 \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
928 \def\@permissionCodeOne{1073-0516}%
929 \or % TOCL
930 \def\@journalName{ACM Transactions on Computational Logic}%
931 \def\@journalNameShort{ACM Trans. Comput. Logic}%
932 \def\@permissionCodeOne{1529-3785}%
933 \or % TOCS
934 \def\@journalName{ACM Transactions on Computer Systems}%
935 \def\@journalNameShort{ACM Trans. Comput. Syst.}%
936 \def\@permissionCodeOne{0734-2071}%
937 \or % TOCT
50
938 \def\@journalName{ACM Transactions on Computation Theory}%
939 \def\@journalNameShort{ACM Trans. Comput. Theory}%
940 \def\@permissionCodeOne{1942-3454}%
941 \or % TODAES
942 \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
943 \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
944 \def\@permissionCodeOne{1084-4309}%
945 \or % TODS
946 \def\@journalName{ACM Transactions on Database Systems}%
947 \def\@journalNameShort{ACM Trans. Datab. Syst.}%
948 \def\@permissionCodeOne{0362-5915}%
949 \or % TOG
950 \def\@journalName{ACM Transactions on Graphics}%
951 \def\@journalNameShort{ACM Trans. Graph.}%
952 \def\@permissionCodeOne{0730-0301}
953 \or % TOIS
954 \def\@journalName{ACM Transactions on Information Systems}%
955 \def\@journalName{ACM Transactions on Information Systems}%
956 \def\@permissionCodeOne{1046-8188}%
957 \or % TOIT
958 \def\@journalName{ACM Transactions on Internet Technology}%
959 \def\@journalNameShort{ACM Trans. Internet Technol.}%
960 \def\@permissionCodeOne{1533-5399}%
961 \or % TOMACS
962 \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
963 \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
964 \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
965 \or % TOMM
966 \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
967 \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
968 \def\@permissionCodeOne{1551-6857}%
969 \def\@permissionCodeTwo{0100}%
970 \or % TOMPECS
971 \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}%
972 \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}%
973 \def\@permissionCodeOne{2376-3639}%
974 \or % TOMS
975 \def\@journalName{ACM Transactions on Mathematical Software}%
976 \def\@journalNameShort{ACM Trans. Math. Softw.}%
977 \def\@permissionCodeOne{0098-3500}%
978 \or % TOPC
979 \def\@journalName{ACM Transactions on Parallel Computing}%
980 \def\@journalNameShort{ACM Trans. Parallel Comput.}%
981 \def\@permissionCodeOne{1539-9087}%
982 \or % TOPS
983 \def\@journalName{ACM Transactions on Privacy and Security}%
984 \def\@journalNameShort{ACM Trans. Priv. Sec.}%
985 \def\@permissionCodeOne{2471-2566}%
986 \or % TOPLAS
987 \def\@journalName{ACM Transactions on Programming Languages and Systems}%
51
988 \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
989 \def\@permissionCodeOne{0164-0925}%
990 \or % TOS
991 \def\@journalName{ACM Transactions on Storage}%
992 \def\@journalNameShort{ACM Trans. Storage}%
993 \def\@permissionCodeOne{1553-3077}%
994 \or % TOSEM
995 \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
996 \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
997 \def\@permissionCodeOne{1049-331X}%
998 \or % TOSN
999 \def\@journalName{ACM Transactions on Sensor Networks}%
1000 \def\@journalNameShort{ACM Trans. Sensor Netw.}%
1001 \def\@permissionCodeOne{1550-4859}%
1002 \or % TRETS
1003 \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
1004 \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
1005 \def\@permissionCodeOne{1936-7406}%
1006 \or % TSAS
1007 \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
1008 \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
1009 \def\@permissionCodeOne{2374-0353}%
1010 \or % TSC
1011 \def\@journalName{ACM Transactions on Social Computing}%
1012 \def\@journalNameShort{ACM Trans. Soc. Comput.}%
1013 \def\@permissionCodeOne{2469-7818}%
1014 \or % TSLP
1015 \def\@journalName{ACM Transactions on Speech and Language Processing}%
1016 \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
1017 \def\@permissionCodeOne{1550-4875}%
1018 \or % TWEB
1019 \def\@journalName{ACM Transactions on the Web}%
1020 \def\@journalNameShort{ACM Trans. Web}%
1021 \def\@permissionCodeOne{1559-1131}%
1022 \fi
1023 \ClassInfo{\@classname}{Using journal code \@journalCode}%
1024 }{%
1025 \ClassError{\@classname}{Incorrect journal #1}%
1026 }%
\acmJournal And the syntactic sugar around it
1027 \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}}
e defaults:
1028 \def\@journalCode@nr{0}
1029 \def\@journalName{}%
1030 \def\@journalNameShort{\@journalName}%
1031 \def\@permissionCodeOne{XXXX-XXXX}%
1032 \def\@permissionCodeTwo{}%
52
\acmConference is is the conference command
1033 \newcommand\acmConference[4][]{%
1034 \gdef\acmConference@shortname{#1}%
1035 \gdef\acmConference@name{#2}%
1036 \gdef\acmConference@date{#3}%
1037 \gdef\acmConference@venue{#4}%
1038 \ifx\acmConference@shortname\@empty
1039 \gdef\acmConference@shortname{#2}%
1040 \fi}
1041 \acmConference[Conference’17]{ACM Conference}{July 2017}{Washington,
1042 DC, USA}
\acmBooktitle
\@acmBooktitle
e book title of the conference:
1043 \def\acmBooktitle#1{\gdef\@acmBooktitle{#1}}
1044 \acmBooktitle{Proceedings of \acmConference@name
1045 \ifx\acmConference@name\acmConference@shortname\else
1046 \ (\acmConference@shortname)\fi}
\@editorsAbbrev How to abbreviate editors
1047 \def\@editorsAbbrev{(Ed.)}
\@acmEditors e list of editors
\editor Add new editor to the list
1048 \def\editor#1{\ifx\@acmEditors\@empty
1049 \gdef\@acmEditors{#1}%
1050 \else
1051 \gdef\@editorsAbbrev{(Eds.)}%
1052 \g@addto@macro\@acmEditors{\and#1}%
1053 \fi}
\subtitle e subtitle macro
1054 \def\subtitle#1{\def\@subtitle{#1}}
1055 \subtitle{}
\num@authorgroups e total number of “groups”. Each group is several authors with the same aliations(s)
1056 \newcount\num@authorgroups
1057 \num@authorgroups=0\relax
\num@authors e total number of authors.
1058 \newcount\num@authors
1059 \num@authors=0\relax
\if@insideauthorgroup Whether we are continuing an author group @insideauthorgroup insideauthorgroup-
false
\author Adding an author to the list of authors and addresses
1060 \renewcommand\author[2][]{%
1061 \global\advance\num@authors by 1\relax
53
1062 \if@insideauthorgroup\else
1063 \global\advance\num@authorgroups by 1\relax
1064 \global\@insideauthorgrouptrue
1065 \fi
1066 \ifx\addresses\@empty
1067 \if@ACM@anonymous
1068 \gdef\addresses{\@author{Anonymous Author(s)}}%
1069 \gdef\authors{Anonymous Author(s)}%
1070 \else
1071 \gdef\addresses{\@author{#2}}%
1072 \gdef\authors{#2}%
1073 \fi
1074 \else
1075 \if@ACM@anonymous\else
1076 \g@addto@macro\addresses{\and\@author{#2}}%
1077 \g@addto@macro\authors{\and#2}%
1078 \fi
1079 \fi
1080 \if@ACM@anonymous
1081 \ifx\shortauthors\@empty
1082 \gdef\shortauthors{Anon.}%
1083 \fi
1084 \else
1085 \def\@tempa{#1}%
1086 \ifx\@tempa\@empty
1087 \ifx\shortauthors\@empty
1088 \gdef\shortauthors{#2}%
1089 \else
1090 \g@addto@macro\shortauthors{\and#2}%
1091 \fi
1092 \else
1093 \ifx\shortauthors\@empty
1094 \gdef\shortauthors{#1}%
1095 \else
1096 \g@addto@macro\shortauthors{\and#1}%
1097 \fi
1098 \fi
1099 \fi}
\affiliation e macro \affiliation mimics \address from amsart. Note that it has an optional
argument, which we use dierently from amsart.
1100 \newcommand{\affiliation}[2][]{%
1101 \global\@insideauthorgroupfalse
1102 \if@ACM@anonymous\else
1103 \g@addto@macro\addresses{\affiliation{#1}{#2}}%
1104 \fi}
\if@ACM@affiliation@obeypunctuation Whether to use author’s punctuation (by default false = add American punctuation)
1105 \define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
1106 [true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}}
54
\additionalaffiliation Additional aliations go to footnotes
1107 \def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
\@additionalaffiliation Process additionalaliation inside \authornote
1108 \def\@additionalaffiliation#1{\bgroup
1109 \def\position##1{\ignorespaces}%
1110 \def\institution##1{##1\ignorespaces}%
1111 \def\department{\@ifnextchar[{\@department}{\@department[]}}%
1112 \def\@department[##1]##2{\unskip, ##2\ignorespaces}%
1113 \let\streetaddress\position
1114 \let\city\position
1115 \let\state\position
1116 \let\postcode\position
1117 \let\country\position
1118 Also with #1\unskip.\egroup}
\email e macro \email mimics \email from amsart. Agian it has an optional argument we
do not currently need, but keep for the possible future use.
1119 \renewcommand{\email}[2][]{%
1120 \if@ACM@anonymous\else
1121 \g@addto@macro\addresses{\email{#1}{#2}}%
1122 \fi}
\orcid Right now we do not typeset orcids
\authorsaddresses Seing up authors’ addresses
\@titlenotes e titlenotes
1123 \def\@titlenotes{}
\titlenote Adding note to the title
1124 \def\titlenote#1{%
1125 \g@addto@macro\@title{\footnotemark}%
1126 \if@ACM@anonymous
1127 \g@addto@macro\@titlenotes{%
1128 \stepcounter{footnote}\footnotetext{Title note}}%
1129 \else
1130 \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
1131 \fi}
\@subtitlenotes e subtitlenotes
1132 \def\@subtitlenotes{}
\subtitlenote Adding note to the subtitle
1133 \def\subtitlenote#1{%
1134 \g@addto@macro\@subtitle{\footnotemark}%
1135 \if@ACM@anonymous
1136 \g@addto@macro\@subtitlenotes{%
1137 \stepcounter{footnote}\footnotetext{Subtitle note}}%
55
1138 \else
1139 \g@addto@macro\@subtitlenotes{%
1140 \stepcounter{footnote}\footnotetext{#1}}%
1141 \fi}
\@authornotes e authornotes
1142 \def\@authornotes{}
\authornote Adding note to the author
1143 \def\authornote#1{%
1144 \if@ACM@anonymous\else
1145 \g@addto@macro\addresses{\@authornotemark}%
1146 \g@addto@macro\@authornotes{%
1147 \stepcounter{footnote}\footnotetext{#1}}%
1148 \fi}
\authornotemark Adding footnotemark to authors
1149 \newcommand\authornotemark[1][\relax]{%
1150 \ifx#1\relax\relax\relax
1151 \g@addto@macro\addresses{\@authornotemark}%
1152 \else
1153 \g@addto@macro\addresses{\@@authornotemark{#1}}%
1154 \fi}
\acmVolume e current volume
1155 \def\acmVolume#1{\def\@acmVolume{#1}}
1156 \acmVolume{1}
\acmNumber e current number
1157 \def\acmNumber#1{\def\@acmNumber{#1}}
1158 \acmNumber{1}
\acmArticle e current article
1159 \def\acmArticle#1{\def\@acmArticle{#1}}
1160 \acmArticle{}
\acmArticleSeq e sequence number
1161 \def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
1162 \acmArticleSeq{\@acmArticle}
\acmYear e current year
1163 \def\acmYear#1{\def\@acmYear{#1}}
1164 \acmYear{\the\year}
\acmMonth e current month
1165 \def\acmMonth#1{\def\@acmMonth{#1}}
1166 \acmMonth{\the\month}
56
\@acmPubDate e publication date
1167 \def\@acmPubDate{\ifcase\@acmMonth\or
1168 January\or February\or March\or April\or May\or June\or
1169 July\or August\or September\or October\or November\or
1170 December\fi˜\@acmYear}
\acmPrice e price
1171 \def\acmPrice#1{\def\@acmPrice{#1}}
1172 \acmPrice{15.00}
\acmSubmissionID e submission id
1173 \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}}
1174 \acmSubmissionID{}
\acmISBN e book isbn
1175 \def\acmISBN#1{\def\@acmISBN{#1}}
1176 \acmISBN{978-x-xxxx-xxxx-x/YY/MM}
\acmDOI e paper doi
1177 \def\acmDOI#1{\def\@acmDOI{#1}}
1178 \acmDOI{10.1145/nnnnnnn.nnnnnnn}
\if@ACM@badge Whether to print badge. Note that either le or right badge triggers it:
1179 \newif\if@ACM@badge
1180 \@ACM@badgefalse
\@ACM@badge@width e width of the badge
1181 \newlength\@ACM@badge@width
1182 \setlength\@ACM@badge@width{5pc}
\@ACM@title@width e width of the badge
1183 \newlength\@ACM@title@width
\@ACM@badge@skip e space between the badge and the title
1184 \newlength\@ACM@badge@skip
1185 \setlength\@ACM@badge@skip{1pc}
\acmBadgeR Seing the right badge
1186 \newcommand\acmBadgeR[2][]{\@ACM@badgetrue
1187 \def\@acmBadgeR@url{#1}%
1188 \def\@acmBadgeR@image{#2}}
1189 \def\@acmBadgeR@url{}
1190 \def\@acmBadgeR@image{}
\acmBadgeL Seing the le badge
1191 \newcommand\acmBadgeL[2][]{\@ACM@badgetrue
1192 \def\@acmBadgeL@url{#1}%
1193 \def\@acmBadgeL@image{#2}}
1194 \def\@acmBadgeL@url{}
1195 \def\@acmBadgeL@image{}
57
\startPage e start page of the paper
1196 \def\startPage#1{\def\@startPage{#1}}
1197 \startPage{}
\terms Terms are obsolete, we use CCS now.
1198 \def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is
1199 obsolete. I am going to ignore it}}
\keywords Keywords are mostly obsolete, we use CCS now. Still it makes sense to keep them for
compatibility.
1200 \def\keywords#1{\def\@keywords{#1}}
1201 \keywords{}
abstract Amsart puts abstract in the box. Since we do not know whether we will use two
column mode, we prefer to save the text
1202 \renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
\@saveabstract And saving the abstract
1203 \long\def\@saveabstract#1{\long\gdef\@abstract{#1}}
1204 \@saveabstract{}
\@lempty e long version of \@empty (to compare with \@abstract)
1205 \long\def\@lempty{}
\if@ACM@printccs Whether to print CCS
1206 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{%
1207 \if@ACM@printccs
1208 \ClassInfo{\@classname}{Printing CCS}%
1209 \else
1210 \ClassInfo{\@classname}{Suppressing CCS}%
1211 \fi}{\ClassError{\@classname}{printccs must be true or false}}
\if@ACM@printacmref Whether to print ACM bib
1212 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
1213 \if@ACM@printacmref
1214 \ClassInfo{\@classname}{Printing bibformat}%
1215 \else
1216 \ClassInfo{\@classname}{Suppressing bibformat}%
1217 \fi}{\ClassError{\@classname}{printacmref must be true or false}}
\if@ACM@printfolios Whether to print folios
1218 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
1219 \if@ACM@printfolios
1220 \ClassInfo{\@classname}{Printing folios}%
1221 \else
1222 \ClassInfo{\@classname}{Suppressing folios}%
1223 \fi}{\ClassError{\@classname}{printfolios must be true or false}}
58
\@ACM@authorsperrow e number of authors per row. 0 means use default algorithm.
1224 \define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{%
1225 \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to
1226 #1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be
1227 numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}}
\settopmatter e usual syntactic sugar
1228 \def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
Now the seings
1229 \settopmatter{printccs=true, printacmref=true}
1230 \if@ACM@manuscript
1231 \settopmatter{printfolios=true}
1232 \else
1233 \if@ACM@journal
1234 \settopmatter{printfolios=true}
1235 \else
1236 \settopmatter{printfolios=false}
1237 \fi
1238 \fi
1239 \settopmatter{authorsperrow=0}
\@received e container for the paper history
1240 \def\@received{}
\received e \received command
1241 \newcommand\received[2][]{\def\@tempa{#1}%
1242 \ifx\@tempa\@empty
1243 \ifx\@received\@empty
1244 \gdef\@received{Received #2}%
1245 \else
1246 \g@addto@macro{\@received}{; revised #2}%
1247 \fi
1248 \else
1249 \ifx\@received\@empty
1250 \gdef\@received{#1 #2}%
1251 \else
1252 \g@addto@macro{\@received}{; #1 #2}%
1253 \fi
1254 \fi}
1255 \AtEndDocument{%
1256 \ifx\@received\@empty\else
1257 \par\bigskip\noindent\small\normalfont\@received\par
1258 \fi}
3.11 Concepts system
We exclude CCSXML stu generated by the ACM system:
59
1259 \RequirePackage{comment}
1260 \excludecomment{CCSXML}
\@concepts is is the storage macro for concepts
1261 \let\@concepts\@empty
\ccsdesc e rst argument is the signicance, the second is the concept(s)
1262 \newcommand\ccsdesc[2][100]{%
1263 \ccsdesc@parse#1˜#2˜˜\ccsdesc@parse@end}
\ccsdesc@parse e parser of the expression Significance˜General˜Specific (we need textcomp for
\textrightarrow). Note that Specific can be empty!
1264 \RequirePackage{textcomp}
1265 \def\ccsdesc@parse#1˜#2˜#3˜{%
1266 \expandafter\ifx\csname CCS@General@#2\endcsname\relax
1267 \expandafter\gdef\csname CCS@General@#2\endcsname{\textbullet\
1268 \textbf{#2}}%
1269 \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{; }%
1270 \expandafter\gdef\csname CCS@Specific@#2\endcsname{}%
1271 \g@addto@macro{\@concepts}{\csname CCS@General@#2\endcsname
1272 \csname CCS@Punctuation@#2\endcsname
1273 \csname CCS@Specific@#2\endcsname}%
1274 \fi
1275 \ifx#3\relax\relax\else
1276 \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{
1277 \textrightarrow\ }%
1278 \expandafter\g@addto@macro\expandafter{\csname CCS@Specific@#2\endcsname}{%
1279 \ifnum#1>499\textbf{#3}; \else
1280 \ifnum#1>299\textit{#3}; \else
1281 #3; \fi\fi}%
1282 \fi
1283 \ccsdesc@parse@finish}
\ccdesc@parse@finish Gobble everything to \ccsdesc@parse@end
1284 \def\ccsdesc@parse@finish#1\ccsdesc@parse@end{}
3.12 Copyright system
is is from acmcopyright.sty
\if@printcopyright A ag whether to print copyright symbol
1285 \newif\if@printcopyright
1286 \@printcopyrighttrue
\if@printpermission Whether to print permission block
1287 \newif\if@printpermission
1288 \@printpermissiontrue
60
\if@acmowned Whether ACM ownes the rights to the paper
1289 \newif\if@acmowned
1290 \@acmownedtrue
Keys:
1291 \define@choicekey*{ACM@}{acmcopyrightmode}[%
1292 \acm@copyrightinput\acm@copyrightmode]{none,%
1293 acmcopyright,acmlicensed,rightsretained,%
1294 usgov,usgovmixed,cagov,cagovmixed,%
1295 licensedusgovmixed,%
1296 licensedcagov,licensedcagovmixed,othergov,licensedothergov}{%
1297 \@printpermissiontrue
1298 \@printcopyrighttrue
1299 \@acmownedtrue
1300 \ifnum\acm@copyrightmode=0\relax % none
1301 \@printpermissionfalse
1302 \@printcopyrightfalse
1303 \@acmownedfalse
1304 \fi
1305 \ifnum\acm@copyrightmode=2\relax % acmlicensed
1306 \@acmownedfalse
1307 \fi
1308 \ifnum\acm@copyrightmode=3\relax % rightsretained
1309 \@acmownedfalse
1310 \acmPrice{}%
1311 \fi
1312 \ifnum\acm@copyrightmode=4\relax % usgov
1313 \@printpermissiontrue
1314 \@printcopyrightfalse
1315 \@acmownedfalse
1316 \acmPrice{}%
1317 \fi
1318 \ifnum\acm@copyrightmode=6\relax % cagov
1319 \@acmownedfalse
1320 \fi
1321 \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
1322 \@acmownedfalse
1323 \fi
1324 \ifnum\acm@copyrightmode=9\relax % licensedcagov
1325 \@acmownedfalse
1326 \fi
1327 \ifnum\acm@copyrightmode=10\relax % licensedcagovmixed
1328 \@acmownedfalse
1329 \fi
1330 \ifnum\acm@copyrightmode=11\relax % othergov
1331 \@acmownedtrue
1332 \fi
1333 \ifnum\acm@copyrightmode=12\relax % licensedothergov
1334 \@acmownedfalse
1335 \fi}
61
\setcopyright is is the syntactic sugar around seing keys.
1336 \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
1337 \setcopyright{acmcopyright}
\@copyrightowner Here is the owner of the copyright
1338 \def\@copyrightowner{%
1339 \ifcase\acm@copyrightmode\relax % none
1340 \or % acmcopyright
1341 Association for Computing Machinery.
1342 \or % acmlicensed
1343 Copyright held by the owner/author(s). Publication rights licensed to
1344 Association for Computing Machinery.
1345 \or % rightsretained
1346 Copyright held by the owner/author(s).
1347 \or % usgov
1348 \or % usgovmixed
1349 Association for Computing Machinery.
1350 \or % cagov
1351 Crown in Right of Canada.
1352 \or %cagovmixed
1353 Association for Computing Machinery.
1354 \or %licensedusgovmixed
1355 Copyright held by the owner/author(s). Publication rights licensed to
1356 Association for Computing Machinery.
1357 \or % licensedcagov
1358 Crown in Right of Canada. Publication rights licensed to
1359 Association for Computing Machinery.
1360 \or %licensedcagovmixed
1361 Copyright held by the owner/author(s). Publication rights licensed to
1362 Association for Computing Machinery.
1363 \or % othergov
1364 Association for Computing Machinery.
1365 \or % licensedothergov
1366 Copyright held by the owner/author(s). Publication rights licensed to
1367 Association for Computing Machinery.
1368 \fi}
\@formatdoi Print a clickable doi
1369 \def\@formatdoi#1{\url{https://doi.org/#1}}
\@copyrightpermission e canned permission block.
1370 \def\@copyrightpermission{%
1371 \ifcase\acm@copyrightmode\relax % none
1372 \or % acmcopyright
1373 Permission to make digital or hard copies of all or part of this
1374 work for personal or classroom use is granted without fee provided
1375 that copies are not made or distributed for profit or commercial
1376 advantage and that copies bear this notice and the full citation on
1377 the first page. Copyrights for components of this work owned by
62
1378 others than ACM must be honored. Abstracting with credit is
1379 permitted. To copy otherwise, or republish, to post on servers or to
1380 redistribute to lists, requires prior specific permission
1381 and\hspace*{.5pt}/or a fee. Request permissions from
1382 permissions@acm.org.
1383 \or % acmlicensed
1384 Permission to make digital or hard copies of all or part of this
1385 work for personal or classroom use is granted without fee provided
1386 that copies are not made or distributed for profit or commercial
1387 advantage and that copies bear this notice and the full citation on
1388 the first page. Copyrights for components of this work owned by
1389 others than the author(s) must be honored. Abstracting with credit
1390 is permitted. To copy otherwise, or republish, to post on servers
1391 or to redistribute to lists, requires prior specific permission
1392 and\hspace*{.5pt}/or a fee. Request permissions from
1393 permissions@acm.org.
1394 \or % rightsretained
1395 Permission to make digital or hard copies of part or all of this work
1396 for personal or classroom use is granted without fee provided that
1397 copies are not made or distributed for profit or commercial advantage
1398 and that copies bear this notice and the full citation on the first
1399 page. Copyrights for third-party components of this work must be
1400 honored. For all other uses, contact the
1401 owner\hspace*{.5pt}/author(s).
1402 \or % usgov
1403 This paper is authored by an employee(s) of the United States
1404 Government and is in the public domain. Non-exclusive copying or
1405 redistribution is allowed, provided that the article citation is
1406 given and the authors and agency are clearly identified as its
1407 source.
1408 \or % usgovmixed
1409 ACM acknowledges that this contribution was authored or co-authored
1410 by an employee, contractor, or affiliate of the United States government. As such,
1411 the United States government retains a nonexclusive, royalty-free right to
1412 publish or reproduce this article, or to allow others to do so, for
1413 government purposes only.
1414 \or % cagov
1415 This article was authored by employees of the Government of Canada.
1416 As such, the Canadian government retains all interest in the
1417 copyright to this work and grants to ACM a nonexclusive,
1418 royalty-free right to publish or reproduce this article, or to allow
1419 others to do so, provided that clear attribution is given both to
1420 the authors and the Canadian government agency employing them.
1421 Permission to make digital or hard copies for personal or classroom
1422 use is granted. Copies must bear this notice and the full citation
1423 on the first page. Copyrights for components of this work owned by
1424 others than the Canadian Government must be honored. To copy
1425 otherwise, distribute, republish, or post, requires prior specific
1426 permission and\hspace*{.5pt}/or a fee. Request permissions from
1427 permissions@acm.org.
63
1428 \or % cagovmixed
1429 ACM acknowledges that this contribution was co-authored by an
1430 affiliate of the national government of Canada. As such, the Crown
1431 in Right of Canada retains an equal interest in the copyright.
1432 Reprints must include clear attribution to ACM and the author’s
1433 government agency affiliation. Permission to make digital or hard
1434 copies for personal or classroom use is granted. Copies must bear
1435 this notice and the full citation on the first page. Copyrights for
1436 components of this work owned by others than ACM must be honored.
1437 To copy otherwise, distribute, republish, or post, requires prior
1438 specific permission and\hspace*{.5pt}/or a fee. Request permissions
1439 from permissions@acm.org.
1440 \or % licensedusgovmixed
1441 Publication rights licensed to ACM\@. ACM acknowledges that this
1442 contribution was authored or co-authored by an employee, contractor
1443 or affiliate of the United States government. As such, the
1444 Government retains a nonexclusive, royalty-free right to publish or
1445 reproduce this article, or to allow others to do so, for Government
1446 purposes only.
1447 \or % licensedcagov
1448 This article was authored by employees of the Government of Canada.
1449 As such, the Canadian government retains all interest in the
1450 copyright to this work and grants to ACM a nonexclusive,
1451 royalty-free right to publish or reproduce this article, or to allow
1452 others to do so, provided that clear attribution is given both to
1453 the authors and the Canadian government agency employing them.
1454 Permission to make digital or hard copies for personal or classroom
1455 use is granted. Copies must bear this notice and the full citation
1456 on the first page. Copyrights for components of this work owned by
1457 others than the Canadian Government must be honored. To copy
1458 otherwise, distribute, republish, or post, requires prior specific
1459 permission and\hspace*{.5pt}/or a fee. Request permissions from
1460 permissions@acm.org.
1461 \or % licensedcagovmixed
1462 Publication rights licensed to ACM\@. ACM acknowledges that this
1463 contribution was authored or co-authored by an employee, contractor
1464 or affiliate of the national government of Canada. As such, the
1465 Government retains a nonexclusive, royalty-free right to publish or
1466 reproduce this article, or to allow others to do so, for Government
1467 purposes only.
1468 \or % othergov
1469 ACM acknowledges that this contribution was authored or co-authored
1470 by an employee, contractor or affiliate of a national government. As
1471 such, the Government retains a nonexclusive, royalty-free right to
1472 publish or reproduce this article, or to allow others to do so, for
1473 Government purposes only.
1474 \or % licensedothergov
1475 Publication rights licensed to ACM\@. ACM acknowledges that this
1476 contribution was authored or co-authored by an employee, contractor
1477 or affiliate of a national government. As such, the Government
64
1478 retains a nonexclusive, royalty-free right to publish or reproduce
1479 this article, or to allow others to do so, for Government purposes
1480 only.
1481 \fi}
\copyrightyear By default, the copyright year is the same as \acmYear, but one can override this:
1482 \def\copyrightyear#1{\def\@copyrightyear{#1}}
1483 \copyrightyear{\@acmYear}
\@teaserfigures e teaser gures container
1484 \def\@teaserfigures{}
teaserfigure e teaser gure
1485 \newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
\@saveteaser Saving the teaser
1486 \long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
\thanks We redene amsart \thanks, so the anonymous key works
1487 \renewcommand{\thanks}[1]{%
1488 \@ifnotempty{#1}{%
1489 \if@ACM@anonymous
1490 \g@addto@macro\thankses{\thanks{A note}}%
1491 \else
1492 \g@addto@macro\thankses{\thanks{#1}}%
1493 \fi}}
3.13 Typesetting top matter
\mktitle@bx Some of our formats use two column design, some use one column one. In all cases
we use wide title. us we typeset the top maer in a special box to be use in the
construction \@twocolumn[hboxi].
1494 \newbox\mktitle@bx
\maketitle e (in)famous \maketitle. Note that in sigchi-a mode authors are not in the title box.
Another note: there is a subtle dierence between author notes, title notes and
thankses. e laer refer to the paper itself, and therefore belong to the copy-
right/permission block. By the way, this was the default behavior of the old ACM classes.
1495 \def\maketitle{%
1496 \if@ACM@anonymous
1497 % Anonymize omission of \author-s
1498 \ifnum\num@authorgroups=0\author{}\fi
1499 \fi
1500 \begingroup
1501 \let\@footnotemark\@footnotemark@nolink
1502 \let\@footnotetext\@footnotetext@nolink
1503 \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
1504 \global\@topnum\z@ % this prevents floats from falling
65
1505 % at the top of page 1
1506 \global\@botnum\z@ % we do not want them to be on bottom either
1507 \hsize=\textwidth
1508 \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
1509 \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
1510 \@printtopmatter
1511 \if@ACM@sigchiamode\@mkauthors\fi
1512 \setcounter{footnote}{0}%
1513 \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
1514 \@titlenotes
1515 \@subtitlenotes
1516 \@authornotes
1517 \let\@makefnmark\relax \let\@thefnmark\relax
1518 \let\@makefntext\noindent
1519 \ifx\@empty\thankses\else
1520 \footnotetextauthorsaddresses{%
1521 \def\par{\let\par\@par}\parindent\z@\@setthanks}%
1522 \fi
1523 \ifx\@empty\@authorsaddresses\else
1524 \if@ACM@anonymous\else
1525 \if@ACM@journal
1526 \footnotetextauthorsaddresses{%
1527 \def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}%
1528 \fi
1529 \fi
1530 \fi
1531 \footnotetextcopyrightpermission{%
1532 \if@ACM@authordraft
1533 \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
1534 Unpublished
1535 working draft. Not for distribution}}%
1536 \color[gray]{0.9}%
1537 \fi
1538 \parindent\z@\parskip0.1\baselineskip
1539 \if@ACM@authorversion\else
1540 \if@printpermission\@copyrightpermission\par\fi
1541 \fi
1542 \if@ACM@manuscript\else
1543 \if@ACM@journal\else % Print the conference information
1544 {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par
1545 \fi
1546 \fi
1547 \if@printcopyright
1548 \copyright\ \@copyrightyear\ \@copyrightowner\\
1549 \else
1550 \@copyrightyear.\
1551 \fi
1552 \if@ACM@manuscript
1553 Manuscript submitted to ACM\\
1554 \else
66
1555 \if@ACM@authorversion
1556 This is the author’s version of the work. It is posted here for
1557 your personal use. Not for redistribution. The definitive Version
1558 of Record was published in
1559 \if@ACM@journal
1560 \emph{\@journalName}%
1561 \else
1562 \emph{\@acmBooktitle}%
1563 \fi
1564 \ifx\@acmDOI\@empty
1565 .
1566 \else
1567 , \@formatdoi{\@acmDOI}.
1568 \fi\\
1569 \else
1570 \if@ACM@journal
1571 \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle
1572 \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\
1573 \@formatdoi{\@acmDOI}%
1574 \else % Conference
1575 \ifx\@acmISBN\@empty\else ACM˜ISBN˜\@acmISBN
1576 \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\\fi
1577 \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi%
1578 \fi
1579 \fi
1580 \fi}
1581 \endgroup
1582 \setcounter{footnote}{0}%
1583 \@mkabstract
1584 \if@ACM@printccs
1585 \ifx\@concepts\@empty\else\bgroup
1586 {\@specialsection{CCS Concepts}%
1587 \@concepts\par}\egroup
1588 \fi
1589 \fi
1590 \ifx\@keywords\@empty\else\bgroup
1591 {\if@ACM@journal
1592 \@specialsection{Additional Key Words and Phrases}%
1593 \else
1594 \@specialsection{Keywords}%
1595 \fi
1596 \@keywords}\par\egroup
1597 \fi
1598 \andify\authors
1599 \andify\shortauthors
1600 \global\let\authors=\authors
1601 \global\let\shortauthors=\shortauthors
1602 \if@ACM@printacmref
1603 \@mkbibcitation
1604 \fi
67
1605 \hypersetup{pdfauthor={\authors},
1606 pdftitle={\@title},
1607 pdfsubject={\@concepts},
1608 pdfkeywords={\@keywords}}%
1609 \@printendtopmatter
1610 \@afterindentfalse
1611 \@afterheading
1612 }
\@specialsection is macro starts section for proceedings and uses small for journals
1613 \def\@specialsection#1{%
1614 \ifcase\ACM@format@nr
1615 \relax % manuscript
1616 \par\medskip\small\noindent#1: %
1617 \or % acmsmall
1618 \par\medskip\small\noindent#1: %
1619 \or % acmlarge
1620 \par\medskip\small\noindent#1: %
1621 \or % acmtog
1622 \par\medskip\small\noindent#1: %
1623 \or % sigconf
1624 \section*{#1}%
1625 \or % siggraph
1626 \section*{#1}%
1627 \or % sigplan
1628 \paragraph*{#1}%
1629 \or % sigchi
1630 \section*{#1}%
1631 \or % sigchi-a
1632 \section*{#1}%
1633 \fi}
\@printtopmatter e printing of top maer starts the new page, and uses the given title box. Note that
for sigchi-a we print badges here rather than in \mktitle since we want them on the
margins.
1634 \def\@printtopmatter{%
1635 \ifx\@startPage\@empty
1636 \gdef\@startPage{1}%
1637 \else
1638 \setcounter{page}{\@startPage}%
1639 \fi
1640 \thispagestyle{firstpagestyle}%
1641 \noindent
1642 \ifcase\ACM@format@nr
1643 \relax % manuscript
1644 \box\mktitle@bx\par
1645 \or % acmsmall
1646 \box\mktitle@bx\par
1647 \or % acmlarge
68
1648 \box\mktitle@bx\par
1649 \or % acmtog
1650 \twocolumn[\box\mktitle@bx]%
1651 \or % sigconf
1652 \twocolumn[\box\mktitle@bx]%
1653 \or % siggraph
1654 \twocolumn[\box\mktitle@bx]%
1655 \or % sigplan
1656 \twocolumn[\box\mktitle@bx]%
1657 \or % sigchi
1658 \twocolumn[\box\mktitle@bx]%
1659 \or % sigchi-a
1660 \par\box\mktitle@bx\par\bigskip
1661 \if@ACM@badge
1662 \marginpar{\noindent
1663 \ifx\@acmBadgeL@image\@empty\else
1664 \href{\@acmBadgeL@url}{%
1665 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}%
1666 \hskip\@ACM@badge@skip
1667 \fi
1668 \ifx\@acmBadgeR@image\@empty\else
1669 \href{\@acmBadgeR@url}{%
1670 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}%
1671 \fi}%
1672 \fi
1673 \fi
1674 }
\@mktitle e title of the article
1675 \def\@mktitle{%
1676 \ifcase\ACM@format@nr
1677 \relax % manuscript
1678 \@mktitle@i
1679 \or % acmsmall
1680 \@mktitle@i
1681 \or % acmlarge
1682 \@mktitle@i
1683 \or % acmtog
1684 \@mktitle@i
1685 \or % sigconf
1686 \@mktitle@iii
1687 \or % siggraph
1688 \@mktitle@iii
1689 \or % sigplan
1690 \@mktitle@iii
1691 \or % sigchi
1692 \@mktitle@iii
1693 \or % sigchi-a
1694 \@mktitle@iv
1695 \fi
69
1696 }
\@titlefont e font to typeset title
1697 \def\@titlefont{%
1698 \ifcase\ACM@format@nr
1699 \relax % manuscript
1700 \LARGE\sffamily\bfseries
1701 \or % acmsmall
1702 \LARGE\sffamily\bfseries
1703 \or % acmlarge
1704 \LARGE\sffamily\bfseries
1705 \or % acmtog
1706 \Huge\sffamily
1707 \or % sigconf
1708 \Huge\sffamily\bfseries
1709 \or % siggraph
1710 \Huge\sffamily\bfseries
1711 \or % sigplan
1712 \Huge\bfseries
1713 \or % sigchi
1714 \Huge\sffamily\bfseries
1715 \or % sigchi-a
1716 \Huge\bfseries
1717 \fi}
\@subtitlefont e font to typeset title
1718 \def\@subtitlefont{\normalsize
1719 \ifcase\ACM@format@nr
1720 \relax % manuscript
1721 \mdseries
1722 \or % acmsmall
1723 \mdseries
1724 \or % acmlarge
1725 \mdseries
1726 \or % acmtog
1727 \LARGE
1728 \or % sigconf
1729 \LARGE\mdseries
1730 \or % siggraph
1731 \LARGE\mdseries
1732 \or % sigplan
1733 \LARGE\mdseries
1734 \or % sigchi
1735 \LARGE\mdseries
1736 \or % sigchi-a
1737 \mdseries
1738 \fi}
\@mktitle@i e version of \mktitle for most journals
70
1739 \def\@mktitle@i{\hsize=\textwidth
1740 \@ACM@title@width=\hsize
1741 \ifx\@acmBadgeL@image\@empty\else
1742 \advance\@ACM@title@width by -\@ACM@badge@width
1743 \advance\@ACM@title@width by -\@ACM@badge@skip
1744 \fi
1745 \ifx\@acmBadgeR@image\@empty\else
1746 \advance\@ACM@title@width by -\@ACM@badge@width
1747 \advance\@ACM@title@width by -\@ACM@badge@skip
1748 \fi
1749 \setbox\mktitle@bx=\vbox{\noindent\@titlefont
1750 \ifx\@acmBadgeL@image\@empty\else
1751 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
1752 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
1753 \hskip\@ACM@badge@skip
1754 \fi
1755 \parbox[t]{\@ACM@title@width}{\raggedright
1756 \@titlefont\noindent
1757 \@title
1758 \ifx\@subtitle\@empty\else
1759 \par\noindent{\@subtitlefont\@subtitle}
1760 \fi}%
1761 \ifx\@acmBadgeR@image\@empty\else
1762 \hskip\@ACM@badge@skip
1763 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
1764 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
1765 \fi
1766 \par\bigskip}}%
\@mktitle@ii e version of \mktitle for TOG. Since v1.06 is subsumed by the \mktitle@i macro
\@mktitle@iii e version of \@mktitle for sigproc. Note that since the title is centered, we leave the
space for the le badge even if only the right badge is dened.
1767 \def\@mktitle@iii{\hsize=\textwidth
1768 \setbox\mktitle@bx=\vbox{\@titlefont\centering
1769 \@ACM@title@width=\hsize
1770 \if@ACM@badge
1771 \advance\@ACM@title@width by -2\@ACM@badge@width
1772 \advance\@ACM@title@width by -2\@ACM@badge@skip
1773 \parbox[b]{\@ACM@badge@width}{\strut
1774 \ifx\@acmBadgeL@image\@empty\else
1775 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
1776 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
1777 \fi}%
1778 \hskip\@ACM@badge@skip
1779 \fi
1780 \parbox[t]{\@ACM@title@width}{\centering\@titlefont
1781 \@title
1782 \ifx\@subtitle\@empty\else
1783 \par\noindent{\@subtitlefont\@subtitle}
71
1784 \fi
1785 }%
1786 \if@ACM@badge
1787 \hskip\@ACM@badge@skip
1788 \parbox[b]{\@ACM@badge@width}{\strut
1789 \ifx\@acmBadgeR@image\@empty\else
1790 \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
1791 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
1792 \fi}%
1793 \fi
1794 \par\bigskip}}%
\@mktitle@iv e version of \@mktitle for sigchi-a
1795 \def\@mktitle@iv{\hsize=\textwidth
1796 \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont
1797 \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
1798 \noindent\@title
1799 \ifx\@subtitle\@empty\else
1800 \par\noindent\@subtitlefont\@subtitle
1801 \fi
1802 \par\bigskip}}%
\@ACM@addtoaddress e macro adds an item to address using the following rules:
1. If we start a paragraph, add the item
2. Otherwise, add a comma and the item
3. However, the comma is deleted, if it is on the end of the line. We use the magic
cleaders trick for this.
1803 \newbox\@ACM@commabox
1804 \def\@ACM@addtoaddress#1{%
1805 \ifvmode\else
1806 \if@ACM@affiliation@obeypunctuation\else
1807 \setbox\@ACM@commabox=\hbox{, }%
1808 \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
1809 \fi\fi
1810 #1}
\institution
\position
\department
\streetaddress
\city
\state
\postcode
\country
heoretically we can dene the macros for \affiliation inside the \@mkauthors-style
commands. However, this would lead to a strange error if an author uses them outside
\affiliation. Of course we can make them produce an error message, but...
1811 \def\streetaddress#1{\unskip\ignorespaces}
1812 \def\postcode#1{\unskip\ignorespaces}
1813 \if@ACM@journal
1814 \def\position#1{\unskip\ignorespaces}
1815 \def\institution#1{\unskip˜#1\ignorespaces}
1816 \def\city#1{\unskip\ignorespaces}
1817 \def\state#1{\unskip\ignorespaces}
72
1818 \newcommand\department[2][0]{\unskip\ignorespaces}
1819 \def\country#1{\if@ACM@affiliation@obeypunctuation\else, \fi#1\ignorespaces}
1820 \else
1821 \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
1822 \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
1823 \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
1824 #2\else#2\par\fi}%
1825 % \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
1826 \let\city\@ACM@addtoaddress
1827 \let\state\@ACM@addtoaddress
1828 % \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}%
1829 \let\country\@ACM@addtoaddress
1830 \fi
\@mkauthors Typeseing authors
1831 \def\@mkauthors{\begingroup
1832 \hsize=\textwidth
1833 \ifcase\ACM@format@nr
1834 \relax % manuscript
1835 \@mkauthors@i
1836 \or % acmsmall
1837 \@mkauthors@i
1838 \or % acmlarge
1839 \@mkauthors@i
1840 \or % acmtog
1841 \@mkauthors@i
1842 \or % sigconf
1843 \@mkauthors@iii
1844 \or % siggraph
1845 \@mkauthors@iii
1846 \or % sigplan
1847 \@mkauthors@iii
1848 \or % sigchi
1849 \@mkauthors@iii
1850 \or % sigchi-a
1851 \@mkauthors@iv
1852 \fi
1853 \endgroup
1854 }
\@authorfont Somehow dierent conferences use dierent fonts for author names. Why?
1855 \def\@authorfont{\Large\sffamily}
\@affiliationfont Font for aliations
1856 \def\@affiliationfont{\normalsize\normalfont}
Adjusting fonts for dierent formats
1857 \ifcase\ACM@format@nr
1858 \relax % manuscript
73
1859 \or % acmsmall
1860 \def\@authorfont{\large\sffamily}
1861 \def\@affiliationfont{\small\normalfont}
1862 \or % acmlarge
1863 \or % acmtog
1864 \def\@authorfont{\LARGE\sffamily}
1865 \def\@affiliationfont{\large}
1866 \or % sigconf
1867 \def\@authorfont{\LARGE}
1868 \def\@affiliationfont{\large}
1869 \or % siggraph
1870 \def\@authorfont{\normalsize\normalfont}
1871 \def\@affiliationfont{\normalsize\normalfont}
1872 \or % sigplan
1873 \def\@authorfont{\Large\normalfont}
1874 \def\@affiliationfont{\normalsize\normalfont}
1875 \or % sigchi
1876 \def\@authorfont{\bfseries}
1877 \def\@affiliationfont{\mdseries}
1878 \or % sigchi-a
1879 \def\@authorfont{\bfseries}
1880 \def\@affiliationfont{\mdseries}
1881 \fi
\@typeset@author@line At this point we have \@currentauthors and \@currentaffiliations. We typeset
them in the journal style
1882 \def\@typeset@author@line{%
1883 \andify\@currentauthors\par\noindent
1884 \@currentauthors\def\@currentauthors{}%
1885 \ifx\@currentaffiliations\@empty\else
1886 \andify\@currentaffiliations
1887 \unskip, {\@currentaffiliations}\par
1888 \fi
1889 \def\@currentaffiliations{}}
\@mkauthors@i is is version used in most journal formats. Note that \and between authors with the
same aliation becomes ␣and␣:
1890 \def\@mkauthors@i{%
1891 \def\@currentauthors{}%
1892 \def\@currentaffiliations{}%
1893 \global\let\and\@typeset@author@line
1894 \def\@author##1{%
1895 \ifx\@currentauthors\@empty
1896 \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}%
1897 \else
1898 \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}%
1899 \fi
1900 \gdef\and{}}%
1901 \def\email##1##2{}%
74
1902 \def\affiliation##1##2{%
1903 \def\@tempa{##2}\ifx\@tempa\@empty\else
1904 \ifx\@currentaffiliations\@empty
1905 \gdef\@currentaffiliations{%
1906 \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1907 \setkeys{@ACM@affiliation@}{##1}%
1908 \@affiliationfont##2}%
1909 \else
1910 \g@addto@macro{\@currentaffiliations}{\and
1911 \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1912 \setkeys{@ACM@affiliation@}{##1}##2}%
1913 \fi
1914 \fi
1915 \global\let\and\@typeset@author@line}%
1916 \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
1917 \noindent\addresses\@typeset@author@line
1918 \par\medskip}%
1919 }
\@mkauthors@ii \@mkauthors@iI was version used in acmtog. No longer necessary
\author@bx e box to put individual author to
1920 \newbox\author@bx
\author@bx@wd e width of the author box
1921 \newdimen\author@bx@wd
\author@bx@sep e separation between the author boxes
1922 \newskip\author@bx@sep
1923 \author@bx@sep=1pc\relax
\@typeset@author@bx Typeseing the box with authors. Note that in SIGCHI-A the box is not centered.
1924 \def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}%
1925 \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
1926 \@authorfont\@currentauthors\par\@affiliationfont
1927 \@currentaffiliation}\egroup
1928 \box\author@bx\hspace{\author@bx@sep}%
1929 \gdef\@currentauthors{}%
1930 \gdef\@currentaffiliation{}}
\@mkauthors@iii e sigconf version. Here we use centered design with each author in a separate box.
1931 \def\@mkauthors@iii{%
First, we need to determine the design of the author strip. e boxes are separated by
\author@bx@sep plus two \author@bx@sep margins. is means that each box must
be of width (\textwidth \author@bx@sep)/N\author@bx@sep, where Nis the
number of boxes per row.
1932 \author@bx@wd=\textwidth\relax
1933 \advance\author@bx@wd by -\author@bx@sep\relax
75
1934 \ifnum\@ACM@authorsperrow>0\relax
1935 \divide\author@bx@wd by \@ACM@authorsperrow\relax
1936 \else
1937 \ifcase\num@authorgroups
1938 \relax % 0?
1939 \or % 1=one author per row
1940 \or % 2=two authors per row
1941 \divide\author@bx@wd by \num@authorgroups\relax
1942 \or % 3=three authors per row
1943 \divide\author@bx@wd by \num@authorgroups\relax
1944 \or % 4=two authors per row (!)
1945 \divide\author@bx@wd by 2\relax
1946 \else % three authors per row
1947 \divide\author@bx@wd by 3\relax
1948 \fi
1949 \fi
1950 \advance\author@bx@wd by -\author@bx@sep\relax
Now, parsing of \addresses:
1951 \gdef\@currentauthors{}%
1952 \gdef\@currentaffiliation{}%
1953 \def\@author##1{\ifx\@currentauthors\@empty
1954 \gdef\@currentauthors{\par##1}%
1955 \else
1956 \g@addto@macro\@currentauthors{\par##1}%
1957 \fi
1958 \gdef\and{}}%
1959 \def\email##1##2{\ifx\@currentaffiliation\@empty
1960 \gdef\@currentaffiliation{\nolinkurl{##2}}%
1961 \else
1962 \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
1963 \fi}%
1964 \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
1965 \gdef\@currentaffiliation{%
1966 \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1967 \setkeys{@ACM@affiliation@}{##1}##2}%
1968 \else
1969 \g@addto@macro\@currentaffiliation{\par
1970 \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1971 \setkeys{@ACM@affiliation@}{##1}##2}%
1972 \fi
1973 \global\let\and\@typeset@author@bx
1974 }%
Actual typeseing is done by \and macro:
1975 \hsize=\textwidth
1976 \global\setbox\mktitle@bx=\vbox{\noindent
1977 \box\mktitle@bx\par\medskip\leavevmode
1978 \lineskip=1pc\relax\centering\hspace*{-1em}%
1979 \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
76
\@mkauthors@iv e sigchia version. Now we put authors in the main text, and no more than 2 authors
per line, unless overriden.
1980 \def\@mkauthors@iv{%
First, we need to determine the design of the author strip. e boxes are separated by
\author@bx@sep plus two \author@bx@sep margins. is means that each box must
be of width (\textwidth \author@bx@sep)/N\author@bx@sep, where Nis the
number of boxes per row.
1981 \author@bx@wd=\columnwidth\relax
1982 \advance\author@bx@wd by -\author@bx@sep\relax
1983 \ifnum\@ACM@authorsperrow>0\relax
1984 \divide\author@bx@wd by \@ACM@authorsperrow\relax
1985 \else
1986 \ifcase\num@authorgroups
1987 \relax % 0?
1988 \or % 1=one author per row
1989 \else % 2=two authors per row
1990 \divide\author@bx@wd by 2\relax
1991 \fi
1992 \fi
1993 \advance\author@bx@wd by -\author@bx@sep\relax
Now, parsing of \addresses:
1994 \gdef\@currentauthors{}%
1995 \gdef\@currentaffiliation{}%
1996 \def\@author##1{\ifx\@currentauthors\@empty
1997 \gdef\@currentauthors{\par##1}%
1998 \else
1999 \g@addto@macro\@currentauthors{\par##1}%
2000 \fi
2001 \gdef\and{}}%
2002 \def\email##1##2{\ifx\@currentaffiliation\@empty
2003 \gdef\@currentaffiliation{\nolinkurl{##2}}%
2004 \else
2005 \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
2006 \fi}%
2007 \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
2008 \gdef\@currentaffiliation{%
2009 \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
2010 \setkeys{@ACM@affiliation@}{##1}##2}%
2011 \else
2012 \g@addto@macro\@currentaffiliation{\par
2013 \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
2014 \setkeys{@ACM@affiliation@}{##1}##2}%
2015 \fi
2016 \global\let\and\@typeset@author@bx}%
2017 %
Actual typeseing is done by \and macro
2018 \bgroup\hsize=\columnwidth
77
2019 \par\raggedright\leftskip=\z@
2020 \lineskip=1pc\noindent
2021 \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
\@mkauthorsaddresses Typeseing authors’ addresses in the footnote style
\@setaddresses is is an amsart macro, which we do not need.
2022 \def\@setaddresses{}
\@authornotemark Adding footnotemark to authors. is version adds “normal” footnotemark.
2023 \def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}}
\@@authornotemark Adding footnotemark to authors with the given number
2024 \def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}}
\@mkteasers Typeseing teasers
2025 \def\@mkteasers{%
2026 \ifx\@teaserfigures\@empty\else
2027 \def\@teaser##1{\par\bigskip\bgroup
2028 \captionsetup{type=figure}##1\egroup\par}
2029 \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
2030 \noindent\@teaserfigures\par\medskip}%
2031 \fi}
\@mkabstract Typeseing abstract
2032 \def\@mkabstract{\bgroup
2033 \ifx\@abstract\@lempty\else
2034 {\phantomsection\addcontentsline{toc}{section}{Abstract}%
2035 \if@ACM@journal
2036 \small\noindent
2037 \else
2038 \section*{Abstract}%
2039 \fi
2040 \ignorespaces\@abstract\par}%
2041 \fi\egroup}
\@mkbibcitation Print bibcitation format
2042 \def\@mkbibcitation{\bgroup
2043 \def\@pages@word{\ifnum\getrefnumber{TotPages}=1\relax page\else pages\fi}%
2044 \def\footnotemark{}%
2045 \def\\{\unskip{} \ignorespaces}%
2046 \def\footnote{\ClassError{\@classname}{Please do note use footnotes
2047 inside \string\title{} or \string\author{} command! Use
2048 \string\titlenote{} or \string\authornote{} instead!}}%
2049 \def\@article@string{\ifx\@acmArticle\@empty{\ }\else,
2050 Article˜\@acmArticle\ \fi}%
2051 \par\medskip\small\noindent{\bfseries ACM Reference Format:}\par\nobreak
2052 \noindent\authors. \@acmYear. \@title
2053 \ifx\@subtitle\@empty. \else: \@subtitle. \fi
78
2054 \if@ACM@journal
2055 \textit{\@journalNameShort}
2056 \@acmVolume, \@acmNumber \@article@string (\@acmPubDate),
2057 \ref{TotPages}˜\@pages@word.
2058 \else
2059 In \textit{\@acmBooktitle}%
2060 \ifx\@acmEditors\@empty\textit{.}\else
2061 \andify\@acmEditors\textit{, }\@acmEditors˜\@editorsAbbrev.%
2062 \fi\
2063 ACM, New York, NY, USA%
2064 \@article@string\unskip, \ref{TotPages}˜\@pages@word.
2065 \fi
2066 \@formatdoi{\@acmDOI}
2067 \par\egroup}
\@printendtopmatter End the top maer
2068 \def\@printendtopmatter{\par\bigskip}
\@setthanks We redene \setthanks using \long
2069 \def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
\@setauthorsaddresses
2070 \def\@setauthorsaddresses{\@authorsaddresses\unskip\@addpunct.}
3.14 Headers and Footers
We use fancyhdr for our headers and footers:
2071 \RequirePackage{fancyhdr}
\ACM@linecount@bx is is the box displayed in the review mode
2072 \if@ACM@review
2073 \newsavebox{\ACM@linecount@bx}
2074 \newlength\ACM@linecount@bxht
2075 \newcount\ACM@linecount
2076 \ACM@linecount\@ne\relax
2077 \def\ACM@mk@linecount{%
2078 \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
2079 \setlength{\ACM@linecount@bxht}{0pt}%
2080 \loop{\color{red}\scriptsize\the\ACM@linecount}\\
2081 \global\advance\ACM@linecount by \@ne
2082 \addtolength{\ACM@linecount@bxht}{\baselineskip}%
2083 \ifdim\ACM@linecount@bxht<\textheight\repeat
2084 {\color{red}\scriptsize\the\ACM@linecount}\hfill
2085 \global\advance\ACM@linecount by \@ne}}}
2086 \fi
\ACM@linecountL How to display the box on the le
2087 \def\ACM@linecountL{%
2088 \if@ACM@review
79
2089 \ACM@mk@linecount
2090 \begin{picture}(0,0)%
2091 \put(-26,-22){\usebox{\ACM@linecount@bx}}%
2092 \end{picture}%
2093 \fi}
\ACM@linecountR How to display the box on the right
2094 \def\ACM@linecountR{%
2095 \if@ACM@review
2096 \ACM@mk@linecount
2097 \begin{picture}(0,0)%
2098 \put(20,-22){\usebox{\ACM@linecount@bx}}%
2099 \end{picture}%
2100 \fi}
\ACM@timestamp e timestamp system
2101 \if@ACM@timestamp
2102 % Subtracting 30 from \time gives us the effect of rounding-down despite
2103 % \numexpr rounding to nearest
2104 \newcounter{ACM@time@hours}
2105 \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
2106 \newcounter{ACM@time@minutes}
2107 \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
2108 \newcommand\ACM@timestamp{%
2109 \footnotesize%
2110 \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
2111 \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }%
2112 page˜\thepage\ (pp. \@startPage-\pageref*{TotPages})%
2113 \ifx\@acmSubmissionID\@empty\relax\else
2114 ˜Submission˜ID: \@acmSubmissionID
2115 \fi
2116 }
2117 \fi
\@shortauthors Even if the author redened \shortauthors, we do not print them in the anonymous
mode in the headers:
2118 \def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi}
\@headfootfont e font to typeset header and footer text.
2119 \def\@headfootfont{%
2120 \ifcase\ACM@format@nr
2121 \relax % manuscript
2122 \sffamily
2123 \or % acmsmall
2124 \sffamily
2125 \or % acmlarge
2126 \sffamily
2127 \or % acmtog
2128 \sffamily
80
2129 \or % sigconf
2130 \sffamily
2131 \or % siggraph
2132 \sffamily
2133 \or % sigplan
2134 \sffamily
2135 \or % sigchi
2136 \sffamily
2137 \or % sigchi-a
2138 \sffamily
2139 \fi}
standardpagestyle e pagestyle for all pages but the rst one
2140 \fancypagestyle{standardpagestyle}{%
2141 \fancyhf{}%
2142 \renewcommand{\headrulewidth}{\z@}%
2143 \renewcommand{\footrulewidth}{\z@}%
2144 \ifcase\ACM@format@nr
2145 \relax % manuscript
2146 \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}%
2147 \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
2148 \fancyhead[RE]{\@shortauthors}%
2149 \fancyhead[LO]{\ACM@linecountL\shorttitle}%
2150 \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}%
2151 \or % acmsmall
2152 \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
2153 \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
2154 \fancyhead[RE]{\@headfootfont\@shortauthors}%
2155 \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
2156 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2157 \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
2158 \or % acmlarge
2159 \fancyhead[LE]{\ACM@linecountL\@headfootfont
2160 \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
2161 \fancyhead[LO]{\ACM@linecountL}%
2162 \fancyhead[RO]{\@headfootfont
2163 \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}%
2164 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2165 \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
2166 \or % acmtog
2167 \fancyhead[LE]{\ACM@linecountL\@headfootfont
2168 \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
2169 \fancyhead[LO]{\ACM@linecountL}%
2170 \fancyhead[RE]{\ACM@linecountR}%
2171 \fancyhead[RO]{\@headfootfont
2172 \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}%
2173 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2174 \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
2175 \else % Proceedings
2176 \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
81
2177 \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
2178 \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
2179 \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname,
2180 \acmConference@date, \acmConference@venue}%
2181 \fancyhead[RO]{\@headfootfont\acmConference@shortname,
2182 \acmConference@date, \acmConference@venue\ACM@linecountR}%
2183 \fi
2184 \if@ACM@sigchiamode
2185 \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
2186 \fi
2187 \if@ACM@timestamp
2188 \fancyfoot[LO,RE]{\ACM@timestamp}
2189 \fi
2190 }
2191 \pagestyle{standardpagestyle}
\@folio@wd
\@folio@ht
\@folio@voffset
\@folio@max
Folio blob width, height, osets and max number
2192 \newdimen\@folio@wd
2193 \@folio@wd=\z@
2194 \newdimen\@folio@ht
2195 \@folio@ht=\z@
2196 \newdimen\@folio@voffset
2197 \@folio@voffset=\z@
2198 \def\@folio@max{1}
2199 \ifcase\ACM@format@nr
2200 \relax % manuscript
2201 \or % acmsmall
2202 \@folio@wd=45.75pt\relax
2203 \@folio@ht=1.25in\relax
2204 \@folio@voffset=.2in\relax
2205 \def\@folio@max{8}
2206 \or % acmlarge
2207 \@folio@wd=43.25pt\relax
2208 \@folio@ht=79pt\relax
2209 \@folio@voffset=.55in\relax
2210 \def\@folio@max{10}
2211 \fi
\@folioblob e macro to typeset the folio blob.
2212 \def\@folioblob{\@tempcnta=0\@acmArticleSeq\relax
2213 \ifnum\@tempcnta=0\relax\else
First, we calculate \@acmArticleSeq modulo \@folio@max
2214 \loop
2215 \ifnum\@tempcnta>\@folio@max\relax
2216 \advance\@tempcnta by - \@folio@max
2217 \repeat
2218 \advance\@tempcnta by -1\relax
2219 \@tempdima=\@folio@ht\relax
2220 \multiply\@tempdima by \the\@tempcnta\relax
82
2221 \advance\@tempdima by -\@folio@voffset\relax
2222 \begin{picture}(0,0)
2223 \makebox[\z@]{\raisebox{-\@tempdima}{%
2224 \rlap{%
2225 \raisebox{-0.45\@folio@ht}[\z@][\z@]{%
2226 \rule{\@folio@wd}{\@folio@ht}}}%
2227 \parbox{\@folio@wd}{%
2228 \centering
2229 \textcolor{white}{\LARGE\sffamily\bfseries\@acmArticle}}}}
2230 \end{picture}\fi}
2231
firstpagestyle e pagestyle for the rst page only.
2232 \fancypagestyle{firstpagestyle}{%
2233 \fancyhf{}%
2234 \renewcommand{\headrulewidth}{\z@}%
2235 \renewcommand{\footrulewidth}{\z@}%
2236 \ifcase\ACM@format@nr
2237 \relax % manuscript
2238 \fancyhead[L]{\ACM@linecountL}%
2239 \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
2240 \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
2241 \or % acmsmall
2242 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2243 \@acmNumber, Article \@acmArticle. Publication date:
2244 \@acmPubDate.}%
2245 \fancyhead[LE]{\ACM@linecountL\@folioblob}%
2246 \fancyhead[LO]{\ACM@linecountL}%
2247 \fancyhead[RO]{\@folioblob}%
2248 \fancyheadoffset[RO,LE]{0.6\@folio@wd}%
2249 \or % acmlarge
2250 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2251 \@acmNumber, Article \@acmArticle. Publication date:
2252 \@acmPubDate.}%
2253 \fancyhead[RO]{\@folioblob}%
2254 \fancyhead[LE]{\ACM@linecountL\@folioblob}%
2255 \fancyhead[LO]{\ACM@linecountL}%
2256 \fancyheadoffset[RO,LE]{1.4\@folio@wd}%
2257 \or % acmtog
2258 \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2259 \@acmNumber, Article \@acmArticle. Publication date:
2260 \@acmPubDate.}%
2261 \fancyhead[L]{\ACM@linecountL}%
2262 \fancyhead[R]{\ACM@linecountR}%
2263 \else % Conference proceedings
2264 \fancyhead[L]{\ACM@linecountL}%
2265 \fancyhead[R]{\ACM@linecountR}%
2266 \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
2267 \fi
2268 \if@ACM@timestamp
83
2269 \ifnum\ACM@format@nr=0\relax % Manuscript
2270 \fancyfoot[LO,RE]{\ACM@timestamp\quad
2271 \footnotesize Manuscript submitted to ACM}
2272 \else
2273 \fancyfoot[LO,RE]{\ACM@timestamp}
2274 \fi
2275 \fi
2276 }
\ACM@restore@pagestyle e following code by Ross Moore protects against changes by totpages package:
2277 \let\ACM@ps@plain\ps@plain
2278 \let\ACM@ps@myheadings\ps@myheadings
2279 \let\ACM@ps@headings\ps@headings
2280 \def\ACM@restore@pagestyle{%
2281 \let\ps@plain\ACM@ps@plain
2282 \let\ps@myheadings\ACM@ps@myheadings
2283 \let\ps@headings\ACM@ps@headings}
2284 \AtBeginDocument{\ACM@restore@pagestyle}
3.15 Sectioning
Sectioning is dierent for dierent levels
2285 \renewcommand\section{\@startsection{section}{1}{\z@}%
2286 {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2287 {.25\baselineskip}%
2288 {\@secfont}}
2289 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
2290 {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2291 {.25\baselineskip}%
2292 {\@subsecfont}}
2293 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{10pt}%
2294 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2295 {-3.5\p@}%
2296 {\@subsubsecfont\@adddotafter}}
2297 \renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
2298 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2299 {-3.5\p@}%
2300 {\@parfont\@adddotafter}}
2301 \renewcommand\part{\@startsection{part}{9}{\z@}%
2302 {-10\p@ \@plus -4\p@ \@minus -2\p@}%
2303 {4\p@}%
2304 {\@parfont}}
\section@raggedright Special version of \raggedright compatible with \MakeUppercase
2305 \def\section@raggedright{\@rightskip\@flushglue
2306 \rightskip\@rightskip
2307 \leftskip\z@skip
2308 \parindent\z@}
84
\@secfont
\@subsecfont
\@subsubsecfont
\@parfont
Fonts for sections etc. are dierent for dierent formats.
2309 \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
2310 \def\@subsecfont{\sffamily\bfseries\section@raggedright}
2311 \def\@subsubsecfont{\sffamily\itshape}
2312 \def\@parfont{\itshape}
2313 \setcounter{secnumdepth}{3}
2314 \ifcase\ACM@format@nr
2315 \relax % manuscript
2316 \or % acmsmall
2317 \or % acmlarge
2318 \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
2319 \def\@subsecfont{\sffamily\large\section@raggedright}
2320 \or % acmtog
2321 \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
2322 \def\@subsecfont{\sffamily\large\section@raggedright}
2323 \or % sigconf
2324 \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase}
2325 \def\@subsecfont{\bfseries\Large\section@raggedright}
2326 \or % siggraph
2327 \def\@secfont{\sffamily\bfseries\Large\section@raggedright\MakeTextUppercase}
2328 \def\@subsecfont{\sffamily\bfseries\Large\section@raggedright}
2329 \or % sigplan
2330 \def\@secfont{\bfseries\Large\section@raggedright}
2331 \def\@subsecfont{\bfseries\section@raggedright}
2332 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
2333 {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2334 {.25\baselineskip}%
2335 {\@subsubsecfont}}
2336 \def\@subsubsecfont{\bfseries\section@raggedright}
2337 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
2338 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2339 {-3.5\p@}%
2340 {\@parfont\@addspaceafter}}
2341 \def\@parfont{\bfseries\itshape}
2342 \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
2343 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2344 {-3.5\p@}%
2345 {\@subparfont\@addspaceafter}}
2346 \def\@subparfont{\itshape}
2347 \or % sigchi
2348 \setcounter{secnumdepth}{1}
2349 \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
2350 \def\@subsecfont{\sffamily\bfseries\section@raggedright}
2351 \or % sigchi-a
2352 \setcounter{secnumdepth}{0}
2353 \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
2354 \def\@subsecfont{\sffamily\bfseries\section@raggedright}
2355 \fi
85
\@adddotafter Add punctuation aer the command
2356 \def\@adddotafter#1{#1\@addpunct{.}}
\@addspaceafter Add space aer the command
2357 \def\@addspaceafter#1{#1\@addpunct{\enspace}}
3.16 TOC Lists
\@dotsep Related to the \tableofcontents are all the horizontal llers. Base L
A
T
E
X denes
\@dottedtocline, which we should not disable. Yet, this command expects \@dotsep
to be dened, but leaves this to the class implementation. Since amsart does not provide
this, we copy the standard variant from article here.
2358 \providecommand*\@dotsep{4.5}
3.17 eorems
\@acmplainbodyfont e font to typeset the acmplain theorem style body.
2359 \def\@acmplainbodyfont{\itshape}
\@acmplainindent e amount to indent the acmplain theorem style.
2360 \def\@acmplainindent{\parindent}
\@acmplainheadfont e font to typeset the acmplain theorem style head.
2361 \def\@acmplainheadfont{\scshape}
\@acmplainnotefont e font to typeset the acmplain theorem style note.
2362 \def\@acmplainnotefont{\@empty}
Customization of acmplain theorem style:
2363 \ifcase\ACM@format@nr
2364 \relax % manuscript
2365 \or % acmsmall
2366 \or % acmlarge
2367 \or % acmtog
2368 \or % sigconf
2369 \or % siggraph
2370 \or % sigplan
2371 \def\@acmplainbodyfont{\itshape}
2372 \def\@acmplainindent{\z@}
2373 \def\@acmplainheadfont{\bfseries}
2374 \def\@acmplainnotefont{\normalfont}
2375 \or % sigchi
2376 \or % sigchi-a
2377 \fi
86
acmplain e acmplain theorem style
2378 \newtheoremstyle{acmplain}%
2379 {.5\baselineskip\@plus.2\baselineskip
2380 \@minus.2\baselineskip}% space above
2381 {.5\baselineskip\@plus.2\baselineskip
2382 \@minus.2\baselineskip}% space below
2383 {\@acmplainbodyfont}% body font
2384 {\@acmplainindent}% indent amount
2385 {\@acmplainheadfont}% head font
2386 {.}% punctuation after head
2387 {.5em}% spacing after head
2388 {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
\@acmdefinitionbodyfont e font to typeset the acmdefinition theorem style body.
2389 \def\@acmdefinitionbodyfont{\normalfont}
\@acmdefinitionindent e amount to indent the acmdefinition theorem style.
2390 \def\@acmdefinitionindent{\parindent}
\@acmdefinitionheadfont e font to typeset the acmdefinition theorem style head.
2391 \def\@acmdefinitionheadfont{\itshape}
\@acmdefinitionnotefont e font to typeset the acmdefinition theorem style note.
2392 \def\@acmdefinitionnotefont{\@empty}
Customization of acmdefinition theorem style:
2393 \ifcase\ACM@format@nr
2394 \relax % manuscript
2395 \or % acmsmall
2396 \or % acmlarge
2397 \or % acmtog
2398 \or % sigconf
2399 \or % siggraph
2400 \or % sigplan
2401 \def\@acmdefinitionbodyfont{\normalfont}
2402 \def\@acmdefinitionindent{\z@}
2403 \def\@acmdefinitionheadfont{\bfseries}
2404 \def\@acmdefinitionnotefont{\normalfont}
2405 \or % sigchi
2406 \or % sigchi-a
2407 \fi
acmdefinition e acmdefinition theorem style
2408 \newtheoremstyle{acmdefinition}%
2409 {.5\baselineskip\@plus.2\baselineskip
2410 \@minus.2\baselineskip}% space above
2411 {.5\baselineskip\@plus.2\baselineskip
2412 \@minus.2\baselineskip}% space below
2413 {\@acmdefinitionbodyfont}% body font
87
2414 {\@acmdefinitionindent}% indent amount
2415 {\@acmdefinitionheadfont}% head font
2416 {.}% punctuation after head
2417 {.5em}% spacing after head
2418 {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
Make acmplain the default theorem style.
2419 \theoremstyle{acmplain}
Delay dening the theorem environments until aer other packages have been
loaded. In particular, the cleveref package must be loaded before the theorem environ-
ments are dened in order to show the correct environment name (see hps://github.com/borisveytsman/acmart/issues/138).
e acmthm option is used to suppress the denition of any theorem environments. Also,
to avoid obscure errors arising from these environment denitions conicting with envi-
ronments dened by the user or by user-loaded packages, we only dene environments
that have not yet been dened.
2420 \AtEndPreamble{%
2421 \if@ACM@acmthm
2422 \theoremstyle{acmplain}
2423 \@ifundefined{theorem}{%
2424 \newtheorem{theorem}{Theorem}[section]
2425 }{}
2426 \@ifundefined{conjecture}{%
2427 \newtheorem{conjecture}[theorem]{Conjecture}
2428 }{}
2429 \@ifundefined{proposition}{%
2430 \newtheorem{proposition}[theorem]{Proposition}
2431 }{}
2432 \newtheorem{lemma}[theorem]{Lemma}
2433 \@ifundefined{lemma}{}{}
2434 \@ifundefined{corollary}{%
2435 \newtheorem{corollary}[theorem]{Corollary}
2436 }{}
2437 \theoremstyle{acmdefinition}
2438 \@ifundefined{example}{%
2439 \newtheorem{example}[theorem]{Example}
2440 }{}
2441 \@ifundefined{definition}{%
2442 \newtheorem{definition}[theorem]{Definition}
2443 }{}
2444 \fi
2445 \theoremstyle{acmplain}
2446 }
\@proofnamefont e font to typeset the proof name.
2447 \def\@proofnamefont{\scshape}
\@proofindent Whether or not to indent proofs.
2448 \def\@proofindent{\indent}
88
Customization of proof environment.
2449 \ifcase\ACM@format@nr
2450 \relax % manuscript
2451 \or % acmsmall
2452 \or % acmlarge
2453 \or % acmtog
2454 \or % sigconf
2455 \or % siggraph
2456 \or % sigplan
2457 \def\@proofnamefont{\itshape}
2458 \def\@proofindent{\noindent}
2459 \or % sigchi
2460 \or % sigchi-a
2461 \fi
proof We want some customization of proof environment.
2462 \renewenvironment{proof}[1][\proofname]{\par
2463 \pushQED{\qed}%
2464 \normalfont \topsep6\p@\@plus6\p@\relax
2465 \trivlist
2466 \item[\@proofindent\hskip\labelsep
2467 {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
2468 }{%
2469 \popQED\endtrivlist\@endpefalse
2470 }
3.18 Acknowledgments
\acks is is a comment-like structure
2471 \specialcomment{acks}{%
2472 \begingroup
2473 \section*{Acknowledgments}
2474 \phantomsection\addcontentsline{toc}{section}{Acknowledgments}
2475 }{%
2476 \endgroup
2477 }
\grantsponsor We just typeset the name of the sponsor
2478 \def\grantsponsor#1#2#3{#2}
\grantnum
2479 \newcommand\grantnum[3][]{#3%
2480 \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
3.19 Conditional typesetting
We use the comment package for conditional typeseing:
2481 \AtEndPreamble{%
89
2482 \if@ACM@screen
2483 \includecomment{screenonly}
2484 \excludecomment{printonly}
2485 \else
2486 \excludecomment{screenonly}
2487 \includecomment{printonly}
2488 \fi
2489 \if@ACM@anonymous
2490 \excludecomment{anonsuppress}
2491 \excludecomment{acks}
2492 \else
2493 \includecomment{anonsuppress}
2494 \fi}
3.20 Additional bibliography commands
\showeprint e command \showeprint has two arguments: the (optional) prex and the eprint
number. Right now the only prex we understand is the (lowercase) word ‘arxiv’ (see
http://arxiv.org/hypertex/bibstyles/).
2495 \newcommand\showeprint[2][arxiv]{%
2496 \def\@tempa{#1}%
2497 \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
2498 \def\@tempb{arxiv}%
2499 \ifx\@tempa\@tempb
2500 arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2%
2501 \fi}
3.21 End of Class
2502 \normalsize\normalfont\frenchspacing
2503 h/classi
90
References
[1] UK T
E
X Users Group. UK list of T
E
X frequently asked questions. http://www.tex.
ac.uk, 2016.
[2] Michael Downes and Barbara Beeton. e amsart,amsproc, and amsbook docu-
ment classes. American Mathematical Society, August 2004. http://www.ctan.
org/pkg/amslatex.
[3] Cristophe Fiorio. algorithm2e.sty—package for algorithms, October 2015. http:
//www.ctan.org/pkg/algorithm2e.
[4] Rog´
erio Brito. e algorithms bundle, August 2009. http://www.ctan.org/pkg/
algorithms.
[5] Carsten Heinz, Brooks Moses, and Jobst Homann. e Listings Package, June 2015.
http://www.ctan.org/pkg/listings.
[6] Simon Fear. Publication quality tables in L
A
T
E
X, April 2005. http://www.ctan.org/
pkg/booktabs.
[7] Association for Computing Machinery. ACM Visual Identity Standards, 2007. http:
//identitystandards.acm.org.
[8] Axel Sommerfeldt. e subcaption package, April 2013. http://www.ctan.org/
pkg/subcaption.
[9] Boris Veytsman, Bern Schandl, Lee Netherton, and C. V. Radhakrishnan. A package
to create a nomenclature, September 2005. http://www.ctan.org/pkg/nomencl.
[10] Nicola L. C. Talbot. User Manual for glossaries.sty v4.25, June 2016. http://www.
ctan.org/pkg/subcaption.
[11] David Carlisle. e textcase package, October 2004. http://www.ctan.org/pkg/
textcase.
91
Change History
v1.00
General: First released version . . . . . 28
v1.01
General: Changed hyperref colors in
screen mode (closes https:
//github.com/borisveytsman/
acmart/issues/1) .......... 28
Dened ACM colors . . . . . . . . . . 28
Explicitly put dra option (closes
https:
//github.com/borisveytsman/
acmart/issues/4) .......... 31
Set headheight to 1pc for all
formats (closes https:
//github.com/borisveytsman/
acmart/issues/5) .......... 28
v1.02
General: Added TOPS and TSC (closes
https:
//github.com/borisveytsman/
acmart/issues/12) ......... 28
Documentation changes (closes
https:
//github.com/borisveytsman/
acmart/issues/13) ......... 28
v1.03
\@formatdoi: Added macro . . . . . . 62
\if@ACM@authorversion: Added
macro ................... 30
\maketitle: Added special case of
authorversion . . . . . . . . . . . . . . 65
General: Added anonsuppress
environment .............. 28
Added authorversion option (closes
https:
//github.com/borisveytsman/
acmart/issues/9) .......... 28
v1.04
\acmArticleSeq: Name change by
Mahew Fluet . . . . . . . . . . . . . 56
\acmDOI: Name change by Mahew
Fluet .................... 57
\acmISBN: Name change by Mahew
Fluet .................... 57
General: Updated bibliography for
siggraph ................. 28
v1.05
General: Added processing doi
numbers for acmsiggraph and doi
numbers for sigproc.bib . . . . . . . 28
Patched \setcitestyle command;
closes https:
//github.com/borisveytsman/
acmart/issues/19 .......... 28
v1.06
\@ACM@badge@skip: Added macro . . 57
\@ACM@badge@width: Added macro . 57
\@ACM@title@width: Added macro . 57
\@mktitle@i: Added processing
badges .................. 70
Madegeneric .............. 70
\@mktitle@ii: Now this macro is
obsolete ................. 71
\@mktitle@iii: Added processing
badges .................. 71
Made more generic . . . . . . . . . . 71
\@mktitle@iv: Made more generic . 72
\@printtopmatter: Added processing
badges .................. 68
\@subtitlefont: Added macro . . . . 70
\@titlefont: Added macro . . . . . . 70
\acmBadgeL: Added macro . . . . . . . 57
\acmBadgeR: Added macro . . . . . . . 57
\if@ACM@badge: Added macro . . . . . 57
v1.07
\maketitle: Corrected a bug with
abstract footnotes . . . . . . . . . . . 65
Corrected a bug with permssion
and footnotes order . . . . . . . . . . 65
v1.08
General: SIGPLAN reformaing by
Mahew Fluet . . . . . . . . . . . . . 28
Typos corrected (Tobias Pape) . . . 28
v1.09
General: Revert SIGPLAN caption
rules .................... 28
v1.10
\maketitle: Corrected a bug with doi
in manuscript and author vertsion,
https:
//github.com/borisveytsman/
acmart/issues/36 .......... 65
92
General: Changes of
‘licensedothergov’ wording . . . . 61
standardpagestyle: Reversed folios
location .................. 81
v1.11
General: Customization of ACM
theorem styles and proof
environment by Mahew Fluet . . 28
v1.12
\@marginfigure: Now centering by
default .................. 44
\@margintable: Now centering by
default .................. 45
\@parfont: Moved to
\section@raggedright ...... 85
\copyrightpermissionfootnoterule:
Addedmacro .............. 41
\descriptionlabel: Redened . . . . 47
\footnoterule: Made shorter . . . . . 41
\if@ACM@natbib@override: Added
macro ................... 30
\if@ACM@newfonts: Added macro . . 43
\maketitle: Moved thankses to
copyrightpermission box . . . . . . 65
\section@raggedright: Introduced
macro ................... 84
General: Added graceful behavior
when libertine fonts are absent . . 42
Documentation updates . . . . . . . 28
v1.13
\@mpfootnotetext: Made minipage
footnotes centered . . . . . . . . . . 42
\bibliographystyle: Redened
macro ................... 38
\bibstyle@acmauthoryear: Added
macro ................... 34
\bibstyle@acmnumeric: Added
macro ................... 35
\if@ACM@printfolios: Added macro 58
General: Font adjustments for
acmsmall ................. 73
Increased font size for ACM Large 32
Print bibliographic information by
default for the proceedings . . . . . 59
standardpagestyle: Added headers
forsigs .................. 81
Expanded headers for sigchi-a . . . 81
Suppressed folios if sig . . . . . . . . 81
v1.14
\bibstyle@acmauthoryear: Moved
def of \bibstyle@acmauthoryear
beforeuse ................ 34
\bibstyle@acmnumeric: Moved def of
\bibstyle@numeric before use . . 35
General: \citestyle updates
(Mahew Fluet) . . . . . . . . . . . . 28
Patched \citestyle ......... 33
v1.15
\@ACM@addtoaddress: Added macro 72
\@mkauthors@iii: New authors
system .................. 75
\@shortauthors: Introduced macro . 80
\@typeset@author@bx: Moved to
separate macro . . . . . . . . . . . . . 75
\acks: Added macro . . . . . . . . . . . 89
\affiliation: Added code for author
groups .................. 54
\author: Added code for author
groups .................. 53
\city: Added macro . . . . . . . . . . . 72
\country: Added macro . . . . . . . . . 72
\department: Added macro . . . . . . 72
\grantnum: Added macro . . . . . . . . 89
\grantsponsor: Added macro . . . . . 89
\if@insideauthorgroup: Introduced
macro ................... 53
\institution: Added macro . . . . . 72
\num@authorgroups: Renamed . . . . 53
\orcid: Introduced macro . . . . . . . 55
\position: Added macro . . . . . . . . 72
\postcode: Added macro . . . . . . . . 72
\state: Added macro . . . . . . . . . . 72
\streetaddress: Added macro . . . . 72
standardpagestyle: Beer handling
of anonymous mode . . . . . . . . . 81
v1.16
\@headfootfont: Added macro . . . . 80
General: Formaing header/footer
(Mahew Fluet) . . . . . . . . . . . . 28
standardpagestyle: Customize
header/footer text font . . . . . . . . 81
v1.17
\@makefnmark: Redened . . . . . . . . 42
\@mkauthors: TOG now uses the same
authors block as other journals . . 73
\@mkauthors@ii: Deleted . . . . . . . . 75
\@mkbibcitation: Added \nobreak 78
Changed format for sigs . . . . . . . 78
93
\acmArticle: e default is now
numerical ................ 56
\acmMonth: e default must be
numerical. Closes #50. . . . . . . . . 56
\acmNumber: e default is now
numerical ................ 56
\acmVolume: e default is now
numerical ................ 56
\acmYear: e default is now
numerical ................ 56
\description: Decreased indent . . . 47
\grantnum: Added url . . . . . . . . . . 89
\grantsponsor: Renamed . . . . . . . 89
\if@ACM@printacmref: Renamed
from \if@ACM@printbib ...... 58
General: Slightly decreased margins
forsigs .................. 39
standardpagestyle: Added paper
titletosigs ................ 81
v1.18
\@mkauthors@i: Now we andify
aliations ................ 74
\@typeset@author@line: Added
macro ................... 74
General: Natbib is now the default for
allformats ................ 28
v1.19
\@mkabstract: Include ’Abstract’ in
PDF bookmarks (Mahew Fluet) . 78
\acks: Include ’Acknowledgements’ in
PDF bookmarks (Mahew Fluet) . 89
General: Include ’Abstract’,
Acknowledgements’, and
’References’ in PDF bookmarks
(Mahew Fluet) . . . . . . . . . . . . 28
Include ’References’ in PDF
bookmarks (Mahew Fluet) . . . . 33
v1.20
\@mkabstract: Deleted spurious space 78
General: Bug xes for bst . . . . . . . . 28
v1.21
\showeprint: Added macro . . . . . . 90
v1.22
General: More bibliography changes
forAptara ................ 28
v1.23
General: Add PACMPL journal option 28
v1.24
General: Add IMWUT journal option 47
v1.25
General: Updated PACMPL . . . . . . . 47
v1.26
General: Corrected \shortcite bug . 28
Documentation typos xed (thanks
to Stephen Spencer) . . . . . . . . . . 28
v1.27
\if@ACM@printccs: Typo corrected . 58
v1.28
\ccsdesc@parse: Change from \to to
\textrightarrow (Maeo
Riondato) ................ 60
General: Corrected option natbib
behavior ................. 35
Got rid of warnings in pdf keywords 37
v1.29
\@mkabstract: Removed spurious
indentation (John Wickerson) . . . 78
\ccsdesc@parse: Add spacing aer
bullet and around rightarrow;
semicolon separators no longer in
bold/italic (John Wickerson) . . . . 60
General: Increased head to 13pt . . . . 39
standardpagestyle: Corrected
printfolios (Mahew Fluet) . . . . . 81
v1.30
\department: Added optional
parameter ................ 72
General: Added \frenchspacing ... 90
Bibtex style now recognizes hps://
indoi ................... 28
Switched to T1: looks like libertine
has problems with \l in OT1 . . . 43
Updated IMWUT and PACMPL . . 47
v1.31
\@additionalaffiliation: Added
macro ................... 55
\@mkbibcitation: Disabled linebreak 78
\@startsection: Added
\tochangmeasure ........... 35
Rededined macro . . . . . . . . . . . . 37
\@textbottom: Redened . . . . . . . . 42
\acmMonth: e default now is the
current month (Maeo Riondato) 56
\acmYear: e default now is the
current year (Maeo Riondato) . . 56
\additionalaffiliation: Added
macro ................... 55
\l@subsection: Redened macro . . 37
\l@subsubsection: Redened macro 37
94
General: Documentation changes . . . 28
v1.32
\@formatdoi: New doi format . . . . . 62
General: Added POMACS journal
option ................... 28
Format siggraph is now obsolete . 28
v1.33
\@ACM@addtoaddress: Added
obeypunctuation code . . . . . . . . 72
\@mkauthors@i: Added
obeypunctuation code . . . . . . . . 74
\@mkauthors@iii: Added
obeypunctuation code . . . . . . . . 75
\@mkauthors@iv: Added
obeypunctuation code . . . . . . . . 76
\@subtitlefont: Added
\normalsize .............. 70
\ACM@linecountL: Renamed macro . 79
\ACM@linecountR: Added macro . . . 80
\ACM@timestamp: Added current page
number .................. 80
Added macro (Michael D. Adams) . 80
Added submission id . . . . . . . . . 80
\acmSubmissionID: Added macro . . 57
\city: Added obeypunctuation code 72
\country: Added obeypunctuation
code .................... 72
\department: Added obeypunctuation
code .................... 72
\if@ACM@affiliation@obeypunctuation:
Addedmacro .............. 54
\if@ACM@authordraft: Added macro 30
\if@ACM@natbib@override: Deleted
macro ................... 30
\if@ACM@timestamp: Added macro
(Michael D. Adams) . . . . . . . . . . 30
\institution: Added
obeypunctuation code . . . . . . . . 72
\maketitle: Fixed the bug with
gures on top and boom of the
title page, thanks to David Epstein 65
\position: Added obeypunctuation
code .................... 72
\postcode: Added obeypunctuation
code .................... 72
\state: Added obeypunctuation code 72
\streetaddress: Added
obeypunctuation code . . . . . . . . 72
General: Added acmart-preload-hook 28
Added cmap and glyphtounicode . 42
BibTeX comma before articleno bug
corrected ................. 28
BibTeX crossref bug corrected . . . 28
BibTeX numpages bug corrected . 28
Documentation updates . . . . . . . 28
Moved \citename denition for
non-natbib bibliography, so a
package may redene it . . . . . . . 38
Switched to Type 1 fonts for
libertine even if OTF-capable
engine is used (Kai Mindermann) . 43
firstpagestyle: Added right
linecount for two column formats 83
Added timestamp (Michael
D.Adams) ................ 83
standardpagestyle: Added right
linecount for two column formats 81
Added timestamp (Michael
D.Adams) ................ 81
v1.34
\@mkbibcitation: Deleted DOI from
doinumbers............... 78
\ACM@linecount@bx: Rulers now are
continuous ............... 79
\ACM@linecountL: Rulers now are
continuous ............... 79
\ACM@linecountR: Rulers now are
continuous ............... 80
\maketitle: Added date to the
bibstrip in conf proceedings . . . . 65
Deleted ‘DOI’ from doi numbers . 65
Rearranged bibstrip . . . . . . . . . . 65
e \terms command is now
obsolete ................. 65
\terms: e \terms command now
just produces a warning . . . . . . . 58
v1.35
\bibstyle@acmauthoryear: Square
brackets for author-year style . . . 34
General: BibTeX bug xed: et al. . . . 28
If the copyright is set to usgov or
rigtsretained, the price is
suppressed................ 61
v1.36
\@ACM@authorsperrow: Added macro 59
\@mkauthors@iii: Added
authorsperrow overrride . . . . . . 75
\@mkauthors@iv: Added
authorsperrow overrride . . . . . . 76
95
\if@ACM@authordraft: Corrected
typo, thanks to bargteil . . . . . . . 30
General: Added PACMHCI journal
options .................. 47
Added the possibility to adjust
number of author boxes per row
in conference formats . . . . . . . . 28
v1.37
\description: Reduce list
indentation (Mahew Fluet) . . . . 47
\descriptionlabel: Reduce list
indentation (Mahew Fluet) . . . . 47
\normalparindent: Set
\normalparindent (Mahew
Fluet) ................... 41
General: Reduce list indentation
(Mahew Fluet) . . . . . . . . . . . . 46
Set \normalparindent; Reduce list
indentation (Mahew Fluet) . . . . 28
v1.38
General: Increase default font size for
SIGPLAN............... 28,32
v1.39
\@@authornotemark: Added macro . 78
\authornotemark: Added macro . . . 56
v1.40
\@copyrightowner: Added new
copyright version: licensedcagov . 62
\@copyrightpermission: Added new
copyright version: licensedcagov . 62
\@mkauthors@i: Switched to
MakeTextUppercase . . . . . . . . . 74
\@parfont: Switched to
MakeTextUppercase . . . . . . . . . 85
\ACM@linecount@bx: Work around a
bug in xcolor: looks like cmyk
colors in boxes do not work . . . . 79
\ccdesc@parse@finish: Added
macro ................... 60
\city: We now do not print this even
inSIG ................... 72
\country: Fixed bugs with extra
spaces ................... 72
\l@subsection: Redened macro . . 37
\postcode: We now do not print this
eveninSIG ............... 72
\state: We now do not print this even
inSIG ................... 72
\streetaddress: We now do not
print this even in SIG . . . . . . . . . 72
General: Added ‘textcase’ package . . 33
Added heightrounded to geometry 39
Added new copyright version:
licensedcagov . . . . . . . . . . . . . . 28
Added package cleveref . . . . . . . 28
Added Ross Moore code for
glyphtounicode . . . . . . . . . . . . 42
Bibliography changes . . . . . . . . . 28
v1.41
General: Added new badges . . . . . . 28
v1.42
General: Deleted ACM badges . . . . . 28
v1.43
\@startsection: Added
\makeatletter ............ 37
\country: Added comma before
country for journals . . . . . . . . . 72
v1.44
\@acmBooktitle: Added macro . . . . 53
\@acmEditors: Added macro . . . . . 53
\@editorsAbbrev: Added macro . . . 53
\@folioblob: Suppress the blob if
acmArticleSeq is empty . . . . . . . 82
\@mkbibcitation: If the paper has
just one page, use ‘page’ instead of
pages .................. 78
\ACM@restore@pagestyle: Added
macro ................... 84
\acmArticle: e default is now
empty ................... 56
\acmArticleSeq: Now acmArticle
might be empty . . . . . . . . . . . . 56
\acmBooktitle: Added macro . . . . . 53
\editor: Added macro . . . . . . . . . . 53
\if@ACM@acmthm: Added macro . . . . 29
\maketitle: Empty DOI or ISBN are
not printed (by Michael Ekstrand) 65
General: Added package refcount . . . 28
Deleted package cleveref . . . . . . . 28
Put theorem defs in a separate style 28
v1.45
\@folioblob: Switched
\bfeseries\sffamily to
\sffamily\bfseries ........ 82
\@parfont: Switched
\bfeseries\sffamily to
\sffamily\bfseries ........ 85
\@titlefont: Switched
\bfeseries\sffamily to
\sffamily\bfseries ........ 70
96
v1.46
\@mkauthorsaddresses: Introduced
macro ................... 78
\@mkbibcitation: Added subtitle . . 78
\@printendtopmatter: Made it
\par\bigskip uniformly . . . . . . 79
\@printtopmatter: Deleted rule . . . 68
\@setauthorsaddresses: Introduced
macro ................... 79
\ACM@linecount@bx: Rearranged the
code to get rid of spurious
underfull messages (Benjamin
Byholm) ................. 79
\author: Started counting authors . . 53
\authorsaddresses: Introduced
macro ................... 55
\country:T ................. 72
\if@ACM@acmthm: Modied
description ............... 29
\liningnums: Workaround for
compatibility with fontspec . . . . 43
\maketitle: Added authors’ addresses 65
ankses go before authors’
addresses ................. 65
\num@authors: Introduced macro . . 53
General: Added etoolbox . . . . . . . . 28
Bst le bug xes: label width is
calculated correctly . . . . . . . . . . 28
Delayed hypersetup since journal
options may change screen mode 37
PACM now set screen to true . . . . 47
Restore theorem defs to class le . 28
97
Index
Numbers wrien in italic refer to the page where the corresponding entry is described;
numbers underlined refer to the code line of the denition; numbers in roman refer to
the code lines where the entry is used.
Symbols
\$ .......... 1572,1576
\@ ...... 1441,1462,1475
\@@authornotemark . .
....... 1153,2024
\@@par ........ 316,373
\@ACM@addtoaddress .
1803,1826,1827,1829
\@ACM@authorsperrow
........ 1224,
1934,1935,1983,1984
\@ACM@badge@skip ...
.... 1184,1666,
1743,1747,1753,
1762,1772,1778,1787
\@ACM@badge@width . .
.... 1181,1665,
1670,1742,1746,
1752,1764,1771,
1773,1776,1788,1791
\@ACM@badgefalse ... 1180
\@ACM@badgetrue 1186,1191
\@ACM@commabox ....
... 1803,1807,1808
\@ACM@journalfalse .
148,150,152,154,156
\@ACM@journaltrue . .
...140,142,144,146
\@ACM@labelwidth ...
710,713,721,726,752
\@ACM@manuscriptfalse 135
\@ACM@manuscripttrue 133
\@ACM@newfontsfalse
...... 616,618,621
\@ACM@newfontstrue .613
\@ACM@reviewtrue ... 109
\@ACM@screentrue ...
...826,855,861,867
\@ACM@sigchiamodefalse
............ 137
\@ACM@sigchiamodetrue 157
\@ACM@timestamptrue 108
\@ACM@title@width . .
........ 1183,
1740,1742,1743,
1746,1747,1755,
1769,1771,1772,1780
\@DeclareACMFormat .
...38,39,40,41,
42,43,44,45,46,47
\@M ..... 316,355,373,382
\@abstract 1203,2033,2040
\@acmArticle 1159,1162,
1571,2049,2050,
2152,2153,2157,
2160,2163,2165,
2168,2172,2174,
2229,2243,2251,2259
\@acmArticleSeq 1161,2212
\@acmBadgeL@image . .
.... 1193,1195,
1663,1665,1741,
1750,1752,1774,1776
\@acmBadgeL@url .1192,
1194,1664,1751,1775
\@acmBadgeR@image . .
.... 1188,1190,
1668,1670,1745,
1761,1764,1789,1791
\@acmBadgeR@url .1187,
1189,1669,1763,1790
\@acmBooktitle ....
... 1043,1562,2059
\@acmDOI . . 1177,1564,
1567,1573,1577,2066
\@acmEditors 1048,1048,
1049,1052,2060,2061
\@acmISBN ..... 1175,1575
\@acmMonth 1165,1167,1571
\@acmNumber ....1157,
2056,2157,2165,
2174,2243,2251,2259
\@acmPrice 1171,1572,1576
\@acmPubDate ...1167,
2056,2157,2165,
2174,2244,2252,2260
\@acmSubmissionID . .
... 1173,2113,2114
\@acmVolume ....1155,
2056,2156,2164,
2173,2242,2250,2258
\@acmYear ......1163,
1170,1483,1571,2052
\@acmdefinitionbodyfont
... 2389,2401,2413
\@acmdefinitionheadfont
... 2391,2403,2415
\@acmdefinitionindent
... 2390,2402,2414
\@acmdefinitionnotefont
... 2392,2404,2418
\@acmownedfalse ....
.... 1303,1306,
1309,1315,1319,
1322,1325,1328,1334
\@acmownedtrue ....
... 1290,1299,1331
\@acmplainbodyfont .
... 2359,2371,2383
\@acmplainheadfont .
... 2361,2373,2385
\@acmplainindent ...
... 2360,2372,2384
\@acmplainnotefont .
... 2362,2374,2388
\@adddotafter .....
... 2296,2300,2356
\@additionalaffiliation
....... 1107,1108
\@addpunct .....2069,
2070,2356,2357,2467
\@addspaceafter ....
... 2340,2345,2357
\@affiliationfont . .
1856,1861,1865,
1868,1871,1874,
1877,1880,1908,1926
\@afterheading .347,1611
98
\@afterindentfalse .
........ 293,1610
\@afterindenttrue . . 291
\@article@string ...
... 2049,2056,2064
\@author . . 1068,1071,
1076,1894,1953,1996
\@authorfont ......
1855,1860,1864,
1867,1870,1873,
1876,1879,1896,1926
\@authornotemark ...
... 1145,1151,2023
\@authornotes .....
... 1142,1146,1516
\@authorsaddresses .
....... 1523,2070
\@auxout ......... 452
\@begindocumenthook 448
\@botnum ......... 1506
\@citestyle ....... 225
\@classname ..... 25,
27,35,51,53,54,
59,61,62,67,69,
70,75,77,78,83,
85,86,91,93,94,
99,101,102,107,
111,112,123,128,
181,614,617,619,
827,856,862,868,
1023,1025,1106,
1198,1208,1210,
1211,1214,1216,
1217,1220,1222,
1223,1225,1226,2046
\@clubpenalty ..... 361
\@concepts .....1261,
1271,1585,1587,1607
\@copyrightowner ...
....... 1338,1548
\@copyrightpermission
....... 1370,1540
\@copyrightyear ....
... 1482,1548,1550
\@currbox ... 691,692,693
\@currentaffiliation
1927,1930,1952,
1959,1960,1962,
1964,1965,1969,
1995,2002,2003,
2005,2007,2008,2012
\@currentaffiliations
........ 1885,
1886,1887,1889,
1892,1904,1905,1910
\@currentauthors ...
.... 1883,1884,
1891,1895,1896,
1898,1926,1929,
1951,1953,1954,
1956,1994,1996,
1997,1999,2023,2024
\@currentlabel .576,590
\@dblarg ......... 302
\@dblfloat ........ 675
\@department . . 1111,1112
\@dotsep ......... 2358
\@editorsAbbrev ....
... 1047,1051,2061
\@empty .... 159,306,
1038,1048,1066,
1081,1086,1087,
1093,1242,1243,
1249,1256,1261,
1519,1523,1564,
1572,1575,1576,
1577,1585,1590,
1635,1663,1668,
1741,1745,1750,
1758,1761,1774,
1782,1789,1799,
1885,1895,1903,
1904,1953,1959,
1964,1996,2002,
2007,2026,2049,
2053,2060,2113,
2362,2392,2480,2497
\@endfloatbox ..... 677
\@endpefalse ...... 2469
\@endwidefloatbox 677,685
\@finalstrut ... 581,594
\@float .......... 679
\@flushglue ....... 2305
\@fnsymbol ........ 1503
\@folio@ht ........
2192,2219,2225,2226
\@folio@max 2192,2215,2216
\@folio@voffset 2192,2221
\@folio@wd .....2192,
2226,2227,2248,2256
\@folioblob ....2212,
2245,2247,2253,2254
\@footnotemark .395,1501
\@footnotemark@nolink
........ 395,1501
\@footnotetext ....
..... 396,572,1502
\@footnotetext@nolink
........ 396,1502
\@for ............ 201
\@formatdoi ....1369,
1567,1573,1577,2066
\@fps ............ 678
\@fpsadddefault .... 678
\@gobble ...... 223,267
\@hangfrom ..... 315,372
\@headfootfont ....
2119,2152,2153,
2154,2155,2159,
2162,2167,2171,
2177,2178,2179,2181
\@ifnextchar ...... 1111
\@ifnotempty ...... 1488
\@ifnum ....... 239,241
\@ifstar ......... 300
\@ifundefined .....
2423,2426,2429,
2433,2434,2438,2441
\@iiiparbox ....... 570
\@input .......... 384
\@insideauthorgroupfalse
........... 1101
\@insideauthorgrouptrue
........... 1064
\@journalCode . . 758,
827,856,862,868,1023
\@journalCode@nr ...
..... 758,812,1028
\@journalName . . 814,
818,822,829,833,
837,841,845,849,
850,852,853,858,
859,864,865,870,
874,878,880,884,
888,890,892,894,
898,902,906,910,
914,918,922,926,
930,934,938,942,
99
946,950,954,955,
958,962,963,966,
971,975,979,
983,987,991,
995,999,1003,
1007,1011,1015,
1019,1029,1030,
1560,2156,2164,
2173,2242,2250,2258
\@journalNameShort .
...815,819,824,
830,834,838,842,
846,871,875,881,
885,895,899,903,
907,911,915,919,
923,927,931,935,
939,943,947,951,
959,964,967,972,
976,980,984,988,
992,996,1000,
1004,1008,1012,
1016,1020,1030,2055
\@keywords ........
1200,1590,1596,1608
\@latex@error ..... 269
\@lempty ..... 1205,2033
\@listI ....... 734,738
\@listi ....... 731,738
\@listii ......... 739
\@listiii ......... 742
\@listiv ......... 744
\@listv .......... 746
\@listvi ......... 748
\@m .............. 304
\@makefnmark ... 571,
596,1508,1513,1517
\@makefntext ......
. . 571,580,593,1518
\@marginfigure .667,668
\@margintable . . 670,671
\@minipagefalse .567,687
\@minus ... 2286,2290,
2294,2298,2302,
2333,2338,2343,
2380,2382,2410,2412
\@mkabstract . . 1583,2032
\@mkauthors 1509,1511,1831
\@mkauthors@i . . 1835,
1837,1839,1841,1890
\@mkauthors@ii .... 1920
\@mkauthors@iii .1843,
1845,1847,1849,1931
\@mkauthors@iv 1851,1980
\@mkauthorsaddresses 2022
\@mkbibcitation 1603,2042
\@mkteasers ... 1509,2025
\@mktitle ..... 1509,1675
\@mktitle@i ....1678,
1680,1682,1684,1739
\@mktitle@ii ...... 1767
\@mktitle@iii . . 1686,
1688,1690,1692,1767
\@mktitle@iv . . 1694,1795
\@mpargs ......... 570
\@mparswitchfalse . . 532
\@mpfootins .......
562,563,565,585,586
\@mpfootnotetext ... 584
\@ne .227,231,235,237,
438,2076,2081,2085
\@nil ............ 246
\@nobreakfalse .349,389
\@noskipsecfalse ... 353
\@noskipsectrue .... 350
\@pages@word ......
... 2043,2057,2064
\@par ........ 1521,1527
\@parboxrestore .... 589
\@parfont .2300,2304,2309
\@permissionCodeOne
...... 816,820,
825,831,835,839,
843,847,854,860,
866,872,876,882,
886,896,900,904,
908,912,916,920,
924,928,932,936,
940,944,948,952,
956,960,968,973,
977,981,985,989,
993,997,1001,
1005,1009,1013,
1017,1021,1031,1571
\@permissionCodeTwo
........ 969,1032
\@plus . . 382,390,597,
2286,2290,2294,
2298,2302,2333,
2338,2343,2379,
2381,2409,2411,2464
\@printcopyrightfalse
....... 1302,1314
\@printcopyrighttrue
....... 1286,1298
\@printendtopmatter
....... 1609,2068
\@printpermissionfalse
........... 1301
\@printpermissiontrue
... 1288,1297,1313
\@printtopmatter ...
....... 1510,1634
\@proofindent .....
... 2448,2458,2466
\@proofnamefont ....
... 2447,2457,2467
\@received .1240,1243,
1244,1246,1249,
1250,1252,1256,1257
\@rightskip ... 2305,2306
\@saveabstract 1202,1203
\@saveteaser . . 1485,1486
\@seccntformat .309,366
\@secfont ..... 2288,2309
\@secpenalty ...... 298
\@sect ........ 302,303
\@setaddresses .... 2022
\@setauthorsaddresses
....... 1527,2070
\@setthanks ... 1521,2069
\@shortauthors ....
.... 2118,2148,
2154,2160,2168,2178
\@sidebar ...... 664,665
\@specialsection ...
1586,1592,1594,1613
\@ssect ....... 301,367
\@startPage ....1196,
1635,1636,1638,2112
\@startsection ....
. . 287,379,2285,
2289,2293,2297,
2301,2332,2337,2342
\@starttoc ........ 379
\@subparfont . . 2345,2346
\@subsecfont . . 2292,2309
\@subsubsecfont 2296,2309
\@subtitle .1054,1134,
1758,1759,1782,
1783,1799,1800,2053
100
\@subtitlefont ....
1718,1759,1783,1800
\@subtitlenotes ....
1132,1136,1139,1515
\@svsec .306,309,315,330
\@svsechd ... 328,356,376
\@teaser ..... 1486,2027
\@teaserfigures ....
1484,1486,2026,2030
\@tempa ....... 201,
202,204,206,208,
210,212,214,216,
218,220,222,224,
226,228,230,232,
234,236,238,240,
242,244,246,249,
251,253,255,257,
259,1085,1086,
1241,1242,1903,
2480,2496,2497,2499
\@tempb .... 202,204,
206,208,210,212,
214,216,218,220,
222,224,226,228,
230,232,234,236,
238,240,242,244,
249,251,253,255,
257,259,2498,2499
\@tempboxa ........ 570
\@tempc .247,248,250,
252,254,256,258,260
\@tempcnta .2212,2213,
2215,2216,2218,2220
\@tempdima ........
2219,2220,2221,2223
\@tempskipa .......
290,292,293,298,
311,312,343,344,
346,358,359,368,369
\@textbottom ...... 597
\@textsuperscript . .
.... 596,1508,1513
\@texttop ......... 598
\@thefnmark .577,591,
596,1508,1513,1517
\@title ... 1125,1606,
1757,1781,1798,2052
\@titlefont 1697,1749,
1756,1768,1780,1796
\@titlenotes ......
1123,1127,1130,1514
\@tochangmeasure 320,333
\@toclevel ........ 304
\@tocline ... 392,393,394
\@topnum ......... 1504
\@typeset@author@bx
........ 1924,
1973,1979,2016,2021
\@typeset@author@line
1882,1893,1915,1917
\@undefined .... 448,628
\@width ....... 551,558
\@xp .......... 386,387
\@xsect .... 341,342,378
\@z .............. 233
\\ 468,1548,1553,1568,
1572,1576,2045,2080
\{ .............. 209
\} .............. 209
\␣ ... 1046,1267,1277,
1548,1550,1572,
2049,2050,2062,2112
A
\abstract ......... 1202
abstract (environment) 18
\acks ............ 2471
acks (environment) . . . . 22
\acm@copyrightinput 1292
\acm@copyrightmode .
1292,1300,1305,
1308,1312,1318,
1321,1324,1327,
1330,1333,1339,1371
\ACM@fontsize .....
115,159,162,164,
166,168,170,172,
174,176,178,181,182
\ACM@format ..... 32,123
\ACM@format@nr ....
... 32,123,127,
132,138,160,405,
472,537,643,695,
1614,1642,1676,
1698,1719,1833,
1857,2120,2144,
2199,2236,2269,
2314,2363,2393,2449
\ACM@linecount ....
.... 2075,2076,
2080,2081,2084,2085
\ACM@linecount@bx . .
... 2072,2091,2098
\ACM@linecount@bxht
2074,2079,2082,2083
\ACM@linecountL ....
.... 2087,2146,
2149,2152,2155,
2159,2161,2167,
2169,2177,2179,
2238,2245,2246,
2254,2255,2261,2264
\ACM@linecountR ....
2094,2170,2172,
2178,2182,2262,2265
\ACM@mk@linecount . .
... 2077,2089,2096
\ACM@ps@headings ...
....... 2279,2283
\ACM@ps@myheadings .
....... 2278,2282
\ACM@ps@plain .2277,2281
\ACM@restore@pagestyle
........... 2277
\ACM@timestamp ....
2101,2188,2270,2273
\acmArticle .... 14,1159
\acmArticleSeq .15,1161
\acmBadgeL ..... 15,1191
\acmBadgeR ..... 15,1186
\acmBooktitle ... 8,1043
\acmConference . . 8,1033
\acmConference@date
1036,1544,2180,2182
\acmConference@name
... 1035,1044,1045
\acmConference@shortname
........ 1034,
1038,1039,1045,
1046,1544,2179,2181
\acmConference@venue
1037,1544,2180,2182
\acmdefinition .... 2408
\acmDOI ....... 15,1177
\acmISBN ...... 15,1175
\acmJournal ..... 8,1027
101
\acmMonth ...... 14,1165
\acmNumber ..... 14,1157
\acmplain ......... 2378
\acmPrice .........
.15,1171,1310,1316
\acmSubmissionID 15,1173
\acmVolume ..... 14,1155
\acmYear ...... 14,1163
\addcontentsline 197,
322,335,2034,2474
\additionalaffiliation
......... 11,1107
\addpenalty ....... 298
\addresses .1066,1068,
1071,1076,1103,
1121,1145,1151,
1153,1917,1979,2021
\addtolength ... 719,
720,721,725,726,2082
\addvspace ..... 298,390
\advance ...... 735,
740,743,745,
747,749,1061,
1063,1742,1743,
1746,1747,1771,
1772,1933,1950,
1982,1993,2081,
2085,2216,2218,2221
\affiliation .... 10,
1100,1902,1964,2007
\and ..........1052,
1076,1077,1090,
1096,1893,1898,
1900,1910,1915,
1924,1958,1973,
1979,2001,2016,2021
\andify .......1598,
1599,1883,1886,2061
anonsuppress (environ-
ment) ........ 22
\AtBeginDocument ...
. . 441,449,711,2284
\AtEndDocument .... 1255
\AtEndPreamble ....
.418,629,2420,2481
\author ........ 10,
1060,1497,1498,2047
\author@bx 1920,1925,1928
\author@bx@sep ....
.... 1922,1928,
1933,1950,1982,1993
\author@bx@wd .....
.... 1921,1924,
1932,1933,1935,
1941,1943,1945,
1947,1950,1981,
1982,1984,1990,1993
\authornote .......
.14,1107,1143,2048
\authornotemark .14,1149
\authors .........
1069,1072,1077,
1598,1600,1605,2052
\authorsaddresses 14,1123
B
\baselineskip .....
.... 1538,1751,
1763,1775,1790,
2082,2286,2287,
2290,2291,2294,
2298,2333,2334,
2338,2343,2379,
2380,2381,2382,
2409,2410,2411,2412
\begin .20,2090,2097,2222
\begingroup .......
313,356,370,379,
437,1500,1831,2472
\bfseries . . 750,1533,
1700,1702,1704,
1708,1710,1712,
1714,1716,1876,
1879,2051,2229,
2309,2310,2324,
2325,2327,2328,
2330,2331,2336,
2341,2349,2350,
2353,2354,2373,2403
\bgroup .... 665,668,
671,676,1108,
1585,1590,1924,
2018,2027,2032,2042
\bibfont ......... 199
\bibliofont ....... 199
\bibliographystyle .447
\bibsection ....... 195
\bibstyle 223,225,267,452
\bibstyle@acmauthoryear
............ 273
\bibstyle@acmnumeric 279
\bigskip . . 1257,1660,
1766,1794,1802,
1979,2021,2027,2068
\box 692,1644,1646,1648,
1650,1652,1654,
1656,1658,1660,
1916,1928,1977,2029
C
\c@footnote ....... 1503
\c@secnumdepth ....
305,319,323,332,336
\captionsetup .....
...635,637,639,
641,650,652,655,
658,665,668,671,2028
\ccdesc@parse@finish 1284
\ccsdesc ...... 16,1262
\ccsdesc@parse 1263,1264
\ccsdesc@parse@end .
....... 1263,1284
\ccsdesc@parse@finish
....... 1283,1284
CCSXML (environment) . . 16
\centering 383,467,592,
669,672,1768,
1780,1925,1978,2228
\cite ... 429,430,442,446
\citeA ........... 436
\citealt ......... 435
\citeANP ......... 431
\citeauthor ....... 431
\citeN ........... 429
\citename ......... 443
\citeNN .......... 432
\citeNP .......... 435
\citep ........... 430
\citestyle ... 23,265,285
\citeyear ... 433,434,446
\citeyearNP ....... 433
\citeyearpar ... 432,434
\city ......11,1114,1811
\ClassError .......
. . 35,1025,1106,
1211,1217,1223,2046
\ClassInfo ........
. . 123,181,1023,
102
1208,1210,1214,
1216,1220,1222,1225
\ClassWarning .....
... 27,128,614,
617,619,1198,1226
\cleaders ......... 1808
\clubpenalty ... 355,361
\CodelineIndex ..... 17
\Collect@Body . . 664,
667,670,1202,1485
\color ... 1536,2080,2084
\color@begingroup 579,592
\color@endbox ..... 690
\color@endgroup ....
...... 568,582,595
\columnwidth ... 551,
588,676,1981,2018
\contentsnamefont . . 383
\copy ............ 1808
\copyright ........ 1548
\copyrightpermissionfootnoterule
............ 550
\copyrightyear .18,1482
\country ...11,1117,1811
\csname .267,318,320,
324,331,333,337,
366,386,387,577,
591,1266,1267,
1269,1270,1271,
1272,1273,1276,1278
\CurrentOption .116,
117,118,119,120,121
D
\day ............. 2110
\DeclareNewFootnote
......... 554,556
\DeclareOptionX ....
...... 38,116,
117,118,119,120,121
\DeclareRobustCommand 436
\DeclareTextFontCommand
............ 630
\def ......... 25,38,
115,162,164,166,
168,170,172,174,
176,178,202,204,
206,208,210,212,
214,216,218,220,
222,224,226,227,
228,229,230,231,
232,233,234,235,
236,238,240,242,
244,245,249,251,
253,255,257,259,
287,303,328,342,
366,367,376,379,
392,393,394,399,
400,401,402,447,
550,557,559,571,
573,584,596,597,
665,668,671,676,
678,682,685,703,
704,705,706,734,
739,742,744,746,
748,814,815,816,
818,819,820,822,
824,825,829,830,
831,833,834,835,
837,838,839,841,
842,843,845,846,
847,849,850,852,
853,854,858,859,
860,864,865,866,
870,871,872,874,
875,876,878,880,
881,882,884,885,
886,888,890,892,
894,895,896,898,
899,900,902,903,
904,906,907,908,
910,911,912,914,
915,916,918,919,
920,922,923,924,
926,927,928,930,
931,932,934,935,
936,938,939,940,
942,943,944,946,
947,948,950,951,
952,954,955,956,
958,959,960,962,
963,964,966,967,
968,969,971,972,
973,975,976,977,
979,980,981,983,
984,985,987,988,
989,991,992,993,
995,996,997,999,
1000,1001,1003,
1004,1005,1007,
1008,1009,1011,
1012,1013,1015,
1016,1017,1019,
1020,1021,1027,
1028,1029,1030,
1031,1032,1043,
1047,1048,1054,
1085,1107,1108,
1109,1110,1111,
1112,1123,1124,
1132,1133,1142,
1143,1155,1157,
1159,1161,1163,
1165,1167,1171,
1173,1175,1177,
1187,1188,1189,
1190,1192,1193,
1194,1195,1196,
1198,1200,1203,
1205,1228,1240,
1241,1265,1284,
1336,1338,1369,
1370,1482,1484,
1486,1495,1508,
1513,1521,1527,
1613,1634,1675,
1697,1718,1739,
1767,1795,1804,
1811,1812,1814,
1815,1816,1817,
1819,1821,1822,
1825,1828,1831,
1855,1856,1860,
1861,1864,1865,
1867,1868,1870,
1871,1873,1874,
1876,1877,1879,
1880,1882,1884,
1889,1890,1891,
1892,1894,1901,
1902,1903,1924,
1931,1953,1959,
1964,1980,1996,
2002,2007,2022,
2023,2024,2025,
2027,2032,2042,
2043,2044,2045,
2046,2049,2068,
2069,2070,2077,
2087,2094,2118,
103
2119,2198,2205,
2210,2212,2280,
2305,2309,2310,
2311,2312,2318,
2319,2321,2322,
2324,2325,2327,
2328,2330,2331,
2336,2341,2346,
2349,2350,2353,
2354,2356,2357,
2359,2360,2361,
2362,2371,2372,
2373,2374,2389,
2390,2391,2392,
2401,2402,2403,
2404,2447,2448,
2457,2458,2478,
2480,2496,2497,2498
\define@boolkey ....
..... 49,57,65,
73,81,89,97,105,
1105,1206,1212,1218
\define@choicekey . .
...... 32,758,1291
\define@cmdkey .... 1224
\definecolor ......
...455,456,457,
458,459,460,461,462
\department .11,1111,1811
\description ...... 751
\descriptionlabel 750,753
\dimexpr . . 674,692,2185
\divide 1935,1941,1943,
1945,1947,1984,1990
\do .............. 201
\DocInput .......... 21
\documentclass ...... 9
\dots ............ 1576
E
\edef 116,117,118,119,304
\editor ........ 8,1048
\egroup ....... 569,
666,669,672,
683,689,1118,
1587,1596,1927,
2021,2028,2041,2067
\else ... 52,60,68,76,
84,92,100,110,
134,247,268,297,
304,307,319,323,
327,332,336,348,
360,375,425,440,
446,448,562,640,
1045,1050,1062,
1070,1074,1075,
1084,1089,1092,
1095,1102,1120,
1129,1138,1144,
1152,1209,1215,
1221,1232,1235,
1245,1248,1251,
1256,1275,1279,
1280,1491,1509,
1519,1523,1524,
1539,1542,1543,
1549,1554,1561,
1566,1569,1572,
1574,1575,1576,
1577,1585,1590,
1593,1637,1663,
1668,1741,1745,
1750,1758,1761,
1774,1782,1789,
1799,1805,1806,
1819,1820,1821,
1822,1824,1825,
1828,1885,1897,
1903,1909,1925,
1936,1946,1955,
1961,1968,1985,
1989,1998,2004,
2011,2026,2033,
2037,2043,2049,
2053,2058,2060,
2113,2118,2175,
2213,2263,2272,
2480,2485,2492,2500
\email ......... 10,
1119,1901,1959,2002
\emph ........ 1560,1562
\EnableCrossrefs .... 19
\end ...22,2092,2099,2230
\end@dblfloat ..... 681
\end@float ........ 683
\endcsname ........
266,267,318,320,
324,331,333,337,
366,386,387,577,
591,1266,1267,
1269,1270,1271,
1272,1273,1276,1278
\enddescription .... 757
\endgroup 317,356,374,
389,1581,1853,2476
\endlist ...... 755,757
\endminipage ...... 559
\endtrivlist ...... 2469
\enspace ......... 2357
environments:
abstract ........ 18
acks ........... 22
anonsuppress .... 22
CCSXML ......... 16
marginfigure .... 21
margintable ..... 21
printonly ....... 21
screenonly ...... 21
sidebar ........ 21
teaserfigure .... 18
\everypar ... 296,351,362
\excludecomment .1260,
2484,2486,2490,2491
\ExecuteOptionsX ...
..... 48,56,64,
72,80,88,96,104,114
\expandafter ......
...246,248,449,
570,1266,1267,
1269,1270,1276,1278
F
\familydefault .... 632
\fancyfoot .....2150,
2156,2164,2173,
2176,2188,2239,
2240,2242,2250,
2258,2266,2270,2273
\fancyhead .2146,2147,
2148,2149,2152,
2153,2154,2155,
2159,2161,2162,
2167,2169,2170,
2171,2177,2178,
2179,2181,2238,
2245,2246,2247,
2253,2254,2255,
2261,2262,2264,2265
\fancyheadoffset ...
... 2185,2248,2256
104
\fancyhf ..... 2141,2233
\fancypagestyle 2140,2232
\fi ... 54,62,70,78,86,
94,102,112,131,
136,158,179,180,
191,203,205,207,
209,211,213,215,
217,219,221,223,
225,227,229,231,
233,235,237,239,
241,243,245,250,
252,254,256,258,
260,261,270,272,
286,288,294,299,
304,310,321,325,
334,338,340,363,
364,377,388,417,
427,444,446,450,
453,470,534,548,
566,583,610,627,
633,660,661,680,
684,709,1022,
1040,1046,1053,
1065,1073,1078,
1079,1083,1091,
1097,1098,1099,
1104,1122,1131,
1141,1148,1154,
1170,1211,1217,
1223,1237,1238,
1247,1253,1254,
1258,1274,1281,
1282,1304,1307,
1311,1317,1320,
1323,1326,1329,
1332,1335,1368,
1481,1493,1498,
1499,1509,1511,
1522,1528,1529,
1530,1537,1540,
1541,1545,1546,
1551,1563,1568,
1572,1576,1577,
1578,1579,1580,
1588,1589,1595,
1597,1604,1633,
1639,1667,1671,
1672,1673,1695,
1717,1738,1744,
1748,1754,1760,
1765,1777,1779,
1784,1792,1793,
1801,1809,1819,
1821,1822,1824,
1825,1828,1830,
1852,1881,1888,
1899,1913,1914,
1925,1948,1949,
1957,1963,1972,
1991,1992,2000,
2006,2015,2031,
2039,2041,2043,
2050,2053,2062,
2065,2086,2093,
2100,2115,2117,
2118,2139,2146,
2147,2152,2153,
2160,2163,2168,
2172,2176,2183,
2186,2189,2211,
2230,2239,2266,
2267,2274,2275,
2355,2377,2407,
2444,2461,2480,
2488,2494,2497,2501
\firstpagestyle .... 2232
\floatname ........ 663
\footnote ......... 2046
\footnotemark 402,1125,
1134,2023,2024,2044
\footnoterule ..... 557
\footnotesep ... 581,594
\footnotesize .....
.587,2109,2150,
2156,2164,2173,
2176,2240,2242,
2250,2258,2266,2271
\footnotetext . . 1128,
1130,1137,1140,1147
\footnotetextauthorsaddresses
....... 1520,1526
\footnotetextcopyrightpermission
........... 1531
\footrulewidth 2143,2235
\format ........... 32
\frenchspacing .... 2502
\fulltextwidth ....
...... 673,676,692
G
\g@addto@macro ....
1052,1076,1077,
1090,1096,1103,
1121,1125,1127,
1130,1134,1136,
1139,1145,1146,
1151,1153,1246,
1252,1271,1278,
1486,1490,1492,
1898,1910,1956,
1962,1969,1999,
2005,2012,2023,2024
\gdef .........1034,
1035,1036,1037,
1039,1043,1049,
1051,1068,1069,
1071,1072,1082,
1088,1094,1203,
1227,1244,1250,
1267,1269,1270,
1276,1636,1896,
1900,1905,1929,
1930,1951,1952,
1954,1958,1960,
1965,1994,1995,
1997,2001,2003,2008
\geometry .........
474,477,484,491,
498,505,512,519,526
\getrefnumber ..... 2043
\global ..........
350,353,389,585,
691,1061,1063,
1064,1101,1504,
1506,1600,1601,
1893,1915,1916,
1925,1973,1976,
2016,2029,2081,2085
\grantnum ...... 22,2479
\grantsponsor . . 22,2478
H
\hbox .596,1508,1513,1807
\headrulewidth 2142,2234
\hfill ....... 1797,2084
\href .1664,1669,1751,
1763,1775,1790,2500
\hrule .... 551,558,1797
105
\hsize ........ 588,
1507,1739,1740,
1767,1769,1795,
1832,1924,1975,2018
\hskip ........ 315,
329,359,372,376,
1666,1753,1762,
1778,1787,1808,2466
\hspace .......1381,
1392,1401,1426,
1438,1459,1928,1978
\Huge ..... 1706,1708,
1710,1712,1714,1716
\hypersetup 420,426,1605
I
\if .............. 247
\if@ACM@acmthm .57,2421
\if@ACM@affiliation@obeypunctuation
........ 1105,
1806,1819,1821,
1822,1823,1825,1828
\if@ACM@anonymous 89,
1067,1075,1080,
1102,1120,1126,
1135,1144,1489,
1496,1524,2118,2489
\if@ACM@authordraft
..... 105,463,1532
\if@ACM@authorversion
..... 73,1539,1555
\if@ACM@badge .....
1179,1661,1770,1786
\if@ACM@journal .125,
636,1233,1525,
1543,1559,1570,
1591,1813,2035,2054
\if@ACM@manuscript .
......... 124,
188,1230,1542,1552
\if@ACM@natbib ....
... 81,193,284,428
\if@ACM@natbib@override
............. 81
\if@ACM@newfonts 612,622
\if@ACM@printacmref
....... 1212,1602
\if@ACM@printccs ...
....... 1206,1584
\if@ACM@printfolios
.... 1218,2146,
2147,2152,2153,
2160,2163,2168,
2172,2176,2239,2266
\if@ACM@review ....
.65,2072,2088,2095
\if@ACM@screen 49,419,2482
\if@ACM@sigchiamode
......... 126,
572,631,675,681,
1509,1511,1925,2184
\if@ACM@timestamp . .
.97,2101,2187,2268
\if@acmowned ...... 1289
\if@filesw ..... 385,451
\if@insideauthorgroup
....... 1060,1062
\if@nobreak ....... 295
\if@noskipsec . . 288,352
\if@printcopyright .
....... 1285,1547
\if@printpermission
....... 1287,1540
\ifcase .... 138,160,
405,472,537,643,
695,812,1167,
1339,1371,1614,
1642,1676,1698,
1719,1833,1857,
1937,1986,2120,
2144,2199,2236,
2314,2363,2393,2449
\ifcsname ......... 266
\ifdim 292,312,344,369,2083
\IfFileExists 614,617,619
\IfInteger ........ 1225
\ifNAT@numbers .... 446
\ifnum 127,132,304,305,
319,323,332,336,
1279,1280,1300,
1305,1308,1312,
1318,1321,1324,
1327,1330,1333,
1498,1934,1983,
2043,2213,2215,2269
\ifPDFTeX ......... 600
\ifvmode ......... 1805
\ifvoid .......... 562
\ifx ....... 159,202,
204,206,208,210,
212,214,216,218,
220,222,224,226,
228,230,232,234,
236,238,240,242,
244,249,251,253,
255,257,259,448,
1038,1045,1048,
1066,1081,1086,
1087,1093,1150,
1242,1243,1249,
1256,1266,1275,
1519,1523,1564,
1572,1575,1576,
1577,1585,1590,
1635,1663,1668,
1741,1745,1750,
1758,1761,1774,
1782,1789,1799,
1885,1895,1903,
1904,1953,1959,
1964,1996,2002,
2007,2026,2033,
2049,2053,2060,
2113,2480,2497,2499
\ignorespaces . . 365,
581,594,1109,
1110,1112,1811,
1812,1814,1815,
1816,1817,1818,
1819,2040,2045,2467
\immediate ..... 387,452
\includecomment ....
... 2483,2487,2493
\includegraphics ...
.... 1665,1670,
1752,1764,1776,1791
\indent .......... 2448
\input ........... 601
\InputIfFileExists . . 26
\institution 11,1110,1811
\interfootnotelinepenalty
............ 575
\interlinepenalty . .
...... 316,373,575
\item ............ 2466
\itshape . . 1544,2311,
2312,2341,2346,
2359,2371,2391,2457
106
J
\jobname ...... 384,387
K
\kern 550,551,557,558,1797
\keywords ...... 16,1200
L
\l@section ........ 392
\l@subsection . . 392,393
\l@subsubsection ... 394
\labelenumi ....... 703
\labelenumii ...... 704
\labelenumiii ..... 705
\labelenumiv ...... 706
\labelsep ...... 712,
720,725,735,740,
743,745,747,749,2466
\labelwidth .735,740,
743,745,747,749,752
\LARGE ........1700,
1702,1704,1727,
1729,1731,1733,
1735,1864,1867,2229
\Large 1855,1873,2324,
2325,2327,2328,2330
\large ........1533,
1860,1865,1868,
2318,2319,2321,2322
\lastbox ......... 354
\leaders ......... 1797
\leavevmode 288,1797,1977
\leftmargin .... 734,
739,742,744,746,748
\leftmargini ... 718,
719,720,721,734,735
\leftmarginii . . 724,
725,726,727,739,740
\leftmarginiii ....
...727,728,742,743
\leftmarginiv .....
...728,729,744,745
\leftmarginv ......
...729,730,746,747
\leftmarginvi 730,748,749
\leftskip .1796,2019,2307
\let ....... 223,225,
237,239,241,267,
306,395,396,429,
430,431,432,433,
434,435,438,442,
598,628,677,738,
753,757,1113,
1114,1115,1116,
1117,1261,1501,
1502,1517,1518,
1521,1527,1600,
1601,1826,1827,
1829,1893,1915,
1973,1979,2016,
2021,2277,2278,
2279,2281,2282,2283
\libertineLF ...... 630
\lineskip ..... 1978,2020
\linespacing ... 382,383
\liningnums ....... 628
\list ............ 751
\listisep ... 732,733,737
\listparindent .... 736
\LoadClass ........ 182
\long ......... 573,
584,665,668,671,
1203,1205,1486,2069
\loop ........ 2080,2214
M
\makeatletter ..... 379
\makebox ..... 1533,2223
\makelabel ........ 753
\MakeTextUppercase .
.... 1896,1898,
2309,2318,2321,
2324,2327,2349,2353
\maketitle ..... 19,1495
\marginfigure ..... 667
marginfigure (environ-
ment) ........ 21
\marginpar ..... 573,
666,669,672,1662
\marginparsep . . 674,2185
\marginparwidth .674,2185
\margintable ...... 670
margintable (environ-
ment) ........ 21
\mbox ............ 245
\mdseries .........
1721,1723,1725,
1729,1731,1733,
1735,1737,1877,1880
\medskip . . 1616,1618,
1620,1622,1916,
1918,1977,2030,2051
\mktitle@bx ....1494,
1644,1646,1648,
1650,1652,1654,
1656,1658,1660,
1749,1768,1796,
1916,1976,1977,2029
\month ....... 1166,2110
\moveleft ......... 691
\multiply ......... 2220
N
\NAT@@setcites .... 263
\NAT@aysep ........ 254
\NAT@citetp ....... 438
\NAT@close ........
203,205,207,209,252
\NAT@cmprs . . 231,233,235
\NAT@cmt ......... 258
\NAT@ctype ........ 438
\NAT@find@eq ...... 246
\NAT@fullfalse .... 438
\NAT@longnamestrue .243
\NAT@merge . . 237,239,241
\NAT@nmfmt ........ 245
\NAT@numbersfalse . . 217
\NAT@numberstrue 219,221
\NAT@open ...... 203,
205,207,209,250,438
\NAT@partrue ...... 438
\NAT@rem@eq ....... 248
\NAT@sep 211,213,215,260
\NAT@sort ... 227,229,235
\NAT@superfalse .... 219
\NAT@supertrue .... 221
\NAT@swafalse ..... 437
\NAT@up .......... 245
\NAT@yrsep ........ 256
\NeedsTeXFormat ...... 1
\newblock ......... 439
\newbox . . 1494,1803,1920
\newcommand .273,279,
445,1033,1100,
1149,1186,1191,
1241,1262,1818,
1823,2108,2479,2495
\newcount .1056,1058,2075
\newcounter ... 2104,2106
107
\newdimen ... 673,710,
1921,2192,2194,2196
\newenvironment ....
..... 667,670,1485
\newfloat ......... 662
\newif 124,125,126,612,
1179,1285,1287,1289
\newlength ........
1181,1183,1184,2074
\newsavebox ....... 2073
\newskip ......732,1922
\newtheorem .......
2424,2427,2430,
2432,2435,2439,2442
\newtheoremstyle ...
....... 2378,2408
\newwrite ......... 386
\nobreak ......345,2051
\noindent . . 571,1257,
1518,1616,1618,
1620,1622,1641,
1662,1749,1756,
1759,1783,1797,
1798,1800,1883,
1916,1917,1976,
2020,2029,2030,
2036,2051,2052,2458
\nolinkurl ........
1960,1962,2003,2005
\normalcolor ...... 564
\normalfont 596,1257,
1513,1856,1861,
1870,1871,1873,
1874,2374,2389,
2401,2404,2464,2502
\normalparindent ... 549
\normalsize 1718,1856,
1870,1871,1874,2502
\num@authorgroups . .
1056,1063,1498,
1937,1941,1943,1986
\num@authors . . 1058,1061
\number .......... 304
\numberline .... 324,337
\numexpr .2103,2105,2107
O
\onehalfspacing .... 190
\openout ......... 387
\or ........... 141,
143,145,147,149,
151,153,155,163,
165,167,169,171,
173,175,177,407,
408,409,410,411,
412,414,415,476,
483,490,497,504,
511,518,525,539,
540,541,543,544,
545,546,547,645,
646,647,648,649,
651,654,657,697,
698,699,700,701,
702,707,708,817,
821,828,832,836,
840,844,848,851,
857,863,869,873,
877,879,883,887,
889,891,893,897,
901,905,909,913,
917,921,925,929,
933,937,941,945,
949,953,957,961,
965,970,974,978,
982,986,990,994,
998,1002,1006,
1010,1014,1018,
1167,1168,1169,
1340,1342,1345,
1347,1348,1350,
1352,1354,1357,
1360,1363,1365,
1372,1383,1394,
1402,1408,1414,
1428,1440,1447,
1461,1468,1474,
1617,1619,1621,
1623,1625,1627,
1629,1631,1645,
1647,1649,1651,
1653,1655,1657,
1659,1679,1681,
1683,1685,1687,
1689,1691,1693,
1701,1703,1705,
1707,1709,1711,
1713,1715,1722,
1724,1726,1728,
1730,1732,1734,
1736,1836,1838,
1840,1842,1844,
1846,1848,1850,
1859,1862,1863,
1866,1869,1872,
1875,1878,1939,
1940,1942,1944,
1988,2123,2125,
2127,2129,2131,
2133,2135,2137,
2151,2158,2166,
2201,2206,2241,
2249,2257,2316,
2317,2320,2323,
2326,2329,2347,
2351,2365,2366,
2367,2368,2369,
2370,2375,2376,
2395,2396,2397,
2398,2399,2400,
2405,2406,2451,
2452,2453,2454,
2455,2456,2459,2460
\orcid ........ 10,1123
\outer@nobreak .... 688
P
\p@ ........... 390,
535,542,550,551,
557,558,2286,
2290,2294,2295,
2298,2299,2302,
2303,2333,2338,
2339,2343,2344,2464
\PackageError .54,62,
70,78,86,94,102,112
\PackageInfo .... 51,
53,59,61,67,69,
75,77,83,85,91,
93,99,101,107,
111,827,856,862,868
\PageIndex ......... 16
\pageref ......... 2112
\pagestyle ........ 2191
\par .289,345,381,560,
686,1257,1521,
1527,1540,1544,
1587,1596,1616,
1618,1620,1622,
1644,1646,1648,
108
1660,1759,1766,
1783,1794,1797,
1800,1802,1821,
1822,1824,1825,
1883,1887,1916,
1918,1924,1926,
1954,1956,1962,
1969,1977,1979,
1997,1999,2005,
2012,2019,2021,
2027,2028,2029,
2030,2040,2051,
2067,2068,2069,2462
\paragraph 1628,2297,2337
\parbox 467,1755,1773,
1780,1788,2078,2227
\parindent 535,549,719,
1521,1527,1538,
2297,2308,2360,2390
\parskip ......535,1538
\part ............ 2301
\PassOptionsToClass
......... 120,121
\pdfgentounicode ... 609
\pdfglyphtounicode .
...... 602,603,
604,605,606,607,608
\pdfstringdefDisableCommands
............ 398
\phantomsection ....
.... 197,2034,2474
\popQED .......... 2469
\position ....... 11,
1109,1113,1114,
1115,1116,1117,1811
\postcode ...11,1116,1811
printonly (environment) 21
\ProcessOptionsX ... 122
\proof ........... 2462
\proofname ........ 2462
\protect ...... 324,337
\protected@edef ....
...... 309,576,590
\providecommand ....
..... 439,443,2358
\ProvidesClass ...... 5
\ProvidesFile ....... 3
\ps@headings . . 2279,2283
\ps@myheadings 2278,2282
\ps@plain ..... 2277,2281
\pushQED ......... 2463
\put ......... 2091,2098
Q
\qed ............. 2463
\quad ..... 366,2160,
2163,2168,2172,2270
R
\raggedright ......
... 1755,1796,2019
\raisebox .........
1533,1751,1763,
1775,1790,2223,2225
\received ...... 18,1241
\RecordChanges ..... 18
\ref ......... 2057,2064
\refname ...... 196,197
\refstepcounter .... 308
\relax . . 127,132,139,
161,246,247,290,
309,311,315,329,
343,358,368,376,
387,406,473,538,
598,644,696,813,
1057,1059,1061,
1063,1149,1150,
1266,1275,1300,
1305,1308,1312,
1318,1321,1324,
1327,1330,1333,
1339,1371,1517,
1615,1643,1677,
1699,1720,1834,
1858,1923,1932,
1933,1934,1935,
1938,1941,1943,
1945,1947,1950,
1978,1981,1982,
1983,1984,1987,
1990,1993,2023,
2043,2076,2105,
2107,2113,2121,
2145,2200,2202,
2203,2204,2207,
2208,2209,2212,
2213,2215,2218,
2219,2220,2221,
2237,2269,2315,
2364,2394,2450,2464
\removelastskip .... 381
\renewcommand . . 195,
199,200,203,205,
207,209,211,213,
215,265,632,750,
1060,1119,1487,
1503,2142,2143,
2234,2235,2285,
2289,2293,2297,
2301,2332,2337,2342
\renewenvironment . .
.664,751,1202,2462
\repeat ...... 2083,2217
\RequirePackage . . 30,
31,183,184,185,
186,187,189,192,
194,397,454,464,
471,552,599,611,
623,624,625,626,
634,1259,1264,2071
\reset@font .... 574,587
\reversemarginpar . . 533
\rightskip ........ 2306
\rlap ............ 2224
\rule ..... 581,594,2226
S
\savebox ......... 2078
screenonly (environ-
ment) ........ 21
\scriptsize ... 2080,2084
\scshape ..... 2361,2447
\section ...... 196,
1624,1626,1630,
1632,2038,2285,2473
\section@raggedright
.... 2305,2309,
2310,2318,2319,
2321,2322,2324,
2325,2327,2328,
2330,2331,2336,
2349,2350,2353,2354
\SelectFootnoteRule
......... 553,555
\setbox ....... 354,
585,691,1749,
1768,1796,1807,
1916,1925,1976,2029
\setcitestyle .....
... 23,200,274,280
109
\setcopyright . . 17,1336
\setcounter ....1512,
1582,1638,2105,
2107,2313,2348,2352
\setkeys ....... 38,
130,1027,1228,
1336,1906,1907,
1911,1912,1966,
1967,1970,1971,
2009,2010,2013,2014
\setlength 535,536,542,
549,712,713,718,
724,727,728,729,
730,1182,1185,2079
\settopmatter .....
. . 18,1228,1229,
1231,1234,1236,1239
\setTrue ......... 380
\SetWatermarkColor .466
\SetWatermarkFontSize 465
\SetWatermarkText . . 467
\sfdefault ........ 632
\sffamily . . 1700,1702,
1704,1706,1708,
1710,1714,1855,
1860,1864,2122,
2124,2126,2128,
2130,2132,2134,
2136,2138,2229,
2309,2310,2311,
2318,2319,2321,
2322,2327,2328,
2349,2350,2353,2354
\shortauthors 19,1081,
1082,1087,1088,
1090,1093,1094,
1096,1599,1601,2118
\shortcite ..... 442,445
\shorttitle ....2149,
2155,2163,2172,2177
\showeprint ....... 2495
\sidebar ......... 662
sidebar (environment) . 21
\skip ............ 563
\small . . 574,666,669,
672,1257,1616,
1618,1620,1622,
1861,2036,2051,2239
\smallskipamount ... 733
\space .... 333,1828,2480
\specialcomment .... 2471
\standardpagestyle .2140
\startPage ..... 16,1196
\state .....11,1115,1811
\stepcounter ...1128,
1130,1137,1140,1147
\streetaddress ....
..... 11,1113,1811
\string 452,1198,2047,2048
\strut ....... 1773,1788
\strutbox ...... 581,594
\subparagraph ..... 2342
\subsection ....... 2289
\subsubsection 2293,2332
\subtitle ...... 10,1054
\subtitlenote . . 14,1133
T
\teaserfigure ..... 1485
teaserfigure (environ-
ment) ........ 18
\terms ........ 16,1198
\textbf ...... 1268,1279
\textbullet 400,1267,
2160,2163,2168,2172
\textcolor ........ 2229
\textheight ....... 2083
\textit .......1280,
2055,2059,2060,2061
\textrightarrow .401,1277
\textwidth 674,692,693,
1507,1739,1767,
1795,1832,1932,1975
\thanks ....13,1487,2069
\thankses .........
1490,1492,1519,2069
\the ...... 1164,1166,
2080,2084,2110,2220
\theACM@time@hours .
....... 2107,2111
\theACM@time@minutes 2111
\theenumi ......... 703
\theenumii ........ 704
\theenumiii ....... 705
\theenumiv ........ 706
\thefootnote ...... 1503
\theoremstyle .....
2419,2422,2437,2445
\thepage . . 2112,2146,
2147,2152,2153,
2160,2163,2168,
2172,2176,2239,2266
\thispagestyle .... 1640
\thmname ..... 2388,2418
\thmnote ..... 2388,2418
\thmnumber .... 2388,2418
\thr@@ ........... 241
\time .... 2102,2105,2107
\title ......... 8,2047
\titlenote . . 14,1124,2048
\topsep ... 737,741,2464
\trivlist ......... 2465
\tw@ ............. 239
\two@digits ... 2110,2111
\twocolumn .....1650,
1652,1654,1656,1658
U
\unskip .... 357,399,
561,1112,1118,
1808,1811,1812,
1814,1815,1816,
1817,1818,1828,
1887,2045,2064,2070
\unvbox .... 565,570,586
\upshape ......... 750
\url ......... 1369,2480
\urlstyle ... 404,413,416
\usebox ...... 2091,2098
\usepackage .......
.10,11,12,13,14,15
V
\vbox ......... 585,
691,1749,1768,
1796,1916,1976,2029
\vskip 346,381,563,597,686
\vtop ............ 1925
W
\wd ...........693,1808
\write ........... 452
X
\xdef ......... 250,
252,254,256,258,260
Y
\year ........ 1164,2110
110
Z
\z@ ..... 229,292,312,
344,354,369,382,
536,581,594,597,
638,642,653,718,
724,736,1504,
1506,1521,1527,
1533,1538,1751,
1763,1775,1790,
2019,2142,2143,
2193,2195,2197,
2223,2225,2234,
2235,2285,2289,
2301,2308,2332,
2337,2342,2372,2402
\z@skip 381,686,741,2307
111

Navigation menu