On this page:
manuscript
acmsmall
acmlarge
acmtog
sigconf
siggraph
sigplan
sigchi
sigchi-a
review
screen
natbib
anonymous
authorversion
9pt
10pt
11pt
12pt
abstract
include-abstract
title
subtitle
author
acm  Journal
acm  Conference
acm  Volume
acm  Number
acm  Article
acm  Year
acm  Month
acm  Article  Seq
acm  Price
acm  ISBN
acm  DOI
acm  Badge  L
acm  Badge  R
email
email?
affiliation
affiliation?
institution
institution?
authorsaddresses
terms
keywords
start  Page
ccsdesc
received
teaserfigure
sidebar
marginfigure
margintable
printonly
screenonly
anonsuppress
acks
grantsponsor
grantnum
6.12

3.6 ACM Paper Format

The scribble/acmart language is like scribble/base, but configured with LaTeX style defaults to use the acmart class for typesetting publications for the Association of Computing Machinery.

Note: a scribble/acmart document must include a title and author.

Example:

  #lang scribble/acmart

  @title{Surreal Numbers}

  @author{Ursula N. Owens}

syntax

manuscript

syntax

acmsmall

syntax

acmlarge

syntax

acmtog

syntax

sigconf

syntax

siggraph

syntax

sigplan

syntax

sigchi

syntax

sigchi-a

Enables the given document format. Use the format only on the same line as #lang, with only whitespace (or other options) between scribble/acmart and the format name:

  #lang scribble/acmart @acmsmall

The manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph, sigplan, sigchi, and sigchi-a formats are all mutually exclusive.

syntax

review

syntax

screen

syntax

natbib

syntax

anonymous

syntax

authorversion

syntax

9pt

syntax

10pt

syntax

11pt

syntax

12pt

Enables the given document format option. Use the option only on the same line as #lang, with only whitespace (or other options) between scribble/acmart and the format option. Any number of options may be used:

  #lang scribble/acmart @acmsmall @review @anonymous @natbib

If multiple font size options are used, all but the last are ignored.

procedure

(abstract pre-content ...)  block?

  pre-content : pre-content?
Generates a nested flow for a paper abstract.

syntax

(include-abstract module-path)

Similar to include-section, but incorporates the document in the specified module as an abstract. The document must have no title or sub-parts.

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?
Specifies the title of the document, optionally with a short version of the title for running heads.

procedure

(subtitle pre-content ...)  content?

  pre-content : pre-content?
Specifies a subtitle.

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? (listof pre-content?) #f) = #f
  name : pre-content?
Specifies an author with an optional email address, affiliation, and/or orcid.

procedure

(acmJournal journal ...)  block?

  journal : pre-content?

procedure

(acmConference name date venue)  block?

  name : pre-content?
  date : pre-content?
  venue : pre-content?

procedure

(acmVolume content ...)  block?

  content : pre-content?

procedure

(acmNumber content ...)  block?

  content : pre-content?

procedure

(acmArticle content ...)  block?

  content : pre-content?

procedure

(acmYear content ...)  block?

  content : pre-content?

procedure

(acmMonth content ...)  block?

  content : pre-content?

procedure

(acmArticleSeq content ...)  block?

  content : pre-content?

procedure

(acmPrice content ...)  block?

  content : pre-content?

procedure

(acmISBN content ...)  block?

  content : pre-content?

procedure

(acmDOI content ...)  block?

  content : pre-content?
Declares information that is collected into the front-matter region of the paper.

procedure

(acmBadgeL [#:url url] graphics)  block?

  url : string? = #f
  graphics : string?

procedure

(acmBadgeR [#:url url] graphics)  block?

  url : string? = #f
  graphics : string?
Display a special badge, such as an artifact evaluation badge, on the left or right of the first page. If url is provided, the screen version of the image links to the badge authority.

procedure

(email text ...)  email?

  text : pre-content?
Creates an email? object for use with author.

procedure

(email? email)  boolean?

  email : any/c
Returns #t if email is an email, #f otherwise.

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
Creates an affiliation? object for use with author.

procedure

(affiliation? aff)  boolean?

  aff : any/c
Returns #t if aff is an affiliation, #f otherwise.

procedure

(institution [#:departments departments]    
  inst ...)  institution?
  departments : (or/c pre-content? institution? (listof institution))
   = '()
  inst : institution?
Creates an institution? object for use in author.

procedure

(institution? inst)  boolean

  inst : any/c
Returns #t if inst is an institution, #f otherwise.

#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?
Sets the text for the authors’ addresses on the first page in some styles. By default this field is set to the authors and their affiliation information.

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

(terms content ...)  content?

  content : pre-content?

procedure

(keywords content ...)  content?

  content : pre-content?
Typesets term and keyword information for the paper, which is normally placed immediately after an abstract form. See also http://www.acm.org/about/class/how-to-use.

For terms, each general term should be in titlecase. Terms are usually drawn from a fixed list, and they are usually optional.

For keywords, 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

(startPage content ...)  content?

  content : pre-content?
Sets the start page for the paper.

procedure

(ccsdesc #:number number? content ...)  content?

  number? : #f
  content : pre-content?
Declares CCS description with optional numeric code.

procedure

(received [#:stage stage] date)  content?

  stage : string? = #f
  date : string?
Sets the history of the publication. If stage is omitted, it defaults to "Received" for the first occurrence and "revised" in subsequent uses.

@received{February 2007}
@received[#:stage "revised"]{March 2009}
@received[#:stage "accepted"]{June 2009}

procedure

(teaserfigure content ...)  block?

  content : pre-flow?
Creates a teaser figure to appear before main text.

procedure

(sidebar content ...)  block?

  content : pre-flow?

procedure

(marginfigure content ...)  block?

  content : pre-flow?

procedure

(margintable content ...)  block?

  content : pre-flow?
In the sigchi-a format, special sidebars, tables and figures on the margin.

procedure

(printonly content ...)  block?

  content : pre-flow?

procedure

(screenonly content ...)  block?

  content : pre-flow?

procedure

(anonsuppress content ...)  block?

  content : pre-flow?
Marks content to be included only for print or screen editions, or excluded from anonymous editions.

procedure

(acks content ...)  block?

  content : pre-flow?
Creates an unnumbered section “Acknowledgments” section, unless the anonymous mode is selected.

procedure

(grantsponsor sponsorID name url)  content?

  sponsorID : string?
  name : string?
  url : string?

procedure

(grantnum [#:url url] sponsorID num)  content?

  url : string? = #f
  sponsorID : string?
  num : string?
All financial support must be listed using the grantsponsor and grantnum commands inside of acks.

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 Benjamin 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.