From 8dc5a04688ab717789078f4d387cb0938bacbbaf Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 15 May 2017 21:14:01 +0000 Subject: acmart (15may17) git-svn-id: svn://tug.org/texlive/trunk@44367 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/acmart/acmart.dtx | 239 +++++++++++++++++++---- 1 file changed, 204 insertions(+), 35 deletions(-) (limited to 'Master/texmf-dist/source/latex/acmart') diff --git a/Master/texmf-dist/source/latex/acmart/acmart.dtx b/Master/texmf-dist/source/latex/acmart/acmart.dtx index 76b80c798c4..8ede70c92e1 100644 --- a/Master/texmf-dist/source/latex/acmart/acmart.dtx +++ b/Master/texmf-dist/source/latex/acmart/acmart.dtx @@ -15,8 +15,13 @@ % The Current Maintainer of this work is Boris Veytsman, % % -% This work consists of the file acmart.dtx and the -% derived file acmart.cls, and +% This work consists of the file acmart.dtx, the derived file +% acmart.cls, the files ACM-Reference-Format.bst, and templates +% sample-acmlarge.tex, sample-acmsmall.tex, sample-acmtog.tex, +% samplebody-conf.tex, samplebody-journals.tex, sample-manuscript.tex, +% sample-sigchi-a.tex, sample-sigchi.tex, +% sample-sigconf-authordraft.tex, sample-sigconf.tex, +% sample-sigplan.tex % % \fi % @@ -187,6 +192,7 @@ % \item \textsl{url}, \url{http://www.ctan.org/pkg/url} % \item \textsl{xcolor}, \url{http://www.ctan.org/pkg/xcolor} % \item \textsl{xkeyval}, \url{http://www.ctan.org/pkg/xkeyval} +% \item \textsl{xstring}, \url{http://www.ctan.org/pkg/xstring} % \end{itemize} % % @@ -234,14 +240,14 @@ % \midrule % manuscript & A manuscript. This is the default \\ % acmsmall & Small single column format, used for CIE, CSUR, JACM, JDIQ, JEA, JERIC, -% JETC, TAAS, TACCESS, TACO, TALG, TALLIP (formerly TALIP), TCPS, +% JETC, PACMPL, TAAS, TACCESS, TACO, TALG, TALLIP (formerly TALIP), TCPS, % TEAC, TECS, TIIS, TISSEC, TIST, TKDD, TMIS, TOCE, TOCHI, TOCL, % TOCS, TOCT, TODAES, TODS, TOIS, TOIT, TOMACS, TOMM (formerly % TOMCCAP), TOMPECS, TOMS, TOPC, TOPLAS, TOPS, % TOS, TOSEM, TOSN, TRETS, % TSAS, TSC, TSLP, TWEB, including special issues. \\ % acmlarge & Large single column format, used for -% IMWUT, JOCCH, PACMPL, POMACS, TAP, including special issues. \\ +% IMWUT, JOCCH, PACMHCI, POMACS, TAP, including special issues. \\ % acmtog & Large double column format, used for % TOG, including special issues.\\ % sigconf & Proceedings format for most of ACM @@ -371,6 +377,7 @@ % JERIC & ACM Journal of Educational Resources in Computing\\ % JETC & ACM Journal on Emerging Technologies in Computing Systems \\ % JOCCH & ACM Journal on Computing and Cultural Heritage \\ +% PACMHCI & PACM on Human-Computer Interaction\\ % PACMPL & PACM on Programming Languages \\ % POMACS & PACM on Measurement and Analysis of Computing Systems \\ % TAAS & ACM Transactions on Autonomous and Adaptive Systems\\ @@ -727,6 +734,20 @@ % commands, since this confuses metadata extraction software (actually % these commands now produce errors). % +% \DescribeMacro{\authornotemark}% +% Sometimes one may need to have the same footnote connected to +% several authors. The command \cs{authornotemark}\oarg{number} adds +% just the footnote mark, for example +% \begin{verbatim} +% \author{A. U. Thor} +% \authornote{Both authors contributed equally to the paper} +% ... +% \author{A. N. Other} +% \authornotemark[1] +% \end{verbatim} +% The correct numbering of these marks is the responsibility of the +% user. +% % \DescribeMacro{\acmVolume}% % \DescribeMacro{\acmNumber}% % \DescribeMacro{\acmArticle}% @@ -968,7 +989,18 @@ % \begin{verbatim} % \settopmatter{printacmref=false, printccs=true, printfolios=true} % \end{verbatim} -% +% The parameter |authorsperrow| requires some explanation. In +% conference proceedings authors' information is typeset in boxes, +% several boxes per row (see |sample-sigconf.pdf|, +% |sample-sigplan.pdf| etc.). The number of the boxes per row is +% determined automatically. If you want to override this decision, +% you may do it using this parameter, for example, +% \begin{verbatim} +% \settopmatter{authorsperrow=4} +% \end{verbatim} +% However, in most cases you should \emph{not} do this and use the +% default settings. Setting |authorsperrow| to $0$ will revert to +% default settings. % % \begin{table} % \centering @@ -981,7 +1013,11 @@ % printccs & true/false & Whether to print CCS categories\\ % printacmref & true/false & Whether to print ACM bibliographic % entry\\ -% printfolios & true/false & Whether to print page numbers (folios)\\ +% printfolios & true/false & Whether to print page numbers +% (folios)\\ +% authorsperrow & numeric & Number of authors per row for title +% page in +% conference proceedings formats\\ % \bottomrule % \end{tabularx} % \end{table} @@ -1509,7 +1545,7 @@ \ProvidesFile{acmart.dtx} % %\ProvidesClass{acmart} -[2017/04/23 v1.35 Typesetting articles for Association of +[2017/05/14 v1.39 Typesetting articles for Association of Computing Machinery] % \end{macrocode} % @@ -1562,6 +1598,11 @@ Computing Machinery] % \changes{v1.33}{2017/03/28}{Added acmart-preload-hook} % \changes{v1.33}{2017/03/33}{Documentation updates} % \changes{v1.35}{2017/04/23}{BibTeX bug fixed: et al.} +% \changes{v1.36}{2017/05/12}{Added the possibility to adjust number of +% author boxes per row in conference formats} +% \changes{v1.37}{2017/05/13}{Set \cs{normalparindent}; Reduce list +% indentation (Matthew Fluet)}% +% \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN} % % % And the driver code: @@ -1607,7 +1648,11 @@ Computing Machinery] \RequirePackage{xkeyval} % \end{macrocode} % -% +% We use |xstring| to check whether user input is integer +% \begin{macrocode} +\RequirePackage{xstring} +% \end{macrocode} +% % % \begin{macro}{format} % The possible formats @@ -1737,6 +1782,7 @@ Computing Machinery] % % \begin{macro}{\if@ACM@authordraft} % \changes{v1.33}{2017/03/28}{Added macro} +% \changes{v1.36}{2017/05/13}{Corrected typo, thanks to bargteil} % Whether we use authordraft mode % \begin{macrocode} \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{% @@ -1748,7 +1794,7 @@ Computing Machinery] \PackageInfo{\@classname}{Not using authordraft mode}% \fi}{\PackageError{\@classname}{Option authordraft can be either true or false}} -\ExecuteOptionsX{timestamp=false} +\ExecuteOptionsX{authordraft=false} % \end{macrocode} % % \end{macro} @@ -1850,6 +1896,7 @@ Computing Machinery] %\label{sec:loading} % % \changes{v1.13}{2016/06/06}{Increased font size for ACM Large} +% \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN} % % % At this point we either have \cs{ACM@fontsize}, or use defaults @@ -1869,7 +1916,7 @@ Computing Machinery] \or % siggraph \def\ACM@fontsize{9pt}% \or % sigplan - \def\ACM@fontsize{9pt}% + \def\ACM@fontsize{10pt}% \or % sigchi \def\ACM@fontsize{10pt}% \or % sigchi-a @@ -2383,6 +2430,20 @@ Computing Machinery] % \end{macro} % \end{macro} % +% \begin{macro}{\normalparindent} +% \changes{v1.37}{2017/05/13}{Set \cs{normalparindent} (Matthew Fluet)}% +% |amsart| defines the \cs{normalparindent} length and initializes it +% to 12pt (the value of \cs{parindent} in |amsart|). It is later used +% to set the \cs{listparindent} length in the |quotation| environment +% and the \cs{parindent} length in the \cs{@footnotetext} command. We +% set \cs{normalparindent} to the value of \cs{parindent} as selected +% by |acmart| for consistent paragraph indents. +% \begin{macrocode} +\setlength\normalparindent{\parindent} +% \end{macrocode} +% +% \end{macro} +% % Footnotes require some consideration. We have several layers of % footnotes: frontmatter footnotes, ``regular'' footnotes and the % special insert for bibstrip. In the old ACM classes bibstrip was a @@ -2733,24 +2794,78 @@ Computing Machinery] % \end{macrocode} % % +% \changes{v1.37}{2017/05/13}{Reduce list indentation (Matthew Fluet)}% +% AMS uses generous margins for the lists. Note that |amsart| defines +% \cs{leftmargin} values for list levels at begin document, so we must +% redefine them in the same manner. Also, note that |amsart| +% redefines |enumerate| and |itemize| environments with a +% \cs{makelabel} command that uses \cs{llap}, so the \cs{labelwidth} +% value is (effectively) irrelevant; nonetheless, we follow |amsart| +% and set \cs{labelwidth} to \cs{leftmargin} minus \cs{labelsep}. +% \begin{macrocode} +\newdimen\@ACM@labelwidth +\AtBeginDocument{% + \setlength\labelsep{4pt} + \setlength{\@ACM@labelwidth}{6.5pt} + + %% First-level list: when beginning after the first line of an + %% indented paragraph or ending before an indented paragraph, labels + %% should not hang to the left of the preceding/following text. + \setlength\leftmargini{\z@} + \addtolength\leftmargini{\parindent} + \addtolength\leftmargini{2\labelsep} + \addtolength\leftmargini{\@ACM@labelwidth} + + %% Second-level and higher lists. + \setlength\leftmarginii{\z@} + \addtolength\leftmarginii{0.5\labelsep} + \addtolength\leftmarginii{\@ACM@labelwidth} + \setlength\leftmarginiii{\leftmarginii} + \setlength\leftmarginiv{\leftmarginiii} + \setlength\leftmarginv{\leftmarginiv} + \setlength\leftmarginvi{\leftmarginv} + \@listi} +\newskip\listisep +\listisep\smallskipamount +\def\@listI{\leftmargin\leftmargini + \labelwidth\leftmargini \advance\labelwidth-\labelsep + \listparindent\z@ + \topsep\listisep} +\let\@listi\@listI +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep\z@skip} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep} +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv \advance\labelwidth-\labelsep} +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv \advance\labelwidth-\labelsep} +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi \advance\labelwidth-\labelsep} +% \end{macrocode} +% +% % \begin{macro}{\descriptionlabel} +% \changes{v1.37}{2017/05/13}{Reduce list indentation (Matthew Fluet)}% % \changes{v1.12}{2016/05/30}{Redefined} % We do not use default colon as \cs{amsart} does: % \begin{macrocode} -\renewcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1} +\renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1} % \end{macrocode} % % \end{macro} % % % \begin{macro}{\description} +% \changes{v1.37}{2017/05/13}{Reduce list indentation (Matthew Fluet)}% % \changes{v1.17}{2016/07/07}{Decreased indent} -% AMS uses additional indent of 6pt. Frank recommends -% dropping it. +% Make |description| environment indentation consistent with that of +% |itemize| and |enumerate| environments. % \begin{macrocode} \renewenvironment{description}{\list{}{% - \itemindent-12\p@ - \labelwidth\z@ \let\makelabel\descriptionlabel}% + \labelwidth\@ACM@labelwidth + \let\makelabel\descriptionlabel}% }{ \endlist } @@ -2767,6 +2882,7 @@ Computing Machinery] % \changes{v1.24}{2016/11/16}{Add IMWUT journal option} % \changes{v1.25}{2016/12/03}{Updated PACMPL} % \changes{v1.30}{2017/02/15}{Updated IMWUT and PACMPL} +% \changes{v1.36}{2017/05/13}{Added PACMHCI journal options} % % We use keyval interface to define journal title and relevant % information @@ -2781,6 +2897,7 @@ Computing Machinery] JERIC,% JETC,% JOCCH,% + PACMHCI,% PACMPL,% POMACS,% TAAS,% @@ -2860,6 +2977,10 @@ Computing Machinery] \or % JOCCH \def\@journalName{ACM Journal on Computing and Cultural Heritage}% \def\@journalName{ACM J. Comput. Cult. Herit.}% +\or % PACMHCI + \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}% + \def\@journalName{Proc. ACM Hum.-Comput. Interact.}% + \def\@permissionCodeOne{2573-0142}% \or % PACMPL \def\@journalName{Proceedings of the ACM on Programming Languages}% \def\@journalName{Proc. ACM Program. Lang.}% @@ -3269,7 +3390,7 @@ Computing Machinery] % \begin{macrocode} \def\authornote#1{% \if@ACM@anonymous\else - \g@addto@macro\addresses{\@authornotemark} + \g@addto@macro\addresses{\@authornotemark}% \g@addto@macro\@authornotes{% \stepcounter{footnote}\footnotetext{#1}}% \fi} @@ -3277,6 +3398,20 @@ Computing Machinery] % % \end{macro} % +% \begin{macro}{\authornotemark} +% \changes{v1.39}{2017/05/14}{Added macro} +% Adding footnotemark to authors +% \begin{macrocode} +\newcommand\authornotemark[1][\relax]{% + \ifx#1\relax\relax\relax + \g@addto@macro\addresses{\@authornotemark}% + \else + \g@addto@macro\addresses{\@@authornotemark{#1}}% + \fi} +% \end{macrocode} +% +% \end{macro} +% % \begin{macro}{\acmVolume} % \changes{v1.17}{2016/07/10}{The default is now numerical} % The current volume @@ -3560,6 +3695,18 @@ Computing Machinery] % \end{macrocode} % \end{macro} % +% \begin{macro}{\@ACM@authorsperrow} +% \changes{v1.36}{2017/05/13}{Added macro} +% The number of authors per row. 0 means use default algorithm. +% \begin{macrocode} +\define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{% + \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to + #1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be + numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}} +% \end{macrocode} +% +% \end{macro} +% % \begin{macro}{\settopmatter} % The usual syntactic sugar % \begin{macrocode} @@ -3583,6 +3730,7 @@ Computing Machinery] \settopmatter{printfolios=false} \fi \fi +\settopmatter{authorsperrow=0} % \end{macrocode} % % \begin{macro}{\@received} @@ -4658,6 +4806,7 @@ Computing Machinery] % \begin{macro}{\@mkauthors@iii} % \changes{v1.15}{2016/07/04}{New authors system} % \changes{v1.33}{2017/03/28}{Added obeypunctuation code} +% \changes{v1.36}{2017/05/12}{Added authorsperrow overrride} % The |sigconf| version. Here we use centered design with each % author in a separate box. % \begin{macrocode} @@ -4671,17 +4820,21 @@ Computing Machinery] % \begin{macrocode} \author@bx@wd=\textwidth\relax \advance\author@bx@wd by -\author@bx@sep\relax - \ifcase\num@authorgroups - \relax % 0? - \or % 1=one author per row - \or % 2=two authors per row - \divide\author@bx@wd by \num@authorgroups\relax - \or % 3=three authors per row - \divide\author@bx@wd by \num@authorgroups\relax - \or % 4=two authors per row (!) - \divide\author@bx@wd by 2\relax - \else % three authors per row - \divide\author@bx@wd by 3\relax + \ifnum\@ACM@authorsperrow>0\relax + \divide\author@bx@wd by \@ACM@authorsperrow\relax + \else + \ifcase\num@authorgroups + \relax % 0? + \or % 1=one author per row + \or % 2=two authors per row + \divide\author@bx@wd by \num@authorgroups\relax + \or % 3=three authors per row + \divide\author@bx@wd by \num@authorgroups\relax + \or % 4=two authors per row (!) + \divide\author@bx@wd by 2\relax + \else % three authors per row + \divide\author@bx@wd by 3\relax + \fi \fi \advance\author@bx@wd by -\author@bx@sep\relax % \end{macrocode} @@ -4726,8 +4879,10 @@ Computing Machinery] % % \begin{macro}{\@mkauthors@iv} % \changes{v1.33}{2017/03/28}{Added obeypunctuation code} +% \changes{v1.36}{2017/05/12}{Added authorsperrow overrride} % The |sigchia| version. Now we put -% authors in the main text, and no more than 2 authors per line. +% authors in the main text, and no more than 2 authors per line, +% unless overriden. % \begin{macrocode} \def\@mkauthors@iv{% % \end{macrocode} @@ -4739,11 +4894,15 @@ Computing Machinery] % \begin{macrocode} \author@bx@wd=\columnwidth\relax \advance\author@bx@wd by -\author@bx@sep\relax - \ifcase\num@authorgroups - \relax % 0? - \or % 1=one author per row - \else % 2=two authors per row - \divide\author@bx@wd by 2\relax + \ifnum\@ACM@authorsperrow>0\relax + \divide\author@bx@wd by \@ACM@authorsperrow\relax + \else + \ifcase\num@authorgroups + \relax % 0? + \or % 1=one author per row + \else % 2=two authors per row + \divide\author@bx@wd by 2\relax + \fi \fi \advance\author@bx@wd by -\author@bx@sep\relax % \end{macrocode} @@ -4785,13 +4944,23 @@ Computing Machinery] % \end{macro} % % \begin{macro}{\@authornotemark} -% Adding footnotemark to authors +% Adding footnotemark to authors. This version adds ``normal'' +% footnotemark. % \begin{macrocode} -\def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark}} +\def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}} % \end{macrocode} % % \end{macro} % +% \begin{macro}{\@@authornotemark} +% \changes{v1.39}{2017/05/14}{Added macro} +% Adding footnotemark to authors with the given number +% \begin{macrocode} +\def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}} +% \end{macrocode} +% +% \end{macro} +% % \begin{macro}{\@mkteasers} % Typesetting teasers % \begin{macrocode} -- cgit v1.2.3