LaTeX Class For Association Computing Machinery Acmart Instructions
User Manual:
Open the PDF directly: View PDF .
Page Count: 111
Download | |
Open PDF In Browser | View PDF |
LATEX Class for Association for Computing Machinery ∗ Boris Veytsman† 2017/08/31, v1.47 Abstract This package provides a class for typesetting publications of Association for Computing Machinery. Contents 1 Introduction 3 2 User’s guide 2.1 Installation . . . . . . . . . . . . . . . . . . . . . . 2.2 Invocation and options . . . . . . . . . . . . . . . 2.3 Topmatter commands . . . . . . . . . . . . . . . . 2.4 Algorithms . . . . . . . . . . . . . . . . . . . . . . 2.5 Figures and tables . . . . . . . . . . . . . . . . . . 2.6 Theorems . . . . . . . . . . . . . . . . . . . . . . . 2.7 Online-only and offline-only material . . . . . . . 2.8 Note about anonymous mode . . . . . . . . . . . 2.9 Acknowledgments . . . . . . . . . . . . . . . . . . 2.10 Bibliography . . . . . . . . . . . . . . . . . . . . . 2.11 Colors . . . . . . . . . . . . . . . . . . . . . . . . 2.12 Other notable packages and typographic remarks 2.13 A note for wizards: acmart-preload-hook.tex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 5 7 19 19 21 21 22 22 23 25 26 26 3 Implementation 3.1 Identification . . 3.2 Preload . . . . . 3.3 Options . . . . . 3.4 Setting switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 28 28 28 31 ∗ ©2016–2017, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Association for Computing Machinery boris@varphi.com † borisv@lk.net, 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 Loading base class and package . . Paper size and paragraphing . . . . Fonts . . . . . . . . . . . . . . . . . Floats . . . . . . . . . . . . . . . . . Lists . . . . . . . . . . . . . . . . . . Top matter data . . . . . . . . . . . Concepts system . . . . . . . . . . . Copyright system . . . . . . . . . . Typesetting top matter . . . . . . . Headers and Footers . . . . . . . . . Sectioning . . . . . . . . . . . . . . TOC Lists . . . . . . . . . . . . . . . Theorems . . . . . . . . . . . . . . . Acknowledgments . . . . . . . . . . Conditional typesetting . . . . . . . Additional bibliography commands End of Class . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 39 42 43 45 47 59 60 65 79 84 86 86 89 89 90 90 1 Introduction Association for Computing Machinery is the world’s largest educational and scientific computing society, which delivers resources that advance computing as a science and a profession1 . It was one of the early adopters of TEX for its typesetting. It provided several different classes for a number of journal and conference proceedings. Unfortunately during the years since these classes were written, the code was patched many times, and the support of the different versions of the classes became difficult. This package provides the uniform interface for all ACM publications. It is intended to replace all different classes and packages and provide an up to date LATEX package. The package uses only free TEX packages and fonts included in TEXLive, MikTEX and other popular TEX distributions. It is intended to be published in these distributions itself, which minimizes users’ efforts in the installation and support of the package. I am grateful to Michael D. Adams, Leif Andersen, Dirk Beyer, Benjamin Byholm, Michael Ekstrand, Matthew Fluet, Paolo G. Giarrusso, Ben Greenman, LianTze Lim, Ben Liblit, Kai Mindermann, Frank Mittelbach, Ross Moore, John Owens, Joel Nider, Tobias Pape, Mathias Rav, Matteo Riondato, Craig Rodkin, Bernard Rous, David Shamma, Stephen Spencer, John Wickerson, and many others for their invaluable help. The development version of the package is available at https://github.com/ borisveytsman/acmart. 2 User’s guide The class uses many commands and customizaton options, so it might appear intimidating for a casual user. Do not panic! Many of these commands and options can be safely left with their default values, or the values recommended by your conference 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 TEX Users Group. The world-wide TEX Users Group is at https://tug.org/; please consider joining us if you use TEX regularly. 2.1 Installation Most probably, you already have this package installed in your favorite TEX 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. The latest released version of the package can be found on CTAN: https://www. ctan.org/pkg/acmart. The development version can be found on GitHub: https:// github.com/borisveytsman/acmart. At this address you can file a bug report—or even contribute your own enhancement making a pull request. Most users should not attempt to install this package themselves, and rather rely on their TEX distributions to provide it. If you decide to install the package yourself, follow the standard rules: 1 http://www.acm.org/ 3 1. Run latex on acmart.ins. This will produce the file acmart.cls 2. Put the file acmart.cls and the bibliography files *.bst to the places where LATEX can find them (see [1] or the documentation for your TEX system). 3. Update the database of file names. Again, see [1] or the documentation for your TEX system for the system-specific details. 4. The file acmart.pdf provides the documentation for the package (this is the file you are probably reading now). As an alternative to items 2 and 3 you can just put the files in the working directory where your .tex file is. The class uses a number of other packages. They are included in all major TEX distributions (TEXLive, MacTEX, MikTEX) 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 • draftwatermark, 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 • float, 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 • ifluatex, 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 • pdftex-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} There are several options corresponding to the type of the document and its general appearance. They are described below. Generally speaking, the options have key=value forms, for example \documentclass[format=acmsmall, screen=true, review=false]{acmart} 5 Table 1: The possible values for the format option Value Meaning manuscript acmsmall A manuscript. This is the default 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), TOMPECS, TOMS, TOPC, TOPLAS, TOPS, TOS, TOSEM, TOSN, TRETS, TSAS, TSC, TSLP, TWEB, including special issues. Large single column format, used for IMWUT, JOCCH, POMACS, TAP, including special issues. Large double column format, used for TOG, including special issues. Proceedings format for most of ACM conferences (with the exceptions listed below) and all ICPS volumes. As of March 2017, this format is no longer used. Please use sigconf for SIGGRAPH conferences. Proceedings format for SIGPLAN conferences. Proceedings format for SIGCHI conferences. Format for SIGCHI extended abstract. acmlarge acmtog sigconf siggraph sigplan sigchi sigchi-a The option format describes the format of the output. There are several possible values for this option, for example, \documentclass[format=acmtog]{acmart} Actually the words format= can be omitted, e.g., \documentclass[acmtog, review=false]{acmart} The possible formats are listed in Table 1. Note that formats starting with acm are intended 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 issues) of an ACM journal. In this case you should use the journal format for a conference paper. Please contact your conference committee if in doubt. There are several Boolean options which can take true or false values. They are listed in Table 2. The words =true can be omitted when setting the Boolean option, so instead of screen=true one can write just screen, for example, \documentclass[acmsmall, screen, review]{acmart} The 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 screen natbib anonymous authorversion see text true false false timestamp authordraft acmthm false false true A review version: lines are numbered, hyperlinks are colored A screen version: hyperlinks are colored Whether to use natbib package (see Section 2.10) Whether to make author(s) anonymous Whether to generate a special version for authors’ personal use or posting (see Section 2.3) Whether to put a time stamp in the footer of each page Whether author’s draft mode is enabled Whether to define theorem-like environments, see Section 2.6 The 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. Thus PACM titles (see Table 3 set this option to true. This option may in the future involve additional features suitable for on-screen versions of the articles. The option natbib is used when the corresponding BibTEX style is based on natbib. In most cases you do not need to set it. See Section 2.10. The option anonymous is used for anonymous review process: all author information becomes obscured. The option timestamp is used to include a time stamp in the footer of each page. When preparing a document, this can help avoid confusing different revisions. The footer also include the page range of the document. This helps detect missing pages in hard copies. The option authordraft is intended for the authors’ drafts, not intended for distribution. 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 draft. Not for distribution”, which also is used as a watermark. This option sets timestamp and review to true, but these decisions can be overriden by setting these options to false after authordraft. 2.3 Topmatter commands A number of commands set up top matter information, or, in the computer science jargon, metadata for the article. They 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. These macros should be used before the \maketitle command. Note that in the previous versions of ACM classes some of these commands should be used before \maketitle, and some after it. Now they all must be used before \maketitle. 7 \acmJournal The class internally loads amsart class, so many top matter commands are inherited from amsart [2]. The macro \acmJournal{hshortNamei} sets the name of the journal or transaction for journals and transactions. The argument is the short name of the publication in uppercase, for example, \acmJournal{TOMS} \acmConference The 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. The macro \acmConference[hshort namei]{hnamei}{hdatei}{hvenuei} is used for conference proceedings published in the book form. The 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} \acmBooktitle By default we assume that the conference proceedings are published in the book named Proceedings of CONFERENCE, where CONFERENCE is the name of the conference inferred from the command \acmConference above. However, sometimes the book title is different. The 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)} \editor In most cases conference proceedings are edited. You can use the command \editor[heditori] to set the editor of the volume. This command can be repeated, for example, \editor{Jennifer B. Sartor} \editor{Theo D’Hondt} \editor{Wolfgang De Meuter} \title The command \title, as in amsart class, has two arguments: one optional, and one mandatory: 8 Table 3: ACM publications and arguments of the \acmJournal command Abbreviation Publication CIE CSUR IMWUT JACM JDIQ JEA JERIC JETC JOCCH PACMHCI PACMPL POMACS TAAS TACCESS TACO TALG TALLIP TAP TCPS TEAC TECS THRI TIIS TISSEC TIST TKDD TMIS TOCE TOCHI TOCL TOCS TOCT TODAES TODS TOG TOIS TOIT TOMACS TOMM TOMPECS TOMS TOPC TOPLAS TOPS TOS TOSEM TOSN TRETS TSAS TSC TSLP TWEB ACM Computers in Entertainment ACM Computing Surveys PACM on Interactive, Mobile, Wearable and Ubiquitous Technologies Journal of the ACM ACM Journal of Data and Information Quality ACM Journal of Experimental Algorithmics ACM Journal of Educational Resources in Computing ACM Journal on Emerging Technologies in Computing Systems ACM Journal on Computing and Cultural Heritage PACM on Human-Computer Interaction PACM on Programming Languages PACM on Measurement and Analysis of Computing Systems ACM Transactions on Autonomous and Adaptive Systems ACM Transactions on Accessible Computing ACM Transactions on Architecture and Code Optimization ACM Transactions on Algorithms ACM Transactions on Asian and Low-Resource Language Information Processing ACM Transactions on Applied Perception ACM Transactions on Cyber-Physical Systems ACM Transactions on Economics and Computation ACM Transactions on Embedded Computing Systems ACM Transactions on Human-Robot Interaction ACM Transactions on Interactive Intelligent Systems ACM Transactions on Information and System Security ACM Transactions on Intelligent Systems and Technology ACM Transactions on Knowledge Discovery from Data ACM Transactions on Management Information Systems ACM Transactions on Computing Education ACM Transactions on Computer-Human Interaction ACM Transactions on Computational Logic ACM Transactions on Computer Systems ACM Transactions on Computation Theory ACM Transactions on Design Automation of Electronic Systems ACM Transactions on Database Systems ACM Transactions on Graphics ACM Transactions on Information Systems ACM Transactions on Internet Technology ACM Transactions on Modeling and Computer Simulation ACM Transactions on Multimedia Computing, Communications and Applications ACM Transactions on Modeling and Performance Evaluation of Computing Systems ACM Transactions on Mathematical Software ACM Transactions on Parallel Computing ACM Transactions on Programming Languages and Systems ACM Transactions on Privacy and Security ACM Transactions on Storage ACM Transactions on Software Engineering and Methodology ACM Transactions on Sensor Networks ACM Transactions on Reconfigurable Technology and Systems ACM Transactions on Spatial Algorithms and Systems ACM Transactions on Social Computing ACM Transactions on Speech and Language Processing ACM Transactions on the Web 9 \title[hShortTitlei]{hFullTitlei} \subtitle \author \orcid \affiliation \email The mandatory argument is the full title of the article. The optional argument, if present, defines 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. The commands for specification of authors are highly structured. The 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. Therefore it is very important to follow the guidelines exactly. The basic commands are \author, \orcid (for the researchers registered with ORCID, http://www.orcid.org/), \affiliation and \email. In the simplest case you enter them in this order: \author{...} \orcid{...} \affiliation{...} \email{...} Do not use LATEX \and macro! Each author deserves his or her own \author command. Note that some formats do not typset e-mails of ORCID identifiers. Do not worry: metadata tools will get them. Sometimes an author has several affiliations. In this case the \affiliation command should be repeated: \author{...} \orcid{...} \affiliation{...} \affiliation{...} \email{...} Similarly you can repeat \email command. You may have several authors with the same affiliation, different affiliations, or overlapping affiliations (author A1 is affiliated with institutions I 1 and I 2 , while author A2 is affiliated with I 2 only, and author A3 is affiliated with I 1 and I 3 , . . . ). The recommended solution is to put the \affiliation commands after 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 affiliation you may try to save the space using the format \author{...} \email{...} \author{...} \email{...} \affiliation{...} \additionalaffiliation However, this format is not generally recommended. In some cases too many affiliations take too much space. The command \additionalaffiliation{haffiliationi creates a footnote after author’s name with the words “Also with {haffiliationi}”. 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} } \position \institution \department \streetaddress \city \state \postcode \country Here Trovato and Tobin share their affiliation with the Institute for Clarity in Documentation, but only Ben Trovato is affiliated with The Thørväld Group. The \affiliation and \additionalaffiliation commands are further structured 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 affiliation. 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 efforts from the authors to achieve alignment. The new format is much better in this. Sometimes an author works in several departments within the same insitution. There could be two situations: the departments are independent, or one department is within another. In the first case just repeat the command \department several times. To handle the second case the command has an optional numerical parameter. The 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}} The command \affiliation formats the output according to American conventions. This 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 after 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. Thus \affiliation[obeypuctuation=true]{% \institution{Fluginstitut}\\ \streetaddress{Sonnenallee 17}\\ \postcode{123456} \city{Helm}, \country{Germany} } will be typeset as Fluginstitut Sonenallee 17 123456 Helm, Germany \thanks 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 LATEX), we allow \thanks only outside of commands 13 \authorsaddresses \title and \author. This 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 first page. By default LATEX 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.} \titlenote \subtitlenote \authornote You can suppress printing authors’ addresses by setting them to an empty string: \authorsaddresses{}. While the command \thanks generates a note without footnote mark, sometimes the authors might need notes more tightly connected to the title, subtitle or author. The commands \titlenote, \subtitlenote and \authornote that follow the corresponding 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} \authornotemark Please never use \footnotes inside \author or \title commands, since this confuses metadata extraction software (actually these commands now produce errors). Sometimes one may need to have the same footnote connected to several authors. The 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] \acmVolume \acmNumber \acmArticle \acmYear \acmMonth The correct numbering of these marks is the responsibility of the user. The macros \acmVolume, \acmNumber, \acmArticle, \acmYear and \acmMonth are inserted by the editor and set the journal volume, issue, article number, year and month corrspondingly. The arguments of all these commands, including \acmMonth is numerical, including \acmMonth, for example, 14 \acmVolume{9} \acmNumber{4} \acmArticle{39} \acmYear{2010} \acmMonth{3} \acmArticleSeq Note that \acmArticle is used not only for journals, but also for some conference proceedings. The articles in the same issue of a journal have a sequential number. It is used to 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 \acmSubmissionID Setting this number to zero suppresses the blob. If you paper got a Submission ID from the Conference Management System, put it here: \acmSubmissionID{123-A56-BU3} \acmPrice The macro \acmPrice{hpricei} sets the price for the article \acmPrice{25.00} \acmISBN 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 after the \setcopyright command to override the default. Also, the command \acmPrice{} suppresses the printing of the price. Book-like volumes have ISBN numbers attached to them. The macro \acmISBN{hISBN i} sets it. Normally it is set by the typesetter, for example, \acmISBN{978-1-4503-3916-2} \acmDOI Setting it to empty string, as \acmISBN{}, suppresses printing of ISBN. The macro \acmDOI{hDOI i} sets the DOI number of the article, for example, \acmDOI{10.1145/9999997.9999999} \acmBadgeR \acmBadgeL It is normally set by the typesetter. Setting it to empty string, \acmDOI{} suppresses DOI. Some conference articles get special distinction, for example, the artifact evaluation for PPoPP 2016 (see http://ctuning.org/ae/ppopp2016.html). These articles display special badges supplied by the conference organizers. The class provides commands to 15 add these badges: \acmBadgeR[hurli]{hgraphicsi} and \acmBadgeL[hurli]{hgraphicsi}. The first command puts the badge to the right of the title, and the second one—to the left. The exception is the sigchi-a mode for SIGCHI Extended abstract, which puts the badges on the left margin. The argument have the following meaning: [hurli], if provided, sets the link to the badge authority in the screen version, while {hgraphicsi} sets the graphics file with the badge image. The file 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} \startPage \terms \keywords The macro \startPage{hpagei} sets the first page of the article in the journal or book. It is used by the typesetter. The command \keywords{hkeyword, keyword,. . . i} sets keywords for the article. They must be separated by commas, for example, \keywords{wireless sensor networks, media access control, multi-channel, radio interference, time synchronization} CCSXML \ccsdesc ACM publications are classified according to the ACM Computing Classification Scheme (CCS). CCS codes are used both in the typeset version of the publications and in the metadata in the various databases. Therefore you need to provide both TEX commands and XML metadata with the paper. The tool at http://dl.acm.org/ccs.cfm can be used to generate CCS codes. After you select the topics, click on “Generate CCS codes” to get the result like the following: \begin{CCSXML}\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} \setcopyright You need to just copy this code and paste it in your paper anywhere before \maketitle. There are several possibilities for the copyright of the papers published by ACM: 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}. The possible values for this command are listed in Table 4. The ACM submission software should generate the right command for you to paste into your file. 17 \copyrightyear Each copyright statement must have the year of copyright. By default it is the same as \acmYear, but you can override this decision using the macro \copyrightyear, e.g., \acmYear{2016} \copyrightyear{2015} abstract teaserfigure There 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 specific journal or conference for the details). The 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 TEX about the copyright owner and year. Also, you should be aware that due to the different sizes of the permssion blocks for the printed version and authors’ version the page breaks might be different between them. The environment abstract must precede \maketitle command. Again, this is different from the standard LATEX. A special kind of figure is used for many two-column conference proceedings. This figure is placed just after the authors, but before the main text. The environment teaserfigure is used for these figures. This environment must be used before \maketitle, for example, \begin{teaserfigure} \includegraphics[width=\textwidth]{sampleteaser} \caption{This is a teaser} \label{fig:teaser} \end{teaserfigure} \settopmatter Some information in the top matter is printed for certain journals or proceedings and suppressed for others. You may override these defaults using the command \settopmatter{hsettingsi}. The settings and their meanings are listed in Table 5. For example, \settopmatter{printacmref=false, printccs=true, printfolios=true} The 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.). The number of the boxes per row is determined automatically. If you want to override this decision, you may do it using this parameter, for example, \settopmatter{authorsperrow=4} \received However, in most cases you should not do this and use the default settings. Setting authorsperrow to 0 will revert to default settings. The command \received[hstagei]{hdatei} sets the history of the publication. The 18 Table 5: Settings for \settopmatter command Parameter Values Meaning printccs printacmref printfolios authorsperrow true/false true/false true/false numeric Whether to print CCS categories Whether to print ACM bibliographic entry Whether to print page numbers (folios) Number of authors per row for title page in conference proceedings formats [hstagei] argument is optional; the default is Received for the first date and revised for the subsequent ones. For example \received{February 2007} \received[revised]{March 2009} \received[accepted]{June 2009} \maketitle \shortauthors The macro \maketitle must be the last command in the top matter group: i.e., it must follow the commands defined in this section. After the command \maketitle the macro \shortauthors stores the names of the authors for the running head. You may redefine it if the list of author’s name is too long, e.g., \maketitle \renewcommand{\shortauthors}{Zhou et al.} 2.4 Algorithms There are now several good packages for typesetting 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 LATEX interface for figures and tables. There are some important items to be aware of, however. 1. The captions for figures must be entered after the figure bodies, and for the tables before the table bodies. 2. ACM uses the standard types for figures and types and adds several new ones. In total there are the following types: figure, table: a standard figure or table, taking full text width in one-column formats and one column in two-column formats. figure*, table* in two-column formats, a special figure or table taking full text width. 19 teaserfigure: a special figure before \maketitle. sidebar, marginfigure, margintable: in the sigchi-a format, special sidebars, tables and figures 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 coincides 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]. The 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} sidebar marginfigure margintable SIGCHI extended abstract extensively uses margin space. The package provides three environments for this with option captions: sidebar: textual information on the margin marginfigure: a figure on the margin margintable: a table on the margin Tables and figures (including margin tables and margin figures) are by default centered. However, in some cases (for example, when you use several subimages per figure) 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 Theorems ACM classes define two theorem styles and several pre-defined theorem environments: acmplain: this is the style used for theorem, conjecture, proposition, lemma, and corollary, and acmdefinition: this is the style used for example and definition. These environments are defined by default. In the unusual circumstance that a user does not wish to have these environments defined, the option acmthm=false in the preamble will suppress them. 2.7 printonly screenonly Online-only and offline-only material Some supplementary material in ACM publication is put online, but not in the printed version. The text inside the environment screenonly will be typeset only when the option 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 typesetting this code, so \begin and \end should start at the first positions of the lines of their own (no initial spaces etc.). 2.8 anonsuppress Note about anonymous mode When the option anonymous is selected, TEX suppresses author information (including 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 acks \grantsponsor \grantnum Acknowledgments The traditional “Acknowledgments” section is conventionally used to thank persons and granting agencies for their help and support. However, there are several important considerations about this section. First, in the anonymous mode this section must be omitted: it gives too much information to the reviewers. Second, the data about the grants is extracted and stored separately by the postprocessing software. ACM classes provide facilities for both these tasks. The environment acks starts an unnumbered section “Acknowledgments” unless the 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 financial support must be listed using the commands \grantsponsor and \grantnum. These commands tell the postprocessing software about the granting organization and the grant. The 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. The {hsponsorIDi} of the \grantnum command must correspond to \sponsorID of a \grantsponsor command. Some awards have their own web pages, which you can include 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. There 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 \citestyle Bibliography ACM uses the natbib package for formatting references and the style ACM-Reference-Format. bst for BibTEX 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 BibTEX 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 predefined sitation styles: the authoryear format acmauthoryear or the numeric format acmnumeric using the command \citestyle, for example, \citestyle{acmauthoryear} \setcitestyle Note that numeric citations are the default mode for most formats. You may further customize natbib using \setcitestyle command, for example, \setcitestyle{numbers,sort&compress} If you use natbib, then commands like \citep and \citeauthor are automatically supported. The command \shortcite is the same as \cite in numerical mode, and cites the year in the author-date mode. There are several customized BibTEX entries and fields in ACM style ACM-Reference-Format. bst you may want to be aware of. The style supports fields doi and url, for example, doi = url = "10.1145/1188913.1188915", "http://ccrma.stanford.edu/˜jos/bayes/bayes.pdf", The style supports arXiv recommended fields eprint and (optionally) primaryclass, for example, eprint = "960935712", primaryclass = "cs", 23 See the examples at http://arxiv.org/hypertex/bibstyles/. There 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 field to add the access date to the URL. There are two ways to enter video and audio sources in the bibliograpy corresponding to two different possibilies. For standalone sources available on WWW you can use an online entry, setting there howpublished field, 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 attachments to conference proceedings and similar documents, you can use the usual inproceedings entry, again setting the howpublished field: @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. The 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 often the case for online entries), use key field 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. The ACM classes pre-define 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. The most accessible approach would be to ensure that your article is still readable when printed in greyscale. The most notable reasons for this are: 1. The most common type of inherited Color Vision Deficiency (CVD) is red-green (in which similar-brightness colors that only differ in their amounts of red or green are often confused), and it affects up to 8% of males and 0.5% of females of Northern European descent. 2. The most common type of acquired Color Vision Deficiency (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 differences in hue and/or saturation), as there is bound to be someone affected! 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: The Accessible Colour Evaluator: http://daprlab.com/ace/ for designing WCAG 2.0 compliant palettes. 2.12 Other notable packages and typographic remarks Several other packages are recommended for specialized tasks. The package subcaption [8] is recommended for complex figures with several subplots or subfigures that require separate subcaptioning. The 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. This is done by rather strict settings \widowpenalty=10000 \clubpenalty=10000 \brokenpenalty=10000 However, this may lead to frustrating results when the authors must obey a page limit. Setting 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 putting the problematic paragraph inside sloppypar environment 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. The usual way to do this is to redefine commands in the preamble. However, these definitions are executed after acmart is loaded, and certain decisions are made. This presents a number of problems. For example, one may want to use titletoc package with acmart. This package 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 package itself without options. 26 The file acmart-preload-hook.tex may be used to solve these problems. If this file exists, it will be processed before any other package. You can use this file to load packages or pass options to them. For example, if you put in this file \let\LoadClassOrig\LoadClass \renewcommand\LoadClass[2][]{\LoadClassOrig[#1]{#2}% \usepackage{titletoc}} then titletoc will be loaded before hyperref. If you put in this file \PassOptionsToPackage{dvipsnames}{xcolor} you will pass dvipsnames to xcolor. Important note. This hook makes it too easy to create a manuscript which is not acceptable by ACM. Even easier it is to create a file 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 Identification We start with the declaration who we are. Most .dtx files put driver code in a separate driver file .drv. We roll this code into the main file, and use the pseudo-guard 10010520.10010553.10010562 Computer systems organization˜Embedded systems 500 10010520.10010575.10010755 Computer systems organization˜Redundancy 300 10010520.10010553.10010554 Computer systems organization˜Robotics 100 16 Table 4: Parameters for \setcopyright command Parameter Meaning none The copyright and permission information is not typeset (this is the option for some ACM conferences). The authors transfer the copyright to ACM (the “traditional” choice). The authors retain the copyright but license the publication rights to ACM. The authors retain the copyright and publication rights to themselves or somebody else. All the authors are employees of the US Government. Some authors are employees of the US Government. All the authors are employees of the Canadian Government. Some authors are employees of the Canadian Government. Some authors are employees of the US Government, and the publication rights are licensed to ACM. All the authors are employees of the Canadian Government, and the publication rights are licensed to ACM. Some authors are employees of the Canadian Government, and the publication rights are licensed to ACM. Authors are employees of a Government other than US or Canada. Authors are employees of a Government other than US or Canada, and the publication rights are licensed to ACM. acmcopyright acmlicensed rightsretained usgov usgovmixed cagov cagovmixed licensedusgovmixed licensedcagov licensedcagovmixed othergov licensedothergov 10003033.10003083.10003095 Networks˜Network reliability 100 for it. hclassi\NeedsTeXFormat{LaTeX2e} h*gobblei 3 \ProvidesFile{acmart.dtx} 4 h/gobblei 5 hclassi\ProvidesClass{acmart} 6 [2017/08/31 v1.47 Typesetting articles for Association of 7 Computing Machinery] 1 2 And the driver code: 8 h*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} \DocInput{acmart.dtx} 21 22 \end{document} h/gobblei h*classi 25 \def\@classname{acmart} 23 24 3.2 Preload We preload acmart-preload-hook: 26 \InputIfFileExists{acmart-preload-hook.tex}{% \ClassWarning{\@classname}{% I am loading acmart-preload-hook.tex. You are fully responsible for any problems from now on.}}{} 27 28 29 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 The possible formats 32 \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{% manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph, 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} 33 34 \if@ACM@screen Whether we use screen mode 49 \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{% \if@ACM@screen \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} 50 51 \if@ACM@acmthm Whether we define theorem-like environments. 57 \define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{% \if@ACM@acmthm \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} 58 59 \if@ACM@review Whether we use review mode 65 \define@boolkey+{acmart.cls}[@ACM@]{review}[true]{% \if@ACM@review \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} 66 67 29 \if@ACM@authorversion Whether we use author’s version 73 \define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{% \if@ACM@authorversion \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} 74 75 \if@ACM@natbib@override \if@ACM@natbib Whether we use natbib mode 81 \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{% \if@ACM@natbib \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} 82 83 \if@ACM@anonymous Whether we use anonymous mode 89 \define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{% \if@ACM@anonymous \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} 90 91 \if@ACM@timestamp Whether we use timestamp mode 97 \define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{% \if@ACM@timestamp \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} 98 99 \if@ACM@authordraft Whether we use authordraft mode 105 \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{% 106 107 108 109 110 \if@ACM@authordraft \PackageInfo{\@classname}{Using authordraft mode}% \@ACM@timestamptrue \@ACM@reviewtrue \else 30 \PackageInfo{\@classname}{Not using authordraft mode}% \fi}{\PackageError{\@classname}{Option authordraft can be either true or 113 false}} 114 \ExecuteOptionsX{authordraft=false} 111 112 \ACM@fontsize The 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 3.4 \if@ACM@manuscript format \ACM@format, number \ACM@format@nr} Setting switches Whether we use manuscript mode 124 \newif\if@ACM@manuscript \if@ACM@journal There are two kinds of publications: journals and books 125 \newif\if@ACM@journal \if@ACM@sigchiamode The formatting of SIGCHI abstracts is quite unusual. We have a special switch for them. 126 \newif\if@ACM@sigchiamode Setting up switches 127 \ifnum\ACM@format@nr=5\relax % siggraph \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 128 31 \@ACM@journaltrue % 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 146 147 \or 3.5 Loading base class and package At this point we either have \ACM@fontsize, or use defaults 159 \ifx\ACM@fontsize\@empty \ifcase\ACM@format@nr \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} 160 161 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 The amsmath \collect@body is defined 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 better upcasing 192 \RequirePackage{textcase} Citations. We patch \setcitestyle to allow, e.g., \setcitestyle{sort} and \setcitestyle{nosort}. We patch \citestyle to warn about undefined citation styles. 193 \if@ACM@natbib 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 \RequirePackage{natbib} \renewcommand{\bibsection}{% \section*{\refname}% \phantomsection\addcontentsline{toc}{section}{\refname}% } \renewcommand{\bibfont}{\bibliofont} \renewcommand\setcitestyle[1]{ \@for\@tempa:=#1\do {\def\@tempb{round}\ifx\@tempa\@tempb \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi \def\@tempb{square}\ifx\@tempa\@tempb \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi \def\@tempb{angle}\ifx\@tempa\@tempb \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi \def\@tempb{curly}\ifx\@tempa\@tempb \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi \def\@tempb{semicolon}\ifx\@tempa\@tempb \renewcommand\NAT@sep{;}\fi \def\@tempb{colon}\ifx\@tempa\@tempb \renewcommand\NAT@sep{;}\fi \def\@tempb{comma}\ifx\@tempa\@tempb \renewcommand\NAT@sep{,}\fi \def\@tempb{authoryear}\ifx\@tempa\@tempb \NAT@numbersfalse\fi \def\@tempb{numbers}\ifx\@tempa\@tempb \NAT@numberstrue\NAT@superfalse\fi \def\@tempb{super}\ifx\@tempa\@tempb \NAT@numberstrue\NAT@supertrue\fi \def\@tempb{nobibstyle}\ifx\@tempa\@tempb \let\bibstyle=\@gobble\fi \def\@tempb{bibstyle}\ifx\@tempa\@tempb \let\bibstyle=\@citestyle\fi \def\@tempb{sort}\ifx\@tempa\@tempb 33 \def\NAT@sort{\@ne}\fi \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 227 228 \bibstyle@acmauthoryear The default author-year format: 273 \newcommand{\bibstyle@acmauthoryear}{% 274 \setcitestyle{% 34 authoryear,% open={[},close={]},citesep={;},% aysep={},yysep={,},% notesep={, }}} 275 276 277 278 \bibstyle@acmnumeric The default numeric format: 279 \newcommand{\bibstyle@acmnumeric}{% 280 281 282 283 \setcitestyle{% numbers,sort&compress,% open={[},close={]},citesep={,},% notesep={, }}} The default is numeric: 284 \if@ACM@natbib 285 \citestyle{acmnumeric} 286 \fi \@startsection Before we call hyperref, we redefine \startsection commands to their LATEX defaults, since amsart ones are too AMS-specific. We need to do this early since we want hyperref to have a chance to redefine them again: 287 \def\@startsection#1#2#3#4#5#6{% \if@noskipsec \leavevmode \fi \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}% 288 289 35 \interlinepenalty \@M #8\@@par}% \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} 316 317 36 366 \def\@seccntformat#1{\csname the#1\endcsname\quad} 367 \def\@ssect#1#2#3#4#5{% \@tempskipa #3\relax \ifdim \@tempskipa>\z@ \begingroup #4{% \@hangfrom{\hskip #1}% \interlinepenalty \@M #5\@@par}% \endgroup \else \def\@svsechd{#4{\hskip #1\relax #5}}% \fi \@xsect{#3}} 368 369 370 371 372 373 374 375 376 377 378 \@startsection Amsart redefines \startsection. Here we redefine it again to make TOC working 379 \def\@starttoc#1#2{\begingroup\makeatletter \setTrue{#1}% \par\removelastskip\vskip\z@skip \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}% {.5\linespacing}{\centering\contentsnamefont}{#2}% \@input{\jobname.#1}% \if@filesw \@xp\newwrite\csname tf@#1\endcsname \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax \fi \global\@nobreakfalse \endgroup \addvspace{32\p@\@plus14\p@}% 380 381 382 383 384 385 386 387 388 389 390 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 400 401 402 \def\unskip{}% \def\textbullet{- }% \def\textrightarrow{ -> }% \def\footnotemark{}% 403 } 404 \urlstyle{rm} 37 405 \ifcase\ACM@format@nr 406 \relax % manuscript % 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} 407 \or Bibliography mangling. 428 \if@ACM@natbib \let\citeN\cite \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} 429 430 \bibliographystyle Amsart redefines \bibliographystyle since it prefers AMS bibliography. We turn it back to LATEX definition: 447 \def\bibliographystyle#1{% 448 449 \ifx\@begindocumenthook\@undefined\else \expandafter\AtBeginDocument 38 \fi {\if@filesw \immediate\write\@auxout{\string\bibstyle{#1}}% \fi}} 450 451 452 453 Graphics and color 454 \RequirePackage{graphicx, xcolor} We define 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 draft mode 463 \if@ACM@authordraft \RequirePackage{draftwatermark} \SetWatermarkFontSize{0.5in} 466 \SetWatermarkColor[gray]{.9} 467 \SetWatermarkText{\parbox{12em}{\centering 468 Unpublished working draft\\ 469 Not for distribution}} 470 \fi 464 465 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 \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, 474 39 marginparwidth=4pc,heightrounded }% 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 488 489 \parindent \parskip Paragraphing 535 \setlength\parindent{10\p@} 40 536 \setlength\parskip{\z@} 537 \ifcase\ACM@format@nr 538 \relax % manuscript % 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 539 \or \normalparindent amsart defines 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 consistent paragraph indents. 549 \setlength\normalparindent{\parindent} Footnotes require some consideration. We have several layers of footnotes: frontmatter footnotes, “regular” footnotes and the special insert for bibstrip. In the old ACM classes bibstrip was a \@float. The problem with floats is that they tend to, well, float— and we want the guarantee they stay. We use manyfoot for layered footnotes instead. \copyrightpermissionfootnoterule This 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 \endminipage \hrule \@width 4pc \kern 2.6\p@} We do not use footnote rules in minipages 559 \def\endminipage{% 560 561 562 563 564 \par \unskip \ifvoid\@mpfootins\else \vskip\skip\@mpfootins \normalcolor 41 565 566 567 568 569 570 \@makefntext \unvbox\@mpfootins \fi \@minipagefalse %% added 24 May 89 \color@endgroup \egroup \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}} 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{% \reset@font\small \interlinepenalty\interfootnotelinepenalty \protected@edef\@currentlabel{% \csname p@footnote\endcsname\@thefnmark }% \color@begingroup \@makefntext{% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% \color@endgroup}}% 574 575 576 577 578 579 580 581 582 583 \fi \@mpfootnotetext We want the footnotes in minipages centered: 584 \long\def\@mpfootnotetext#1{% 585 586 587 588 589 590 591 592 593 594 595 \@makefnmark \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins \reset@font\footnotesize \hsize\columnwidth \@parboxrestore \protected@edef\@currentlabel {\csname p@mpfootnote\endcsname\@thefnmark}% \color@begingroup\centering \@makefntext{% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% \color@endgroup}} AMS classes use a buggy definition 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 http://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 different incantations to make PDF compliant with the current Acrobat bugs. Xpdf is much better. 42 The 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 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} 615 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 defines \liningnums, which makes fontspec unhappy. While we do not use fontspec, some users do. . . 628 \let\liningnums\@undefined 629 \AtEndPreamble{% \DeclareTextFontCommand{\liningnums}{\libertineLF}} 630 The 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 \captionsetup{labelfont={sf, small}, 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 637 638 sidebar The sidebar environment: 662 \newfloat{sidebar}{}{sbar} 663 \floatname{sidebar}{Sidebar} 664 \renewenvironment{sidebar}{\Collect@Body\@sidebar}{} \@sidebar The processing of the saved text 665 \long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}% 666 marginfigure \marginpar{\small#1}\egroup} The marginfigure environment: 667 \newenvironment{marginfigure}{\Collect@Body\@marginfigure}{} \@marginfigure The processing of the saved text 668 \long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}% 669 margintable \marginpar{\centering\small#1}\egroup} The margintable environment: 670 \newenvironment{margintable}{\Collect@Body\@margintable}{} 44 \@margintable The 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 define the width of the boxes as 673 \newdimen\fulltextwidth 674 \fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep) \@dblfloat We redefine the double float 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 \let\@endfloatbox\@endwidefloatbox \def\@fpsadddefault{\def\@fps{tp}}% 679 \@float} 680 \fi 677 678 \end@dblfloat And the end. Just adding a \bgroup. 681 \if@ACM@sigchiamode 682 \def\end@dblfloat{% \end@float\egroup} 683 684 \fi \@endwidefloatbox This is the end of a wide box - we basically move everything to the left 685 \def\@endwidefloatbox{% 686 687 688 689 690 691 692 693 \par\vskip\z@skip \@minipagefalse \outer@nobreak \egroup \color@endbox \global\setbox\@currbox=\vbox{\moveleft \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}% \wd\@currbox=\textwidth 694 } 3.9 Lists 695 \ifcase\ACM@format@nr 696 \relax % manuscript % acmsmall 698 \or % acmlarge 699 \or % acmtog 700 \or % sigconf 701 \or % siggraph 702 \or % sigplan 703 \def\labelenumi{\theenumi.} 697 \or 45 704 \def\labelenumii{\theenumii.} 705 \def\labelenumiii{\theenumiii.} 706 \def\labelenumiv{\theenumiv.} 707 \or 708 \or % sigchi % sigchi-a 709 \fi AMS uses generous margins for the lists. Note that amsart defines \leftmargin values for list levels at begin document, so we must redefine them in the same manner. Also, note that amsart redefines enumerate and itemize environments with a \makelabel command that uses \llap, so the \labelwidth value is (effectively) irrelevant; nonetheless, we follow amsart and set \labelwidth to \leftmargin minus \labelsep. 710 \newdimen\@ACM@labelwidth 711 \AtBeginDocument{% 712 713 \setlength\labelsep{4pt} \setlength{\@ACM@labelwidth}{6.5pt} 714 715 716 717 718 719 720 721 %% First-level list: when beginning after the first line of an %% indented paragraph or ending before an indented paragraph, labels %% should not hang to the left of the preceding/following text. \setlength\leftmargini{\z@} \addtolength\leftmargini{\parindent} \addtolength\leftmargini{2\labelsep} \addtolength\leftmargini{\@ACM@labelwidth} 722 %% Second-level and higher lists. \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} 723 724 46 748 \def\@listvi{\leftmargin\leftmarginvi 749 \descriptionlabel \labelwidth\leftmarginvi \advance\labelwidth-\labelsep} We do not use default colon as \amsart does: 750 \renewcommand{\descriptionlabel}[1]{\upshape\bfseries \description #1} Make description environment indentation consistent with that of itemize and enumerate environments. 751 \renewenvironment{description}{\list{}{% 752 753 \labelwidth\@ACM@labelwidth \let\makelabel\descriptionlabel}% 754 }{ 755 \endlist 756 } 757 \let\enddescription=\endlist 3.10 % for efficiency Top matter data We use keyval interface to define journal title and relevant information 758 \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{% 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 CIE,% CSUR,% IMWUT,% JACM,% JDIQ,% JEA,% JERIC,% JETC,% JOCCH,% PACMHCI,% PACMPL,% POMACS,% TAAS,% TACCESS,% TACO,% TALG,% TALLIP,% TAP,% TCPS,% TEAC,% TECS,% THRI,% TIIS,% TISSEC,% TIST,% TKDD,% TMIS,% TOCE,% TOCHI,% 47 TOCL,% 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}% 788 789 48 \def\@journalNameShort{ACM J. Exp. Algor.}% \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 838 839 49 \def\@journalName{ACM Transactions on Applied Perception}% % 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 888 889 \or 50 \def\@journalName{ACM Transactions on Computation Theory}% \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}% 938 939 51 \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}% \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 }% 988 989 \acmJournal And the syntactic sugar around it 1027 \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}} The defaults: 1028 \def\@journalCode@nr{0} 1029 \def\@journalName{}% 1030 \def\@journalNameShort{\@journalName}% 1031 \def\@permissionCodeOne{XXXX-XXXX}% 1032 \def\@permissionCodeTwo{}% 52 \acmConference This is the conference command 1033 \newcommand\acmConference[4][]{% \gdef\acmConference@shortname{#1}% \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} 1034 1035 \acmBooktitle \@acmBooktitle The book title of the conference: 1043 \def\acmBooktitle#1{\gdef\@acmBooktitle{#1}} 1044 \acmBooktitle{Proceedings 1045 1046 \@editorsAbbrev of \acmConference@name \ifx\acmConference@name\acmConference@shortname\else \ (\acmConference@shortname)\fi} How to abbreviate editors 1047 \def\@editorsAbbrev{(Ed.)} \@acmEditors \editor The list of editors Add new editor to the list 1048 \def\editor#1{\ifx\@acmEditors\@empty \gdef\@acmEditors{#1}% \else 1051 \gdef\@editorsAbbrev{(Eds.)}% 1052 \g@addto@macro\@acmEditors{\and#1}% 1053 \fi} 1049 1050 \subtitle The subtitle macro 1054 \def\subtitle#1{\def\@subtitle{#1}} 1055 \subtitle{} \num@authorgroups The total number of “groups”. Each group is several authors with the same affiliations(s) 1056 \newcount\num@authorgroups 1057 \num@authorgroups=0\relax \num@authors The total number of authors. 1058 \newcount\num@authors 1059 \num@authors=0\relax \if@insideauthorgroup \author Whether we are continuing an author group @insideauthorgroup insideauthorgroupfalse Adding an author to the list of authors and addresses 1060 \renewcommand\author[2][]{% 1061 \global\advance\num@authors by 1\relax 53 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 \affiliation f@ACM@affiliation@obeypunctuation \if@insideauthorgroup\else \global\advance\num@authorgroups by 1\relax \global\@insideauthorgrouptrue \fi \ifx\addresses\@empty \if@ACM@anonymous \gdef\addresses{\@author{Anonymous Author(s)}}% \gdef\authors{Anonymous Author(s)}% \else \gdef\addresses{\@author{#2}}% \gdef\authors{#2}% \fi \else \if@ACM@anonymous\else \g@addto@macro\addresses{\and\@author{#2}}% \g@addto@macro\authors{\and#2}% \fi \fi \if@ACM@anonymous \ifx\shortauthors\@empty \gdef\shortauthors{Anon.}% \fi \else \def\@tempa{#1}% \ifx\@tempa\@empty \ifx\shortauthors\@empty \gdef\shortauthors{#2}% \else \g@addto@macro\shortauthors{\and#2}% \fi \else \ifx\shortauthors\@empty \gdef\shortauthors{#1}% \else \g@addto@macro\shortauthors{\and#1}% \fi \fi \fi} The macro \affiliation mimics \address from amsart. Note that it has an optional argument, which we use differently from amsart. 1100 \newcommand{\affiliation}[2][]{% 1101 1102 1103 1104 \global\@insideauthorgroupfalse \if@ACM@anonymous\else \g@addto@macro\addresses{\affiliation{#1}{#2}}% \fi} 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 54 must be true or false}} \additionalaffiliation Additional affiliations go to footnotes 1107 \def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}} \@additionalaffiliation Process additionalaffiliation inside \authornote 1108 \def\@additionalaffiliation#1{\bgroup 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 \email \def\position##1{\ignorespaces}% \def\institution##1{##1\ignorespaces}% \def\department{\@ifnextchar[{\@department}{\@department[]}}% \def\@department[##1]##2{\unskip, ##2\ignorespaces}% \let\streetaddress\position \let\city\position \let\state\position \let\postcode\position \let\country\position Also with #1\unskip.\egroup} The 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 1121 1122 \orcid \authorsaddresses \@titlenotes \if@ACM@anonymous\else \g@addto@macro\addresses{\email{#1}{#2}}% \fi} Right now we do not typeset orcids Setting up authors’ addresses The titlenotes 1123 \def\@titlenotes{} \titlenote Adding note to the title 1124 \def\titlenote#1{% 1125 1126 1127 1128 1129 1130 1131 \@subtitlenotes \g@addto@macro\@title{\footnotemark}% \if@ACM@anonymous \g@addto@macro\@titlenotes{% \stepcounter{footnote}\footnotetext{Title note}}% \else \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}% \fi} The subtitlenotes 1132 \def\@subtitlenotes{} \subtitlenote Adding note to the subtitle 1133 \def\subtitlenote#1{% 1134 1135 1136 1137 \g@addto@macro\@subtitle{\footnotemark}% \if@ACM@anonymous \g@addto@macro\@subtitlenotes{% \stepcounter{footnote}\footnotetext{Subtitle note}}% 55 1138 1139 1140 1141 \@authornotes \else \g@addto@macro\@subtitlenotes{% \stepcounter{footnote}\footnotetext{#1}}% \fi} The authornotes 1142 \def\@authornotes{} \authornote Adding note to the author 1143 \def\authornote#1{% 1144 1145 1146 1147 1148 \authornotemark \if@ACM@anonymous\else \g@addto@macro\addresses{\@authornotemark}% \g@addto@macro\@authornotes{% \stepcounter{footnote}\footnotetext{#1}}% \fi} Adding footnotemark to authors 1149 \newcommand\authornotemark[1][\relax]{% 1150 1151 1152 1153 1154 \acmVolume \ifx#1\relax\relax\relax \g@addto@macro\addresses{\@authornotemark}% \else \g@addto@macro\addresses{\@@authornotemark{#1}}% \fi} The current volume 1155 \def\acmVolume#1{\def\@acmVolume{#1}} 1156 \acmVolume{1} \acmNumber The current number 1157 \def\acmNumber#1{\def\@acmNumber{#1}} 1158 \acmNumber{1} \acmArticle The current article 1159 \def\acmArticle#1{\def\@acmArticle{#1}} 1160 \acmArticle{} \acmArticleSeq The sequence number 1161 \def\acmArticleSeq#1{\def\@acmArticleSeq{#1}} 1162 \acmArticleSeq{\@acmArticle} \acmYear The current year 1163 \def\acmYear#1{\def\@acmYear{#1}} 1164 \acmYear{\the\year} \acmMonth The current month 1165 \def\acmMonth#1{\def\@acmMonth{#1}} 1166 \acmMonth{\the\month} 56 \@acmPubDate The publication date 1167 \def\@acmPubDate{\ifcase\@acmMonth\or 1168 1169 1170 \acmPrice January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi˜\@acmYear} The price 1171 \def\acmPrice#1{\def\@acmPrice{#1}} 1172 \acmPrice{15.00} \acmSubmissionID The submission id 1173 \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}} 1174 \acmSubmissionID{} \acmISBN The book isbn 1175 \def\acmISBN#1{\def\@acmISBN{#1}} 1176 \acmISBN{978-x-xxxx-xxxx-x/YY/MM} \acmDOI The 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 left or right badge triggers it: 1179 \newif\if@ACM@badge 1180 \@ACM@badgefalse \@ACM@badge@width The width of the badge 1181 \newlength\@ACM@badge@width 1182 \setlength\@ACM@badge@width{5pc} \@ACM@title@width The width of the badge 1183 \newlength\@ACM@title@width \@ACM@badge@skip The space between the badge and the title 1184 \newlength\@ACM@badge@skip 1185 \setlength\@ACM@badge@skip{1pc} \acmBadgeR Setting the right badge 1186 \newcommand\acmBadgeR[2][]{\@ACM@badgetrue \def\@acmBadgeR@url{#1}% \def\@acmBadgeR@image{#2}} 1189 \def\@acmBadgeR@url{} 1190 \def\@acmBadgeR@image{} 1187 1188 \acmBadgeL Setting the left badge 1191 \newcommand\acmBadgeL[2][]{\@ACM@badgetrue \def\@acmBadgeL@url{#1}% \def\@acmBadgeL@image{#2}} 1194 \def\@acmBadgeL@url{} 1195 \def\@acmBadgeL@image{} 1192 1193 57 \startPage The 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 1199 \keywords obsolete. command \string\terms{} is I am going to ignore it}} 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 The 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 1208 1209 1210 1211 \if@ACM@printacmref \if@ACM@printccs \ClassInfo{\@classname}{Printing CCS}% \else \ClassInfo{\@classname}{Suppressing CCS}% \fi}{\ClassError{\@classname}{printccs must be true or false}} Whether to print ACM bib 1212 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{% 1213 1214 1215 1216 1217 \if@ACM@printfolios \if@ACM@printacmref \ClassInfo{\@classname}{Printing bibformat}% \else \ClassInfo{\@classname}{Suppressing bibformat}% \fi}{\ClassError{\@classname}{printacmref must be true or false}} Whether to print folios 1218 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{% 1219 1220 1221 1222 1223 \if@ACM@printfolios \ClassInfo{\@classname}{Printing folios}% \else \ClassInfo{\@classname}{Suppressing folios}% \fi}{\ClassError{\@classname}{printfolios must be true or false}} 58 \@ACM@authorsperrow The number of authors per row. 0 means use default algorithm. 1224 \define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{% \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to #1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}} 1225 1226 1227 \settopmatter The usual syntactic sugar 1228 \def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}} Now the settings 1229 \settopmatter{printccs=true, printacmref=true} 1230 \if@ACM@manuscript 1231 \settopmatter{printfolios=true} 1232 \else \if@ACM@journal \settopmatter{printfolios=true} 1235 \else 1236 \settopmatter{printfolios=false} 1237 \fi 1238 \fi 1239 \settopmatter{authorsperrow=0} 1233 1234 \@received The container for the paper history 1240 \def\@received{} \received The \received command 1241 \newcommand\received[2][]{\def\@tempa{#1}% \ifx\@tempa\@empty \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} 1242 1243 3.11 Concepts system We exclude CCSXML stuff generated by the ACM system: 59 1259 \RequirePackage{comment} 1260 \excludecomment{CCSXML} \@concepts This is the storage macro for concepts 1261 \let\@concepts\@empty \ccsdesc The first argument is the significance, the second is the concept(s) 1262 \newcommand\ccsdesc[2][100]{% 1263 \ccsdesc@parse \ccsdesc@parse#1˜#2˜˜\ccsdesc@parse@end} The 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˜{% \expandafter\ifx\csname CCS@General@#2\endcsname\relax \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} 1266 1267 \ccdesc@parse@finish Gobble everything to \ccsdesc@parse@end 1284 \def\ccsdesc@parse@finish#1\ccsdesc@parse@end{} 3.12 Copyright system This is from acmcopyright.sty \if@printcopyright A flag 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 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 \acm@copyrightinput\acm@copyrightmode]{none,% acmcopyright,acmlicensed,rightsretained,% usgov,usgovmixed,cagov,cagovmixed,% licensedusgovmixed,% licensedcagov,licensedcagovmixed,othergov,licensedothergov}{% \@printpermissiontrue \@printcopyrighttrue \@acmownedtrue \ifnum\acm@copyrightmode=0\relax % none \@printpermissionfalse \@printcopyrightfalse \@acmownedfalse \fi \ifnum\acm@copyrightmode=2\relax % acmlicensed \@acmownedfalse \fi \ifnum\acm@copyrightmode=3\relax % rightsretained \@acmownedfalse \acmPrice{}% \fi \ifnum\acm@copyrightmode=4\relax % usgov \@printpermissiontrue \@printcopyrightfalse \@acmownedfalse \acmPrice{}% \fi \ifnum\acm@copyrightmode=6\relax % cagov \@acmownedfalse \fi \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed \@acmownedfalse \fi \ifnum\acm@copyrightmode=9\relax % licensedcagov \@acmownedfalse \fi \ifnum\acm@copyrightmode=10\relax % licensedcagovmixed \@acmownedfalse \fi \ifnum\acm@copyrightmode=11\relax % othergov \@acmownedtrue \fi \ifnum\acm@copyrightmode=12\relax % licensedothergov \@acmownedfalse \fi} 61 \setcopyright This is the syntactic sugar around setting keys. 1336 \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}} 1337 \setcopyright{acmcopyright} \@copyrightowner Here is the owner of the copyright 1338 \def\@copyrightowner{% 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 \@formatdoi \ifcase\acm@copyrightmode\relax % none \or % acmcopyright Association for Computing Machinery. \or % acmlicensed Copyright held by the owner/author(s). Publication rights Association for Computing Machinery. \or % rightsretained Copyright held by the owner/author(s). \or % usgov \or % usgovmixed Association for Computing Machinery. \or % cagov Crown in Right of Canada. \or %cagovmixed Association for Computing Machinery. \or %licensedusgovmixed Copyright held by the owner/author(s). Publication rights Association for Computing Machinery. \or % licensedcagov Crown in Right of Canada. Publication rights licensed to Association for Computing Machinery. \or %licensedcagovmixed Copyright held by the owner/author(s). Publication rights Association for Computing Machinery. \or % othergov Association for Computing Machinery. \or % licensedothergov Copyright held by the owner/author(s). Publication rights Association for Computing Machinery. \fi} licensed to licensed to licensed to licensed to Print a clickable doi 1369 \def\@formatdoi#1{\url{https://doi.org/#1}} \@copyrightpermission The canned permission block. 1370 \def\@copyrightpermission{% 1371 1372 1373 1374 1375 1376 1377 \ifcase\acm@copyrightmode\relax % none \or % acmcopyright Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by 62 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and\hspace*{.5pt}/or a fee. Request permissions from permissions@acm.org. \or % acmlicensed Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and\hspace*{.5pt}/or a fee. Request permissions from permissions@acm.org. \or % rightsretained Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner\hspace*{.5pt}/author(s). \or % usgov This paper is authored by an employee(s) of the United States Government and is in the public domain. Non-exclusive copying or redistribution is allowed, provided that the article citation is given and the authors and agency are clearly identified as its source. \or % usgovmixed ACM acknowledges that this contribution was authored or co-authored by an employee, contractor, or affiliate of the United States government. As such, the United States government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for government purposes only. \or % cagov This article was authored by employees of the Government of Canada. As such, the Canadian government retains all interest in the copyright to this work and grants to ACM a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, provided that clear attribution is given both to the authors and the Canadian government agency employing them. Permission to make digital or hard copies for personal or classroom use is granted. Copies must bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the Canadian Government must be honored. To copy otherwise, distribute, republish, or post, requires prior specific permission and\hspace*{.5pt}/or a fee. Request permissions from permissions@acm.org. 63 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 \or % cagovmixed ACM acknowledges that this contribution was co-authored by an affiliate of the national government of Canada. As such, the Crown in Right of Canada retains an equal interest in the copyright. Reprints must include clear attribution to ACM and the author’s government agency affiliation. Permission to make digital or hard copies for personal or classroom use is granted. Copies must bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. To copy otherwise, distribute, republish, or post, requires prior specific permission and\hspace*{.5pt}/or a fee. Request permissions from permissions@acm.org. \or % licensedusgovmixed Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the United States government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only. \or % licensedcagov This article was authored by employees of the Government of Canada. As such, the Canadian government retains all interest in the copyright to this work and grants to ACM a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, provided that clear attribution is given both to the authors and the Canadian government agency employing them. Permission to make digital or hard copies for personal or classroom use is granted. Copies must bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the Canadian Government must be honored. To copy otherwise, distribute, republish, or post, requires prior specific permission and\hspace*{.5pt}/or a fee. Request permissions from permissions@acm.org. \or % licensedcagovmixed Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the national government of Canada. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only. \or % othergov ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only. \or % licensedothergov Publication rights licensed to ACM\@. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government 64 1478 1479 1480 1481 \copyrightyear retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only. \fi} 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 The teaser figures container 1484 \def\@teaserfigures{} teaserfigure The teaser figure 1485 \newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{} \@saveteaser Saving the teaser 1486 \long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}} \thanks We redefine amsart \thanks, so the anonymous key works 1487 \renewcommand{\thanks}[1]{% 1488 1489 1490 1491 1492 1493 3.13 \mktitle@bx \@ifnotempty{#1}{% \if@ACM@anonymous \g@addto@macro\thankses{\thanks{A note}}% \else \g@addto@macro\thankses{\thanks{#1}}% \fi}} Typesetting top matter Some of our formats use two column design, some use one column one. In all cases we use wide title. Thus we typeset the top matter in a special box to be use in the construction \@twocolumn[hboxi]. 1494 \newbox\mktitle@bx \maketitle The (in)famous \maketitle. Note that in sigchi-a mode authors are not in the title box. Another note: there is a subtle difference between author notes, title notes and thankses. The latter refer to the paper itself, and therefore belong to the copyright/permission block. By the way, this was the default behavior of the old ACM classes. 1495 \def\maketitle{% 1496 1497 1498 1499 1500 1501 1502 1503 1504 \if@ACM@anonymous % Anonymize omission of \author-s \ifnum\num@authorgroups=0\author{}\fi \fi \begingroup \let\@footnotemark\@footnotemark@nolink \let\@footnotetext\@footnotetext@nolink \renewcommand\thefootnote{\@fnsymbol\c@footnote}% \global\@topnum\z@ % this prevents floats from falling 65 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 % at the top of page 1 \global\@botnum\z@ % we do not want them to be on bottom either \hsize=\textwidth \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}% \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers \@printtopmatter \if@ACM@sigchiamode\@mkauthors\fi \setcounter{footnote}{0}% \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}% \@titlenotes \@subtitlenotes \@authornotes \let\@makefnmark\relax \let\@thefnmark\relax \let\@makefntext\noindent \ifx\@empty\thankses\else \footnotetextauthorsaddresses{% \def\par{\let\par\@par}\parindent\z@\@setthanks}% \fi \ifx\@empty\@authorsaddresses\else \if@ACM@anonymous\else \if@ACM@journal \footnotetextauthorsaddresses{% \def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}% \fi \fi \fi \footnotetextcopyrightpermission{% \if@ACM@authordraft \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries Unpublished working draft. Not for distribution}}% \color[gray]{0.9}% \fi \parindent\z@\parskip0.1\baselineskip \if@ACM@authorversion\else \if@printpermission\@copyrightpermission\par\fi \fi \if@ACM@manuscript\else \if@ACM@journal\else % Print the conference information {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par \fi \fi \if@printcopyright \copyright\ \@copyrightyear\ \@copyrightowner\\ \else \@copyrightyear.\ \fi \if@ACM@manuscript Manuscript submitted to ACM\\ \else 66 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 \if@ACM@authorversion This is the author’s version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in \if@ACM@journal \emph{\@journalName}% \else \emph{\@acmBooktitle}% \fi \ifx\@acmDOI\@empty . \else , \@formatdoi{\@acmDOI}. \fi\\ \else \if@ACM@journal \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\ \@formatdoi{\@acmDOI}% \else % Conference \ifx\@acmISBN\@empty\else ACM˜ISBN˜\@acmISBN \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\\fi \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi% \fi \fi \fi} \endgroup \setcounter{footnote}{0}% \@mkabstract \if@ACM@printccs \ifx\@concepts\@empty\else\bgroup {\@specialsection{CCS Concepts}% \@concepts\par}\egroup \fi \fi \ifx\@keywords\@empty\else\bgroup {\if@ACM@journal \@specialsection{Additional Key Words and Phrases}% \else \@specialsection{Keywords}% \fi \@keywords}\par\egroup \fi \andify\authors \andify\shortauthors \global\let\authors=\authors \global\let\shortauthors=\shortauthors \if@ACM@printacmref \@mkbibcitation \fi 67 1605 1606 1607 1608 1609 1610 1611 \hypersetup{pdfauthor={\authors}, pdftitle={\@title}, pdfsubject={\@concepts}, pdfkeywords={\@keywords}}% \@printendtopmatter \@afterindentfalse \@afterheading 1612 } \@specialsection This macro starts section for proceedings and uses small for journals 1613 \def\@specialsection#1{% 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 \@printtopmatter \ifcase\ACM@format@nr \relax % manuscript \par\medskip\small\noindent#1: \or % acmsmall \par\medskip\small\noindent#1: \or % acmlarge \par\medskip\small\noindent#1: \or % acmtog \par\medskip\small\noindent#1: \or % sigconf \section*{#1}% \or % siggraph \section*{#1}% \or % sigplan \paragraph*{#1}% \or % sigchi \section*{#1}% \or % sigchi-a \section*{#1}% \fi} % % % % The printing of top matter 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 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 \ifx\@startPage\@empty \gdef\@startPage{1}% \else \setcounter{page}{\@startPage}% \fi \thispagestyle{firstpagestyle}% \noindent \ifcase\ACM@format@nr \relax % manuscript \box\mktitle@bx\par \or % acmsmall \box\mktitle@bx\par \or % acmlarge 68 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 \box\mktitle@bx\par \or % acmtog \twocolumn[\box\mktitle@bx]% \or % sigconf \twocolumn[\box\mktitle@bx]% \or % siggraph \twocolumn[\box\mktitle@bx]% \or % sigplan \twocolumn[\box\mktitle@bx]% \or % sigchi \twocolumn[\box\mktitle@bx]% \or % sigchi-a \par\box\mktitle@bx\par\bigskip \if@ACM@badge \marginpar{\noindent \ifx\@acmBadgeL@image\@empty\else \href{\@acmBadgeL@url}{% \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}% \hskip\@ACM@badge@skip \fi \ifx\@acmBadgeR@image\@empty\else \href{\@acmBadgeR@url}{% \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}% \fi}% \fi \fi 1674 } \@mktitle The title of the article 1675 \def\@mktitle{% 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 \ifcase\ACM@format@nr \relax % manuscript \@mktitle@i \or % acmsmall \@mktitle@i \or % acmlarge \@mktitle@i \or % acmtog \@mktitle@i \or % sigconf \@mktitle@iii \or % siggraph \@mktitle@iii \or % sigplan \@mktitle@iii \or % sigchi \@mktitle@iii \or % sigchi-a \@mktitle@iv \fi 69 1696 } \@titlefont The font to typeset title 1697 \def\@titlefont{% 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 \@subtitlefont \ifcase\ACM@format@nr \relax % manuscript \LARGE\sffamily\bfseries \or % acmsmall \LARGE\sffamily\bfseries \or % acmlarge \LARGE\sffamily\bfseries \or % acmtog \Huge\sffamily \or % sigconf \Huge\sffamily\bfseries \or % siggraph \Huge\sffamily\bfseries \or % sigplan \Huge\bfseries \or % sigchi \Huge\sffamily\bfseries \or % sigchi-a \Huge\bfseries \fi} The font to typeset title 1718 \def\@subtitlefont{\normalsize 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 \@mktitle@i \ifcase\ACM@format@nr \relax % manuscript \mdseries \or % acmsmall \mdseries \or % acmlarge \mdseries \or % acmtog \LARGE \or % sigconf \LARGE\mdseries \or % siggraph \LARGE\mdseries \or % sigplan \LARGE\mdseries \or % sigchi \LARGE\mdseries \or % sigchi-a \mdseries \fi} The version of \mktitle for most journals 70 1739 \def\@mktitle@i{\hsize=\textwidth 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 \@mktitle@ii \@mktitle@iii \@ACM@title@width=\hsize \ifx\@acmBadgeL@image\@empty\else \advance\@ACM@title@width by -\@ACM@badge@width \advance\@ACM@title@width by -\@ACM@badge@skip \fi \ifx\@acmBadgeR@image\@empty\else \advance\@ACM@title@width by -\@ACM@badge@width \advance\@ACM@title@width by -\@ACM@badge@skip \fi \setbox\mktitle@bx=\vbox{\noindent\@titlefont \ifx\@acmBadgeL@image\@empty\else \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{% \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}% \hskip\@ACM@badge@skip \fi \parbox[t]{\@ACM@title@width}{\raggedright \@titlefont\noindent \@title \ifx\@subtitle\@empty\else \par\noindent{\@subtitlefont\@subtitle} \fi}% \ifx\@acmBadgeR@image\@empty\else \hskip\@ACM@badge@skip \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{% \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}% \fi \par\bigskip}}% The version of \mktitle for TOG. Since v1.06 is subsumed by the \mktitle@i macro The version of \@mktitle for sigproc. Note that since the title is centered, we leave the space for the left badge even if only the right badge is defined. 1767 \def\@mktitle@iii{\hsize=\textwidth 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 \setbox\mktitle@bx=\vbox{\@titlefont\centering \@ACM@title@width=\hsize \if@ACM@badge \advance\@ACM@title@width by -2\@ACM@badge@width \advance\@ACM@title@width by -2\@ACM@badge@skip \parbox[b]{\@ACM@badge@width}{\strut \ifx\@acmBadgeL@image\@empty\else \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{% \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}% \fi}% \hskip\@ACM@badge@skip \fi \parbox[t]{\@ACM@title@width}{\centering\@titlefont \@title \ifx\@subtitle\@empty\else \par\noindent{\@subtitlefont\@subtitle} 71 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 \@mktitle@iv \fi }% \if@ACM@badge \hskip\@ACM@badge@skip \parbox[b]{\@ACM@badge@width}{\strut \ifx\@acmBadgeR@image\@empty\else \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{% \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}% \fi}% \fi \par\bigskip}}% The version of \@mktitle for sigchi-a 1795 \def\@mktitle@iv{\hsize=\textwidth 1796 1797 1798 1799 1800 1801 1802 \@ACM@addtoaddress \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par \noindent\@title \ifx\@subtitle\@empty\else \par\noindent\@subtitlefont\@subtitle \fi \par\bigskip}}% The 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 1806 1807 1808 1809 1810 \institution \position \department \streetaddress \city \state \postcode \country \ifvmode\else \if@ACM@affiliation@obeypunctuation\else \setbox\@ACM@commabox=\hbox{, }% \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox \fi\fi #1} heoretically we can define 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 1815 1816 1817 \def\position#1{\unskip\ignorespaces} \def\institution#1{\unskip˜#1\ignorespaces} \def\city#1{\unskip\ignorespaces} \def\state#1{\unskip\ignorespaces} 72 \newcommand\department[2][0]{\unskip\ignorespaces} \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 1818 1819 \@mkauthors Typesetting authors 1831 \def\@mkauthors{\begingroup \hsize=\textwidth \ifcase\ACM@format@nr \relax % manuscript \@mkauthors@i \or % acmsmall \@mkauthors@i \or % acmlarge \@mkauthors@i \or % acmtog \@mkauthors@i \or % sigconf \@mkauthors@iii \or % siggraph \@mkauthors@iii \or % sigplan \@mkauthors@iii \or % sigchi \@mkauthors@iii \or % sigchi-a \@mkauthors@iv \fi \endgroup 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 } \@authorfont Somehow different conferences use different fonts for author names. Why? 1855 \def\@authorfont{\Large\sffamily} \@affiliationfont Font for affiliations 1856 \def\@affiliationfont{\normalsize\normalfont} Adjusting fonts for different formats 1857 \ifcase\ACM@format@nr 1858 \relax % manuscript 73 1859 \or % acmsmall \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 1860 \@typeset@author@line At this point we have \@currentauthors and \@currentaffiliations. We typeset them in the journal style 1882 \def\@typeset@author@line{% 1883 1884 1885 1886 1887 1888 1889 \@mkauthors@i \andify\@currentauthors\par\noindent \@currentauthors\def\@currentauthors{}% \ifx\@currentaffiliations\@empty\else \andify\@currentaffiliations \unskip, {\@currentaffiliations}\par \fi \def\@currentaffiliations{}} This is version used in most journal formats. Note that \and between authors with the same affiliation becomes ␣and␣: 1890 \def\@mkauthors@i{% 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 \def\@currentauthors{}% \def\@currentaffiliations{}% \global\let\and\@typeset@author@line \def\@author##1{% \ifx\@currentauthors\@empty \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}% \else \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}% \fi \gdef\and{}}% \def\email##1##2{}% 74 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 \def\affiliation##1##2{% \def\@tempa{##2}\ifx\@tempa\@empty\else \ifx\@currentaffiliations\@empty \gdef\@currentaffiliations{% \setkeys{@ACM@affiliation@}{obeypunctuation=false}% \setkeys{@ACM@affiliation@}{##1}% \@affiliationfont##2}% \else \g@addto@macro{\@currentaffiliations}{\and \setkeys{@ACM@affiliation@}{obeypunctuation=false}% \setkeys{@ACM@affiliation@}{##1}##2}% \fi \fi \global\let\and\@typeset@author@line}% \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip \noindent\addresses\@typeset@author@line \par\medskip}% 1919 } \@mkauthors@ii \author@bx \@mkauthors@iI was version used in acmtog. No longer necessary The box to put individual author to 1920 \newbox\author@bx \author@bx@wd The width of the author box 1921 \newdimen\author@bx@wd \author@bx@sep The separation between the author boxes 1922 \newskip\author@bx@sep 1923 \author@bx@sep=1pc\relax \@typeset@author@bx Typesetting 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 1926 1927 1928 1929 1930 \@mkauthors@iii \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi \@authorfont\@currentauthors\par\@affiliationfont \@currentaffiliation}\egroup \box\author@bx\hspace{\author@bx@sep}% \gdef\@currentauthors{}% \gdef\@currentaffiliation{}} The 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. The boxes are separated by \author@bx@sep plus two \author@bx@sep margins. This means that each box must be of width (\textwidth − \author@bx@sep)/N − \author@bx@sep, where N is the number of boxes per row. 1932 1933 \author@bx@wd=\textwidth\relax \advance\author@bx@wd by -\author@bx@sep\relax 75 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 \ifnum\@ACM@authorsperrow>0\relax \divide\author@bx@wd by \@ACM@authorsperrow\relax \else \ifcase\num@authorgroups \relax % 0? \or % 1=one author per row \or % 2=two authors per row \divide\author@bx@wd by \num@authorgroups\relax \or % 3=three authors per row \divide\author@bx@wd by \num@authorgroups\relax \or % 4=two authors per row (!) \divide\author@bx@wd by 2\relax \else % three authors per row \divide\author@bx@wd by 3\relax \fi \fi \advance\author@bx@wd by -\author@bx@sep\relax Now, parsing of \addresses: \gdef\@currentauthors{}% \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 }% 1951 1952 Actual typesetting is done by \and macro: 1975 1976 1977 1978 1979 \hsize=\textwidth \global\setbox\mktitle@bx=\vbox{\noindent \box\mktitle@bx\par\medskip\leavevmode \lineskip=1pc\relax\centering\hspace*{-1em}% \addresses\let\and\@typeset@author@bx\and\par\bigskip}} 76 \@mkauthors@iv The 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. The boxes are separated by \author@bx@sep plus two \author@bx@sep margins. This means that each box must be of width (\textwidth − \author@bx@sep)/N − \author@bx@sep, where N is the number of boxes per row. 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 \author@bx@wd=\columnwidth\relax \advance\author@bx@wd by -\author@bx@sep\relax \ifnum\@ACM@authorsperrow>0\relax \divide\author@bx@wd by \@ACM@authorsperrow\relax \else \ifcase\num@authorgroups \relax % 0? \or % 1=one author per row \else % 2=two authors per row \divide\author@bx@wd by 2\relax \fi \fi \advance\author@bx@wd by -\author@bx@sep\relax Now, parsing of \addresses: 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 \gdef\@currentauthors{}% \gdef\@currentaffiliation{}% \def\@author##1{\ifx\@currentauthors\@empty \gdef\@currentauthors{\par##1}% \else \g@addto@macro\@currentauthors{\par##1}% \fi \gdef\and{}}% \def\email##1##2{\ifx\@currentaffiliation\@empty \gdef\@currentaffiliation{\nolinkurl{##2}}% \else \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}% \fi}% \def\affiliation##1##2{\ifx\@currentaffiliation\@empty \gdef\@currentaffiliation{% \setkeys{@ACM@affiliation@}{obeypunctuation=false}% \setkeys{@ACM@affiliation@}{##1}##2}% \else \g@addto@macro\@currentaffiliation{\par \setkeys{@ACM@affiliation@}{obeypunctuation=false}% \setkeys{@ACM@affiliation@}{##1}##2}% \fi \global\let\and\@typeset@author@bx}% 2017 % Actual typesetting is done by \and macro 2018 \bgroup\hsize=\columnwidth 77 2019 2020 2021 \@mkauthorsaddresses \@setaddresses \par\raggedright\leftskip=\z@ \lineskip=1pc\noindent \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup} Typesetting authors’ addresses in the footnote style This is an amsart macro, which we do not need. 2022 \def\@setaddresses{} \@authornotemark Adding footnotemark to authors. This 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 Typesetting teasers 2025 \def\@mkteasers{% 2026 2027 2028 2029 2030 2031 \@mkabstract \ifx\@teaserfigures\@empty\else \def\@teaser##1{\par\bigskip\bgroup \captionsetup{type=figure}##1\egroup\par} \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par \noindent\@teaserfigures\par\medskip}% \fi} Typesetting abstract 2032 \def\@mkabstract{\bgroup 2033 2034 2035 2036 2037 2038 2039 2040 2041 \@mkbibcitation \ifx\@abstract\@lempty\else {\phantomsection\addcontentsline{toc}{section}{Abstract}% \if@ACM@journal \small\noindent \else \section*{Abstract}% \fi \ignorespaces\@abstract\par}% \fi\egroup} Print bibcitation format 2042 \def\@mkbibcitation{\bgroup 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 \def\@pages@word{\ifnum\getrefnumber{TotPages}=1\relax page\else pages\fi}% \def\footnotemark{}% \def\\{\unskip{} \ignorespaces}% \def\footnote{\ClassError{\@classname}{Please do note use footnotes inside \string\title{} or \string\author{} command! Use \string\titlenote{} or \string\authornote{} instead!}}% \def\@article@string{\ifx\@acmArticle\@empty{\ }\else, Article˜\@acmArticle\ \fi}% \par\medskip\small\noindent{\bfseries ACM Reference Format:}\par\nobreak \noindent\authors. \@acmYear. \@title \ifx\@subtitle\@empty. \else: \@subtitle. \fi 78 \if@ACM@journal \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} 2054 2055 \@printendtopmatter End the top matter 2068 \def\@printendtopmatter{\par\bigskip} \@setthanks We redefine \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 This is the box displayed in the review mode 2072 \if@ACM@review \newsavebox{\ACM@linecount@bx} \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 2073 2074 \ACM@linecountL How to display the box on the left 2087 \def\ACM@linecountL{% 2088 \if@ACM@review 79 2089 2090 2091 2092 2093 \ACM@linecountR \ACM@mk@linecount \begin{picture}(0,0)% \put(-26,-22){\usebox{\ACM@linecount@bx}}% \end{picture}% \fi} How to display the box on the right 2094 \def\ACM@linecountR{% 2095 2096 2097 2098 2099 2100 \ACM@timestamp \if@ACM@review \ACM@mk@linecount \begin{picture}(0,0)% \put(20,-22){\usebox{\ACM@linecount@bx}}% \end{picture}% \fi} The timestamp system 2101 \if@ACM@timestamp % Subtracting 30 from \time gives us the effect of rounding-down despite % \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 2102 2103 \@shortauthors Even if the author redefined \shortauthors, we do not print them in the anonymous mode in the headers: 2118 \def\@shortauthors{\if@ACM@anonymous \@headfootfont Anon.\else\shortauthors\fi} The font to typeset header and footer text. 2119 \def\@headfootfont{% 2120 2121 2122 2123 2124 2125 2126 2127 2128 \ifcase\ACM@format@nr \relax % manuscript \sffamily \or % acmsmall \sffamily \or % acmlarge \sffamily \or % acmtog \sffamily 80 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 standardpagestyle \or % sigconf \sffamily \or % siggraph \sffamily \or % sigplan \sffamily \or % sigchi \sffamily \or % sigchi-a \sffamily \fi} The pagestyle for all pages but the first one 2140 \fancypagestyle{standardpagestyle}{% 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 \fancyhf{}% \renewcommand{\headrulewidth}{\z@}% \renewcommand{\footrulewidth}{\z@}% \ifcase\ACM@format@nr \relax % manuscript \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}% \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}% \fancyhead[RE]{\@shortauthors}% \fancyhead[LO]{\ACM@linecountL\shorttitle}% \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}% \or % acmsmall \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% \fancyhead[RE]{\@headfootfont\@shortauthors}% \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}% \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \or % acmlarge \fancyhead[LE]{\ACM@linecountL\@headfootfont \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}% \fancyhead[LO]{\ACM@linecountL}% \fancyhead[RO]{\@headfootfont \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}% \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \or % acmtog \fancyhead[LE]{\ACM@linecountL\@headfootfont \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}% \fancyhead[LO]{\ACM@linecountL}% \fancyhead[RE]{\ACM@linecountR}% \fancyhead[RO]{\@headfootfont \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}% \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \else % Proceedings \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% 81 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}% \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}% \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname, \acmConference@date, \acmConference@venue}% \fancyhead[RO]{\@headfootfont\acmConference@shortname, \acmConference@date, \acmConference@venue\ACM@linecountR}% \fi \if@ACM@sigchiamode \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}% \fi \if@ACM@timestamp \fancyfoot[LO,RE]{\ACM@timestamp} \fi 2190 } 2191 \pagestyle{standardpagestyle} \@folio@wd \@folio@ht \@folio@voffset \@folio@max Folio blob width, height, offsets 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 % 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 2201 \or \@folioblob The 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 2215 2216 2217 2218 2219 2220 \loop \ifnum\@tempcnta>\@folio@max\relax \advance\@tempcnta by - \@folio@max \repeat \advance\@tempcnta by -1\relax \@tempdima=\@folio@ht\relax \multiply\@tempdima by \the\@tempcnta\relax 82 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 \advance\@tempdima by -\@folio@voffset\relax \begin{picture}(0,0) \makebox[\z@]{\raisebox{-\@tempdima}{% \rlap{% \raisebox{-0.45\@folio@ht}[\z@][\z@]{% \rule{\@folio@wd}{\@folio@ht}}}% \parbox{\@folio@wd}{% \centering \textcolor{white}{\LARGE\sffamily\bfseries\@acmArticle}}}} \end{picture}\fi} 2231 firstpagestyle The pagestyle for the first page only. 2232 \fancypagestyle{firstpagestyle}{% 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 \fancyhf{}% \renewcommand{\headrulewidth}{\z@}% \renewcommand{\footrulewidth}{\z@}% \ifcase\ACM@format@nr \relax % manuscript \fancyhead[L]{\ACM@linecountL}% \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}% \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}% \or % acmsmall \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fancyhead[LE]{\ACM@linecountL\@folioblob}% \fancyhead[LO]{\ACM@linecountL}% \fancyhead[RO]{\@folioblob}% \fancyheadoffset[RO,LE]{0.6\@folio@wd}% \or % acmlarge \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fancyhead[RO]{\@folioblob}% \fancyhead[LE]{\ACM@linecountL\@folioblob}% \fancyhead[LO]{\ACM@linecountL}% \fancyheadoffset[RO,LE]{1.4\@folio@wd}% \or % acmtog \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fancyhead[L]{\ACM@linecountL}% \fancyhead[R]{\ACM@linecountR}% \else % Conference proceedings \fancyhead[L]{\ACM@linecountL}% \fancyhead[R]{\ACM@linecountR}% \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% \fi \if@ACM@timestamp 83 2269 2270 2271 2272 2273 2274 2275 \ifnum\ACM@format@nr=0\relax % Manuscript \fancyfoot[LO,RE]{\ACM@timestamp\quad \footnotesize Manuscript submitted to ACM} \else \fancyfoot[LO,RE]{\ACM@timestamp} \fi \fi 2276 } \ACM@restore@pagestyle The 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{% \let\ps@plain\ACM@ps@plain \let\ps@myheadings\ACM@ps@myheadings 2283 \let\ps@headings\ACM@ps@headings} 2284 \AtBeginDocument{\ACM@restore@pagestyle} 2281 2282 3.15 Sectioning Sectioning is different for different levels 2285 \renewcommand\section{\@startsection{section}{1}{\z@}% {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% {.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}} 2286 2287 \section@raggedright Special version of \raggedright compatible with \MakeUppercase 2305 \def\section@raggedright{\@rightskip\@flushglue 2306 2307 2308 \rightskip\@rightskip \leftskip\z@skip \parindent\z@} 84 \@secfont \@subsecfont \@subsubsecfont \@parfont Fonts for sections etc. are different for different 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 % 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 2316 \or 85 \@adddotafter Add punctuation after the command 2356 \def\@adddotafter#1{#1\@addpunct{.}} \@addspaceafter Add space after the command 2357 \def\@addspaceafter#1{#1\@addpunct{\enspace}} 3.16 \@dotsep TOC Lists Related to the \tableofcontents are all the horizontal fillers. Base LATEX defines \@dottedtocline, which we should not disable. Yet, this command expects \@dotsep to be defined, 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 \@acmplainbodyfont Theorems The font to typeset the acmplain theorem style body. 2359 \def\@acmplainbodyfont{\itshape} \@acmplainindent The amount to indent the acmplain theorem style. 2360 \def\@acmplainindent{\parindent} \@acmplainheadfont The font to typeset the acmplain theorem style head. 2361 \def\@acmplainheadfont{\scshape} \@acmplainnotefont The 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 % 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 2365 \or 86 acmplain The acmplain theorem style 2378 \newtheoremstyle{acmplain}% 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 \@acmdefinitionbodyfont {.5\baselineskip\@plus.2\baselineskip \@minus.2\baselineskip}% space above {.5\baselineskip\@plus.2\baselineskip \@minus.2\baselineskip}% space below {\@acmplainbodyfont}% body font {\@acmplainindent}% indent amount {\@acmplainheadfont}% head font {.}% punctuation after head {.5em}% spacing after head {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec The font to typeset the acmdefinition theorem style body. 2389 \def\@acmdefinitionbodyfont{\normalfont} \@acmdefinitionindent The amount to indent the acmdefinition theorem style. 2390 \def\@acmdefinitionindent{\parindent} \@acmdefinitionheadfont The font to typeset the acmdefinition theorem style head. 2391 \def\@acmdefinitionheadfont{\itshape} \@acmdefinitionnotefont The 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 % 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 2395 \or acmdefinition The acmdefinition theorem style 2408 \newtheoremstyle{acmdefinition}% 2409 2410 2411 2412 2413 {.5\baselineskip\@plus.2\baselineskip \@minus.2\baselineskip}% space above {.5\baselineskip\@plus.2\baselineskip \@minus.2\baselineskip}% space below {\@acmdefinitionbodyfont}% body font 87 {\@acmdefinitionindent}% indent amount {\@acmdefinitionheadfont}% head font {.}% punctuation after head {.5em}% spacing after head {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec 2414 2415 2416 2417 2418 Make acmplain the default theorem style. 2419 \theoremstyle{acmplain} Delay defining the theorem environments until after other packages have been loaded. In particular, the cleveref package must be loaded before the theorem environments are defined in order to show the correct environment name (see https://github.com/borisveytsman/acmart/iss The acmthm option is used to suppress the definition of any theorem environments. Also, to avoid obscure errors arising from these environment definitions conflicting with environments defined by the user or by user-loaded packages, we only define environments that have not yet been defined. 2420 \AtEndPreamble{% 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 \if@ACM@acmthm \theoremstyle{acmplain} \@ifundefined{theorem}{% \newtheorem{theorem}{Theorem}[section] }{} \@ifundefined{conjecture}{% \newtheorem{conjecture}[theorem]{Conjecture} }{} \@ifundefined{proposition}{% \newtheorem{proposition}[theorem]{Proposition} }{} \newtheorem{lemma}[theorem]{Lemma} \@ifundefined{lemma}{}{} \@ifundefined{corollary}{% \newtheorem{corollary}[theorem]{Corollary} }{} \theoremstyle{acmdefinition} \@ifundefined{example}{% \newtheorem{example}[theorem]{Example} }{} \@ifundefined{definition}{% \newtheorem{definition}[theorem]{Definition} }{} \fi \theoremstyle{acmplain} 2446 } \@proofnamefont The 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 % 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 2451 \or proof We want some customization of proof environment. 2462 \renewenvironment{proof}[1][\proofname]{\par \pushQED{\qed}% \normalfont \topsep6\p@\@plus6\p@\relax 2465 \trivlist 2466 \item[\@proofindent\hskip\labelsep 2467 {\@proofnamefont #1\@addpunct{.}}]\ignorespaces 2468 }{% 2469 \popQED\endtrivlist\@endpefalse 2470 } 2463 2464 3.18 \acks Acknowledgments This is a comment-like structure 2471 \specialcomment{acks}{% \begingroup \section*{Acknowledgments} 2474 \phantomsection\addcontentsline{toc}{section}{Acknowledgments} 2475 }{% 2476 \endgroup 2477 } 2472 2473 \grantsponsor We just typeset the name of the sponsor 2478 \def\grantsponsor#1#2#3{#2} \grantnum 2479 \newcommand\grantnum[3][]{#3% 2480 3.19 \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi} Conditional typesetting We use the comment package for conditional typesetting: 2481 \AtEndPreamble{% 89 2482 \if@ACM@screen \includecomment{screenonly} \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} 2483 2484 3.20 \showeprint Additional bibliography commands The command \showeprint has two arguments: the (optional) prefix and the eprint number. Right now the only prefix we understand is the (lowercase) word ‘arxiv’ (see http://arxiv.org/hypertex/bibstyles/). 2495 \newcommand\showeprint[2][arxiv]{% \def\@tempa{#1}% \ifx\@tempa\@empty\def\@tempa{arxiv}\fi \def\@tempb{arxiv}% \ifx\@tempa\@tempb arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2% \fi} 2496 2497 2498 2499 2500 2501 3.21 End of Class 2502 \normalsize\normalfont\frenchspacing 2503 h/classi 90 References [1] UK TEX Users Group. UK list of TEX frequently asked questions. http://www.tex. ac.uk, 2016. [2] Michael Downes and Barbara Beeton. The amsart, amsproc, and amsbook document 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ério Brito. The algorithms bundle, August 2009. http://www.ctan.org/pkg/ algorithms. [5] Carsten Heinz, Brooks Moses, and Jobst Hoffmann. The Listings Package, June 2015. http://www.ctan.org/pkg/listings. [6] Simon Fear. Publication quality tables in LATEX, 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. The 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. The textcase package, October 2004. http://www.ctan.org/pkg/ textcase. 91 Change History v1.00 General: First released version . . . . . v1.01 General: Changed hyperref colors in screen mode (closes https: //github.com/borisveytsman/ acmart/issues/1) . . . . . . . . . . Defined ACM colors . . . . . . . . . . Explicitly put draft option (closes https: //github.com/borisveytsman/ acmart/issues/4) . . . . . . . . . . Set headheight to 1pc for all formats (closes https: //github.com/borisveytsman/ acmart/issues/5) . . . . . . . . . . v1.02 General: Added TOPS and TSC (closes https: //github.com/borisveytsman/ acmart/issues/12) . . . . . . . . . Documentation changes (closes https: //github.com/borisveytsman/ acmart/issues/13) . . . . . . . . . v1.03 \@formatdoi: Added macro . . . . . . \if@ACM@authorversion: Added macro . . . . . . . . . . . . . . . . . . . \maketitle: Added special case of authorversion . . . . . . . . . . . . . . General: Added anonsuppress environment . . . . . . . . . . . . . . Added authorversion option (closes https: //github.com/borisveytsman/ acmart/issues/9) . . . . . . . . . . v1.04 \acmArticleSeq: Name change by Matthew Fluet . . . . . . . . . . . . . \acmDOI: Name change by Matthew Fluet . . . . . . . . . . . . . . . . . . . . \acmISBN: Name change by Matthew Fluet . . . . . . . . . . . . . . . . . . . . General: Updated bibliography for siggraph . . . . . . . . . . . . . . . . . v1.05 General: Added processing doi numbers for acmsiggraph and doi numbers for sigproc.bib . . . . . . . Patched \setcitestyle command; closes https: //github.com/borisveytsman/ acmart/issues/19 . . . . . . . . . . v1.06 \@ACM@badge@skip: Added macro . . \@ACM@badge@width: Added macro . \@ACM@title@width: Added macro . \@mktitle@i: Added processing badges . . . . . . . . . . . . . . . . . . Made generic . . . . . . . . . . . . . . \@mktitle@ii: Now this macro is obsolete . . . . . . . . . . . . . . . . . \@mktitle@iii: Added processing badges . . . . . . . . . . . . . . . . . . Made more generic . . . . . . . . . . \@mktitle@iv: Made more generic . \@printtopmatter: Added processing badges . . . . . . . . . . . . . . . . . . \@subtitlefont: Added macro . . . . \@titlefont: Added macro . . . . . . \acmBadgeL: Added macro . . . . . . . \acmBadgeR: Added macro . . . . . . . \if@ACM@badge: Added macro . . . . . v1.07 \maketitle: Corrected a bug with abstract footnotes . . . . . . . . . . . Corrected a bug with permssion and footnotes order . . . . . . . . . . v1.08 General: SIGPLAN reformatting by Matthew Fluet . . . . . . . . . . . . . Typos corrected (Tobias Pape) . . . v1.09 General: Revert SIGPLAN caption rules . . . . . . . . . . . . . . . . . . . . v1.10 \maketitle: Corrected a bug with doi in manuscript and author vertsion, https: //github.com/borisveytsman/ acmart/issues/36 . . . . . . . . . . 28 28 28 31 28 28 28 62 30 65 28 28 56 57 57 28 92 28 28 57 57 57 70 70 71 71 71 72 68 70 70 57 57 57 65 65 28 28 28 65 General: Changes of ‘licensedothergov’ wording . . . . standardpagestyle: Reversed folios location . . . . . . . . . . . . . . . . . . v1.11 General: Customization of ACM theorem styles and proof environment by Matthew Fluet . . v1.12 \@marginfigure: Now centering by default . . . . . . . . . . . . . . . . . . \@margintable: Now centering by default . . . . . . . . . . . . . . . . . . \@parfont: Moved to \section@raggedright . . . . . . \copyrightpermissionfootnoterule: Added macro . . . . . . . . . . . . . . \descriptionlabel: Redefined . . . . \footnoterule: Made shorter . . . . . \if@ACM@natbib@override: Added macro . . . . . . . . . . . . . . . . . . . \if@ACM@newfonts: Added macro . . \maketitle: Moved thankses to copyrightpermission box . . . . . . \section@raggedright: Introduced macro . . . . . . . . . . . . . . . . . . . General: Added graceful behavior when libertine fonts are absent . . Documentation updates . . . . . . . v1.13 \@mpfootnotetext: Made minipage footnotes centered . . . . . . . . . . \bibliographystyle: Redefined macro . . . . . . . . . . . . . . . . . . . \bibstyle@acmauthoryear: Added macro . . . . . . . . . . . . . . . . . . . \bibstyle@acmnumeric: Added macro . . . . . . . . . . . . . . . . . . . \if@ACM@printfolios: Added macro General: Font adjustments for acmsmall . . . . . . . . . . . . . . . . . Increased font size for ACM Large Print bibliographic information by default for the proceedings . . . . . standardpagestyle: Added headers for sigs . . . . . . . . . . . . . . . . . . Expanded headers for sigchi-a . . . Suppressed folios if sig . . . . . . . . v1.14 \bibstyle@acmauthoryear: Moved def of \bibstyle@acmauthoryear before use . . . . . . . . . . . . . . . . \bibstyle@acmnumeric: Moved def of \bibstyle@numeric before use . . General: \citestyle updates (Matthew Fluet) . . . . . . . . . . . . Patched \citestyle . . . . . . . . . v1.15 \@ACM@addtoaddress: Added macro \@mkauthors@iii: New authors system . . . . . . . . . . . . . . . . . . \@shortauthors: Introduced macro . \@typeset@author@bx: Moved to separate macro . . . . . . . . . . . . . \acks: Added macro . . . . . . . . . . . \affiliation: Added code for author groups . . . . . . . . . . . . . . . . . . \author: Added code for author groups . . . . . . . . . . . . . . . . . . \city: Added macro . . . . . . . . . . . \country: Added macro . . . . . . . . . \department: Added macro . . . . . . \grantnum: Added macro . . . . . . . . \grantsponsor: Added macro . . . . . \if@insideauthorgroup: Introduced macro . . . . . . . . . . . . . . . . . . . \institution: Added macro . . . . . \num@authorgroups: Renamed . . . . \orcid: Introduced macro . . . . . . . \position: Added macro . . . . . . . . \postcode: Added macro . . . . . . . . \state: Added macro . . . . . . . . . . \streetaddress: Added macro . . . . standardpagestyle: Better handling of anonymous mode . . . . . . . . . v1.16 \@headfootfont: Added macro . . . . General: Formatting header/footer (Matthew Fluet) . . . . . . . . . . . . standardpagestyle: Customize header/footer text font . . . . . . . . v1.17 \@makefnmark: Redefined . . . . . . . . \@mkauthors: TOG now uses the same authors block as other journals . . \@mkauthors@ii: Deleted . . . . . . . . \@mkbibcitation: Added \nobreak Changed format for sigs . . . . . . . 61 81 28 44 45 85 41 47 41 30 43 65 84 42 28 42 38 34 35 58 73 32 59 81 81 81 93 34 35 28 33 72 75 80 75 89 54 53 72 72 72 89 89 53 72 53 55 72 72 72 72 81 80 28 81 42 73 75 78 78 \acmArticle: The default is now numerical . . . . . . . . . . . . . . . . \acmMonth: The default must be numerical. Closes #50. . . . . . . . . \acmNumber: The default is now numerical . . . . . . . . . . . . . . . . \acmVolume: The default is now numerical . . . . . . . . . . . . . . . . \acmYear: The default is now numerical . . . . . . . . . . . . . . . . \description: Decreased indent . . . \grantnum: Added url . . . . . . . . . . \grantsponsor: Renamed . . . . . . . \if@ACM@printacmref: Renamed from \if@ACM@printbib . . . . . . General: Slightly decreased margins for sigs . . . . . . . . . . . . . . . . . . standardpagestyle: Added paper title to sigs . . . . . . . . . . . . . . . . v1.18 \@mkauthors@i: Now we andify affiliations . . . . . . . . . . . . . . . . \@typeset@author@line: Added macro . . . . . . . . . . . . . . . . . . . General: Natbib is now the default for all formats . . . . . . . . . . . . . . . . v1.19 \@mkabstract: Include ’Abstract’ in PDF bookmarks (Matthew Fluet) . \acks: Include ’Acknowledgements’ in PDF bookmarks (Matthew Fluet) . General: Include ’Abstract’, ’Acknowledgements’, and ’References’ in PDF bookmarks (Matthew Fluet) . . . . . . . . . . . . Include ’References’ in PDF bookmarks (Matthew Fluet) . . . . v1.20 \@mkabstract: Deleted spurious space General: Bug fixes for bst . . . . . . . . v1.21 \showeprint: Added macro . . . . . . v1.22 General: More bibliography changes for Aptara . . . . . . . . . . . . . . . . v1.23 General: Add PACMPL journal option v1.24 General: Add IMWUT journal option v1.25 General: Updated PACMPL . . . . . . . v1.26 General: Corrected \shortcite bug . Documentation typos fixed (thanks to Stephen Spencer) . . . . . . . . . . v1.27 \if@ACM@printccs: Typo corrected . v1.28 \ccsdesc@parse: Change from \to to \textrightarrow (Matteo Riondato) . . . . . . . . . . . . . . . . General: Corrected option natbib behavior . . . . . . . . . . . . . . . . . Got rid of warnings in pdf keywords v1.29 \@mkabstract: Removed spurious indentation (John Wickerson) . . . \ccsdesc@parse: Add spacing after bullet and around rightarrow; semicolon separators no longer in bold/italic (John Wickerson) . . . . General: Increased head to 13pt . . . . standardpagestyle: Corrected printfolios (Matthew Fluet) . . . . . v1.30 \department: Added optional parameter . . . . . . . . . . . . . . . . General: Added \frenchspacing . . . Bibtex style now recognizes https:// in doi . . . . . . . . . . . . . . . . . . . Switched to T1: looks like libertine has problems with \l in OT1 . . . Updated IMWUT and PACMPL . . v1.31 \@additionalaffiliation: Added macro . . . . . . . . . . . . . . . . . . . \@mkbibcitation: Disabled linebreak \@startsection: Added \tochangmeasure . . . . . . . . . . . Rededined macro . . . . . . . . . . . . \@textbottom: Redefined . . . . . . . . \acmMonth: The default now is the current month (Matteo Riondato) \acmYear: The default now is the current year (Matteo Riondato) . . \additionalaffiliation: Added macro . . . . . . . . . . . . . . . . . . . \l@subsection: Redefined macro . . \l@subsubsection: Redefined macro 56 56 56 56 56 47 89 89 58 39 81 74 74 28 78 89 28 33 78 28 90 28 28 47 94 47 28 28 58 60 35 37 78 60 39 81 72 90 28 43 47 55 78 35 37 42 56 56 55 37 37 BibTeX comma before articleno bug General: Documentation changes . . . 28 corrected . . . . . . . . . . . . . . . . . v1.32 \@formatdoi: New doi format . . . . . 62 BibTeX crossref bug corrected . . . General: Added POMACS journal BibTeX numpages bug corrected . option . . . . . . . . . . . . . . . . . . . 28 Documentation updates . . . . . . . Format siggraph is now obsolete . 28 Moved \citename definition for v1.33 non-natbib bibliography, so a \@ACM@addtoaddress: Added package may redefine it . . . . . . . obeypunctuation code . . . . . . . . 72 Switched to Type 1 fonts for \@mkauthors@i: Added libertine even if OTF-capable obeypunctuation code . . . . . . . . 74 engine is used (Kai Mindermann) . \@mkauthors@iii: Added firstpagestyle: Added right obeypunctuation code . . . . . . . . 75 linecount for two column formats \@mkauthors@iv: Added Added timestamp (Michael obeypunctuation code . . . . . . . . 76 D. Adams) . . . . . . . . . . . . . . . . \@subtitlefont: Added standardpagestyle: Added right \normalsize . . . . . . . . . . . . . . 70 linecount for two column formats \ACM@linecountL: Renamed macro . 79 Added timestamp (Michael \ACM@linecountR: Added macro . . . 80 D. Adams) . . . . . . . . . . . . . . . . \ACM@timestamp: Added current page v1.34 number . . . . . . . . . . . . . . . . . . 80 \@mkbibcitation: Deleted DOI from Added macro (Michael D. Adams) . 80 doi numbers . . . . . . . . . . . . . . . Added submission id . . . . . . . . . 80 \ACM@linecount@bx: Rulers now are \acmSubmissionID: Added macro . . 57 continuous . . . . . . . . . . . . . . . \city: Added obeypunctuation code 72 \ACM@linecountL: Rulers now are \country: Added obeypunctuation continuous . . . . . . . . . . . . . . . code . . . . . . . . . . . . . . . . . . . . 72 \ACM@linecountR: Rulers now are \department: Added obeypunctuation continuous . . . . . . . . . . . . . . . code . . . . . . . . . . . . . . . . . . . . 72 \maketitle: Added date to the \if@ACM@affiliation@obeypunctuation: bibstrip in conf proceedings . . . . Added macro . . . . . . . . . . . . . . 54 Deleted ‘DOI’ from doi numbers . \if@ACM@authordraft: Added macro 30 Rearranged bibstrip . . . . . . . . . . \if@ACM@natbib@override: Deleted The \terms command is now macro . . . . . . . . . . . . . . . . . . . 30 obsolete . . . . . . . . . . . . . . . . . \if@ACM@timestamp: Added macro \terms: The \terms command now (Michael D. Adams) . . . . . . . . . . 30 just produces a warning . . . . . . . \institution: Added v1.35 obeypunctuation code . . . . . . . . 72 \bibstyle@acmauthoryear: Square \maketitle: Fixed the bug with brackets for author-year style . . . figures on top and bottom of the General: BibTeX bug fixed: et al. . . . title page, thanks to David Epstein 65 If the copyright is set to usgov or \position: Added obeypunctuation rigtsretained, the price is code . . . . . . . . . . . . . . . . . . . . 72 suppressed . . . . . . . . . . . . . . . . \postcode: Added obeypunctuation code . . . . . . . . . . . . . . . . . . . . 72 v1.36 \@ACM@authorsperrow: Added macro \state: Added obeypunctuation code 72 \@mkauthors@iii: Added \streetaddress: Added authorsperrow overrride . . . . . . obeypunctuation code . . . . . . . . 72 General: Added acmart-preload-hook 28 \@mkauthors@iv: Added authorsperrow overrride . . . . . . Added cmap and glyphtounicode . 42 95 28 28 28 28 38 43 83 83 81 81 78 79 79 80 65 65 65 65 58 34 28 61 59 75 76 \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 (Matthew Fluet) . . . . 47 \descriptionlabel: Reduce list indentation (Matthew Fluet) . . . . 47 \normalparindent: Set \normalparindent (Matthew Fluet) . . . . . . . . . . . . . . . . . . . 41 General: Reduce list indentation (Matthew Fluet) . . . . . . . . . . . . 46 Set \normalparindent; Reduce list indentation (Matthew 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 in SIG . . . . . . . . . . . . . . . . . . . 72 \country: Fixed bugs with extra spaces . . . . . . . . . . . . . . . . . . . 72 \l@subsection: Redefined macro . . 37 \postcode: We now do not print this even in SIG . . . . . . . . . . . . . . . 72 \state: We now do not print this even in SIG . . . . . . . . . . . . . . . . . . . 72 \streetaddress: We now do not print this even in SIG . . . . . . . . . 72 General: Added ‘textcase’ package . . Added heightrounded to geometry Added new copyright version: licensedcagov . . . . . . . . . . . . . . Added package cleveref . . . . . . . Added Ross Moore code for glyphtounicode . . . . . . . . . . . . Bibliography changes . . . . . . . . . v1.41 General: Added new badges . . . . . . v1.42 General: Deleted ACM badges . . . . . v1.43 \@startsection: Added \makeatletter . . . . . . . . . . . . \country: Added comma before country for journals . . . . . . . . . v1.44 \@acmBooktitle: Added macro . . . . \@acmEditors: Added macro . . . . . \@editorsAbbrev: Added macro . . . \@folioblob: Suppress the blob if acmArticleSeq is empty . . . . . . . \@mkbibcitation: If the paper has just one page, use ‘page’ instead of ‘pages’ . . . . . . . . . . . . . . . . . . \ACM@restore@pagestyle: Added macro . . . . . . . . . . . . . . . . . . . \acmArticle: The default is now empty . . . . . . . . . . . . . . . . . . . \acmArticleSeq: Now acmArticle might be empty . . . . . . . . . . . . \acmBooktitle: Added macro . . . . . \editor: Added macro . . . . . . . . . . \if@ACM@acmthm: Added macro . . . . \maketitle: Empty DOI or ISBN are not printed (by Michael Ekstrand) General: Added package refcount . . . Deleted package cleveref . . . . . . . Put theorem defs in a separate style v1.45 \@folioblob: Switched \bfeseries\sffamily to \sffamily\bfseries . . . . . . . . \@parfont: Switched \bfeseries\sffamily to \sffamily\bfseries . . . . . . . . \@titlefont: Switched \bfeseries\sffamily to \sffamily\bfseries . . . . . . . . 96 33 39 28 28 42 28 28 28 37 72 53 53 53 82 78 84 56 56 53 53 29 65 28 28 28 82 85 70 v1.46 \@mkauthorsaddresses: Introduced macro . . . . . . . . . . . . . . . . . . . \@mkbibcitation: Added subtitle . . \@printendtopmatter: Made it \par\bigskip uniformly . . . . . . \@printtopmatter: Deleted rule . . . \@setauthorsaddresses: Introduced macro . . . . . . . . . . . . . . . . . . . \ACM@linecount@bx: Rearranged the code to get rid of spurious underfull messages (Benjamin Byholm) . . . . . . . . . . . . . . . . . \author: Started counting authors . . \authorsaddresses: Introduced macro . . . . . . . . . . . . . . . . . . . \country: T . . . . . . . . . . . . . . . . . \if@ACM@acmthm: Modified description . . . . . . . . . . . . . . . \liningnums: Workaround for compatibility with fontspec . . . . \maketitle: Added authors’ addresses Thankses go before authors’ addresses . . . . . . . . . . . . . . . . . \num@authors: Introduced macro . . General: Added etoolbox . . . . . . . . Bst file bug fixes: label width is calculated correctly . . . . . . . . . . Delayed hypersetup since journal options may change screen mode PACM now set screen to true . . . . Restore theorem defs to class file . 78 78 79 68 79 79 53 55 97 72 29 43 65 65 53 28 28 37 47 28 Index Numbers written in italic refer to the page where the corresponding entry is described; numbers underlined refer to the code line of the definition; 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, 98 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 \@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 99 \@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, 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 100 \@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 \@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, 101 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 \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 (environment) . . . . . . . . 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 102 \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, 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, 103 1008, 1012, 1016, 1020, 1028, 1031, 1047, 1085, 1109, 1112, 1132, 1143, 1159, 1165, 1173, 1187, 1190, 1194, 1198, 1205, 1241, 1336, 1370, 1486, 1513, 1613, 1697, 1767, 1811, 1815, 1819, 1825, 1855, 1861, 1867, 1871, 1876, 1880, 1889, 1892, 1902, 1931, 1964, 2002, 2023, 2027, 2043, 2046, 2069, 2087, 1009, 1013, 1017, 1021, 1029, 1032, 1048, 1107, 1110, 1123, 1133, 1155, 1161, 1167, 1175, 1188, 1192, 1195, 1200, 1228, 1265, 1338, 1482, 1495, 1521, 1634, 1718, 1795, 1812, 1816, 1821, 1828, 1856, 1864, 1868, 1873, 1877, 1882, 1890, 1894, 1903, 1953, 1980, 2007, 2024, 2032, 2044, 2049, 2070, 2094, 1011, 1015, 1019, 1027, 1030, 1043, 1054, 1108, 1111, 1124, 1142, 1157, 1163, 1171, 1177, 1189, 1193, 1196, 1203, 1240, 1284, 1369, 1484, 1508, 1527, 1675, 1739, 1804, 1814, 1817, 1822, 1831, 1860, 1865, 1870, 1874, 1879, 1884, 1891, 1901, 1924, 1959, 1996, 2022, 2025, 2042, 2045, 2068, 2077, 2118, 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, 104 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 \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, G 1784, 1792, 1793, \g@addto@macro . . . . 1801, 1809, 1819, 1052, 1076, 1077, 1821, 1822, 1824, 1090, 1096, 1103, 1825, 1828, 1830, 1121, 1125, 1127, 1852, 1881, 1888, 1130, 1134, 1136, 1899, 1913, 1914, 1139, 1145, 1146, 1925, 1948, 1949, 1151, 1153, 1246, 1957, 1963, 1972, 1252, 1271, 1278, 1991, 1992, 2000, 1486, 1490, 1492, 2006, 2015, 2031, 1898, 1910, 1956, 2039, 2041, 2043, 1962, 1969, 1999, 2050, 2053, 2062, 2005, 2012, 2023, 2024 2065, 2086, 2093, \gdef . . . . . . . . . 1034, 2100, 2115, 2117, 1035, 1036, 1037, 2118, 2139, 2146, 1039, 1043, 1049, 2147, 2152, 2153, 1051, 1068, 1069, 2160, 2163, 2168, 1071, 1072, 1082, 2172, 2176, 2183, 1088, 1094, 1203, 2186, 2189, 2211, 1227, 1244, 1250, 2230, 2239, 2266, 1267, 1269, 1270, 2267, 2274, 2275, 1276, 1636, 1896, 2355, 2377, 2407, 1900, 1905, 1929, 2444, 2461, 2480, 1930, 1951, 1952, 2488, 2494, 2497, 2501 1954, 1958, 1960, \firstpagestyle . . . . 2232 1965, 1994, 1995, 1997, 2001, 2003, 2008 \floatname . . . . . . . . 663 \footnote . . . . . . . . . 2046 \geometry . . . . . . . . . 474, 477, 484, 491, \footnotemark 402, 1125, 498, 505, 512, 519, 526 1134, 2023, 2024, 2044 \getrefnumber . . . . . 2043 \footnoterule . . . . . 557 \global . . . . . . . . . . \footnotesep . . . 581, 594 350, 353, 389, 585, \footnotesize . . . . . 691, 1061, 1063, . 587, 2109, 2150, 1064, 1101, 1504, 2156, 2164, 2173, 1506, 1600, 1601, 2176, 2240, 2242, 1893, 1915, 1916, 2250, 2258, 2266, 2271 1925, 1973, 1976, \footnotetext . . 1128, 2016, 2029, 2081, 2085 1130, 1137, 1140, 1147 \grantnum . . . . . . 22, 2479 \footnotetextauthorsaddresses \grantsponsor . . 22, 2478 . . . . . . . 1520, 1526 \footnotetextcopyrightpermission H . . . . . . . . . . . 1531 \hbox . 596, 1508, 1513, 1807 \footrulewidth 2143, 2235 \headrulewidth 2142, 2234 \format . . . . . . . . . . . 32 \hfill . . . . . . . 1797, 2084 \frenchspacing . . . . 2502 \href . 1664, 1669, 1751, 1763, 1775, 1790, 2500 \fulltextwidth . . . . . . . . . . 673, 676, 692 \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 \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 I \if@filesw . . . . . 385, 451 \if . . . . . . . . . . . . . . 247 \if@insideauthorgroup . . . . . . . 1060, 1062 \if@ACM@acmthm . 57, 2421 \if@nobreak . . . . . . . 295 \if@ACM@affiliation@obeypunctuation \if@noskipsec . . 288, 352 . . . . . . . . 1105, 1806, 1819, 1821, \if@printcopyright . 1822, 1823, 1825, 1828 . . . . . . . 1285, 1547 \if@ACM@anonymous 89, \if@printpermission 1067, 1075, 1080, . . . . . . . 1287, 1540 1102, 1120, 1126, \ifcase . . . . 138, 160, 1135, 1144, 1489, 405, 472, 537, 643, 1496, 1524, 2118, 2489 695, 812, 1167, \if@ACM@authordraft 1339, 1371, 1614, . . . . . 105, 463, 1532 1642, 1676, 1698, 1719, 1833, 1857, \if@ACM@authorversion 1937, 1986, 2120, . . . . . 73, 1539, 1555 2144, 2199, 2236, \if@ACM@badge . . . . . 2314, 2363, 2393, 2449 1179, 1661, 1770, 1786 \ifcsname . . . . . . . . . 266 \if@ACM@journal . 125, \ifdim 292, 312, 344, 369, 2083 636, 1233, 1525, 1543, 1559, 1570, \IfFileExists 614, 617, 619 1591, 1813, 2035, 2054 \IfInteger . . . . . . . . 1225 \if@ACM@manuscript . \ifNAT@numbers . . . . 446 . . . . . . . . . 124, \ifnum 127, 132, 304, 305, 188, 1230, 1542, 1552 319, 323, 332, 336, \if@ACM@natbib . . . . 1279, 1280, 1300, . . . 81, 193, 284, 428 1305, 1308, 1312, \if@ACM@natbib@override 1318, 1321, 1324, . . . . . . . . . . . . . 81 1327, 1330, 1333, 1498, 1934, 1983, \if@ACM@newfonts 612, 622 2043, 2213, 2215, 2269 \if@ACM@printacmref . . . . . . . 1212, 1602 \ifPDFTeX . . . . . . . . . 600 \ifvmode . . . . . . . . . 1805 \if@ACM@printccs . . . . . . . . . . 1206, 1584 \ifvoid . . . . . . . . . . 562 106 \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 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 (environment) . . . . . . . . 21 \marginpar . . . . . 573, 666, 669, 672, 1662 \marginparsep . . 674, 2185 \marginparwidth . 674, 2185 \margintable . . . . . . 670 margintable (environment) . . . . . . . . 21 \mbox . . . . . . . . . . . . 245 \mdseries . . . . . . . . . 1721, 1723, 1725, 1729, 1731, 1733, 1735, 1737, 1877, 1880 107 \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 \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 . . . . \openout . . . . . . . . . 190 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, 108 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, 1660, 1759, 1766, \pushQED . . . . . . . . . 2463 1783, 1794, 1797, \put . . . . . . . . . 2091, 2098 1800, 1802, 1821, Q 1822, 1824, 1825, \qed . . . . . . . . . . . . . 2463 1883, 1887, 1916, 1918, 1924, 1926, \quad . . . . . 366, 2160, 1954, 1956, 1962, 2163, 2168, 2172, 2270 1969, 1977, 1979, R 1997, 1999, 2005, \raggedright . . . . . . 2012, 2019, 2021, . . . 1755, 1796, 2019 2027, 2028, 2029, \raisebox . . . . . . . . . 2030, 2040, 2051, 1533, 1751, 1763, 2067, 2068, 2069, 2462 1775, 1790, 2223, 2225 \paragraph 1628, 2297, 2337 \parbox 467, 1755, 1773, \received . . . . . . 18, 1241 1780, 1788, 2078, 2227 \RecordChanges . . . . . 18 \parindent 535, 549, 719, \ref . . . . . . . . . 2057, 2064 1521, 1527, 1538, \refname . . . . . . 196, 197 2297, 2308, 2360, 2390 \refstepcounter . . . . 308 \parskip . . . . . . 535, 1538 \relax . . 127, 132, 139, \part . . . . . . . . . . . . 2301 161, 246, 247, 290, \PassOptionsToClass 309, 311, 315, 329, . . . . . . . . . 120, 121 343, 358, 368, 376, \pdfgentounicode . . . 609 387, 406, 473, 538, \pdfglyphtounicode . 598, 644, 696, 813, . . . . . . 602, 603, 1057, 1059, 1061, 604, 605, 606, 607, 608 1063, 1149, 1150, \pdfstringdefDisableCommands 1266, 1275, 1300, . . . . . . . . . . . . 398 1305, 1308, 1312, \phantomsection . . . . 1318, 1321, 1324, . . . . 197, 2034, 2474 1327, 1330, 1333, \popQED . . . . . . . . . . 2469 1339, 1371, 1517, \position . . . . . . . 11, 1615, 1643, 1677, 1109, 1113, 1114, 1699, 1720, 1834, 1115, 1116, 1117, 1811 1858, 1923, 1932, \postcode . . . 11, 1116, 1811 1933, 1934, 1935, printonly (environment) 21 1938, 1941, 1943, \ProcessOptionsX . . . 122 1945, 1947, 1950, \proof . . . . . . . . . . . 2462 1978, 1981, 1982, \proofname . . . . . . . . 2462 1983, 1984, 1987, \protect . . . . . . 324, 337 1990, 1993, 2023, \protected@edef . . . . 2043, 2076, 2105, . . . . . . 309, 576, 590 2107, 2113, 2121, \providecommand . . . . 2145, 2200, 2202, . . . . . 439, 443, 2358 2203, 2204, 2207, \ProvidesClass . . . . . . 5 2208, 2209, 2212, \ProvidesFile . . . . . . . 3 2213, 2215, 2218, \ps@headings . . 2279, 2283 2219, 2220, 2221, \ps@myheadings 2278, 2282 2237, 2269, 2315, \ps@plain . . . . . 2277, 2281 2364, 2394, 2450, 2464 109 \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 (environment) . . . . . . . . 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 \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 (environment) . . . . . . . . 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, 110 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 \z@ . . . . . 344, 536, 638, 724, Z 229, 292, 312, 354, 369, 382, 581, 594, 597, 642, 653, 718, 736, 1504, 1506, 1533, 1763, 2019, 2193, 2223, 1521, 1538, 1775, 2142, 2195, 2225, 111 1527, 1751, 1790, 2143, 2197, 2234, 2235, 2285, 2289, 2301, 2308, 2332, 2337, 2342, 2372, 2402 \z@skip 381, 686, 741, 2307
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 111 Page Mode : UseOutlines Author : Boris Veytsman Title : LaTeX Class for Association for Computing Machinery Subject : Typesetting articles for Association of Computing Machinery Creator : LaTeX with hyperref package Producer : pdfTeX-1.40.18 Create Date : 2017:08:31 22:27:19-04:00 Modify Date : 2017:08:31 22:27:19-04:00 Trapped : False PTEX Fullbanner : This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) kpathsea version 6.2.3EXIF Metadata provided by EXIF.tools