summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/acmart
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-04-12 03:04:20 +0000
committerNorbert Preining <norbert@preining.info>2022-04-12 03:04:20 +0000
commitf713ac513a897193c8b6ac8e34d55d8490fe270f (patch)
tree9d3e92c83b32b83f2c473fdab5c7b1c74ae6a2cc /macros/latex/contrib/acmart
parenta04c4e735928bbfb74963fc19ea3fe8b0e1b7031 (diff)
CTAN sync 202204120304
Diffstat (limited to 'macros/latex/contrib/acmart')
-rw-r--r--macros/latex/contrib/acmart/ACM-Reference-Format.cbx5
-rw-r--r--macros/latex/contrib/acmart/Makefile37
-rw-r--r--macros/latex/contrib/acmart/README5
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx70
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin863525 -> 866366 bytes
-rw-r--r--macros/latex/contrib/acmart/acmauthoryear.bbx900
-rw-r--r--macros/latex/contrib/acmart/acmauthoryear.cbx219
-rw-r--r--macros/latex/contrib/acmart/acmdatamodel.dbx (renamed from macros/latex/contrib/acmart/ACM-Reference-Format.dbx)17
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin420338 -> 424543 bytes
-rw-r--r--macros/latex/contrib/acmart/acmnumeric.bbx (renamed from macros/latex/contrib/acmart/ACM-Reference-Format.bbx)71
-rw-r--r--macros/latex/contrib/acmart/acmnumeric.cbx5
-rw-r--r--macros/latex/contrib/acmart/samples/abbrev.bib86
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin610121 -> 606012 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdfbin0 -> 628553 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1054227 -> 1050052 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin622637 -> 618411 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin620122 -> 615907 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin567307 -> 563275 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-authordraft.pdfbin1047403 -> 1043258 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-lualatex.pdfbin781211 -> 780356 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin622255 -> 618058 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdfbin0 -> 615620 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdfbin1059382 -> 1055507 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1043594 -> 1039457 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1052136 -> 1048146 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-xelatex.pdfbin659566 -> 659217 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/samples.dtx137
-rw-r--r--macros/latex/contrib/acmart/samples/samples.ins2
-rw-r--r--macros/latex/contrib/acmart/samples/software.bib145
29 files changed, 1646 insertions, 53 deletions
diff --git a/macros/latex/contrib/acmart/ACM-Reference-Format.cbx b/macros/latex/contrib/acmart/ACM-Reference-Format.cbx
deleted file mode 100644
index 7ec588b2cb..0000000000
--- a/macros/latex/contrib/acmart/ACM-Reference-Format.cbx
+++ /dev/null
@@ -1,5 +0,0 @@
-\ProvidesFile{ACM-Reference-Format.cbx}[2017-09-27 v0.1]
-
-\RequireCitationStyle{numeric}
-
-\endinput
diff --git a/macros/latex/contrib/acmart/Makefile b/macros/latex/contrib/acmart/Makefile
index 916c87c9f1..44f80ef195 100644
--- a/macros/latex/contrib/acmart/Makefile
+++ b/macros/latex/contrib/acmart/Makefile
@@ -11,8 +11,10 @@ PACKAGE=acmart
PDF = $(PACKAGE).pdf acmguide.pdf
-all: ${PDF} ALLSAMPLES
+BIBLATEXFILES= $(wildcard *.bbx) $(wildcard *.cbx) $(wildcard *.dbx) $(wildcard *.lbx)
+SAMPLEBIBLATEXFILES=$(patsubst %,samples/%,$(BIBLATEXFILES))
+all: ${PDF} ALLSAMPLES
%.pdf: %.dtx $(PACKAGE).cls
pdflatex $<
@@ -36,7 +38,7 @@ acmguide.pdf: $(PACKAGE).dtx $(PACKAGE).cls
pdflatex $<
-ALLSAMPLES:
+ALLSAMPLES: $(SAMPLEBIBLATEXFILES)
cd samples; pdflatex samples.ins; cd ..
for texfile in samples/*.tex; do \
pdffile=$${texfile%.tex}.pdf; \
@@ -50,6 +52,17 @@ samples/%: %
samples/$(PACKAGE).cls: $(PACKAGE).cls
samples/ACM-Reference-Format.bst: ACM-Reference-Format.bst
+samples/abbrev.bib: ACM-Reference-Format.bst
+ perl -pe 's/MACRO ({[^}]*}) *\n/MACRO \1/' ACM-Reference-Format.bst \
+ | grep MACRO | sed 's/MACRO {/@STRING{/' \
+ | sed 's/} *{/ = /' > samples/abbrev.bib
+
+
+samples/%.bbx: %.bbx
+samples/%.cbx: %.cbx
+samples/%.dbx: %.dbx
+samples/%.lbx: %.lbx
+
samples/%.pdf: samples/%.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
cd $(dir $@) && pdflatex-dev $(notdir $<)
- cd $(dir $@) && bibtex $(notdir $(basename $<))
@@ -58,6 +71,22 @@ samples/%.pdf: samples/%.tex samples/$(PACKAGE).cls samples/ACM-Reference-For
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
do cd $(dir $@) && pdflatex-dev $(notdir $<); done
+samples/sample-sigconf-biblatex.pdf: samples/sample-sigconf-biblatex.tex $(SAMPLEBIBLATEXFILES)
+ cd $(dir $@) && pdflatex-dev $(notdir $<)
+ - cd $(dir $@) && biber $(notdir $(basename $<))
+ cd $(dir $@) && pdflatex-dev $(notdir $<)
+ cd $(dir $@) && pdflatex-dev $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && pdflatex-dev $(notdir $<); done
+
+samples/sample-acmsmall-biblatex.pdf: samples/sample-acmsmall-biblatex.tex $(SAMPLEBIBLATEXFILES)
+ cd $(dir $@) && pdflatex-dev $(notdir $<)
+ - cd $(dir $@) && biber $(notdir $(basename $<))
+ cd $(dir $@) && pdflatex-dev $(notdir $<)
+ cd $(dir $@) && pdflatex-dev $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && pdflatex-dev $(notdir $<); done
+
samples/sample-xelatex.pdf: samples/sample-xelatex.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
cd $(dir $@) && xelatex-dev $(notdir $<)
- cd $(dir $@) && bibtex $(notdir $(basename $<))
@@ -86,8 +115,8 @@ docclean:
*.dvi *.ps *.thm *.tgz *.zip *.rpi \
samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst \
samples/*.log samples/*.aux samples/*.out \
- samples/*.bbl samples/*.blg samples/*.cut
-
+ samples/*.bbl samples/*.blg samples/*.cut \
+ samples/*.run.xml samples/*.bcf $(SAMPLEBIBLATEXFILES)
clean: docclean
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index 0e67fae461..fd58d1d82e 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -12,6 +12,11 @@ The production version is the one on CTAN and ACM sites.
Changes
+Version 1.84 Support for BibLaTeX rewritten (thanks to
+ Roberto Di Cosmo and Kartik Singhal)
+ Corrected German translation (thanks to Dirk Beyer)
+ New journals
+
Version 1.83 Support for multilanguage papers
ISSN changes for some journals
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index 01f6c81eba..e33a089ce8 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% Copyright 2016-2021, Association for Computing Machinery
+% Copyright 2016-2022, Association for Computing Machinery
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any
@@ -57,7 +57,7 @@
% \ifx\currentjob\guide\OnlyDescription\fi
% \GetFileInfo{acmart.dtx}
% \title{\LaTeX{} Class for the \emph{Association for Computing
-% Machinery}\thanks{\copyright 2016--2021, Association for Computing Machinery}}
+% Machinery}\thanks{\copyright 2016--2022, Association for Computing Machinery}}
% \author{Boris Veytsman\thanks{%
% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}},
% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}}
@@ -106,6 +106,7 @@
% Yegor Bugayenko,
% Benjamin Byholm,
% John Collins,
+% Roberto Di Cosmo,
% Nils Anders Danielsson,
% Michael Ekstrand,
% Matthew Fluet,
@@ -301,7 +302,7 @@
% \midrule
% manuscript & A manuscript. This is the default. \\
% acmsmall & Small single-column format. Used for CIE, CSUR,
-% DLT, FAC, JACM, JDIQ, JEA, JERIC,
+% DLT, FAC, GAMES, JACM, JDIQ, JDS, JEA, JERIC,
% JETC, PACMCGIT, PACMHCI, PACMPL, TAAS, TACCESS, TACO,
% TALG, TALLIP (formerly TALIP), TCPS, TDS,
% TEAC, TECS, TELO, THRI, TIIS, TIOT, TISSEC, TIST, TKDD, TMIS,
@@ -1506,7 +1507,11 @@
%\subsection{Bibliography}
%\label{sec:ug_bibliography}
%
-% The ACM uses the |natbib| package for formatting references and
+% The ACM lets you use either Bib\TeX\ or Bib\LaTeX\ to process your references:
+% they require slightly different setup of your \LaTeX\ file, as detailed in
+% the following subsections.
+%\subsubsection{Processing using Bib\TeX}
+% This uses the |natbib| package for formatting references and
% the Bib\TeX\ style file \path{ACM-Reference-Format.bst} for Bib\TeX\
% processing. You can disable loading of |natbib| using the
% option |natbib=false| in \cs{documentclass}. However, it is not
@@ -1702,7 +1707,44 @@
% are includes, so you can use strings like |journal = taccess| for
% \emph{ACM Transactions on Accessible Computing}.
%
+%\subsubsection{Processing using Bib\LaTeX}
+% You will find in this package two sets of style files for Bib\LaTeX,
+% \verb|acmnumeric| and \verb|acmauthoryear|, that mimic the behaviour
+% of the ACM-Reference-Format.bst Bib\TeX\ sytle. They provide you
+% access to all the power of Bib\LaTeX\ and already include
+% support for advanced citation of software artefact from the
+% \verb|biblatex-software| package, also separately available on CTAN.
+% Look at the \verb|biblatex-software| documentation to learn more about
+% what it offers.
+%
+% There are a few key differences in how the \LaTeX\ sources are set up
+% when using Bib\LaTeX\ instead of Bib\TeX, that we summarize briefly
+% here (please refer to the official Bib\LaTeX\ documentation for more details).
%
+% In the preamble of your document you need to load the Bib\LaTeX\ package
+% and select the approriate bibliography style, as follows
+% \begin{verbatim}
+% \RequirePackage[
+% datamodel=acmdatamodel,
+% style=acmnumeric, % use style=acmauthoryear for publications that require it
+% ]{biblatex}
+% \end{verbatim}
+%
+% Also in the preamble, you need to declare the bibliography sources files
+% using the \verb|\addbibresouce| directe (one \verb|\addbibresource|
+% command per source file), e.g.:
+% \begin{verbatim}
+% \addbibresource{software.bib}
+% \addbibresource{sample-base.bib}
+% \end{verbatim}
+%
+% At the end of the document, where you want the bibliography to appear,
+% you need to place the command \verb|\printbibliography|.
+%
+% Look at the \verb|sample-*-biblatex.tex| files that can be found in the samples
+% directory after running \verb|make| for templates showcasing
+% these Bib\LaTeX\ styles.
+
%\subsection{Colors}
%\label{sec:ug_colors}
%
@@ -1910,11 +1952,13 @@
% DGOV & Digital Government: Research and Practice \\
% DTRAP & Digital Threats: Research and Practice\\
% FAC & Formal Aspects of Computing \\
+% GAMES & ACM Games: Research and Practice\\
% HEALTH & ACM Transactions on Computing for Healthcare\\
% IMWUT & PACM on Interactive, Mobile, Wearable and Ubiquitous
% Technologies\\
% JACM & Journal of the ACM \\
% JDIQ & ACM Journal of Data and Information Quality \\
+% JDS & ACM/IMS Journal of Data Science \\
% JEA & ACM Journal of Experimental Algorithmics \\
% JERIC & ACM Journal of Educational Resources in Computing\\
% JETC & ACM Journal on Emerging Technologies in Computing Systems \\
@@ -2043,7 +2087,7 @@
\ProvidesFile{acmart.dtx}
%</gobble>
%<class>\ProvidesClass{acmart}
-[2022/02/19 v1.83 Typesetting articles for the Association for Computing Machinery]
+[2022/04/09 v1.84 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -2151,6 +2195,7 @@
% fonts}
% \changes{1.75}{2020/10/29}{Documentation update}
% \changes{1.78}{2021/05/01}{Documentation update: Word count}
+% \changes{1.84}{2022/04/09}{New journals: JDS, GAMES}
%
% And the driver code:
% \begin{macrocode}
@@ -2821,9 +2866,9 @@
}%
\addto\captionsgerman{%
\if@ACM@journal
- \renewcommand\keywordsname{Zusätzliche Schlüsselwörter und Phrasen}%
+ \renewcommand\keywordsname{Zusätzliche Schlagwörter und Phrasen}%
\else
- \renewcommand\keywordsname{Schlüsselwörter}%
+ \renewcommand\keywordsname{Schlagwörter}%
\fi
\renewcommand\acksname{Danksagungen}%
}%
@@ -4004,6 +4049,7 @@
% \changes{1.80}{2021/09/24}{Added DLT and FAC}
% \changes{1.82}{2022/02/05}{Updated abbreviations and codes for
% several journals}
+% \changes{1.84}{2022/04/09}{New journals: JDS, GAMES}
%
% We use the |xkeyval| interface to define journal titles and the relevant
% information
@@ -4015,10 +4061,12 @@
DLT,%
DTRAP,%
FAC,%
+ GAMES,%
HEALTH,%
IMWUT,%
JACM,%
JDIQ,%
+ JDS,%
JEA,%
JERIC,%
JETC,%
@@ -4099,6 +4147,9 @@
\def\@journalNameShort{Form. Asp. Comput.}%
\def\@permissionCodeOne{0934-5043}%
\def\@permissionCodeTwo{1433-299X}%
+\or % GAMES
+ \def\@journalName{ACM Games: Research and Practice}%
+ \def\@journalNameShort{ACM Games}%
\or % HEALTH
\def\@journalName{ACM Transactions on Computing for Healthcare}%
\def\@journalNameShort{ACM Trans. Comput. Healthcare}%
@@ -4118,6 +4169,11 @@
\def\@journalName{ACM Journal of Data and Information Quality}%
\def\@journalNameShort{ACM J. Data Inform. Quality}%
\def\@permissionCodeOne{1936-1955}%
+\or % JDS
+ \def\@journalName{ACM/JMS Journal of Data Science}%
+ \def\@journalNameShort{ACM/IMS J. Data Sci.}%
+ \def\@permissionCodeOne{2831-3194}%
+ \def\@permissionCodeTwo{2831-3194}%
\or % JEA
\def\@journalName{ACM Journal of Experimental Algorithmics}%
\def\@journalNameShort{ACM J. Exp. Algor.}%
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index cdeaf52e2f..eff9c12b4a 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmauthoryear.bbx b/macros/latex/contrib/acmart/acmauthoryear.bbx
new file mode 100644
index 0000000000..de5e3c6c06
--- /dev/null
+++ b/macros/latex/contrib/acmart/acmauthoryear.bbx
@@ -0,0 +1,900 @@
+\ProvidesFile{acmauthoryear.bbx}[2022-02-14 v0.1 biblatex bibliography style]
+
+% Inherit a default style
+\RequireBibliographyStyle{authoryear-comp}
+
+%%% New command definitions from trad-standard.bbx
+
+\newcommand*{\newcommaunit}{\@ifstar\newcommaunitStar\newcommaunitNoStar}
+\newcommand*{\newcommaunitStar}{\setunit*{\addcomma\space}}
+\newcommand*{\newcommaunitNoStar}{\setunit{\addcomma\space}}
+
+%%% Forward compatibility for date+extradate
+
+\ifcsundef{ifbibmacroundef}{
+ \ifcsundef{abx@macro@date+extradate}{ %%% For really really old biblatex that miss \ifbibmacroundef
+ \blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
+ Please consider updating your version of biblatex.\MessageBreak
+ Using 'date+extrayear' instead}%
+ \providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
+ }{}
+ }
+ {
+ \ifbibmacroundef{date+extradate}{
+ \blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
+ Please consider updating your version of biblatex.\MessageBreak
+ Using 'date+extrayear' instead}%
+ \providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
+ }{}
+ }
+
+%%% Localisation strings for ACM
+
+\DefineBibliographyStrings{american}{%
+ mathesis = {Master's thesis},
+ phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
+ editor = {(Ed\adddot)},
+ editors = {(Eds\adddot)},
+ edition = {ed\adddot},
+}
+
+
+
+%%% Formatting for fields
+
+%\DeclareFieldFormat
+% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
+% {title}{#1}
+\DeclareFieldFormat{pages}{#1}
+
+\DeclareFieldFormat{numpages}{#1 pages}
+
+\DeclareFieldFormat{number}{#1}
+
+\DeclareFieldFormat{articleno}{Article #1}
+
+\DeclareFieldFormat{key}{#1}
+
+\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
+\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
+
+\DeclareFieldFormat{url}{\url{#1}}
+
+\DeclareFieldFormat{edition}{%
+ \printtext[parens]{\ifinteger{#1}
+ {\mkbibordedition{#1}~\bibstring{edition}}
+ {#1\isdot~\bibstring{edition}}}}
+
+
+% Handle urls field containing 'and' separated list of URLs
+% https://github.com/plk/biblatex/issues/229
+\DeclareListFormat{urls}{%
+ \url{#1}%
+ \ifthenelse{\value{listcount}<\value{liststop}}
+ {\addcomma\space}
+ {}}
+\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
+
+%%% Bibmacro definitions
+
+\renewbibmacro*{translator+others}{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\printnames{translator}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{translator+othersstrg}%
+ \clearname{translator}}
+ {\printfield{key}}}
+
+\newbibmacro*{year}{%
+ \iffieldundef{year}%
+ {\printtext{[n.\ d.]}}%
+ {\printfield{year}}%
+}
+
+\renewbibmacro*{date}{\printtext[parens]{\printdate}}
+
+
+\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
+ {\iffieldundef{lastaccessed}
+ {}
+ {\printfield{lastaccessed}%
+ \setunit*{\addspace}}%
+ }
+ {\usebibmacro{urldate}%
+ \setunit*{\addspace}}%
+ \usebibmacro{url}%
+ }
+
+\renewbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \setunit*{\addcomma\space}%
+ \iffieldundef{series}
+ {}
+ {\newunit%
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+date+pages+eid}%
+ \newcommaunit%
+% \setunit{\addspace}%
+ \usebibmacro{issue-issue}%
+ \setunit*{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+
+
+\newbibmacro*{volume+number+date+pages+eid}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}
+ \usebibmacro{date-ifmonth}
+ \setunit{\addcomma\space}%
+ \iffieldundef{pages}%
+ {\printfield{numpages}}%
+ {\printfield{pages}}%
+ \newcommaunit%
+ \printfield{eid}}%
+
+\renewbibmacro*{chapter+pages}{%
+ \printfield{chapter}%
+ \setunit{\bibpagespunct}%
+ \iffieldundef{pages}%
+ {\printfield{numpages}}%
+ {\printfield{pages}}%
+ \newunit}
+
+\renewbibmacro*{editor+others}{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\printnames{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editor+othersstrg}%
+ \clearname{editor}}
+ {\iflistundef{organization}{}{\printlist{organization}}}
+ \usebibmacro{date+extradate}
+ }
+
+
+\newbibmacro*{issue-issue}{%
+ \iffieldundef{issue}%
+ {}%
+ {\printfield{issue}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ }%
+ \newunit}
+
+
+
+
+\newbibmacro*{maintitle+booktitle+series+number}{%
+ \iffieldundef{maintitle}
+ {}
+ {\usebibmacro{maintitle}%
+ \newunit\newblock
+ \iffieldundef{volume}
+ {}
+ {\printfield{volume}%
+ \printfield{part}%
+ \setunit{\addcolon\space}}}%
+ \usebibmacro{booktitle}%
+ \setunit*{\addspace}
+ \printfield[parens]{series}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \newunit
+ }
+
+\renewbibmacro*{booktitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{booktitle}}
+ and
+ test {\iffieldundef{booksubtitle}}
+ }
+ {}
+ {\printtext[booktitle]{%
+ \printfield[titlecase]{booktitle}%
+ \iffieldundef{booksubtitle}{}{
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{booksubtitle}}%
+ }%
+ }%
+ \printfield{booktitleaddon}}
+
+\renewbibmacro*{volume+number+eid}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}%
+ \printfield{eid}}
+
+
+\renewbibmacro*{publisher+location+date}{%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ \newunit}
+
+
+\newbibmacro{date-ifmonth}{%
+ \iffieldundef{month}{}{%
+ \usebibmacro{date}
+ }%
+}
+
+
+\renewbibmacro*{institution+location+date}{%
+ \printlist{school}%
+ \setunit*{\addcomma\space}%
+ \printlist{institution}%
+ \setunit*{\addcomma\space}%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ \newunit}
+
+
+\renewbibmacro*{periodical}{%
+ \iffieldundef{title}
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}}}%
+ \newunit%
+ \usebibmacro{journal}}
+
+\renewbibmacro*{issue+date}{%
+ \iffieldundef{issue}
+ {\usebibmacro{date}}
+ {\printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit}
+
+\renewbibmacro*{title+issuetitle}{%
+ \usebibmacro{periodical}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}%
+ \printfield{eid}%
+ \setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+\renewbibmacro*{doi+eprint+url}{%
+ \iftoggle{bbx:url}
+ {\iffieldundef{doi}{
+ \usebibmacro{url+urldate}
+ }{\iffieldundef{distinctURL}
+ {}
+ {\usebibmacro{url+urldate}}
+ }
+ }%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}}
+
+
+%%% Definitions for drivers (alphabetical)
+
+
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit%
+ \printlist{language}%
+ \newunit\newblock%
+ \usebibmacro{byauthor}%
+ \newunit\newblock%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock%
+ \printfield{version}%
+ \newunit\newblock%
+ \usebibmacro{journal+issuetitle}%
+ \newunit%
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \printfield{note}%
+ \newunit\newblock%
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \usebibmacro{related}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit%
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \usebibmacro{series+number}%
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inbook}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \iffieldundef{author}%
+ {\usebibmacro{byeditor+others}}%
+ {\usebibmacro{author/translator+others}}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+% \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \newunit\newblock
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \iffieldundef{author}{}%if undef then we already printed editor
+ {\usebibmacro{byeditor+others}}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle+series+number}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{manual}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{misc}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{organization+location+date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{online}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit\newblock
+ \usebibmacro{date-ifmonth}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareFieldFormat[patent]{number}{Patent No.~#1}
+
+\DeclareBibliographyDriver{patent}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \iflistundef{location}
+ {}
+ {\setunit*{\addspace}%
+ \printtext[parens]{%
+ \printlist[][-\value{listtotal}]{location}}}%
+ \newunit\newblock
+ \usebibmacro{byholder}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{periodical}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title+issuetitle}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isrn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+%
+% Include support for software entries
+%
+\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
+
+%
+% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
+%
+\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[typesource=artifactsoftware,typetarget=software]
+ \step[typesource=artifactdataset,typetarget=dataset]
+ }
+ }
+}
+
+%%% Compatibility with ACM bibtex formatting
+
+
+%
+% Show given name first in the reference list
+%
+\DeclareNameAlias{sortname}{given-family}
+
+%
+% Produce a bibliography with small font size
+%
+\renewcommand*{\bibfont}{\bibliofont\footnotesize}
+
+%
+% Remove parentheses from date+extradate
+%
+\RequirePackage{xpatch}
+\xpatchbibmacro{date+extradate}{%
+ \printtext[parens]%
+}{%
+ \newblock\setunit*{.\space}%
+ \printtext%
+}{}{}
+
+
+%%% Set option values for ACM style
+
+\ExecuteBibliographyOptions{
+ dashed=false, % Do not use dashes for bibliography items with the same set of authors
+ labeldate=year,
+ abbreviate=true,
+ dateabbrev=true,
+ isbn=true,
+ doi=true,
+ urldate=comp,
+ url=true,
+ maxbibnames=9,
+ maxcitenames=2,
+ backref=false,
+ sorting=nty,
+ halid=true,
+ swhid=true,
+ swlabels=true,
+ vcs=true,
+ license=false,
+ language=american
+ }
diff --git a/macros/latex/contrib/acmart/acmauthoryear.cbx b/macros/latex/contrib/acmart/acmauthoryear.cbx
new file mode 100644
index 0000000000..5c21110a39
--- /dev/null
+++ b/macros/latex/contrib/acmart/acmauthoryear.cbx
@@ -0,0 +1,219 @@
+\ProvidesFile{acmauthoryear.cbx}[2022-02-14 v0.1]
+
+\RequireCitationStyle{authoryear-comp}
+\RequirePackage{xpatch}
+
+%
+% Hyperlink citations like acmart natbib implementation
+%
+% From https://tex.stackexchange.com/a/27615/133551
+
+% Combine label and labelyear links
+\xpatchbibmacro{cite}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\printtext[bibhyperref]{%
+ \DeclareFieldAlias{bibhyperref}{default}%
+ \usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}}
+ {}
+ {\PackageWarning{biblatex-patch}
+ {Failed to patch cite bibmacro}}
+
+% Include labelname in labelyear link
+\xpatchbibmacro{cite}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\printtext[bibhyperref]{%
+ \DeclareFieldAlias{bibhyperref}{default}%
+ \printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}}
+ {}
+ {\PackageWarning{biblatex-patch}
+ {Failed to patch cite bibmacro}}
+
+\renewbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}
+ {\ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenbracket}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nameyeardelim}\bibopenbracket}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\usebibmacro{cite:labeldate+extradate}}%
+ \savefield{labelyear}{\cbx@lastyear}}
+ {\usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\xpatchbibmacro{textcite}
+ {\printnames{labelname}}
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {}
+ {\PackageWarning{biblatex-patch}
+ {Failed to patch textcite bibmacro}}
+
+\renewbibmacro*{textcite:postnote}{%
+ \usebibmacro{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+% NEW
+\newbibmacro*{citeauthor}{%
+ \ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\printtext[bibhyperref]{%
+ \usebibmacro{cite:label}}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenbracket}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \printtext[bibhyperref]{\usebibmacro{cite:labeldate+extradate}}}
+ {\printtext[bibhyperref]{\usebibmacro{cite:shorthand}}}}
+ \printtext[bibhyperref]{\printnames{labelname}}}
+
+%
+% Put brackets around citations
+%
+
+\DeclareCiteCommand{\cite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\cite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}
+ {\setunit{\multicitedelim}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\DeclareCiteCommand{\citeauthor}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeauthor}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeyear}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeyearpar}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+%
+% Provide aliases for natbib-compatible commands
+%
+\newcommand*{\citep}{\parencite}
+\newcommand*{\citet}{\textcite}
+% add others here
+
+\endinput
diff --git a/macros/latex/contrib/acmart/ACM-Reference-Format.dbx b/macros/latex/contrib/acmart/acmdatamodel.dbx
index 76ff1f1759..6bfb5843b5 100644
--- a/macros/latex/contrib/acmart/ACM-Reference-Format.dbx
+++ b/macros/latex/contrib/acmart/acmdatamodel.dbx
@@ -15,4 +15,19 @@
\DeclareDatamodelEntryfields[thesis]{school}
\DeclareDatamodelFields[type=field, datatype=literal]{key}
-\DeclareDatamodelEntryfields{key} \ No newline at end of file
+\DeclareDatamodelEntryfields{key}
+
+% Teach biblatex about lastaccessed field
+\DeclareDatamodelFields[type=field,datatype=literal]{lastaccessed}
+\DeclareDatamodelEntryfields{lastaccessed}
+
+% Teach biblatex about distincturl field
+\DeclareDatamodelFields[type=field, datatype=literal]{distinctURL}
+\DeclareDatamodelEntryfields{distinctURL}
+
+
+%
+% include software data model from biblatex-software
+%
+
+\blx@inputonce{software.dbx}{biblatex data model extension for software}{}{}{}{}
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index fcebb0ab63..7ae163f224 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/ACM-Reference-Format.bbx b/macros/latex/contrib/acmart/acmnumeric.bbx
index e9cb545300..c13e40137f 100644
--- a/macros/latex/contrib/acmart/ACM-Reference-Format.bbx
+++ b/macros/latex/contrib/acmart/acmnumeric.bbx
@@ -1,4 +1,4 @@
-\ProvidesFile{ACM-Reference-Format.bbx}[2017-09-27 v0.1 biblatex bibliography style]
+\ProvidesFile{acmnumeric.bbx}[2017-09-27 v0.1 biblatex bibliography style]
% Inherit a default style
\RequireBibliographyStyle{trad-plain}
@@ -33,7 +33,7 @@
\DeclareFieldFormat{key}{#1}
\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
-\DeclareFieldAlias{lastaccessed}{urldate}
+\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
\DeclareFieldFormat{url}{\url{#1}}
@@ -78,13 +78,16 @@
\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
- {}
+ {\iffieldundef{lastaccessed}
+ {}
+ {\printfield{lastaccessed}%
+ \setunit*{\addspace}}%
+ }
{\usebibmacro{urldate}%
\setunit*{\addspace}}%
\usebibmacro{url}%
}
-
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addcomma\space}%
@@ -265,8 +268,13 @@
\renewbibmacro*{doi+eprint+url}{%
\iftoggle{bbx:url}
- {\iffieldundef{doi}{\usebibmacro{url+urldate}}{}}
- {}%
+ {\iffieldundef{doi}{
+ \usebibmacro{url+urldate}
+ }{\iffieldundef{distinctURL}
+ {}
+ {\usebibmacro{url+urldate}}
+ }
+ }%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
@@ -305,7 +313,7 @@
\printfield{note}%
\newunit\newblock%
\iftoggle{bbx:isbn}
- {\printfield{issn}}
+ {\printfield{isbn}}
{}%
\newunit\newblock%
\usebibmacro{doi+eprint+url}%
@@ -827,4 +835,51 @@
{}%
\usebibmacro{finentry}}
-
+%
+% Include support for software entries
+%
+\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
+
+%
+% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
+%
+\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[typesource=artifactsoftware,typetarget=software]
+ \step[typesource=artifactdataset,typetarget=dataset]
+ }
+ }
+}
+
+%
+% Show given name first in the reference list
+%
+\DeclareNameAlias{sortname}{given-family}
+
+%
+% Produce a bibliography with small font size
+%
+\renewcommand*{\bibfont}{\bibliofont\footnotesize}
+
+%%% Set option values for ACM style
+
+\ExecuteBibliographyOptions{
+ labeldate=year,
+ abbreviate=true,
+ dateabbrev=true,
+ isbn=true,
+ doi=true,
+ urldate=comp,
+ url=true,
+ maxbibnames=9,
+ maxcitenames=2,
+ backref=false,
+ sorting=nty,
+ halid=true,
+ swhid=true,
+ swlabels=true,
+ vcs=true,
+ license=false,
+ language=american
+ } \ No newline at end of file
diff --git a/macros/latex/contrib/acmart/acmnumeric.cbx b/macros/latex/contrib/acmart/acmnumeric.cbx
new file mode 100644
index 0000000000..99be1a0151
--- /dev/null
+++ b/macros/latex/contrib/acmart/acmnumeric.cbx
@@ -0,0 +1,5 @@
+\ProvidesFile{acmnumeric.cbx}[2017-09-27 v0.1]
+
+\RequireCitationStyle{numeric}
+
+\endinput
diff --git a/macros/latex/contrib/acmart/samples/abbrev.bib b/macros/latex/contrib/acmart/samples/abbrev.bib
new file mode 100644
index 0000000000..02e544b676
--- /dev/null
+++ b/macros/latex/contrib/acmart/samples/abbrev.bib
@@ -0,0 +1,86 @@
+@STRING{jan = "Jan."}
+@STRING{feb = "Feb."}
+@STRING{mar = "March"}
+@STRING{apr = "April"}
+@STRING{may = "May"}
+@STRING{jun = "June"}
+@STRING{jul = "July"}
+@STRING{aug = "Aug."}
+@STRING{sep = "Sept."}
+@STRING{oct = "Oct."}
+@STRING{nov = "Nov."}
+@STRING{dec = "Dec."}
+@STRING{cie = "ACM Computers in Entertainment"}
+@STRING{csur = "ACM Computing Surveys"}
+@STRING{dgov = "Digital Government: Research and Practice"}
+@STRING{dtrap = "Digital Threats: Research and Practice"}
+@STRING{health = "ACM Transactions on Computing for Healthcare"}
+@STRING{imwut = "PACM on Interactive, Mobile, Wearable and Ubiquitous Technologies"}
+@STRING{jacm = "Journal of the ACM"}
+@STRING{jdiq = "ACM Journal of Data and Information Quality"}
+@STRING{jea = "ACM Journal of Experimental Algorithmics"}
+@STRING{jeric = "ACM Journal of Educational Resources in Computing"}
+@STRING{jetc = "ACM Journal on Emerging Technologies in Computing Systems"}
+@STRING{jocch = "ACM Journal on Computing and Cultural Heritage"}
+@STRING{pacmcgit = "Proceedings of the ACM on Computer Graphics and Interactive Techniques"}
+@STRING{pacmhci = "PACM on Human-Computer Interaction"}
+@STRING{pacmpl = "PACM on Programming Languages"}
+@STRING{pomacs = "PACM on Measurement and Analysis of Computing Systems"}
+@STRING{taas = "ACM Transactions on Autonomous and Adaptive Systems"}
+@STRING{taccess = "ACM Transactions on Accessible Computing"}
+@STRING{taco = "ACM Transactions on Architecture and Code Optimization"}
+@STRING{talg = "ACM Transactions on Algorithms"}
+@STRING{tallip = "ACM Transactions on Asian and Low-Resource Language Information Processing"}
+@STRING{tap = "ACM Transactions on Applied Perception"}
+@STRING{tcps = "ACM Transactions on Cyber-Physical Systems"}
+@STRING{tds = "ACM/IMS Transactions on Data Science"}
+@STRING{teac = "ACM Transactions on Economics and Computation"}
+@STRING{tecs = "ACM Transactions on Embedded Computing Systems"}
+@STRING{telo = "ACM Transactions on Evolutionary Learning"}
+@STRING{thri = "ACM Transactions on Human-Robot Interaction"}
+@STRING{tiis = "ACM Transactions on Interactive Intelligent Systems"}
+@STRING{tiot = "ACM Transactions on Internet of Things"}
+@STRING{tissec = "ACM Transactions on Information and System Security"}
+@STRING{tist = "ACM Transactions on Intelligent Systems and Technology"}
+@STRING{tkdd = "ACM Transactions on Knowledge Discovery from Data"}
+@STRING{tmis = "ACM Transactions on Management Information Systems"}
+@STRING{toce = "ACM Transactions on Computing Education"}
+@STRING{tochi = "ACM Transactions on Computer-Human Interaction"}
+@STRING{tocl = "ACM Transactions on Computational Logic"}
+@STRING{tocs = "ACM Transactions on Computer Systems"}
+@STRING{toct = "ACM Transactions on Computation Theory"}
+@STRING{todaes = "ACM Transactions on Design Automation of Electronic Systems"}
+@STRING{tods = "ACM Transactions on Database Systems"}
+@STRING{tog = "ACM Transactions on Graphics"}
+@STRING{tois = "ACM Transactions on Information Systems"}
+@STRING{toit = "ACM Transactions on Internet Technology"}
+@STRING{tomacs = "ACM Transactions on Modeling and Computer Simulation"}
+@STRING{tomm = "ACM Transactions on Multimedia Computing, Communications and Applications"}
+@STRING{tompecs = "ACM Transactions on Modeling and Performance Evaluation of Computing Systems"}
+@STRING{toms = "ACM Transactions on Mathematical Software"}
+@STRING{topc = "ACM Transactions on Parallel Computing"}
+@STRING{toplas = "ACM Transactions on Programming Languages and Systems"}
+@STRING{tops = "ACM Transactions on Privacy and Security"}
+@STRING{tos = "ACM Transactions on Storage"}
+@STRING{tosem = "ACM Transactions on Software Engineering and Methodology"}
+@STRING{tosn = "ACM Transactions on Sensor Networks"}
+@STRING{tqc = "ACM Transactions on Quantum Computing"}
+@STRING{trets = "ACM Transactions on Reconfigurable Technology and Systems"}
+@STRING{tsas = "ACM Transactions on Spatial Algorithms and Systems"}
+@STRING{tsc = "ACM Transactions on Social Computing"}
+@STRING{tslp = "ACM Transactions on Speech and Language Processing"}
+@STRING{tweb = "ACM Transactions on the Web"}
+@STRING{acmcs = "ACM Computing Surveys"}
+@STRING{acta = "Acta Informatica"}
+@STRING{cacm = "Communications of the ACM"}
+@STRING{ibmjrd = "IBM Journal of Research and Development"}
+@STRING{ibmsj = "IBM Systems Journal"}
+@STRING{ieeese = "IEEE Transactions on Software Engineering"}
+@STRING{ieeetc = "IEEE Transactions on Computers"}
+@STRING{ieeetcad = "IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+@STRING{ipl = "Information Processing Letters"}
+@STRING{jcss = "Journal of Computer and System Sciences"}
+@STRING{scp = "Science of Computer Programming"}
+@STRING{sicomp = "SIAM Journal on Computing"}
+@STRING{toois = "ACM Transactions on Office Information Systems"}
+@STRING{tcs = "Theoretical Computer Science"}
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index b5dcfd9ca7..712051ef4b 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
new file mode 100644
index 0000000000..c8359ae059
--- /dev/null
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index 9b3ca788b6..6825c8a90f 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index be9729af33..bd3a38698d 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 6873d96090..627a0f494d 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index d78ce126dc..8558edb183 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
index e51ee62a27..37f660358a 100644
--- a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
index d06751562f..e52aea57e9 100644
--- a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index 25cca1bc7f..ae1d5b4670 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
new file mode 100644
index 0000000000..77e4cc038b
--- /dev/null
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
index 8960ce2ff4..54f5fdf09c 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index bd85371e7e..0267a91592 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index d8c8f67f1c..df60a4d500 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
index 25a4bdef54..3a4a9dc312 100644
--- a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/samples.dtx b/macros/latex/contrib/acmart/samples/samples.dtx
index 3d8fc9abda..a0f638aecb 100644
--- a/macros/latex/contrib/acmart/samples/samples.dtx
+++ b/macros/latex/contrib/acmart/samples/samples.dtx
@@ -1,4 +1,4 @@
-%<*manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%<*manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%%
%%
%% Commands for TeXCount
@@ -18,10 +18,12 @@
%% The first command in your LaTeX source must be the \documentclass command.
%<manuscript>\documentclass[manuscript,screen,review]{acmart}
%<acmsmall|acmsmall-conf>\documentclass[acmsmall]{acmart}
+%<acmsmall-biblatex>\documentclass[acmsmall,natbib=false]{acmart}
%<acmsmall-submission>\documentclass[acmsmall,screen,review]{acmart}
%<acmlarge>\documentclass[acmlarge]{acmart}
%<acmtog>\documentclass[acmtog]{acmart}
%<sigconf>\documentclass[sigconf]{acmart}
+%<sigconf-biblatex>\documentclass[sigconf,natbib=false]{acmart}
%<authordraft>\documentclass[sigconf,authordraft]{acmart}
%<sigplan>\documentclass[sigplan,screen]{acmart}
%<sigchi>\documentclass[sigchi]{acmart}
@@ -33,7 +35,7 @@
%% \BibTeX command to typeset BibTeX logo in the docs
\AtBeginDocument{%
\providecommand\BibTeX{{%
- \normalfont B\kern-0.5em{\scshape i\kern-0.25em b}\kern-0.8em\TeX}}}
+ Bib\TeX}}}
%% Rights management information. This information is sent to you
%% when you complete the rights form. These commands have SAMPLE
@@ -46,7 +48,7 @@
\acmYear{2018}
\acmDOI{XXXXXXX.XXXXXXX}
-%</manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%</manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%<*manuscript|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%% These commands are for a PROCEEDINGS abstract or paper.
\acmConference[Conference acronym 'XX]{Make sure to enter the correct
@@ -62,18 +64,18 @@
\acmISBN{978-1-4503-XXXX-X/18/06}
%</manuscript|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
-%<*acmsmall|acmsmall-submission|acmlarge|acmtog>
+%<*acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog>
%%
%% These commands are for a JOURNAL article.
-%<acmsmall|acmsmall-submission>\acmJournal{JACM}
+%<acmsmall|acmsmall-submission|acmsmall-biblatex>\acmJournal{JACM}
%<acmlarge>\acmJournal{POMACS}
%<acmtog>\acmJournal{TOG}
\acmVolume{37}
\acmNumber{4}
\acmArticle{111}
\acmMonth{8}
-%</acmsmall|acmsmall-submission|acmlarge|acmtog>
-%<*manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%</acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog>
+%<*manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%%
@@ -82,8 +84,22 @@
%% receive a unique submission ID from the organizers
%% of the event, and this ID should be used as the parameter to this command.
%%\acmSubmissionID{123-A56-BU3}
+%</manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%%
+%% For managing citations, it is recommended to use bibliography
+%% files in BibTeX format.
+%%
+%% You can then either use BibTeX with the ACM-Reference-Format style,
+%% or BibLaTeX with the acmnumeric or acmauthoryear sytles, that include
+%% support for advanced citation of software artefact from the
+%% biblatex-software package, also separately available on CTAN.
+%%
+%% Look at the sample-*-biblatex.tex files for templates showcasing
+%% the biblatex styles.
+%%
+%<*manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%%
%% The majority of ACM publications use numbered citations and
%% references. The command \citestyle{authoryear} switches to the
@@ -96,6 +112,31 @@
%<!acmtog>%% the next command will enable that style.
%<!acmtog>%%\citestyle{acmauthoryear}
%<acmtog>\citestyle{acmauthoryear}
+%</manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+
+%<*acmsmall-biblatex|sigconf-biblatex>
+%%
+%% The majority of ACM publications use numbered citations and
+%% references, obtained by selecting the acmnumeric BibLaTeX style.
+%% The acmauthoryear BibLaTeX style switches to the "author year" style.
+%%
+%% If you are preparing content for an event
+%% sponsored by ACM SIGGRAPH, you must use the acmauthoryear style of
+%% citations and references.
+%%
+%% Bibliography style
+\RequirePackage[
+ datamodel=acmdatamodel,
+%<!acmsmall-biblatex> style=acmnumeric,
+%<acmsmall-biblatex> style=acmauthoryear,
+ ]{biblatex}
+
+%% Declare bibliography sources (one \addbibresource command per source)
+\addbibresource{software.bib}
+\addbibresource{sample-base.bib}
+%</acmsmall-biblatex|sigconf-biblatex>
+
+%<*manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%%
%% end of the preamble, start of the body of the document source.
@@ -104,9 +145,9 @@
%%
%% The "title" command has an optional parameter,
%% allowing the author to define a "short title" to be used in page headers.
-\title{The Name of the Title is Hope}
+\title{The Name of the Title Is Hope}
%<sigconf-i13n>\translatedtitle{french}{Le nom du titre est l'espoir}
-%<sigconf-i13n>\translatedtitle{german}{Der Name des Titels ist Hoffnung}
+%<sigconf-i13n>\translatedtitle{german}{Der Name des Titels ist 'Hoffnung'}
%<sigconf-i13n>\translatedtitle{spanish}{El nombre del título es esperanza}
%%
@@ -193,7 +234,7 @@
%% other information printed in the page headers. This command allows
%% the author to define a more concise list
%% of authors' names for this purpose.
-\renewcommand{\shortauthors}{Trovato and Tobin, et al.}
+\renewcommand{\shortauthors}{Trovato et al.}
%%
%% The abstract is a short summary of the work to be presented in the
@@ -206,7 +247,7 @@
as many of the formatting elements an author may use in the
preparation of the documentation of their work.
\end{abstract}
-%</manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%</manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%<*sigconf-i13n>
\begin{translatedabstract}{french}
@@ -220,13 +261,12 @@
\end{translatedabstract}
\begin{translatedabstract}{german}
- Ein übersichtliches und gut dokumentiertes \LaTeX\-Dokument wird als
- Artikel, der für die Veröffentlichung durch ACM in einem Tagungsband
- formatiert wurde oder Zeitschriftenveröffentlichung. Basierend auf
- der Dokumentenklasse ``acmart'', this Artikel präsentiert und
- erklärt auch viele der gängigen Variationen so viele der
- Formatierungselemente, die ein Autor in der verwenden darf
- Vorbereitung der Dokumentation ihrer Arbeit.
+ Es wird ein übersichtliches und gut dokumentiertes \LaTeX\-Dokument präsentiert,
+ welches für die Veröffentlichung durch ACM in einem Tagungsband oder
+ als Zeitschriftenpublikation formatiert wurde.
+ Basierend auf der Dokumentenklasse ``acmart'' präsentiert und erklärt dieser Artikel
+ viele der Formatierungselemente sowie auch viele der gängigen Variationen,
+ die ein Autor bei der Beschreibung seiner Arbeit verwenden darf.
\end{translatedabstract}
\begin{translatedabstract}{spanish}
@@ -239,7 +279,7 @@
trabajo.
\end{translatedabstract}
%</sigconf-i13n>
-%<*manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%<*manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%%
%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm.
@@ -282,12 +322,11 @@
%<sigconf-i13n>\translatedkeywords{french}{ensembles de données,
%<sigconf-i13n> réseaux de neurones,
%<sigconf-i13n> détection du regard, marquage de texte}
-%<sigconf-i13n> \translatedkeywords{german}{Datensätze,
-%<sigconf-i13n> neuronale Netze, Blickerkennung, Text-Tagging}
+%<sigconf-i13n> \translatedkeywords{german}{Datensammlungen,
+%<sigconf-i13n> neuronale Netze, Blickerkennung, Textklassifizierung}
%<sigconf-i13n> \translatedkeywords{spanish}{conjuntos de datos,
%<sigconf-i13n> redes neuronales, detección de mirada, etiquetado de texto}
-
-%</manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%</manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%<*sigconf|authordraft|sigplan|acmsmall-conf|sigconf-i13n>
%% A "teaser" image appears between the author and affiliation
%% information and the body of the document, and typically spans the
@@ -300,7 +339,7 @@
\label{fig:teaser}
\end{teaserfigure}
%</sigconf|authordraft|sigplan|acmsmall-conf|sigconf-i13n>
-%<*manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%<*manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
%%
%% This command processes the author and affiliation and title
@@ -709,6 +748,7 @@ references is strongly recommended. Authors' names should be complete
reference should be included: title, year, volume, number, pages,
article DOI, etc.
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
The bibliography is included in your source document with these two
commands, placed just before the \verb|\end{document}| command:
\begin{verbatim}
@@ -726,6 +766,31 @@ command in the {\bfseries preamble} (before the command
\begin{verbatim}
\citestyle{acmauthoryear}
\end{verbatim}
+%</!(acmsmall-biblatex|sigconf-biblatex)>
+
+%<*acmsmall-biblatex|sigconf-biblatex>
+Using the BibLaTeX system, the bibliography is included in your source
+document with the following command, placed just before the \verb|\end{document}| command:
+\begin{verbatim}
+ \printbibliography
+\end{verbatim}
+
+The command \verb|\addbibresource{bibfile}| declares the \BibTeX\ file to use
+in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source
+where ``\verb|bibfile|'' is the name, \emph{with} the ``\verb|.bib|'' suffix.
+Notice that \verb|\addbibresource| takes only one argument: to declare multiple files,
+use multiple instances of the command.
+
+Citations and references are numbered by default. A small number of
+ACM publications have citations and references formatted in the
+``author year'' style; for these exceptions, please pass the option \verb|style=acmauthoryear|
+to the \verb|biblatex| package loaded in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source.
+
+%</acmsmall-biblatex|sigconf-biblatex>
+
+
Some examples. A paginated journal article \cite{Abril07}, an
enumerated journal article \cite{Cohen07}, a reference to an entire
@@ -755,9 +820,16 @@ command in the {\bfseries preamble} (before the command
multi-volume works as books \cite{MR781536} and \cite{MR781537}. A
couple of citations with DOIs:
\cite{2004:ITE:1009386.1010128,Kirschmer:2010:AEI:1958016.1958018}. Online
- citations: \cite{TUGInstmem, Thornburg01, CTANacmart}. Artifacts:
- \cite{R} and \cite{UMassCitations}.
-
+ citations: \cite{TUGInstmem, Thornburg01, CTANacmart}.
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+ Artifacts: \cite{R} and \cite{UMassCitations}.
+%</!(acmsmall-biblatex|sigconf-biblatex)>
+%<*acmsmall-biblatex|sigconf-biblatex>
+ Data Artifacts: \cite{UMassCitations}.
+ Software project: ~\cite{cgal,delebecque:hal-02090402}. Software Version: ~\cite{gf-tag-sound-repo,}. Software Module: ~\cite{cgal:lp-gi-20a}. Code fragment: ~\cite{simplemapper}.
+%</acmsmall-biblatex|sigconf-biblatex>
+
+
\section{Acknowledgments}
Identification of funding sources and other support, and thanks to
@@ -838,11 +910,20 @@ the margin:
To Robert, for the bagels and explaining CMYK and color spaces.
\end{acks}
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
%%
%% The next two lines define the bibliography style to be used, and
%% the bibliography file.
\bibliographystyle{ACM-Reference-Format}
\bibliography{sample-base}
+%</!(acmsmall-biblatex|sigconf-biblatex)>
+
+%<*(acmsmall-biblatex|sigconf-biblatex)>
+%%
+%% Print the bibliography
+%%
+\printbibliography
+%</(acmsmall-biblatex|sigconf-biblatex)>
%%
%% If your work has an appendix, this is the place to put it.
@@ -879,4 +960,4 @@ rhoncus. Maecenas eu arcu ac neque placerat aliquam. Nunc pulvinar
massa et mattis lacinia.
\end{document}
-%</manuscript|acmsmall|acmsmall-submission|acmlarge|acmtog|sigconf|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
+%</manuscript|acmsmall|acmsmall-submission|acmsmall-biblatex|acmlarge|acmtog|sigconf|sigconf-biblatex|authordraft|sigplan|sigchi|sigchi-a|acmsmall-conf|sigconf-i13n>
diff --git a/macros/latex/contrib/acmart/samples/samples.ins b/macros/latex/contrib/acmart/samples/samples.ins
index 7c5c974a66..af2d55e4d9 100644
--- a/macros/latex/contrib/acmart/samples/samples.ins
+++ b/macros/latex/contrib/acmart/samples/samples.ins
@@ -10,9 +10,11 @@
\file{sample-manuscript.tex}{\from{samples.dtx}{manuscript}}
\file{sample-acmsmall.tex}{\from{samples.dtx}{acmsmall}}
\file{sample-acmsmall-submission.tex}{\from{samples.dtx}{acmsmall-submission}}
+ \file{sample-acmsmall-biblatex.tex}{\from{samples.dtx}{acmsmall-biblatex}}
\file{sample-acmlarge.tex}{\from{samples.dtx}{acmlarge}}
\file{sample-acmtog.tex}{\from{samples.dtx}{acmtog}}
\file{sample-sigconf.tex}{\from{samples.dtx}{sigconf}}
+ \file{sample-sigconf-biblatex.tex}{\from{samples.dtx}{sigconf-biblatex}}
\file{sample-authordraft.tex}{\from{samples.dtx}{authordraft}}
\file{sample-xelatex.tex}{\from{samples.dtx}{sigconf}}
\file{sample-lualatex.tex}{\from{samples.dtx}{sigconf}}
diff --git a/macros/latex/contrib/acmart/samples/software.bib b/macros/latex/contrib/acmart/samples/software.bib
new file mode 100644
index 0000000000..f12ffba46d
--- /dev/null
+++ b/macros/latex/contrib/acmart/samples/software.bib
@@ -0,0 +1,145 @@
+@softwareversion {delebecque:hal-02090402-condensed,
+ title = {Scilab},
+ author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice
+ and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe},
+ url = {https://www.scilab.org/},
+ date = {1994-01},
+ file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz},
+ institution = {Inria},
+ license = {Scilab license},
+ hal_id = {hal-02090402},
+ hal_version = {v1},
+ swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;
+ origin=https://hal.archives-ouvertes.fr/hal-02090402},
+ version = {1.1},
+ note = {First Scilab version. It was distributed by anonymous ftp.},
+ repository= {https://github.com/scilab/scilab},
+ abstract = {Software for Numerical Computation freely distributed.}
+}
+@software {delebecque:hal-02090402,
+ title = {Scilab},
+ author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice
+ and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe},
+ date = {1994},
+ institution = {Inria},
+ license = {Scilab license},
+ hal_id = {hal-02090402},
+ hal_version = {v1},
+ url = {https://www.scilab.org/},
+ abstract = {Software for Numerical Computation freely distributed.},
+ repository= {https://github.com/scilab/scilab},
+}
+
+@softwareversion {delebecque:hal-02090402v1,
+ version = {1.1},
+ date = {1994-01},
+ file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz},
+ swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;
+ origin=https://hal.archives-ouvertes.fr/hal-02090402},
+ note = {First Scilab version. It was distributed by anonymous ftp.},
+ crossref = {delebecque:hal-02090402}
+}
+ @software {cgal,
+ title = {The Computational Geometry Algorithms Library},
+ author = {{The CGAL Project}},
+ editor = {{CGAL Editorial Board}},
+ date = {1996},
+ url = {https://cgal.org/}
+ }
+
+ @softwareversion{cgal:5-0-2,
+ crossref = {cgal},
+ version = {{5.0.2}},
+ url = {https://docs.cgal.org/5.02},
+ date = {2020},
+ swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855;
+ origin=https://github.com/CGAL/cgal/}
+ }
+
+ @softwaremodule{cgal:lp-gi-20a,
+ crossref = {cgal:5-0-2},
+ author = {Menelaos Karavelas},
+ subtitle = {{2D} Voronoi Diagram Adaptor},
+ license = {GPL},
+ introducedin = {cgal:3-1},
+ url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2},
+ }
+ @softwaremodule{cgal:lp-gi-20a-condensed,
+ title = {The Computational Geometry Algorithms Library},
+ subtitle = {{2D} Voronoi Diagram Adaptor},
+ author = {Menelaos Karavelas},
+ editor = {{CGAL Editorial Board}},
+ license = {GPL},
+ version = {{5.0.2}},
+ introducedin = {cgal:3-1},
+ date = {2020},
+ swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855;
+ origin=https://github.com/CGAL/cgal/},
+ url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2},
+ }
+@software {parmap,
+ title = {The Parmap library},
+ author = {Di Cosmo, Roberto and Marco Danelutto},
+ date = {2012},
+ institution = {{Inria} and {University of Paris} and {University of Pisa}},
+ license = {LGPL-2.0},
+ url = {https://rdicosmo.github.io/parmap/},
+ repository= {https://github.com/rdicosmo/parmap},
+}
+
+@softwareversion {parmap-1.1.1,
+ crossref = {parmap},
+ date = {2020},
+ version = {1.1.1},
+ swhid = {swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
+ origin=https://github.com/rdicosmo/parmap;
+ visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615},
+}
+
+@codefragment {simplemapper,
+ subtitle = {Core mapping routine},
+ swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5;
+ origin=https://github.com/rdicosmo/parmap;
+ visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615;
+ anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
+ path=/src/parmap.ml;
+ lines=192-228},
+ crossref = {parmap-1.1.1}
+}
+@codefragment {simplemapper-condensed,
+ title = {The Parmap library},
+ author = {Di Cosmo, Roberto and Marco Danelutto},
+ date = {2020},
+ institution = {{Inria} and {University of Paris} and {University of Pisa}},
+ license = {LGPL-2.0},
+ url = {https://rdicosmo.github.io/parmap/},
+ repository= {https://github.com/rdicosmo/parmap},
+ version = {1.1.1},
+ subtitle = {Core mapping routine},
+ swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5;
+ origin=https://github.com/rdicosmo/parmap;
+ visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615;
+ anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
+ path=/src/parmap.ml;
+ lines=192-228}
+}
+
+@article{ad-wood-2003,
+ author = {Christopher Anderson and Sophia Drossopoulou},
+ title = {{BabyJ}: from Object Based to Class Based Programming via Types},
+ journal = {{WOOD}},
+ volume = {82},
+ number = {7},
+ pages = {53--81},
+ year = {2003}
+}
+
+@softwareversion{gf-tag-sound-repo,
+ title={tag-sound},
+ author={Ben Greenman and Matthias Felleisen},
+ swhid={swh:1:dir:cd0b0abeee707e57cd699e2e2ebd075da8ebf1f7;origin=https://github.com/nuprl/tag-sound;visit=swh:1:snp:7967bc0abee8bf3bfffb9252207a07b73538525a;anchor=swh:1:rev:4cc09ca228947a99c8f4ac45eefb76e96ee96e53},
+ repository={https://github.com/nuprl/tag-sound},
+ version={4cc09ca},
+ date={2020}
+}
+