Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Improve acmart support #415

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ compiled/
.DS_Store
*.bak
TAGS

# generated docs
scribble-doc/scribblings/scribble/doc/
scribble-doc/scriblib/scribblings/doc/
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ Contribute to Racket by submitting a [pull request], reporting an
[issue], joining the [development mailing list], or visiting the
IRC or Slack channels.

See the [Guide] for details on building.

### License

Racket, including these packages, is free software, see [LICENSE.txt]
Expand All @@ -30,4 +32,5 @@ is licensed under the [Apache 2.0] license and the [MIT] license.
[pull request]: https://github.com/racket/scribble/pulls
[issue]: https://github.com/racket/scribble/issues
[development mailing list]: https://lists.racket-lang.org
[Guide]: (https://docs.racket-lang.org/racket-build-guide/contribute.html#(part._pkg-contribute))
[LICENSE.txt]: LICENSE.txt
57 changes: 42 additions & 15 deletions scribble-doc/scribblings/scribble/acmart.scrbl
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,23 @@ Machinery.}
@margin-note{@tt{acmart} documentation: @link["https://portalparts.acm.org/hippo/latex_templates/acmart.pdf"]{[link]}}

@bold{Note:} a @racketmodname[scribble/acmart] document must include a
@racket[title] and @racket[author].
@racket[title] and at least one @racket[author],
with an affilitation that includes at least institution and country.

Example:

@verbatim[#:indent 2]|{
#lang scribble/acmart
#lang scribble/acmart @sigplan @authorversion @10pt
@title{Surreal Numbers}
@author{Ursula N. Owens}
@author["Ursula N. Owens"
#:affiliation
(affiliation #:institution "Subreal Numerologists"
#:city "R'lyeh" #:country "THEM")
#:email "[email protected]"]
@author["Djorge U. Oruel"
#:affiliation
(affiliation #:institution "" #:country "")
#:email "[email protected]"]
}|

@deftogether[(
Expand All @@ -35,9 +44,8 @@ Example:
@defidform[sigplan]
@defidform[sigchi]
@defidform[sigchi-a]
@defidform[dtrap]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be possible to preserve these so that old programs that use them can still be run?

@defidform[tiot]
@defidform[tdsci]
@defidform[acmengage]
@defidform[acmcp]
)]{

Enables the given document format. Use the format only on the same
Expand Down Expand Up @@ -168,14 +176,21 @@ Specifies a subtitle.}
(listof affiliation?)
#f)
#f]
[#:additional-affiliation additional-affiliation
(or/c pre-content?
affiliation?
(listof pre-content?)
(listof affiliation?)
#f)
#f]
[#:email email
(or/c pre-content? email? (listof email?))
'()]
[name pre-content?] ...)
block?]{

Specifies an author with an optional email address, affiliation, and/or orcid.

@codeblock|{
#lang scribble/acmart
@title{Title}
Expand All @@ -194,6 +209,7 @@ Specifies a subtitle.}
@deftogether[(
@defproc[(acmJournal [journal pre-content?] ...) block?]
@defproc[(acmConference [name pre-content?] [date pre-content?] [venue pre-content?]) block?]
@defproc[(acmBooktitle [title pre-content?]) block?]
@defproc[(acmVolume [content pre-content?] ...) block?]
@defproc[(acmNumber [content pre-content?] ...) block?]
@defproc[(acmArticle [content pre-content?] ...) block?]
Expand All @@ -203,9 +219,13 @@ Specifies a subtitle.}
@defproc[(acmPrice [content pre-content?] ...) block?]
@defproc[(acmISBN [content pre-content?] ...) block?]
@defproc[(acmDOI [content pre-content?] ...) block?]
@defproc[(editor [name pre-content?] ...) block?]
)]{

Declares information that is collected into the front-matter region of the paper.}
Declares information that is collected into the front-matter region of the paper.

Some of these procedures accept an empty string as argument to disable the corresponding message.
}

@deftogether[(
@defproc[(acmBadgeL [#:url url string? #f] [graphics string?]) block?]
Expand Down Expand Up @@ -233,11 +253,11 @@ screen version of the image links to the badge authority.
}

@defproc[(email? [email any/c]) boolean?]{

Returns @racket[#t] if @racket[email] is an @racket[email],
@racket[#f] otherwise.
}


@defproc[(affiliation
[#:position position (or/c pre-content? #f) #f]
Expand All @@ -248,24 +268,31 @@ screen version of the image links to the badge authority.
[#:postcode postcode (or/c pre-content? #f) #f]
[#:country country (or/c pre-content? #f) #f])
affiliation?]{

Creates an @racket[affiliation?] object for use with @racket[author].

As of acmart v2.05, the ACM insists that you should include
a city (or it issues a LaTeX warning)
and especially a country (or it issues a LaTeX error).
You may explicitly provide an empty string to eschew this error
without declaring a country when this might not make sense in your situation:
@racket[(affiliation #:institution "Apatrides United" #:country "")]
}

@defproc[(affiliation? [aff any/c]) boolean?]{

Returns @racket[#t] if @racket[aff] is an
@racket[affiliation], @racket[#f] otherwise.
}

@defproc[(institution [#:departments departments (or/c pre-content? institution? (listof institution)) '()]
[inst institution?] ...)
@defproc[(institution [#:departments departments (listof (or/c pre-content? institution?)) '()]
[pre-content?] ...)
institution?]{

Creates an @racket[institution?] object for use in @racket[author].}

@defproc[(institution? [inst any/c]) boolean]{

Returns @racket[#t] if @racket[inst] is an
@racket[institution], @racket[#f] otherwise.
}
Expand Down
Loading
Loading