3.6 ACM Paper Format
#lang scribble/acmart | package: scribble-lib |
acmart documentation: [link]
Note: a scribble/acmart document must include a title and author.
Example:
#lang scribble/acmart |
@title{Surreal Numbers} |
@author{Ursula N. Owens} |
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
#lang scribble/acmart @acmsmall |
The manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph, sigplan, sigchi, and sigchi-a formats are all mutually exclusive.
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
syntax
#lang scribble/acmart @acmsmall @review @anonymous @natbib |
If multiple font size options are used, all but the last are ignored.
The latest acmart release (version 2.05, 2024-04-03, by Boris Veytsman) provides these defaults and descriptions:
name |
| default |
| description |
review |
| false |
| A review version: lines are numbered and hyperlinks are colored |
screen |
|
| A screen version: hyperlinks are colored | |
natbib |
| true |
| Whether to use the natbib package |
anonymous |
| false |
| Whether to make author(s) anonymous |
authorversion |
| false |
| Whether to generate a special version for the authors’ personal use or posting |
nonacm |
| false |
| Use the class typesetting options for a non-ACM document, which will not include the conference/journal header and footers or permission statements |
timestamp |
| false |
| Whether to put a time stamp in the footer of each page |
authordraft |
| false |
| Whether author’s-draft mode is enabled |
acmthm |
| true |
| Whether to define theorem-like environments |
balance |
| true |
| Whether to balance the last page in two column mode |
pbalance |
| false |
| Whether to balance the last page in two column mode using pbalance package |
urlbreakonhyphens |
| true |
| Whether to break urls on hyphens |
Further details for some of these are provided by the full documentation for the acmart LaTeX class.
In order to disable a default-true option (e.g. natbib), call the option as a function with the value #false:
#lang scribble/acmart @natbib[#f] @sigplan
procedure
pre-content : pre-content?
syntax
(include-abstract module-path)
procedure
(title [ #:short short-title #:tag tag #:tag-prefix prefix #:style style #:version version #:date date] title ...) → title-decl? short-title : pre-content? = #f tag : (or/c string? (listof string?) #f) = #f prefix : (or/c string? module-path? #f) = #f style : (or/c style? string? symbol? #f) = #f version : (or/c string? #f) = #f date : (or/c string? #f) = #f title : pre-content?
procedure
pre-content : pre-content?
procedure
(author [ #:orcid orcid #:affiliation affiliation #:email email] name ...) → block? orcid : (or/c pre-content? #f) = #f
affiliation :
(or/c pre-content? affiliation? (listof pre-content?) (listof affiliation?) #f) = #f email : (or/c pre-content? email? (listof email?)) = '() name : pre-content?
#lang scribble/acmart @title{Title} @author["Unboxed Value" #:email (list (email "user@server.com") (email-string "case--Int#@GHC.Prim.info"))]} @abstract{abstracting abstract title}
procedure
(authornote text ...) → block?
text : pre-content?
procedure
(acmJournal journal ...) → block?
journal : pre-content?
procedure
(acmConference name date venue) → block?
name : pre-content? date : pre-content? venue : pre-content?
procedure
content : pre-content?
procedure
content : pre-content?
procedure
(acmArticle content ...) → block?
content : pre-content?
procedure
content : pre-content?
procedure
content : pre-content?
procedure
(acmArticleSeq content ...) → block?
content : pre-content?
procedure
content : pre-content?
procedure
content : pre-content?
procedure
content : pre-content?
procedure
text : pre-content?
procedure
(email-string text ...) → email?
text : string?
email-string is like email except that email-string only takes strings, escapes all % and # characters in the arguments and typesets the email address with the 'exact-chars style.
procedure
(affiliation [ #:position position #:institution institution #:street-address street-address #:city city #:state state #:postcode postcode #:country country]) → affiliation? position : (or/c pre-content? #f) = #f institution : (listof (or/c pre-content? institution?)) = '() street-address : (or/c pre-content? #f) = #f city : (or/c pre-content? #f) = #f state : (or/c pre-content? #f) = #f postcode : (or/c pre-content? #f) = #f country : (or/c pre-content? #f) = #f
procedure
(affiliation? aff) → boolean?
aff : any/c
procedure
(institution [ #:departments departments] inst ...) → institution?
departments : (or/c pre-content? institution? (listof institution)) = '() inst : institution?
procedure
(institution? inst) → boolean
inst : any/c
#lang scribble/acmart @title{Some Title} @author["David Van Horn" #:affiliation @affiliation[ #:institution @institution[ #:departments (list @institution{Department of Computer Science} @institution{UMIACS})]{ University of Maryland} #:city "College Park" #:state "Maryland"] #:email "dvanhorn@cs.umd.edu"]} @abstract{This is an abstract.}
procedure
(authorsaddresses addresses ...) → block?
addresses : pre-content?
The addresses parameter takes the address text. As a special case the empty list removes the addresses field entirely.
#lang scribble/acmart @acmsmall @title{A fancy paper} @author["Ronon Dex"] @authorsaddresses{}
Added in version 1.26 of package scribble-lib.
procedure
(shortauthors name ...) → element?
name : pre-content?
Added in version 1.29 of package scribble-lib.
procedure
content : pre-content?
procedure
content : pre-content?
For terms, each general term should be in titlecase. Terms are usually drawn from a fixed list, and they are usually optional.
The keywords procedure generates the “Additional Key Words and Phrases” section. Capitalize only the first letter of the first word, separate phrases by commas, and do not include “and” before the last one. Keywords should be noun phrases, not adjectives.
procedure
content : pre-content?
procedure
number? : #f content : pre-content?
\ccsdesc[500]{Software and its engineering~Functional languages} |
\ccsdesc[500]{Software and its engineering~Imperative languages} |
@ccsdesc[#:number 500]{Software and its engineering~Functional languages} @ccsdesc[#:number 500]{Software and its engineering~Imperative languages}
@received{February 2007} @received[#:stage "revised"]{March 2009} @received[#:stage "accepted"]{June 2009}
procedure
(teaserfigure content ...) → block?
content : pre-flow?
procedure
content : pre-flow?
procedure
(marginfigure content ...) → block?
content : pre-flow?
procedure
(margintable content ...) → block?
content : pre-flow?
procedure
content : pre-flow?
procedure
(screenonly content ...) → block?
content : pre-flow?
procedure
(anonsuppress content ...) → block?
content : pre-flow?
procedure
(grantsponsor sponsorID name url) → content?
sponsorID : string? name : string? url : string?
procedure
url : string? = #f sponsorID : string? num : string?
Here sponsorID is the unique ID used to match grants to sponsors, name is the name of the sponsor. The sponsorID of a grantnum must match some sponsorID of a grantsponsor command.
@acks{ The author thanks Ben Greenman for helpful comments on this code. Financial support provided by the @grantsponsor["NSF7000" "National Scribble Foundation"]{http://racket-lang.org} under grant No.: @grantnum["NSF7000"]{867-5309}.}
Added in version 1.20 of package scribble-lib.