diff options
author | Karl Berry <karl@freefriends.org> | 2017-03-31 23:22:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-03-31 23:22:45 +0000 |
commit | 49ec51835aa8913d04026b0b07cd1bbe1b379d0f (patch) | |
tree | 34649d1aef03af7634f7c467dc3ea18b7f859d5a /Master/texmf-dist/source/latex | |
parent | 32d519d1c0351816024af5a8f7671f38981f5fa8 (diff) |
acmart (31mar17)
git-svn-id: svn://tug.org/texlive/trunk@43660 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/acmart/acmart.dtx | 630 |
1 files changed, 475 insertions, 155 deletions
diff --git a/Master/texmf-dist/source/latex/acmart/acmart.dtx b/Master/texmf-dist/source/latex/acmart/acmart.dtx index a28ef814ea9..bbac104e45b 100644 --- a/Master/texmf-dist/source/latex/acmart/acmart.dtx +++ b/Master/texmf-dist/source/latex/acmart/acmart.dtx @@ -123,12 +123,14 @@ % At this address you can file a bug report---or even contribute your % own enhancement making a pull request. % -% If you decide to install the package yourself, follow the standard -% rules: +% +% Most users should not attempt to install this package themselves, +% and rather rely on their \TeX\ distributions to provide it. If you +% decide to install the package yourself, follow the standard rules: % \begin{enumerate} % \item Run \progname{latex} on |acmart.ins|. This will produce the file % |acmart.cls|. -% \item Put the file |acmart.cls| and the bibligoraphy files |*.bst| +% \item Put the file |acmart.cls| and the bibliography files |*.bst| % to the places where \LaTeX{} can find them (see \cite{TeXFAQ} or % the documentation for your \TeX{} system).\label{item:install} % \item Update the database of file names. Again, see \cite{TeXFAQ} @@ -153,6 +155,9 @@ % \item \textsl{binhex}, \url{http://www.ctan.org/pkg/binhex} % \item \textsl{caption}, \url{http://www.ctan.org/pkg/caption} % \item \textsl{comment}, \url{http://www.ctan.org/pkg/comment} +% \item \textsl{cm-super}, \url{http://www.ctan.org/pkg/cm-super} +% \item \textsl{cmap}, \url{http://www.ctan.org/pkg/cmap} +% \item \textsl{draftwatermark}, \url{http://www.ctan.org/pkg/draftwatermark} % \item \textsl{environ}, \url{http://www.ctan.org/pkg/environ} % \item \textsl{fancyhdr}, \url{http://www.ctan.org/pkg/fancyhdr} % \item \textsl{float}, \url{http://www.ctan.org/pkg/float} @@ -167,6 +172,7 @@ % \item \textsl{libertine}, \url{http://www.ctan.org/pkg/libertine} % \item \textsl{manyfoot}, \url{http://www.ctan.org/pkg/manyfoot} % \item \textsl{microtype}, \url{http://www.ctan.org/pkg/microtype} +% \item \textsl{mmap}, \url{http://www.ctan.org/pkg/mmap} % \item \textsl{ms}, \url{http://www.ctan.org/pkg/ms} % \item \textsl{mweights}, \url{http://www.ctan.org/pkg/mweights} % \item \textsl{natbib}, \url{http://www.ctan.org/pkg/natbib} @@ -213,6 +219,11 @@ % are intended for journals and transactions, while formats starting % with |sig| are intended for proceedings published as books. % +% Note that sometimes conference proceedings are published as a +% special issue (or issues) of an ACM journal. In this case you +% should use the journal format for a conference paper. Please +% contact your conference committee if in doubt. +% % \begin{table} % \centering % \caption{The possible values for the \texttt{format} option} @@ -228,19 +239,19 @@ % TOCS, TOCT, TODAES, TODS, TOIS, TOIT, TOMACS, TOMM (formerly % TOMCCAP), TOMPECS, TOMS, TOPC, TOPLAS, TOPS, % TOS, TOSEM, TOSN, TRETS, -% TSAS, TSC, TSLP, TWEB\@. \\ +% TSAS, TSC, TSLP, TWEB, including special issues. \\ % acmlarge & Large single column format, used for -% IMWUT, JOCCH, PACMPL, POMACS, TAP \\ +% IMWUT, JOCCH, PACMPL, POMACS, TAP, including special issues. \\ % acmtog & Large double column format, used for -% TOG\\ +% TOG, including special issues.\\ % sigconf & Proceedings format for most of ACM % conferences (with the exceptions listed below) and all ICPS -% volumes\\ +% volumes.\\ % siggraph & As of March 2017, this format is no longer % used. Please use sigconf for SIGGRAPH conferences. \\ -% sigplan & Proceedings format for SIGPLAN conferences\\ -% sigchi & Proceedings format for SIGCHI conferences\\ -% sigchi-a & Format for SIGCHI extended abstract\\ +% sigplan & Proceedings format for SIGPLAN conferences.\\ +% sigchi & Proceedings format for SIGCHI conferences.\\ +% sigchi-a & Format for SIGCHI extended abstract.\\ % \bottomrule % \end{tabularx} % \end{table} @@ -268,7 +279,21 @@ % % The option |anonymous| is used % for anonymous review process: all author information becomes -% obscured. +% obscured. +% +% The option |timestamp| is used to include a time stamp in the +% footer of each page. When preparing a document, this can help avoid +% confusing different revisions. The footer also include the page range of +% the document. This helps detect missing pages in hard copies. +% +% The option |authordraft| is intended for the authors' drafts, not +% intended for distribution. It typesets copyright block to give the +% authors the idea of its size and overall size of the paper, but +% overprints it with the phrase ``Unpublished working draft. Not for +% distribution'', which also is used as a watermark. This option sets +% |timestamp| and |review| to |true|, but these decisions can be +% overriden by setting these options to |false| \emph{after} +% |authordraft|. % % \begin{table} % \centering @@ -286,7 +311,10 @@ % anonymous & false & Whether to make author(s) anonymous\\ % authorversion & false & Whether to generate a special % version for authors' personal use or posting (see -% Section~\ref{sec:ug_topmatter})\\ +% Section~\ref{sec:ug_topmatter})\\ +% timestamp & false & Whether to put a time stamp in the +% footer of each page\\ +% authordraft & false & Whether author's draft mode is enabled\\ % \bottomrule % \end{tabularx} % \end{table} @@ -471,7 +499,7 @@ % \end{verbatim} % Similarly you can repeat \cs{email} command. % -% You may have several authors with the same afifliation, different +% You may have several authors with the same affiliation, different % affiliations or overlapping affiliations (author~$A_1$ is affiliated % with institutions $I_1$ and $I_2$, while author $A_2$ is affiliated % with $I_2$ only, and author $A_3$ is affiliated with @@ -613,6 +641,51 @@ % \end{verbatim} % % +% The command \cs{affiliation} formats the output according to +% American conventions. This might be wrong for some cases. +% Consider, for example, a German address. In Germany postcode is put +% before city and is not separated by a comma. We can handle this +% order using +% \begin{verbatim} +% \affiliation{% +% \institution{Fluginstitut} +% \streetaddress{Sonnenallee 17} +% \postcode{123456} +% \city{Helm} +% \country{Germany} +% } +% \end{verbatim} +% However, the comma after postcode is unfortunate: the address will +% be typeset (with a SIG format) as +% \begin{verbatim} +% Fluginstitut +% Sonenallee 17 +% 123456, Helm, Germany +% \end{verbatim} +% +% +% To overcome this problem, the command \cs{affiliation} has an +% optional parameter |obeypunctuation|, which can be |false| (the +% default) or |true|. If this parameter is |true|, \cs{afffiliation} +% obeys the author's command. Thus +% \begin{verbatim} +% \affiliation[obeypuctuation=true]{% +% \institution{Fluginstitut}\\ +% \streetaddress{Sonnenallee 17}\\ +% \postcode{123456} +% \city{Helm}, +% \country{Germany} +% } +% \end{verbatim} +% will be typeset as +% \begin{verbatim} +% Fluginstitut +% Sonenallee 17 +% 123456 Helm, Germany +% \end{verbatim} +% +% Note that you should \emph{not} use this option for journals. +% % It is expected that these commands are inserted by the author of the % manuscript. % @@ -682,7 +755,13 @@ % \acmArticleSeq{5} % We redefine it to 5 % \end{verbatim} % -% +% \DescribeMacro{\acmSubmissionID}% +% If you paper got a Submission~ID from the Conference Management +% System, put it here: +% \begin{verbatim} +% \acmSubmissionID{123-A56-BU3} +% \end{verbatim} +% % % \DescribeMacro{\acmPrice}% % The macro \cs{acmPrice}\marg{price} sets the price for the article @@ -1046,13 +1125,14 @@ % theorem environments: % \begin{description} % \item[acmplain:] this is the style used for -% |theorem|, -% |conjecture|, -% |proposition|, -% |lemma|, -% |corollary|, and -% \item[acmdefinition:] this is the style used for |example| and -% |definition|. +% |theorem|, +% |conjecture|, +% |proposition|, +% |lemma|, and +% |corollary|, and +% \item[acmdefinition:] this is the style used for +% |example| and +% |definition|. % \end{description} % % @@ -1125,8 +1205,7 @@ % % As for |printonly| and |screenonly| environments, % |\begin{acks}| and |\end{acls}| should start the -% line of their own (no leading or trailing spaces). - +% line of their own (no leading or trailing spaces). % % \DescribeMacro{\grantsponsor}% % \DescribeMacro{\grantnum}% @@ -1207,14 +1286,14 @@ % % The style supports fields \path{doi} and \path{url}, for example, % \begin{verbatim} -% doi = "10.1145/1188913.1188915", -% url = "http://ccrma.stanford.edu/~jos/bayes/bayes.pdf", +% doi = "10.1145/1188913.1188915", +% url = "http://ccrma.stanford.edu/~jos/bayes/bayes.pdf", % \end{verbatim} % % The style supports arXiv recommended fields \path{eprint} and % (optionally) \path{primaryclass}, for example, % \begin{verbatim} -% eprint = "960935712", +% eprint = "960935712", % primaryclass = "cs", % \end{verbatim} % See the examples at \url{http://arxiv.org/hypertex/bibstyles/}. @@ -1223,11 +1302,11 @@ % \path{game} for Web pages and games, for example, % \begin{verbatim} % @online{Thornburg01, -% author = "Harry Thornburg", -% year = "2001", -% title = "Introduction to Bayesian Statistics", -% url = "http://ccrma.stanford.edu/~jos/bayes/bayes.html", -% month = mar, +% author = "Harry Thornburg", +% year = "2001", +% title = "Introduction to Bayesian Statistics", +% url = "http://ccrma.stanford.edu/~jos/bayes/bayes.html", +% month = mar, % lastaccessed = "March 2, 2005", % } % \end{verbatim} @@ -1240,13 +1319,13 @@ % entry, setting there \path{howpublished} field, for example, % \begin{verbatim} % @online{Obama08, -% author = "Barack Obama", -% year = "2008", -% title = "A more perfect union", -% howpublished = "Video", -% day = "5", -% url = "http://video.google.com/videoplay?docid=6528042696351994555", -% month = mar, +% author = "Barack Obama", +% year = "2008", +% title = "A more perfect union", +% howpublished = "Video", +% day = "5", +% url = "http://video.google.com/videoplay?docid=6528042696351994555", +% month = mar, % lastaccessed = "March 21, 2008", % } % \end{verbatim} @@ -1258,15 +1337,14 @@ % @Inproceedings{Novak03, % author = "Dave Novak", % title = "Solder man", -% booktitle = {ACM SIGGRAPH 2003 Video Review on Animation theater -% Program}, +% booktitle = "ACM SIGGRAPH 2003 Video Review on Animation theater Program", % year = "2003", -% publisher = "ACM Press", -% address = "New York, NY", +% publisher = "ACM Press", +% address = "New York, NY", % pages = "4", -% month = "March 21, 2008", -% doi = "99.9999/woot07-S422", -% howpublished = "Video" +% month = "March 21, 2008", +% doi = "10.9999/woot07-S422", +% howpublished = "Video", % } % \end{verbatim} % @@ -1274,17 +1352,17 @@ % \path{periodical} is intended for this: % \begin{verbatim} % @periodical{JCohen96, -% key = "Cohen", +% key = "Cohen", % editor = "Jacques Cohen", % title = "Special issue: Digital Libraries", -% journal = CACM, +% journal = "Communications of the {ACM}", % volume = "39", -% number = "11", -% month = nov, -% year = "1996", +% number = "11", +% month = nov, +% year = "1996", % } -% % \end{verbatim} +% % % %\subsection{Colors} @@ -1363,6 +1441,48 @@ % % % +%\subsection{A note for wizards: \texttt{acmart-preload-hook.tex}} +%\label{sec:ug_preload} +% +% Sometimes you need to change the behavior of |acmart|. The +% usual way to do this is to redefine commands in the preamble. +% However, these definitions are executed \emph{after} |acmart| is +% loaded, and certain decisions are made. This presents a number of +% problems. +% +% For example, one may want to use |titletoc| package with |acmart|. +% This package should be loaded before |hyperref|. However, since +% |acmart| loads |hyperref| itself, the line |\usepackage{titletoc}| +% in the preamble will lead to grief (see +% \url{http://tex.stackexchange.com/questions/357265/using-titletoc-with-acm-acmart-style}). +% +% Another example is passing options to package. Suppose you want to +% use |dvipsnames| option of |xcolor| package. Normally you cannot do +% this because |acmart| loads this package itself without options. +% +% The file |acmart-preload-hook.tex| may be used to solve these +% problems. If this file exists, it will be processed before any other +% package. You can use this file to load packages or pass options to +% them. For example, if you put in this file +% \begin{verbatim} +% \let\LoadClassOrig\LoadClass +% \renewcommand\LoadClass[2][]{\LoadClassOrig[#1]{#2}% +% \usepackage{titletoc}} +% \end{verbatim} +% then |titletoc| will be loaded before |hyperref|. If you put in +% this file +% \begin{verbatim} +% \PassOptionsToPackage{dvipsnames}{xcolor} +% \end{verbatim} +% you will pass |dvipsnames| to |xcolor|. +% +% \textbf{Important note.} This hook makes it too easy to create a +% manuscript which is not acceptable by ACM. Even easier it is to +% create a file which cannot be compiled. So please do not use it +% \emph{unless you know what you are doing.} And if you use it, +% \emph{do not ask for support.} If you decided to use this hook, you +% are on your own. +% % \StopEventually{ % \clearpage % \bibliography{acmart} @@ -1386,7 +1506,7 @@ \ProvidesFile{acmart.dtx} %</gobble> %<class>\ProvidesClass{acmart} -[2017/03/07 v1.32 Typesetting articles for Association of +[2017/03/30 v1.33 Typesetting articles for Association of Computing Machinery] % \end{macrocode} % @@ -1432,6 +1552,12 @@ Computing Machinery] % \changes{v1.31}{2017/03/04}{Documentation changes} % \changes{v1.32}{2017/03/07}{Format siggraph is now obsolete} % \changes{v1.32}{2017/03/07}{Added POMACS journal option} +% \changes{v1.33}{2017/03/12}{BibTeX crossref bug corrected} +% \changes{v1.33}{2017/03/18}{BibTeX comma before articleno bug +% corrected} +% \changes{v1.33}{2017/03/18}{BibTeX numpages bug corrected} +% \changes{v1.33}{2017/03/28}{Added acmart-preload-hook} +% \changes{v1.33}{2017/03/33}{Documentation updates} % % % And the driver code: @@ -1439,7 +1565,7 @@ Computing Machinery] %<*gobble> \documentclass{ltxdoc} \usepackage{array,booktabs,amsmath,graphicx,fancyvrb,tabularx} -\usepackage[tt=false]{libertine} +\usepackage[tt=false, type1=true]{libertine} \usepackage[varqu]{zi4} \usepackage[libertine]{newtxmath} \usepackage[tableposition=top]{caption} @@ -1456,6 +1582,19 @@ Computing Machinery] \def\@classname{acmart} % \end{macrocode} % +% +% +%\subsection{Preload} +%\label{sec:preload} +% +% We preload |acmart-preload-hook|: +% \begin{macrocode} +\InputIfFileExists{acmart-preload-hook.tex}{% + \ClassWarning{\@classname}{% + I am loading acmart-preload-hook.tex. You are fully responsible + for any problems from now on.}}{} +% \end{macrocode} +% % \subsection{Options} % \label{sec:options} % @@ -1464,6 +1603,8 @@ Computing Machinery] \RequirePackage{xkeyval} % \end{macrocode} % +% +% % \begin{macro}{format} % The possible formats % \begin{macrocode} @@ -1538,25 +1679,20 @@ Computing Machinery] % % \begin{macro}{\if@ACM@natbib@override} % \changes{v1.12}{2016/05/30}{Added macro} -% Whether to override the format decision about \textsl{natbib} -% \begin{macrocode} -\newif\if@ACM@natbib@override -\@ACM@natbib@overridefalse -% \end{macrocode} -% +% \changes{v1.33}{2017/03/28}{Deleted macro} % \end{macro} % % \begin{macro}{\if@ACM@natbib} % Whether we use natbib mode % \begin{macrocode} \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{% - \@ACM@natbib@overridetrue \if@ACM@natbib \PackageInfo{\@classname}{Explicitly selecting natbib mode}% \else \PackageInfo{\@classname}{Explicitly deselecting natbib mode}% \fi}{\PackageError{\@classname}{Option natbib can be either true or false}} +\ExecuteOptionsX{natbib=true} % \end{macrocode} % % \end{macro} @@ -1577,6 +1713,43 @@ Computing Machinery] % % \end{macro} % +% +% \begin{macro}{\if@ACM@timestamp} +% \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)} +% Whether we use timestamp mode +% \begin{macrocode} +\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{% + \if@ACM@timestamp + \PackageInfo{\@classname}{Using timestamp mode}% + \else + \PackageInfo{\@classname}{Not using timestamp mode}% + \fi}{\PackageError{\@classname}{Option timestamp can be either true or + false}} +\ExecuteOptionsX{timestamp=false} +% \end{macrocode} +% +% \end{macro} +% +% +% \begin{macro}{\if@ACM@authordraft} +% \changes{v1.33}{2017/03/28}{Added macro} +% Whether we use authordraft mode +% \begin{macrocode} +\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{% + \if@ACM@authordraft + \PackageInfo{\@classname}{Using authordraft mode}% + \@ACM@timestamptrue + \@ACM@reviewtrue + \else + \PackageInfo{\@classname}{Not using authordraft mode}% + \fi}{\PackageError{\@classname}{Option authordraft can be either true or + false}} +\ExecuteOptionsX{timestamp=false} +% \end{macrocode} +% +% \end{macro} +% +% % \begin{macro}{\ACM@fontsize} % The font size to pass to the base class % \begin{macrocode} @@ -1667,14 +1840,6 @@ Computing Machinery] \fi % \end{macrocode} % -% A format sets up \cs{if@ACM@natbib} only if -% \cs{@ACM@natbib@override} is false (i.e. user did \emph{not} -% overrode format's selection): -% \begin{macrocode} -\if@ACM@natbib@override\else - \@ACM@natbibtrue -\fi -% \end{macrocode} % % %\subsection{Loading base class and package} @@ -2040,6 +2205,8 @@ Computing Machinery] % \end{macrocode} % % Bibliography mangling. +% \changes{v1.33}{2017/03/23}{Moved \cs{citename} definition for +% non-natbib bibliography, so a package may redefine it} % \begin{macrocode} \if@ACM@natbib \let\citeN\cite @@ -2054,9 +2221,12 @@ Computing Machinery] \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}% \providecommand\newblock{}% \else - \providecommand\citename[1]{#1} + \AtBeginDocument{% + \let\shortcite\cite% + \providecommand\citename[1]{#1}} \fi -\def\shortcite#1{\ifNAT@numbers\cite{#1}\else\citeyear{#1}\fi} +\newcommand\shortcite[2][]{% + \ifNAT@numbers\cite[#1]{#2}\else\citeyear[#1]{#2}\fi} % \end{macrocode} % % @@ -2095,6 +2265,19 @@ Computing Machinery] % \end{macrocode} % % +% Author draft mode +% \begin{macrocode} +\if@ACM@authordraft + \RequirePackage{draftwatermark} + \SetWatermarkFontSize{0.5in} + \SetWatermarkColor[gray]{.9} + \SetWatermarkText{\parbox{12em}{\centering + Unpublished working draft\\ + Not for distribution}} +\fi +% \end{macrocode} +% +% %\subsection{Paper size and paragraphing} %\label{sec:paper} % @@ -2321,7 +2504,20 @@ Computing Machinery] %\label{sec:fonts} % % \changes{v1.12}{2016/05/30}{Added graceful behavior when libertine -% fonts are absent}% +% fonts are absent} +% \changes{v1.33}{2017/03/29}{Added cmap and glyphtounicode} +% +% Somehow PDFTeX and XeTeX require different incantations to make PDF +% compliant with the current Acrobat bugs. Xpdf is much better. +% \begin{macrocode} +\RequirePackage{iftex} +\ifPDFTeX +\input{glyphtounicode} +\pdfgentounicode=1 +\fi +\RequirePackage{cmap} +% \end{macrocode} +% % % \begin{macro}{\if@ACM@newfonts} % \changes{v1.12}{2016/05/30}{Added macro}% @@ -2343,10 +2539,12 @@ Computing Machinery] % % \changes{v1.30}{2017/02/15}{Switched to T1: looks like libertine has % problems with \cs{l} in OT1}% +% \changes{v1.33}{2017/03/12}{Switched to Type~1 fonts for libertine +% even if OTF-capable engine is used (Kai Mindermann)} % We use Libertine throughout. % \begin{macrocode} \if@ACM@newfonts -\RequirePackage[tt=false]{libertine} +\RequirePackage[tt=false, type1=true]{libertine} \RequirePackage[varqu]{zi4} \RequirePackage[libertine]{newtxmath} \RequirePackage[T1]{fontenc} @@ -2934,8 +3132,8 @@ Computing Machinery] % \begin{macro}{\affiliation} % \changes{v1.15}{2016/06/25}{Added code for author groups} % The macro \cs{affiliation} mimics \cs{address} from |amsart|. -% Note that it has an optional argument we do not currently need, -% but keep for the possible future use. +% Note that it has an optional argument, which we use differently +% from |amsart|. % \begin{macrocode} \newcommand{\affiliation}[2][]{% \global\@insideauthorgroupfalse @@ -2946,6 +3144,19 @@ Computing Machinery] % % \end{macro} % +% \begin{macro}{\if@ACM@affiliation@obeypunctuation} +% \changes{v1.33}{2017/03/28}{Added macro} +% Whether to use author's punctuation (by default false = add +% American punctuation) +% \begin{macrocode} +\define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}% +[true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}} +% \end{macrocode} +% +% \end{macro} +% +% +% % \begin{macro}{\additionalaffiliation} % \changes{v1.31}{2017/03/04}{Added macro} % Additional affiliations go to footnotes @@ -3146,6 +3357,18 @@ Computing Machinery] % % \end{macro} % +% +% \begin{macro}{\acmSubmissionID} +% \changes{v1.33}{2017/03/29}{Added macro} +% The submission id +% \begin{macrocode} +\def\acmSubmissionID#1{\def\@acmSubmissionID{#1}} +\acmSubmissionID{} +% \end{macrocode} +% +% \end{macro} +% +% % \begin{macro}{\acmISBN} % \changes{v1.04}{2016/04/26}{Name change by Matthew Fluet} % The book isbn @@ -3422,7 +3645,7 @@ Computing Machinery] % \changes{v1.29}{2017/01/22}{Add spacing after bullet and around % rightarrow; semicolon separators no longer in bold/italic (John Wickerson)} % The parser of the expression |Significance~General~Specific| (we need -% |textcomp| for |\\textrightarrow|: +% |textcomp| for |\\textrightarrow|): % \begin{macrocode} \RequirePackage{textcomp} \def\ccsdesc@parse#1~#2~#3~{% @@ -3754,6 +3977,8 @@ Computing Machinery] % and author vertsion, % \url{https://github.com/borisveytsman/acmart/issues/36}} % \changes{v1.12}{2016/05/30}{Moved thankses to copyrightpermission box} +% \changes{v1.33}{2017/03/27}{Fixed the bug with figures on top and +% bottom of the title page, thanks to David Epstein} % The (in)famous \cs{maketitle}. Note that in sigchi-a mode authors % are \emph{not} in the title box. % @@ -3771,8 +3996,9 @@ Computing Machinery] \let\@footnotemark\@footnotemark@nolink \let\@footnotetext\@footnotetext@nolink \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \@topnum\z@ % this prevents figures from falling at the top of page - % 1 + \global\@topnum\z@ % this prevents floats from falling + % at the top of page 1 + \global\@botnum\z@ % we do not want them to be on bottom either \hsize=\textwidth \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}% \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers @@ -3789,49 +4015,56 @@ Computing Machinery] \footnotetextcopyrightpermission{% \def\par{\let\par\@par}\parindent\z@\@setthanks}% \fi - \footnotetextcopyrightpermission{\parindent\z@\parskip0.1\baselineskip - \if@ACM@authorversion\else - \if@printpermission\@copyrightpermission\par\fi - \fi - \if@ACM@manuscript\else - \if@ACM@journal\else % Print the conference short name - {\itshape \acmConference@shortname, \acmConference@venue}\par + \footnotetextcopyrightpermission{% + \if@ACM@authordraft + \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries + Unpublished + working draft. Not for distribution}}% + \color[gray]{0.9}% \fi - \fi - \if@printcopyright - \copyright\ \@copyrightyear\ \@copyrightowner\ - \else - \@copyrightyear.\ - \fi - \if@ACM@manuscript - Manuscript submitted to ACM\\ - \else - \if@ACM@authorversion - This is the author's version of the work. It is posted here for - your personal use. Not for redistribution. The definitive Version - of Record was published in - \if@ACM@journal - \emph{\@journalName}% - \else - \emph{Proceedings of \acmConference@name, \acmConference@date}% - \fi - \ifx\@acmDOI\@empty - . + \parindent\z@\parskip0.1\baselineskip + \if@ACM@authorversion\else + \if@printpermission\@copyrightpermission\par\fi + \fi + \if@ACM@manuscript\else + \if@ACM@journal\else % Print the conference short name + {\itshape \acmConference@shortname, \acmConference@venue}\par + \fi + \fi + \if@printcopyright + \copyright\ \@copyrightyear\ \@copyrightowner\ + \else + \@copyrightyear.\ + \fi + \if@ACM@manuscript + Manuscript submitted to ACM\\ + \else + \if@ACM@authorversion + This is the author's version of the work. It is posted here for + your personal use. Not for redistribution. The definitive Version + of Record was published in + \if@ACM@journal + \emph{\@journalName}% + \else + \emph{Proceedings of \acmConference@name, \acmConference@date}% + \fi + \ifx\@acmDOI\@empty + . + \else + , \@formatdoi{\@acmDOI}. + \fi\\ \else - , \@formatdoi{\@acmDOI}. - \fi\\ - \else - \if@ACM@journal - \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle\ - \$\@acmPrice\\ - DOI: \nolinkurl{\@acmDOI}% - \else % Conference - \@acmISBN - \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\ - DOI: \nolinkurl{\@acmDOI}% + \if@ACM@journal + \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle\ + \$\@acmPrice\\ + DOI: \nolinkurl{\@acmDOI}% + \else % Conference + \@acmISBN + \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\ + DOI: \nolinkurl{\@acmDOI}% + \fi \fi - \fi - \fi}% + \fi} \endgroup \setcounter{footnote}{0}% \@mkabstract @@ -4013,9 +4246,10 @@ Computing Machinery] % % \begin{macro}{\@subtitlefont} % \changes{v1.06}{2016/05/01}{Added macro} +% \changes{v1.33}{2017/03/12}{Added \cs{normalsize}} % The font to typeset title % \begin{macrocode} -\def\@subtitlefont{% +\def\@subtitlefont{\normalsize \ifcase\ACM@format@nr \relax % manuscript \mdseries @@ -4142,6 +4376,7 @@ Computing Machinery] % % \begin{macro}{\@ACM@addtoaddress} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % The macro adds an item to address using the following rules: % \begin{enumerate} % \item If we start a paragraph, add the item @@ -4153,30 +4388,39 @@ Computing Machinery] \newbox\@ACM@commabox \def\@ACM@addtoaddress#1{% \ifvmode\else + \if@ACM@affiliation@obeypunctuation\else \setbox\@ACM@commabox=\hbox{, }% \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox - \fi + \fi\fi #1} % \end{macrocode} % \end{macro} % % \begin{macro}{\institution} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\position} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\department} % \changes{v1.15}{2016/07/03}{Added macro} % \changes{v1.30}{2017/02/10}{Added optional parameter} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\streetaddress} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\city} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\state} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\postcode} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % \begin{macro}{\country} % \changes{v1.15}{2016/07/03}{Added macro} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % Theoretically we can define the macros for \cs{affiliation} inside % the \cs{@mkauthors}-style commands. However, this would lead to a % strange error if an author uses them outside \cs{affiliation}. Of @@ -4195,13 +4439,14 @@ Computing Machinery] \let\postcode\@gobble \let\country\@gobble \else - \def\position#1{#1\par}% - \def\institution#1{#1\par}% - \newcommand\department[2][0]{#2\par}% - \def\streetaddress#1{#1\par}% + \def\position#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 + #2\else#2\par\fi}% + \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}% \let\city\@ACM@addtoaddress \let\state\@ACM@addtoaddress - \def\postcode#1{\unskip\space#1}% + \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}% \let\country\@ACM@addtoaddress \fi % \end{macrocode} @@ -4314,7 +4559,8 @@ Computing Machinery] % % \begin{macro}{\@mkauthors@i} % \changes{v1.18}{2016/07/12}{Now we andify affiliations} -% This is version used in most formats. Note that \cs{and} between +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} +% This is version used in most journal formats. Note that \cs{and} between % authors with the same affiliation becomes \verb*| and |: % \begin{macrocode} \def\@mkauthors@i{% @@ -4332,9 +4578,14 @@ Computing Machinery] \def\affiliation##1##2{% \def\@tempa{##2}\ifx\@tempa\@empty\else \ifx\@currentaffiliations\@empty - \gdef\@currentaffiliations{\@affiliationfont##2}% + \gdef\@currentaffiliations{% + \setkeys{@ACM@affiliation@}{obeypunctuation=false}% + \setkeys{@ACM@affiliation@}{##1}% + \@affiliationfont##2}% \else - \g@addto@macro{\@currentaffiliations}{\and##2}% + \g@addto@macro{\@currentaffiliations}{\and + \setkeys{@ACM@affiliation@}{obeypunctuation=false}% + \setkeys{@ACM@affiliation@}{##1}##2}% \fi \fi \global\let\and\@typeset@author@line}% @@ -4396,6 +4647,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} % The |sigconf| version. Here we use centered design with each % author in a separate box. % \begin{macrocode} @@ -4439,9 +4691,13 @@ Computing Machinery] \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}% \fi}% \def\affiliation##1##2{\ifx\@currentaffiliation\@empty - \gdef\@currentaffiliation{##2}% + \gdef\@currentaffiliation{% + \setkeys{@ACM@affiliation@}{obeypunctuation=false}% + \setkeys{@ACM@affiliation@}{##1}##2}% \else - \g@addto@macro\@currentaffiliation{\par##2}% + \g@addto@macro\@currentaffiliation{\par + \setkeys{@ACM@affiliation@}{obeypunctuation=false}% + \setkeys{@ACM@affiliation@}{##1}##2}% \fi \global\let\and\@typeset@author@bx }% @@ -4459,6 +4715,7 @@ Computing Machinery] % % % \begin{macro}{\@mkauthors@iv} +% \changes{v1.33}{2017/03/28}{Added obeypunctuation code} % The |sigchia| version. Now we put % authors in the main text, and no more than 2 authors per line. % \begin{macrocode} @@ -4496,9 +4753,13 @@ Computing Machinery] \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}% \fi}% \def\affiliation##1##2{\ifx\@currentaffiliation\@empty - \gdef\@currentaffiliation{##2}% + \gdef\@currentaffiliation{% + \setkeys{@ACM@affiliation@}{obeypunctuation=false}% + \setkeys{@ACM@affiliation@}{##1}##2}% \else - \g@addto@macro\@currentaffiliation{\par##2}% + \g@addto@macro\@currentaffiliation{\par + \setkeys{@ACM@affiliation@}{obeypunctuation=false}% + \setkeys{@ACM@affiliation@}{##1}##2}% \fi \global\let\and\@typeset@author@bx}% % @@ -4658,10 +4919,11 @@ Computing Machinery] % % \end{macro} % -% \begin{macro}{\ACM@linecount} -% How to display the box +% \begin{macro}{\ACM@linecountL} +% \changes{v1.33}{2017/03/29}{Renamed macro} +% How to display the box on the left % \begin{macrocode} -\def\ACM@linecount{% +\def\ACM@linecountL{% \if@ACM@review \begin{picture}(0,0)% \put(-26,-22){\usebox{\ACM@linecount@bx}}% @@ -4671,6 +4933,46 @@ Computing Machinery] % % \end{macro} % +% \begin{macro}{\ACM@linecountR} +% \changes{v1.33}{2017/03/29}{Added macro} +% How to display the box on the right +% \begin{macrocode} +\def\ACM@linecountR{% + \if@ACM@review + \begin{picture}(0,0)% + \put(20,-22){\usebox{\ACM@linecount@bx}}% + \end{picture}% + \fi} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\ACM@timestamp} +% \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)} +% \changes{v1.33}{2017/03/28}{Added current page number} +% \changes{v1.33}{2017/03/29}{Added submission id} +% The timestamp system +% \begin{macrocode} +\if@ACM@timestamp + % Subtracting 30 from \time gives us the effect of rounding-down despite + % \numexpr rounding to nearest + \newcounter{ACM@time@hours} + \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax} + \newcounter{ACM@time@minutes} + \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax} + \newcommand\ACM@timestamp{% + \footnotesize% + \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }% + \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }% + page~\thepage\ (pp. \@startPage-\pageref*{TotPages})% + \ifx\@acmSubmissionID\@empty\relax\else + ~Submission~ID: \@acmSubmissionID + \fi + } +\fi +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\@shortauthors} % \changes{v1.15}{2016/07/04}{Introduced macro} % Even if the author redefined \cs{shortauthors}, we do not print @@ -4719,6 +5021,8 @@ Computing Machinery] % \changes{v1.16}{2016/07/07}{Customize header/footer text font} % \changes{v1.17}{2016/07/10}{Added paper title to sigs} % \changes{v1.29}{2017/01/22}{Corrected printfolios (Matthew Fluet)} +% \changes{v1.33}{2017/03/10}{Added timestamp (Michael D.~Adams)} +% \changes{v1.33}{2017/03/29}{Added right linecount for two column formats} % The pagestyle for all pages but the first one % \begin{macrocode} \fancypagestyle{standardpagestyle}{% @@ -4727,46 +5031,50 @@ Computing Machinery] \renewcommand{\footrulewidth}{\z@}% \ifcase\ACM@format@nr \relax % manuscript - \fancyhead[LE]{\ACM@linecount\if@ACM@printfolios\thepage\fi}% + \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}% \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}% \fancyhead[RE]{\@shortauthors}% - \fancyhead[LO]{\ACM@linecount\shorttitle}% + \fancyhead[LO]{\ACM@linecountL\shorttitle}% \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}% \or % acmsmall - \fancyhead[LE]{\ACM@linecount\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% + \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}% \fancyhead[RE]{\@headfootfont\@shortauthors}% - \fancyhead[LO]{\ACM@linecount\@headfootfont\shorttitle}% + \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}% \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \or % acmlarge - \fancyhead[LE]{\ACM@linecount\@headfootfont + \fancyhead[LE]{\ACM@linecountL\@headfootfont \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}% - \fancyhead[LO]{\ACM@linecount}% + \fancyhead[LO]{\ACM@linecountL}% \fancyhead[RO]{\@headfootfont \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}% \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \or % acmtog - \fancyhead[LE]{\ACM@linecount\@headfootfont + \fancyhead[LE]{\ACM@linecountL\@headfootfont \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}% - \fancyhead[LO]{\ACM@linecount}% + \fancyhead[LO]{\ACM@linecountL}% + \fancyhead[RE]{\ACM@linecountR}% \fancyhead[RO]{\@headfootfont - \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}% + \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}% \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \else % Proceedings \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% - \fancyhead[LO]{\ACM@linecount\@headfootfont\shorttitle}% - \fancyhead[RE]{\@headfootfont\@shortauthors}% - \fancyhead[LE]{\ACM@linecount\@headfootfont\acmConference@shortname, + \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}% + \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}% + \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname, \acmConference@date, \acmConference@venue}% \fancyhead[RO]{\@headfootfont\acmConference@shortname, - \acmConference@date, \acmConference@venue}% + \acmConference@date, \acmConference@venue\ACM@linecountR}% \fi \if@ACM@sigchiamode \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}% \fi + \if@ACM@timestamp + \fancyfoot[LO,RE]{\ACM@timestamp} + \fi } \pagestyle{standardpagestyle} % \end{macrocode} @@ -4840,6 +5148,8 @@ Computing Machinery] % \end{macro} % % \begin{macro}{firstpagestyle} +% \changes{v1.33}{2017/03/10}{Added timestamp (Michael D.~Adams)} +% \changes{v1.33}{2017/03/29}{Added right linecount for two column formats} % The pagestyle for the first page only. % \begin{macrocode} \fancypagestyle{firstpagestyle}{% @@ -4848,15 +5158,15 @@ Computing Machinery] \renewcommand{\footrulewidth}{\z@}% \ifcase\ACM@format@nr \relax % manuscript - \fancyhead[L]{\ACM@linecount}% + \fancyhead[L]{\ACM@linecountL}% \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}% \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}% \or % acmsmall \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% - \fancyhead[LE]{\ACM@linecount\@folioblob}% - \fancyhead[LO]{\ACM@linecount}% + \fancyhead[LE]{\ACM@linecountL\@folioblob}% + \fancyhead[LO]{\ACM@linecountL}% \fancyhead[RO]{\@folioblob}% \fancyheadoffset[RO,LE]{0.6\@folio@wd}% \or % acmlarge @@ -4864,18 +5174,28 @@ Computing Machinery] \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% \fancyhead[RO]{\@folioblob}% - \fancyhead[LE]{\ACM@linecount\@folioblob}% - \fancyhead[LO]{\ACM@linecount}% + \fancyhead[LE]{\ACM@linecountL\@folioblob}% + \fancyhead[LO]{\ACM@linecountL}% \fancyheadoffset[RO,LE]{1.4\@folio@wd}% \or % acmtog \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No. \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}% - \fancyhead[L]{\ACM@linecount}% + \fancyhead[L]{\ACM@linecountL}% + \fancyhead[R]{\ACM@linecountR}% \else % Conference proceedings - \fancyhead[L]{\ACM@linecount}% + \fancyhead[L]{\ACM@linecountL}% + \fancyhead[R]{\ACM@linecountR}% \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}% \fi + \if@ACM@timestamp + \ifnum\ACM@format@nr=0\relax % Manuscript + \fancyfoot[LO,RE]{\ACM@timestamp\quad + \footnotesize Manuscript submitted to ACM} + \else + \fancyfoot[LO,RE]{\ACM@timestamp} + \fi + \fi } % \end{macrocode} % @@ -5295,7 +5615,7 @@ Computing Machinery] % The command \cs{showeprint} has two arguments: the (optional) prefix % and the eprint number. Right now the only prefix we understand is % the (lowercase) word `arxiv' (see -% \url{http://arxiv.org/hypertex/bibstyles/}. +% \url{http://arxiv.org/hypertex/bibstyles/}). % \begin{macrocode} \newcommand\showeprint[2][arxiv]{% \def\@tempa{#1}% |