acmart.cls v1.42

This commit is contained in:
Ben Greenman 2017-07-07 11:22:14 -04:00
parent 995a847c33
commit ca0e56af6a

View File

@ -37,7 +37,7 @@
%% Right brace \} Tilde \~} %% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesClass{acmart} \ProvidesClass{acmart}
[2017/05/14 v1.39 Typesetting articles for Association of [2017/07/02 v1.42 Typesetting articles for Association of
Computing Machinery] Computing Machinery]
\def\@classname{acmart} \def\@classname{acmart}
\InputIfFileExists{acmart-preload-hook.tex}{% \InputIfFileExists{acmart-preload-hook.tex}{%
@ -196,6 +196,7 @@ Computing Machinery]
\RequirePackage{setspace} \RequirePackage{setspace}
\onehalfspacing \onehalfspacing
\fi \fi
\RequirePackage{textcase}
\if@ACM@natbib \if@ACM@natbib
\RequirePackage{natbib} \RequirePackage{natbib}
\renewcommand{\bibsection}{% \renewcommand{\bibsection}{%
@ -395,6 +396,7 @@ Computing Machinery]
\global\@nobreakfalse \endgroup \global\@nobreakfalse \endgroup
\addvspace{32\p@\@plus14\p@}% \addvspace{32\p@\@plus14\p@}%
} }
\def\l@section{\@tocline{1}{0pt}{1pc}{2pc}{}}
\def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}} \def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
\def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}} \def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
\let\@footnotemark@nolink\@footnotemark \let\@footnotemark@nolink\@footnotemark
@ -429,6 +431,7 @@ Computing Machinery]
\else \else
\hypersetup{hidelinks} \hypersetup{hidelinks}
\fi \fi
\RequirePackage{cleveref}
\if@ACM@natbib \if@ACM@natbib
\let\citeN\cite \let\citeN\cite
\let\cite\citep \let\cite\citep
@ -476,55 +479,55 @@ Computing Machinery]
\ifcase\ACM@format@nr \ifcase\ACM@format@nr
\relax % manuscript \relax % manuscript
\geometry{letterpaper,head=13pt, \geometry{letterpaper,head=13pt,
marginparwidth=6pc}% marginparwidth=6pc,heightrounded}%
\or % acmsmall \or % acmsmall
\geometry{twoside=true, \geometry{twoside=true,
includeheadfoot, head=13pt, foot=2pc, includeheadfoot, head=13pt, foot=2pc,
paperwidth=6.75in, paperheight=10in, paperwidth=6.75in, paperheight=10in,
top=58pt, bottom=44pt, inner=46pt, outer=46pt, top=58pt, bottom=44pt, inner=46pt, outer=46pt,
marginparwidth=2pc marginparwidth=2pc,heightrounded
}% }%
\or % acmlarge \or % acmlarge
\geometry{twoside=true, head=13pt, foot=2pc, \geometry{twoside=true, head=13pt, foot=2pc,
paperwidth=8.5in, paperheight=11in, paperwidth=8.5in, paperheight=11in,
includeheadfoot, includeheadfoot,
top=78pt, bottom=114pt, inner=81pt, outer=81pt, top=78pt, bottom=114pt, inner=81pt, outer=81pt,
marginparwidth=4pc marginparwidth=4pc,heightrounded
}% }%
\or % acmtog \or % acmtog
\geometry{twoside=true, head=13pt, foot=2pc, \geometry{twoside=true, head=13pt, foot=2pc,
paperwidth=8.5in, paperheight=11in, paperwidth=8.5in, paperheight=11in,
includeheadfoot, columnsep=24pt, includeheadfoot, columnsep=24pt,
top=52pt, bottom=75pt, inner=52pt, outer=52pt, top=52pt, bottom=75pt, inner=52pt, outer=52pt,
marginparwidth=2pc marginparwidth=2pc,heightrounded
}% }%
\or % sigconf \or % sigconf
\geometry{twoside=true, head=13pt, \geometry{twoside=true, head=13pt,
paperwidth=8.5in, paperheight=11in, paperwidth=8.5in, paperheight=11in,
includeheadfoot, columnsep=2pc, includeheadfoot, columnsep=2pc,
top=57pt, bottom=73pt, inner=54pt, outer=54pt, top=57pt, bottom=73pt, inner=54pt, outer=54pt,
marginparwidth=2pc marginparwidth=2pc,heightrounded
}% }%
\or % siggraph \or % siggraph
\geometry{twoside=true, head=13pt, \geometry{twoside=true, head=13pt,
paperwidth=8.5in, paperheight=11in, paperwidth=8.5in, paperheight=11in,
includeheadfoot, columnsep=2pc, includeheadfoot, columnsep=2pc,
top=57pt, bottom=73pt, inner=54pt, outer=54pt, top=57pt, bottom=73pt, inner=54pt, outer=54pt,
marginparwidth=2pc marginparwidth=2pc,heightrounded
}% }%
\or % sigplan \or % sigplan
\geometry{twoside=true, head=13pt, \geometry{twoside=true, head=13pt,
paperwidth=8.5in, paperheight=11in, paperwidth=8.5in, paperheight=11in,
includeheadfoot=false, columnsep=2pc, includeheadfoot=false, columnsep=2pc,
top=1in, bottom=1in, inner=0.75in, outer=0.75in, top=1in, bottom=1in, inner=0.75in, outer=0.75in,
marginparwidth=2pc marginparwidth=2pc,heightrounded
}% }%
\or % sigchi \or % sigchi
\geometry{twoside=true, head=13pt, \geometry{twoside=true, head=13pt,
paperwidth=8.5in, paperheight=11in, paperwidth=8.5in, paperheight=11in,
includeheadfoot, columnsep=2pc, includeheadfoot, columnsep=2pc,
top=66pt, bottom=73pt, inner=54pt, outer=54pt, top=66pt, bottom=73pt, inner=54pt, outer=54pt,
marginparwidth=2pc marginparwidth=2pc,heightrounded
}% }%
\or % sigchi-a \or % sigchi-a
\geometry{twoside=false, head=13pt, \geometry{twoside=false, head=13pt,
@ -601,6 +604,13 @@ Computing Machinery]
\RequirePackage{iftex} \RequirePackage{iftex}
\ifPDFTeX \ifPDFTeX
\input{glyphtounicode} \input{glyphtounicode}
\pdfglyphtounicode{f_f}{FB00}
\pdfglyphtounicode{f_f_i}{FB03}
\pdfglyphtounicode{f_f_l}{FB04}
\pdfglyphtounicode{f_i}{FB01}
\pdfglyphtounicode{t_t}{00740074}
\pdfglyphtounicode{f_t}{00660074}
\pdfglyphtounicode{T_h}{00540068}
\pdfgentounicode=1 \pdfgentounicode=1
\fi \fi
\RequirePackage{cmap} \RequirePackage{cmap}
@ -1087,7 +1097,7 @@ Computing Machinery]
\if@ACM@anonymous\else \if@ACM@anonymous\else
\g@addto@macro\addresses{\email{#1}{#2}}% \g@addto@macro\addresses{\email{#1}{#2}}%
\fi} \fi}
\let\orcid\@gobble \def\orcid#1{\unskip\ignorespaces}
\def\@titlenotes{} \def\@titlenotes{}
\def\titlenote#1{% \def\titlenote#1{%
\g@addto@macro\@title{\footnotemark}% \g@addto@macro\@title{\footnotemark}%
@ -1228,16 +1238,28 @@ Computing Machinery]
\excludecomment{CCSXML} \excludecomment{CCSXML}
\let\@concepts\@empty \let\@concepts\@empty
\newcommand\ccsdesc[2][100]{% \newcommand\ccsdesc[2][100]{%
\ccsdesc@parse#1~#2~} \ccsdesc@parse#1~#2~~\ccsdesc@parse@end}
\RequirePackage{textcomp} \RequirePackage{textcomp}
\def\ccsdesc@parse#1~#2~#3~{% \def\ccsdesc@parse#1~#2~#3~{%
\expandafter\ifx\csname CCS@#2\endcsname\relax \expandafter\ifx\csname CCS@General@#2\endcsname\relax
\expandafter\gdef\csname CCS@#2\endcsname{\textbullet\ \textbf{#2} \textrightarrow\ }% \expandafter\gdef\csname CCS@General@#2\endcsname{\textbullet\
\g@addto@macro{\@concepts}{\csname CCS@#2\endcsname}\fi \textbf{#2}}%
\expandafter\g@addto@macro\expandafter{\csname CCS@#2\endcsname}{% \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{; }%
\expandafter\gdef\csname CCS@Specific@#2\endcsname{}%
\g@addto@macro{\@concepts}{\csname CCS@General@#2\endcsname
\csname CCS@Punctuation@#2\endcsname
\csname CCS@Specific@#2\endcsname}%
\fi
\ifx#3\relax\relax\else
\expandafter\gdef\csname CCS@Punctuation@#2\endcsname{
\textrightarrow\ }%
\expandafter\g@addto@macro\expandafter{\csname CCS@Specific@#2\endcsname}{%
\ifnum#1>499\textbf{#3}; \else \ifnum#1>499\textbf{#3}; \else
\ifnum#1>299\textit{#3}; \else \ifnum#1>299\textit{#3}; \else
#3; \fi\fi}} #3; \fi\fi}%
\fi
\ccsdesc@parse@finish}
\def\ccsdesc@parse@finish#1\ccsdesc@parse@end{}
\newif\if@printcopyright \newif\if@printcopyright
\@printcopyrighttrue \@printcopyrighttrue
\newif\if@printpermission \newif\if@printpermission
@ -1245,9 +1267,11 @@ Computing Machinery]
\newif\if@acmowned \newif\if@acmowned
\@acmownedtrue \@acmownedtrue
\define@choicekey*{ACM@}{acmcopyrightmode}[% \define@choicekey*{ACM@}{acmcopyrightmode}[%
\acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,% \acm@copyrightinput\acm@copyrightmode]{none,%
rightsretained,usgov,usgovmixed,cagov,cagovmixed,% acmcopyright,acmlicensed,rightsretained,%
licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{% usgov,usgovmixed,cagov,cagovmixed,%
licensedusgovmixed,%
licensedcagov,licensedcagovmixed,othergov,licensedothergov}{%
\@printpermissiontrue \@printpermissiontrue
\@printcopyrighttrue \@printcopyrighttrue
\@acmownedtrue \@acmownedtrue
@ -1275,13 +1299,16 @@ Computing Machinery]
\ifnum\acm@copyrightmode=8\relax % licensedusgovmixed \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
\@acmownedfalse \@acmownedfalse
\fi \fi
\ifnum\acm@copyrightmode=9\relax % licensedcagovmixed \ifnum\acm@copyrightmode=9\relax % licensedcagov
\@acmownedfalse \@acmownedfalse
\fi \fi
\ifnum\acm@copyrightmode=10\relax % othergov \ifnum\acm@copyrightmode=10\relax % licensedcagovmixed
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=11\relax % othergov
\@acmownedtrue \@acmownedtrue
\fi \fi
\ifnum\acm@copyrightmode=11\relax % licensedothergov \ifnum\acm@copyrightmode=12\relax % licensedothergov
\@acmownedfalse \@acmownedfalse
\fi} \fi}
\def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}} \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
@ -1305,6 +1332,9 @@ Computing Machinery]
\or %licensedusgovmixed \or %licensedusgovmixed
Copyright held by the owner/author(s). Publication rights licensed to Copyright held by the owner/author(s). Publication rights licensed to
Association for Computing Machinery. Association for Computing Machinery.
\or % licensedcagov
Crown in Right of Canada. Publication rights licensed to
Association for Computing Machinery.
\or %licensedcagovmixed \or %licensedcagovmixed
Copyright held by the owner/author(s). Publication rights licensed to Copyright held by the owner/author(s). Publication rights licensed to
Association for Computing Machinery. Association for Computing Machinery.
@ -1375,7 +1405,7 @@ Computing Machinery]
Permission to make digital or hard copies for personal or classroom Permission to make digital or hard copies for personal or classroom
use is granted. Copies must bear this notice and the full citation use is granted. Copies must bear this notice and the full citation
on the first page. Copyrights for components of this work owned by on the first page. Copyrights for components of this work owned by
others than the Canadain Government must be honored. To copy others than the Canadian Government must be honored. To copy
otherwise, distribute, republish, or post, requires prior specific otherwise, distribute, republish, or post, requires prior specific
permission and\hspace*{.5pt}/or a fee. Request permissions from permission and\hspace*{.5pt}/or a fee. Request permissions from
permissions@acm.org. permissions@acm.org.
@ -1398,6 +1428,20 @@ Computing Machinery]
Government retains a nonexclusive, royalty-free right to publish or Government retains a nonexclusive, royalty-free right to publish or
reproduce this article, or to allow others to do so, for Government reproduce this article, or to allow others to do so, for Government
purposes only. purposes only.
\or % licensedcagov
This article was authored by employees of the Government of Canada.
As such, the Canadian government retains all interest in the
copyright to this work and grants to ACM a nonexclusive,
royalty-free right to publish or reproduce this article, or to allow
others to do so, provided that clear attribution is given both to
the authors and the Canadian government agency employing them.
Permission to make digital or hard copies for personal or classroom
use is granted. Copies must bear this notice and the full citation
on the first page. Copyrights for components of this work owned by
others than the Canadian Government must be honored. To copy
otherwise, distribute, republish, or post, requires prior specific
permission and\hspace*{.5pt}/or a fee. Request permissions from
permissions@acm.org.
\or % licensedcagovmixed \or % licensedcagovmixed
Publication rights licensed to ACM\@. ACM acknowledges that this Publication rights licensed to ACM\@. ACM acknowledges that this
contribution was authored or co-authored by an employee, contractor contribution was authored or co-authored by an employee, contractor
@ -1535,7 +1579,9 @@ Computing Machinery]
\@mkbibcitation \@mkbibcitation
\fi \fi
\hypersetup{pdfauthor={\authors}, \hypersetup{pdfauthor={\authors},
pdftitle={\@title}, pdfkeywords={\@concepts}}% pdftitle={\@title},
pdfsubject={\@concepts},
pdfkeywords={\@keywords}}%
\@printendtopmatter \@printendtopmatter
\@afterindentfalse \@afterindentfalse
\@afterheading \@afterheading
@ -1741,24 +1787,22 @@ Computing Machinery]
\unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
\fi\fi \fi\fi
#1} #1}
\def\streetaddress#1{\unskip\ignorespaces}
\def\postcode#1{\unskip\ignorespaces}
\if@ACM@journal \if@ACM@journal
\let\position\@gobble \def\position#1{\unskip\ignorespaces}
\def\institution#1{#1\ignorespaces}% \def\institution#1{#1\ignorespaces}
\newcommand\department[2][0]{}% \def\city#1{\unskip\ignorespaces}
\let\streetaddress\@gobble \def\state#1{\unskip\ignorespaces}
\let\city\@gobble \newcommand\department[2][0]{}
\let\state\@gobble \def\country#1{\unskip\ignorespaces}
\let\postcode\@gobble
\let\country\@gobble
\else \else
\def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
\def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
\newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
#2\else#2\par\fi}% #2\else#2\par\fi}%
\def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
\let\city\@ACM@addtoaddress \let\city\@ACM@addtoaddress
\let\state\@ACM@addtoaddress \let\state\@ACM@addtoaddress
\def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}%
\let\country\@ACM@addtoaddress \let\country\@ACM@addtoaddress
\fi \fi
\def\@mkauthors{\begingroup \def\@mkauthors{\begingroup
@ -1826,9 +1870,9 @@ Computing Machinery]
\global\let\and\@typeset@author@line \global\let\and\@typeset@author@line
\def\@author##1{% \def\@author##1{%
\ifx\@currentauthors\@empty \ifx\@currentauthors\@empty
\gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}% \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}%
\else \else
\g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}% \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}%
\fi \fi
\gdef\and{}}% \gdef\and{}}%
\def\email##1##2{}% \def\email##1##2{}%
@ -2023,7 +2067,7 @@ Computing Machinery]
\def\ACM@mk@linecount{% \def\ACM@mk@linecount{%
\savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{% \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
\setlength{\ACM@linecount@bxht}{-\baselineskip}% \setlength{\ACM@linecount@bxht}{-\baselineskip}%
\loop{\color{ACMRed}\scriptsize\the\ACM@linecount}\\ \loop{\color{red}\scriptsize\the\ACM@linecount}\\
\global\advance\ACM@linecount by \@ne \global\advance\ACM@linecount by \@ne
\addtolength{\ACM@linecount@bxht}{\baselineskip}% \addtolength{\ACM@linecount@bxht}{\baselineskip}%
\ifdim\ACM@linecount@bxht<\textheight\repeat}}} \ifdim\ACM@linecount@bxht<\textheight\repeat}}}
@ -2241,7 +2285,7 @@ Computing Machinery]
\rightskip\@rightskip \rightskip\@rightskip
\leftskip\z@skip \leftskip\z@skip
\parindent\z@} \parindent\z@}
\def\@secfont{\sffamily\bfseries\section@raggedright\MakeUppercase} \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\sffamily\bfseries\section@raggedright} \def\@subsecfont{\sffamily\bfseries\section@raggedright}
\def\@subsubsecfont{\sffamily\itshape} \def\@subsubsecfont{\sffamily\itshape}
\def\@parfont{\itshape} \def\@parfont{\itshape}
@ -2250,16 +2294,16 @@ Computing Machinery]
\relax % manuscript \relax % manuscript
\or % acmsmall \or % acmsmall
\or % acmlarge \or % acmlarge
\def\@secfont{\sffamily\large\section@raggedright\MakeUppercase} \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\sffamily\large\section@raggedright} \def\@subsecfont{\sffamily\large\section@raggedright}
\or % acmtog \or % acmtog
\def\@secfont{\sffamily\large\section@raggedright\MakeUppercase} \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\sffamily\large\section@raggedright} \def\@subsecfont{\sffamily\large\section@raggedright}
\or % sigconf \or % sigconf
\def\@secfont{\bfseries\Large\section@raggedright\MakeUppercase} \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\Large\section@raggedright} \def\@subsecfont{\bfseries\Large\section@raggedright}
\or % siggraph \or % siggraph
\def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeUppercase} \def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\sffamily\Large\section@raggedright} \def\@subsecfont{\bfseries\sffamily\Large\section@raggedright}
\or % sigplan \or % sigplan
\def\@secfont{\bfseries\Large\section@raggedright} \def\@secfont{\bfseries\Large\section@raggedright}
@ -2281,11 +2325,11 @@ Computing Machinery]
\def\@subparfont{\itshape} \def\@subparfont{\itshape}
\or % sigchi \or % sigchi
\setcounter{secnumdepth}{1} \setcounter{secnumdepth}{1}
\def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase} \def\@secfont{\bfseries\sffamily\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\sffamily\section@raggedright} \def\@subsecfont{\bfseries\sffamily\section@raggedright}
\or % sigchi-a \or % sigchi-a
\setcounter{secnumdepth}{0} \setcounter{secnumdepth}{0}
\def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase} \def\@secfont{\bfseries\sffamily\section@raggedright\MakeTextUppercase}
\def\@subsecfont{\bfseries\sffamily\section@raggedright} \def\@subsecfont{\bfseries\sffamily\section@raggedright}
\fi \fi
\def\@adddotafter#1{#1\@addpunct{.}} \def\@adddotafter#1{#1\@addpunct{.}}