summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/revtex/revtex4-1.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-03-18 23:53:14 +0000
committerKarl Berry <karl@freefriends.org>2010-03-18 23:53:14 +0000
commitaeb40e4eddc0e83dfd8f55c18ffd3b94540c0f47 (patch)
treeae4269d5a89406c04493af63b04c8fabc71fb754 /Master/texmf-dist/source/latex/revtex/revtex4-1.dtx
parent481fc83998309f749f51e74a5e711829a5a3c80b (diff)
revtex 4.1p (17mar10)
git-svn-id: svn://tug.org/texlive/trunk@17498 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/revtex/revtex4-1.dtx')
-rw-r--r--Master/texmf-dist/source/latex/revtex/revtex4-1.dtx979
1 files changed, 675 insertions, 304 deletions
diff --git a/Master/texmf-dist/source/latex/revtex/revtex4-1.dtx b/Master/texmf-dist/source/latex/revtex/revtex4-1.dtx
index 9d517bf02a5..3806fe8f786 100644
--- a/Master/texmf-dist/source/latex/revtex/revtex4-1.dtx
+++ b/Master/texmf-dist/source/latex/revtex/revtex4-1.dtx
@@ -127,9 +127,9 @@ See the REVTeX 4 README file for restrictions and more information.
%<*package>
%%% @LaTeX-file{
%%% filename = "revtex4-1.dtx",
-%%% version = "4.1g",
-%%% date = "2009/10/08",
-%%% time = "11:23:00 GMT+8",
+%%% version = "4.1p",
+%%% date = "2010/03/15",
+%%% time = "20:00:00 UT-8",
%%% checksum = "7177",
%%% author = "Arthur Ogawa (mailto:arthur_ogawa at sbcglobal.net),
%%% commissioned by the American Physical Society.
@@ -221,8 +221,13 @@ See the REVTeX 4 README file for restrictions and more information.
\ProvidesFile{revtex4-1.dtx}
%</doc>
%<*!package&!options>
- [2009/10/08:11:23 4.1g (http://publish.aps.org/revtex4/ for documentation)]%FileInfo
+%<version>
+ [2010/03/15/20:00:00 4.1p (http://publish.aps.org/revtex4/ for documentation)]% \fileversion
%</!package&!options>
+% \end{macrocode}
+% The current class name is remembered in \cmd\class@name.
+% This is something of a klootch, relying as it does on knowledge of the implementation of \cmd\ProvidesPackage.
+% \begin{macrocode}
%<kernel>\let\class@name\@gtempa
% \end{macrocode}
%
@@ -400,7 +405,7 @@ The file \file{template.aps} is a boilerplate file.
\changes{4.1c}{2008/08/15}{Document class option longbibliography via \cs{substyle@post}}
\changes{4.1d}{2009/03/27}{Definition of \cs{ @fnsymbol} follows fixltx2e.sty}
\changes{4.1e}{2008/06/29}{(AO, 455) be nice to a list within the abstract}
-\changes{4.1f}{2009/07/07}{(AO, 513) Add class option linenumbers: number the lines a la \filename{lineno.sty}}
+\changes{4.1f}{2009/07/07}{(AO, 513) Add class option linenumbers: number the lines a la \classname{lineno}}
\changes{4.1f}{2009/07/07}{(AO, 516) Merged references are separated with a semicolon}
\changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
\changes{4.1f}{2009/07/11}{(AO, 521) Lonely bibliography head}%
@@ -411,6 +416,32 @@ The file \file{template.aps} is a boilerplate file.
\changes{4.1g}{2009/10/07}{(AO, 525) Remove phantom paragraph above display math that is given in vertical mode}%
\changes{4.1g}{2009/10/07}{(AO, 538) \cs{MakeTextUppercase} inappropriately expands the double backslash}
\changes{4.1h}{2009/10/09}{(AO) Remove expiry code in the release software}%
+\changes{4.1i}{2009/10/23}{(AO, 541) Defer assignment of \cs{cite} until after natbib loads}
+\changes{4.1j}{2009/10/24}{(AO, 549) Repairing natbib's \cs{BibitemShut} and \cs{bibAnnote}}
+\changes{4.1j}{2009/10/25}{(AO, 545) hypertext capabilities off by default; enable with \classoption{hypertext}}
+\changes{4.1j}{2009/10/25}{(AO, 552) Repair spacing in \cs{onlinecite}}
+\changes{4.1k}{2009/11/06}{(AO, 554) give the \cs{newlabel} command syntax appropriate to the hyperref package}
+\changes{4.1n}{2009/11/06}{(AO, 565) restore 4.0 behavior: invoking class option preprint implies class option preprintnumbers}
+\changes{4.1n}{2009/11/30}{(AO, 566) restore 4.0 behavior: flush column bottoms}
+\changes{4.1n}{2009/12/05}{(AO, 569) Use of \classname{hyperref} interferes with column balancing of last page}%
+\changes{4.1n}{2009/12/09}{(AO, 569) execute the after-last-shipout procedures from within the safety of the output routine}%
+\changes{4.1n}{2010/01/02}{(AO, 571) Interface \cs{set@footnotewidth} for determining the set width of footnotes}%
+\changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
+\changes{4.1n}{2009/12/13}{(AO, 573) arrange to load \classname{lineno} after any other packages.}%
+\changes{4.1n}{2010/01/04}{(AO, 575) the default for journal prstper is longbibliography}%
+\changes{4.1n}{2010/01/04}{(AO, 576) In .bst files, remove support for the annote field}%
+\changes{4.1n}{2010/01/02}{(AO) fine-tune spacing above and below widetext}%
+\changes{4.1n}{2010/01/02}{(AO, 571) class file must set \cs{splittopskip}; fine tune \cs{skip}\cs{footins}; \cs{footnoterule} defined in terms of \cs{skip}\cs{footins}}%
+\changes{4.1n}{2010/01/02}{(AO, 572) \cs{@makefntext} and \cs{frontmatter@makefntext} must be defined harmoniously}%
+\changes{4.1o}{2010/02/02}{(AO, 575) Automatically incorporate the (Bib\TeX-generated) .bbl into an explicit \env{thebibliography}}%
+\changes{4.1o}{2010/02/05}{(AO, 549) Remove patch to natbib, which is now at version 8.31a}
+\changes{4.1o}{2010/02/07}{(AO, 578) accommodate the possible space character preceding \cs{BibitemShut}.}
+\changes{4.1o}{2010/02/05}{(AO, 579) Endnote shall comprise their own Bib\TeX\ entry type: @FOOTNOTE.}
+\changes{4.1o}{2010/02/10}{(AO, 580) Provide a document class option to turn off production of eprint field in bibliography.}
+\changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
+\changes{4.1o}{2010/02/09}{(AO, 581) Handle case: merged references, with first ending in a stop character.}
+\changes{4.1p}{2010/02/24}{(AO, 583) Provide interface to \classname{ltxgrid} \cs{onecolumn@grid@setup} and \cs{twocolumn@grid@setup}}
+\changes{4.1p}{2010/02/24}{(AO, 584) Per MD, remove trailing space character from each journal abbreviation: it had caused an extraneous space in the .bbl}
\end{filecontents*}
% \end{macrocode}
@@ -852,17 +883,20 @@ The file \file{template.aps} is a boilerplate file.
% \subsubsection{Showing preprint numbers}%
%
% \begin{macro}{\preprint@sw}
+% \changes{4.0d}{2000/04/10}{New option}
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
+% \changes{4.1n}{2009/11/06}{(AO, 565) restore 4.0 behavior: default value of \cs{preprint@sw} follows \cs{preprintsty@sw}}
% The boolean \cmd\preprint@sw\ signifies that
% the preprints (cf. \cmd\preprint) are to be formatted (usually on the title page).
% The option \classoption{preprintnumbers} declares to do so,
% \classoption{nopreprintnumbers} declares not to;
% the default is to follow \cmd\preprintsty@sw.
-% \changes{4.0d}{2000/04/10}{New option}
% \begin{macrocode}
\DeclareOption{nopreprintnumbers}{\@booleanfalse\preprint@sw}%
\DeclareOption{preprintnumbers}{\@booleantrue\preprint@sw}%
-\let\preprint@sw\preprintsty@sw
+\appdef\setup@hook{%
+ \@ifxundefined\preprint@sw{\let\preprint@sw\preprintsty@sw}{}%
+}%
% \end{macrocode}
% \end{macro}
%
@@ -1087,6 +1121,18 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\eprint@enable@sw}
+% \changes{4.1o}{2010/02/10}{(AO, 580) Provide a document class option to turn off production of eprint field in bibliography.}
+%
+% The document class options \classoption{eprint} and \classoption{noeprint}
+% give the user the ability to turn off production of the \texttt{eprint} field in the bibliography.
+% \begin{macrocode}
+\DeclareOption{eprint}{\@booleantrue\eprint@enable@sw}%
+\DeclareOption{noeprint}{\@booleanfalse\eprint@enable@sw}%
+\@booleantrue\eprint@enable@sw
+% \end{macrocode}
+% \end{macro}
+%
% \subsubsection{Simplex/Duplex Pages}%
%
% \begin{macro}{\twoside@sw}
@@ -1124,6 +1170,7 @@ The file \file{template.aps} is a boilerplate file.
%
% \begin{macro}{\twocolumn@sw}
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
+% \changes{4.1p}{2010/02/24}{(AO, 583) Provide interface to \classname{ltxgrid} \cs{onecolumn@grid@setup} and \cs{twocolumn@grid@setup}}
% The flag \cmd\twocolumn@sw\ signifies that the document is to be
% formatted in the two-column page grid.
%
@@ -1132,20 +1179,7 @@ The file \file{template.aps} is a boilerplate file.
% Up to that point, the class can check if \cmd\twocolumn@sw\
% is \cmd\undefined\ to see if any related options have been invoked.
%
-% We install into \cmd\class@enddocumenthook\
-% all tasks that we know must be completed at \cmd\AtEndDocument\ time.
-% The first thing it does is end the current paragraph.
-% The last is to return us to one-column page grid.
-% (This procedure is executed after all typesetting is complete
-% i.e., after items like \cmd\printtables.)
-% \begin{macrocode}
-\def\clear@document{%
- \close@column
-}%
-% \end{macrocode}
-%
% \classoption{onecolumn} specifies one-column page grid.
-% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
% The \classoption{twocolumn} class option employs the standard mechanism for
% changing the column grid: the \classname{ltxgrid} package.
% \begin{macrocode}
@@ -1167,9 +1201,15 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macrocode}
\def\select@column@grid{%
\twocolumn@sw{%
+ \twocolumn@grid@setup
\open@twocolumn
}{%
+ \onecolumn@grid@setup
+% \end{macrocode}
+% \begin{verbatim}
% \open@onecolumn
+% \end{verbatim}
+% \begin{macrocode}
}%
}%
\appdef\class@documenthook{%
@@ -1179,6 +1219,30 @@ The file \file{template.aps} is a boilerplate file.
%
% \end{macro}
%
+% \begin{macro}{\clear@document}
+% \changes{4.1n}{2009/12/05}{(AO, 569) Use of \classname{hyperref} interferes with column balancing of last page}%
+%
+% We install into \cmd\class@enddocumenthook\
+% a trap for the procedure \cmd\clearpage\ that attempts to end the current page.
+% This procedure needs to be headpatched with \cmd\close@column\ to end the current page grid.
+%
+% This procedure is executed after all typesetting is complete
+% i.e., after items like \cmd\printtables, as well as all commands queued up by \cmd\AtEndDocument.
+%
+% \begin{macrocode}
+\appdef\setup@hook{%
+ \let\clearpage@ltx\clearpage
+ \prepdef\clear@document{\let\clearpage\clearpage@ltx\let\clear@document\@empty\close@column}%
+ \appdef\class@documenthook{%
+ \appdef\class@enddocumenthook{%
+ \let\clearpage\clear@document
+ }%
+ }%
+}%
+% \end{macrocode}
+%
+% \end{macro}
+%
% \begin{macro}{\authoryear@sw}
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
% The boolean \cmd\authoryear@sw\ signifies that we are to use author-year citations rather than numerical citations.
@@ -1678,8 +1742,16 @@ The file \file{template.aps} is a boilerplate file.
% package \classname{ltxgrid}. Only people who really want to see this output will select these class options.
% Consult documentation for the \classname{ltxgrid} package to see what output the related switches enable.
% \begin{macrocode}
-\DeclareOption{ltxgridinfo}{\@booleantrue\ltxgrid@info@sw}%
-\DeclareOption{outputdebug}{\@booleantrue\outputdebug@sw}%
+\DeclareOption{ltxgridinfo}{%
+ \@booleantrue\ltxgrid@info@sw
+%\@booleantrue\ltxgrid@foot@info@sw
+}%
+\DeclareOption{outputdebug}{%
+ \@booleantrue\outputdebug@sw
+ \@booleantrue\ltxgrid@info@sw
+ \@booleantrue\ltxgrid@foot@info@sw
+ \traceoutput
+}%
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1716,14 +1788,19 @@ The file \file{template.aps} is a boilerplate file.
% \end{macro}
%
% \begin{macro}{\linenumbers@sw}
-% \changes{4.1f}{2009/07/07}{(AO, 513) Add class option linenumbers: number the lines a la \filename{lineno.sty}}
-% An option to number the lines of type in the output in the manner of \filename{lineno.sty}.
+% \changes{4.1f}{2009/07/07}{(AO, 513) Add class option linenumbers: number the lines a la \classname{lineno}}
+% \changes{4.1n}{2009/12/13}{(AO, 573) arrange to load \classname{lineno} after any other packages.}%
+% An option to number the lines of type in the output in the manner of \classname{lineno}.
%
% At present, we use that very package to implement this functionality.
% This means that users may modify the workings of that package per its documentation (which see).
+%
+% However, compatibility with \classname{amsmath} requires that \classname{lineno} be loaded afterwards.
+% Therefore, we defer loading of this package until after the preamble is completed.
% \begin{macrocode}
\DeclareOption{linenumbers}{%
- \appdef\rtx@require@packages{%
+ \appdef
+ \class@documenthook{%
\RequirePackage{lineno}[2005/11/02 v4.41]%
\linenumbersep4pt\relax
\linenumbers\relax
@@ -1830,6 +1907,18 @@ The file \file{template.aps} is a boilerplate file.
% \end{macro}
% \end{macro}
%
+% \changes{4.1j}{2009/10/25}{(AO, 545) hypertext capabilities off by default; enable with \classoption{hypertext}}
+% The class option \classoption{hypertext} enables the built-in hypertext capabilities,
+% which coincide with those of \classname{custom-bib}-generated BIBTeX styles
+% using the guard code \texttt{hypertext}.
+%
+% Note that APS has these capabilities turned off by default;
+% Loading the hyperref package turns them on.
+% \begin{macrocode}
+\DeclareOption{hypertext}{\hypertext@enable@ltx}%
+\appdef\document@inithook{\@ifpackageloaded{hyperref}{\hypertext@enable@ltx}{}}%
+% \end{macrocode}
+%
% The default handling for a document class option depends upon whether the \cmd\@society\ is
% defined.
%
@@ -2034,6 +2123,7 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macro}{\lastpage@putlabel}
% Support the default meaning of \cmd\@endpage.
% \changes{4.0a}{1998/01/31}{Move after process options, so \cs{clearpage} not in scope of twocolumn}
+% \changes{4.1k}{2009/11/06}{(AO, 554) give the \cs{newlabel} command syntax appropriate to the hyperref package}
% Name of this macro (and the \cmd\label\ key) taken from
% \url{CTAN:/macros/latex/contrib/other/lastpage}%
% with code optimised slightly.
@@ -2042,7 +2132,7 @@ The file \file{template.aps} is a boilerplate file.
\if@filesw
\begingroup
\advance\c@page\m@ne
- \immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}}}%
+ \immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}{}{}{}}}%
\endgroup
\fi
}%
@@ -2052,13 +2142,14 @@ The file \file{template.aps} is a boilerplate file.
% This is done just before the \file{.aux} file
% is closed, and does not require a \cmd\shipout, because it writes
% directly to the \file{.aux} file.
-% Note that we invoke \cmd\clearpage: this means that no more typesetting
-% should be done past this point.
+% Note that we assume no further \cmd\shipout s will be done past this point.
+% \changes{4.1n}{2009/12/09}{(AO, 569) execute the after-last-shipout procedures from within the safety of the output routine}%
% \begin{macrocode}
\appdef\clear@document{%
- \clearpage
- \lastpage@putlabel
- \tally@box@size@sw{\total@text}{}%
+ \do@output@cclv{%
+ \lastpage@putlabel
+ \tally@box@size@sw{\total@text}{}%
+ }%
}%
\providecommand\write@column@totals{}%
% \end{macrocode}
@@ -2948,7 +3039,11 @@ The file \file{template.aps} is a boilerplate file.
% \begin{environment}{ruledtabular}
% \begin{macrocode}
\def\endtabular@hook{}%
+% \end{macrocode}
+% \begin{verbatim}
%\RequirePackage{dcolumn}%
+% \end{verbatim}
+% \begin{macrocode}
\appdef\document@inithook{%
\@ifpackageloaded{dcolumn}{%
\expandafter\@ifnotrelax\csname NC@find@d\endcsname{}{%
@@ -3159,6 +3254,33 @@ The file \file{template.aps} is a boilerplate file.
% The procedures |\rtx@def@citea|, |\rtx@def@citea@close|, and |\rtx@def@citea@box|
% can take over the management of \classname{natbib}'s |\@citea| macro to effect more sophisticated
% behavior of the punctuation between textual citations. The switch is performed by \cmd\rtx@swap@citea.
+%
+% \changes{4.1j}{2009/10/25}{(AO, 552) Repair spacing in \cs{onlinecite}}
+% In these procedures, we use \cmd\count@\ to count the number of arguments of the \cmd\cite\ command,
+% and we use \cmd\c@NAT@ctr\ to keep track of which argument we are processing.
+% The latter counter is created by \classname{natbib} and used there solely in bibliography processing,
+% where it keeps track of the reference number.
+% We take over its use in these macros, but only locally; therefore these procedures should work properly, even within the bibliography.
+%FIXME: check whether this is true!
+%
+% Because we are using a scratch counter \cmd\count@, we are vulnerable to other \TeX\ programmers
+% who patch in to \classname{natbib}'s processing and who might use that counter at the same time we are doing so.
+% This is a potential source of trouble for us.
+%FIXME: store the value of \cmd\count@\ in a private \cmd\csname!
+%
+% Note that \cmd\rtx@def@citea\ begins the same as \cmd\NAT@def@citea, which it replaces,
+% then makes further decisions based on the values of the counters.
+%
+% Note also that, in \classname{natbib}, the replacement part of \cmd\NAT@def@citea@close\ could be rewritten as
+% \cmd\NAT@def@citea\cmd\prepdef\cmd\@citea\verb+{+\cmd\NAT@@close\verb+}+, which
+% would them obviate the need for us to override its meaning.
+%
+% Note, too, the effect of \cmd\rtx@def@citea@box, which replaces \cmd\NAT@def@citea@box,
+% is almost the same as the latter, except the entire \cmd\@citea\ is given as the argument
+% of \cmd\NAT@mbox.
+%
+% Finally, bear in mind that the English (and some American editors) do not place a comma
+% before the ``and''; our procedures do (but they could be rewritten with that convention).
% \begin{macrocode}
\def\rtx@swap@citea{%
\let\NAT@def@citea\rtx@def@citea
@@ -3166,8 +3288,8 @@ The file \file{template.aps} is a boilerplate file.
\let\NAT@def@citea@box\rtx@def@citea@box
}%
\def\rtx@def@citea{%
+ \def\@citea{\NAT@separator\NAT@space}%
\advance\c@NAT@ctr\@ne
- \let\@citea\NAT@separator
\@ifnum{\count@>\tw@}{%
\@ifnum{\c@NAT@ctr=\count@}{\appdef\@citea{\NAT@conj\NAT@space}}{}%
}{%
@@ -3190,11 +3312,56 @@ The file \file{template.aps} is a boilerplate file.
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\BibitemShut}
+% \begin{macro}{\bibAnnote}
+% \changes{4.1j}{2009/10/24}{(AO, 549) Repairing natbib's \cs{BibitemShut} and \cs{bibAnnote}}
+% \changes{4.1o}{2010/02/05}{(AO, 549) Remove patch to natbib, which is now at version 8.31a}
+% \changes{4.1o}{2010/02/07}{(AO, 578) accommodate the possible space character preceding \cs{BibitemShut}.}
+% We remember a temporary patch to \classname{natbib}'s definition of \cmd\BibitemShut.
+% \begin{macrocode}
+\def\NAT@BibitemShut#1{%
+ \def\@bibstop{#1}%
+ \let\bibitem@Stop\bibitemStop
+ \let\bibitem@NoStop\bibitemNoStop
+ \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%
+ \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%
+ }%
+}%
+% \end{macrocode}
+% The following is a bug fix to \classname{natbib} version 8.31b.
+% \begin{macrocode}
+\def\BibitemShut@ltx#1{%
+ \unskip
+ \def\@bibstop{#1}%
+ \let\bibitem@Stop\bibitemStop
+ \let\bibitem@NoStop\bibitemNoStop
+ \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%
+ \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{verbatim}
+%\providecommand{\bibAnnote}[3]{%
+% \BibitemShut{#1}%
+% \def\@tempa{#3}\@ifx{\@tempa\@empty}{}{%
+% \begin{quotation}\noindent
+% \textsc{Key:}\ #2\\\textsc{Annotation:}\ \@tempa
+% \end{quotation}%
+% }%
+% \ignorespaces
+%}%
+%\def\@bibitemShut{}%
+% \end{verbatim}
+% \end{macro}
+% \end{macro}
+%
+%
% \begin{macrocode}
\newenvironment{thebibliography}{}{}%
\let\@listi\@empty
\appdef\rtx@require@packages{%
- \RequirePackage[sort&compress]{natbib}[2008/12/08 8.3a (PWD, AO)]%
+ \RequirePackage[sort&compress]{natbib}[2009/11/07 8.31a (PWD, AO)]%
\let@environment{NAT@thebibliography}{thebibliography}%
\let@environment{thebibliography}{rtx@thebibliography}%
\let\bibliographystyle@latex\bibliographystyle
@@ -3252,6 +3419,13 @@ The file \file{template.aps} is a boilerplate file.
\let\onlinecite\rev@citealp
\let\textcite\rev@citet
% \end{macrocode}
+% The following is needed until \classname{natbib} is at 8.31b.
+% \begin{macrocode}
+\@ifx{\BibitemShut\NAT@BibitemShut}{%
+ \class@info{Repairing natbib's \string\BibitemShut}%
+ \let\BibitemShut\BibitemShut@ltx
+}{}%
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -3272,11 +3446,49 @@ The file \file{template.aps} is a boilerplate file.
\let\bibliographystyle@latex\bibliographystyle
\def\bibliographystyle{\def\@bibstyle}%
% \end{macrocode}
-% We customize one of the productions of \classname{natbib}.
+% \end{macro}
+%
+% \changes{4.1j}{2009/11/03}{(AO, 551) Punctuation at end of reference when optional arguments to the cite key are given.}
+% The following had been bug fixes to \classname{natbib} version 8.31a.
+% \begin{verbatim}
+%\def\bibitemStop{\@bibitemShut}%
+%\def\NAT@bibitem@cont{%
+% \let\bibitem@Stop\bibitemContinue
+% \let\bibitem@NoStop\bibitemContinue
+%}%
+% \end{verbatim}
+% The following are alterations to \classname{natbib} version 8.31a to
+% accommodate the possible space character preceding \cmd\BibitemShut,
+% and to handle the case of merged references, where the first ends with a stop character.
+% \changes{4.1o}{2010/02/07}{(AO, 578) accommodate the possible space character preceding \cs{BibitemShut}.}
+% \changes{4.1o}{2010/02/09}{(AO, 581) Handle case: merged references, with first ending in a stop character.}
% \begin{macrocode}
-\let\bibitemContinue\bibitemContinue@rtx
+\def\NAT@bibitem@cont{%
+ \let\bibitem@Stop\bibitemContinue@Stop
+ \let\bibitem@NoStop\bibitemContinue
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\bibitemNoStop{%
+ \@ifx@empty\@bibitemShut{.\spacefactor\@mmm\space}{\@bibitemShut}%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\bibitemContinue{%
+ \@ifx@empty\@bibitemShut{;\spacefactor\@mmm\space}{\@bibitemShut}%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\bibitemContinue@Stop{%
+ \@ifx@empty\@bibitemShut{\spacefactor\@mmm\space}{\@bibitemShut}%
+}%
% \end{macrocode}
-% \end{macro}
+%
+% \changes{4.1k}{2009/11/11}{(AO, 561) remove dead code relating to \cs{bibitemContinue}}
+% We used to customize one of the productions of \classname{natbib}, but no longer.
+% \begin{verbatim}
+%\let\bibitemContinue\bibitemContinue@rtx
+% \end{verbatim}
%
% Here ends the code to be executed at \cmd\rtx@require@packages\ time.
% \begin{macrocode}
@@ -3284,9 +3496,10 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
% \changes{4.1f}{2009/07/07}{(AO, 516) Merged references are separated with a semicolon}
% Redefine a macro of \classname{natbib} so that merged references are separated with a semicolon.
-% \begin{macrocode}
-\def\bibitemContinue@rtx{;\spacefactor\@mmm\space}%
-% \end{macrocode}
+% \changes{4.1k}{2009/11/11}{(AO, 561) remove dead code relating to \cs{bibitemContinue}}
+% \begin{verbatim}
+% \def\bibitemContinue@rtx{;\spacefactor\@mmm\space}%
+% \end{verbatim}
%
% \begin{macro}{\onlinecite}
% \begin{macro}{\textcite}
@@ -3315,16 +3528,19 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macrocode}
\let\bibliography@latex\bibliography
\def\bibliography#1{%
- \@ifx@empty{\pre@bibdata}{%
- \bibliography@latex{#1}%
- }{%
- \@if@empty{#1}{%
- \expandafter\bibliography@latex\expandafter{\pre@bibdata}%
+ \auto@bib@empty
+ \begingroup
+ \let\auto@bib@innerbib\@empty
+ \@ifx@empty{\pre@bibdata}{%
+ \bibliography@latex{#1}%
}{%
- \expandafter\bibliography@latex\expandafter{\pre@bibdata,#1}%
+ \@if@empty{#1}{%
+ \expandafter\bibliography@latex\expandafter{\pre@bibdata}%
+ }{%
+ \expandafter\bibliography@latex\expandafter{\pre@bibdata,#1}%
+ }%
}%
- }%
- \let\auto@bib\@empty
+ \endgroup
}%
\let\pre@bibdata\@empty
% \end{macrocode}
@@ -3340,6 +3556,8 @@ The file \file{template.aps} is a boilerplate file.
% might want to override the definition of \cmd\present@bibnote.
%
% \changes{4.1f}{2009/07/11}{(AO, 521) Lonely bibliography head}%
+% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
+% \changes{4.1o}{2010/02/02}{(AO, 575) Automatically incorporate the (Bib\TeX-generated) .bbl into an explicit \env{thebibliography}}%
% We make provisions for the case where there are no \cmd\bibitem s
% for the bibliography: we produce no bibliography head at all.
%
@@ -3348,12 +3566,18 @@ The file \file{template.aps} is a boilerplate file.
\NAT@thebibliography{#1}%
\let\@TBN@opr\present@bibnote
\@FMN@list
+ \auto@bib@innerbib
}{%
+% \end{macrocode}
+% The following line was commented out:
+% \begin{verbatim}
%\@endnotesinbib
+% \end{verbatim}
+% \begin{macrocode}
\edef\@currentlabel{\arabic{NAT@ctr}}%
\label{LastBibItem}%
\endNAT@thebibliography
- \global\let\auto@bib\@empty
+ \aftergroup\auto@bib@empty
}%
\def\present@bibnote#1#2{%
\item[%
@@ -3361,12 +3585,17 @@ The file \file{template.aps} is a boilerplate file.
\normalfont
\Hy@raisedlink{\hyper@anchorstart{frontmatter.#1}\hyper@anchorend}%
\begingroup
- \c@footnote#1\relax
+ \csname c@\@mpfn\endcsname#1\relax
\frontmatter@thefootnote
\endgroup
}%
]#2\par
+% \end{macrocode}
+% The following line was commented out:
+% \begin{verbatim}
%\global\let\NAT@bibitem@first@sw\@secondoftwo
+% \end{verbatim}
+% \begin{macrocode}
}%
% \end{macrocode}
% \end{macro}
@@ -3402,7 +3631,7 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macro}{\super@cite@end}
% \begin{macro}{\super@cite@swap}
% We wish to extend \classname{natbib} to move spaces and citations around
-% a subscript style citation, imitating Donald Arseneau's \classname{cite} package
+% a superscript-style citation, imitating Donald Arseneau's \classname{cite} package
% with the \classoption{super}.
%
% The \cmd\rtx@@citetp\ procedure is substituted for \cmd\NAT@@citetp;
@@ -3475,6 +3704,9 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% The following must execute only after \classname{natbib} is loaded and has set
% up its parameters (which it does at \cmd\AtBeginDocument\ time).
@@ -3507,11 +3739,13 @@ The file \file{template.aps} is a boilerplate file.
%
% \begin{macro}{\mini@note}
% \begin{macro}{\save@note}
+% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
+% QUERY: how do footnotes get thrown to the bibliography. \cmd\footinbib@sw\ appears to be irrelevant.
% \begin{macrocode}
\def\mini@note{\save@note\mini@notes}%Implicit #2
\def\save@note#1#2{%
- \stepcounter{footnote}%
- \protected@xdef\@thefnmark{\the\c@footnote}%
+ \stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
\@footnotemark
\expandafter\g@addto@macro
\expandafter#1%
@@ -3627,17 +3861,16 @@ The file \file{template.aps} is a boilerplate file.
%}%
% \end{verbatim}
%
-% \begin{macro}{\@doendnote}
% \cmd\@doendnote\ is obsolete.
% \begin{verbatim}
%\def\@doendnote#1#2{\bibitem{#1}#2}%
% \end{verbatim}
-% \end{macro}
%
+% \changes{4.1o}{2010/02/05}{(AO, 579) Endnote shall comprise their own Bib\TeX\ entry type: @FOOTNOTE.}
% Procedure \cmd\@endnotetext\ is the operative procedure\ when the endnotes are to be
% collated in with the other references, typically true when numerical citations are being used.
% The technique involves writing a .bib file (\cmd\@bibdataout) with each endnote typed as
-% a \texttt{@MISC} entry.
+% a \texttt{@FOOTNOTE} entry.
%
% Timing note: doing \cmd\openout\ should be deferred until the beginning of the document,
% as is done here. This allows one to make a format (\filename{.fmt}) file out of this class.
@@ -3645,14 +3878,27 @@ The file \file{template.aps} is a boilerplate file.
\long\def\@endnotetext#1{%
\begingroup
\endnote@relax
- \immediate\write\@bibdataout{@MISC{\@endnotelabel,note="#1"}}%year="\@endnotelabel",
+ \immediate\write\@bibdataout{%
+ @FOOTNOTE{%
+ \@endnotelabel,%
+% \end{macrocode}
+% The \texttt{key} field is recommended in cases where there is no author (see \filename{btxdoc}).
+% \begin{macrocode}
+ key="\@endnotelabel",%
+% \end{macrocode}
+% The \texttt{note} field is simply the content of the footnote.
+% \begin{macrocode}
+ note="#1"%
+ }%
+ }%
\endgroup
}%
\newwrite\@bibdataout
-\appdef\class@documenthook{%
- \immediate\openout\@bibdataout\pre@bibdata.\bibdata@ext\relax
-}%
% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\endnote@relax}
+% At \cmd\AtBeginDocument\ time, we open the job's \filename{.bib} file.
%
% Procedure \cmd\endnote@relax\ robustifies commands that ought not to be expanded when
% the endnote is written out.
@@ -3663,41 +3909,59 @@ The file \file{template.aps} is a boilerplate file.
\let\cite \relax \let\ref \relax \let\pageref \relax
\let\( \relax \let\) \relax \let\\ \relax
\let~\relax
+% \end{macrocode}
+% \begin{verbatim}
%\let\protect\noexpand
+% \end{verbatim}
+% \begin{macrocode}
\let \protect \@unexpandable@protect
\newlinechar`\^^M%
+% \end{macrocode}
+% \begin{verbatim}
%\newlinechar`\ %
+% \end{verbatim}
+% \begin{macrocode}
\let\begin\relax \let\end\relax
}%
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\endnotetext}
-% \begin{verbatim}
-%\def\unused@endnotetext{%
-% \@ifnextchar[{%
-% \@xendnotenext
-% }{%
-% \protected@xdef\@thefnmark{\thefootnote}%
-% \@endnotetext
-% }%
-%}%
-% \end{verbatim}
+% \begin{macro}{\@bibdataout@init}
+% \begin{macro}{\@bibdataout@aps}
+% \changes{4.1o}{2010/02/10}{(AO, 580) Provide a document class option to turn off production of eprint field in bibliography.}
+% \changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
+% At \cmd\AtBeginDocument\ time, we open the job's \filename{.bib} file.
+% The hook is available for use by a society to place its own @CONTROL record in the \cmd\@bibdataout\ stream.
+% \begin{macrocode}
+\appdef\class@documenthook{\@bibdataout@init}%
+\def\@bibdataout@init{%
+ \immediate\openout\@bibdataout\pre@bibdata.\bibdata@ext\relax
+ \@bibdataout@rev
+}%
+\def\@bibdataout@rev{%
+ \immediate\write\@bibdataout{%
+% \end{macrocode}
+% The entry that controls processing of the \filename{.bst} file has entry type \texttt{@CONTROL}.
+% The citation key (REVTEX41Control) is effectively a version number,
+% which the \filename{.bst} can use to interpret the bib entry.
+% \begin{macrocode}
+ @CONTROL{%
+ REVTEX41Control%
+% \end{macrocode}
+% Say if we want the \texttt{eprint} field disabled. Otherwise accept the default of the \filename{.bst}.
+% \begin{macrocode}
+ \eprint@enable@sw{}{,eprint=""}%
+ }%
+ }%
+% \end{macrocode}
+% Place a \cmd\citation\ into the auxiliary file corresponding to this entry.
+% \begin{macrocode}
+ \if@filesw
+ \immediate\write\@auxout{\string\citation{REVTEX41Control}}%
+ \fi
+}%
+% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\@xendnotenext}
-% \begin{verbatim}
-%\def\unused@xendnotenext[#1]{%
-% \begingroup
-% \c@footnote#1\relax
-% \unrestored@protected@xdef\@thefnmark{\thefootnote}%
-% \endgroup
-% \@endnotetext
-%}%
-% \end{verbatim}
% \end{macro}
%
% \begin{macro}{\printendnotes}
@@ -3711,57 +3975,6 @@ The file \file{template.aps} is a boilerplate file.
\class@warn{The \string\printendnotes\space command no longer serves any function. Please remove it from your document.}%
}%
% \end{macrocode}
-% \begin{verbatim}
-%\def\printendnotes{%
-% \@ifx{\@endnoteout\@undefined}{}{%
-% \begingroup
-% \c@secnumdepth-\maxdimen
-% \section{%
-% \notesname
-% }%
-% \immediate\closeout\@endnoteout
-% \global\let\@endnoteout\@undefined
-% \begin{enumerate}%
-% \makeatletter
-% \input{\endnote@stream}%
-% \end{enumerate}%
-% \endgroup
-% }%
-%}%
-%\appdef\class@enddocumenthook{%
-% \printendnotes
-%}%
-% \end{verbatim}
-% \end{macro}
-%
-% \begin{macro}{\firstnote@num}
-% \begin{macro}{\set@firstnote}
-%
-% In \revtex, we have permanently altered the way
-% that the footnote counter gets reset at the beginning
-% of the document.
-%
-% If footnotes appear in the bibliography, we initialise
-% the footnote counter to number of cites (found last time)
-% via \cmd\set@firstnote.
-% \changes{4.1a}{2008/01/18}{(AO, 451) ``Cannot have more than 256 cites in a document''}%
-%
-% \begin{macrocode}
-\mathchardef\firstnote@num\z@
-\appdef\class@documenthook{%
- \global\c@footnote\firstnote@num
- \appdef\maketitle{\global\c@footnote\firstnote@num}%
-}%
-\def\set@firstnote#1{%
- \@ifnum{\firstnote@num=#1\relax}{}{%
- \class@warn@end{Endnote numbers changed: rerun LaTeX}%
- }%
- \immediate\write\@mainaux{%
- \global\mathchardef\string\firstnote@num#1\relax
- }%
-}%
-% \end{macrocode}
-% \end{macro}
% \end{macro}
%
% \begin{macro}{\@endnotesinbib}
@@ -3782,21 +3995,6 @@ The file \file{template.aps} is a boilerplate file.
% the counter used in \env{thebibliography} is \cmd\c@NAT@ctr.
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
%
-% Obsolete code is commented out.
-% \begin{verbatim}
-%\def\@endnotesinbib{%
-% \set@firstnote\z@
-%}%
-%\def\@endnotesinbibliography{%
-% \expandafter\set@firstnote\expandafter{\the\c@NAT@ctr}%
-% \@ifx{\@endnoteout\@undefined}{}{%
-% \immediate\closeout\@endnoteout
-% \global\let\@endnoteout\@undefined
-% \makeatletter
-% \input{\endnote@stream}%
-% }%
-%}%
-% \end{verbatim}
% Here is the sole place where \cmd\footinbib@sw\ has an effect, other code simple assigning its value.
% If it is false, or \cmd\authoryear@sw\ is true, then footnotes are handled by the default mechanism.
% \begin{macrocode}
@@ -3851,7 +4049,14 @@ The file \file{template.aps} is a boilerplate file.
% \end{macro}
%
% \begin{macro}{\auto@bib}
+% \begin{macro}{\auto@bib@empty}
+% \begin{macro}{\test@bbl@sw}
+% \begin{macro}{\bibitem@set}
+% \begin{macro}{\auto@bib@innerbib}
+% \begin{macro}{\thebibliography@nogroup}
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
+% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
+% \changes{4.1o}{2010/02/02}{(AO, 575) Automatically incorporate the (Bib\TeX-generated) .bbl into an explicit \env{thebibliography}}%
% Under some circumstances, we must typeset the bibliography automatically.
% If the document requires footnotes to be set in the bibliography (effectively, class option \texttt{footinbib}),
% or that frontmatter footnotes be set in the bibliography (effectively, class option \texttt{bibnotes}),
@@ -3870,7 +4075,7 @@ The file \file{template.aps} is a boilerplate file.
\def\auto@bib{%
\@ifx@empty\@FMN@list{%
\footinbib@sw{%
- \@ifnum{\thefootnote>\z@}{%
+ \@ifnum{\csname c@\@mpfn\endcsname>\z@}{%
\true@sw
}{%
\test@bbl@sw
@@ -3885,15 +4090,17 @@ The file \file{template.aps} is a boilerplate file.
\bibliography{}%
}{}%
}%
+\def\auto@bib@empty{%
+ \let\auto@bib\@empty
+}%
% \end{macrocode}
% Testing the \filename{.bbl} file involves defanging all expected commands
% and processing that file inside a box register (that will be simply discarded).
-% We provide a new meaning for the \cmd\bibitem\ command: it sets a Boolean.
+% We provide a new meaning for the \cmd\bibitem\ command: it queues a Boolean.
% \begin{macrocode}
\def\test@bbl@sw{%
- \begingroup
+ \setbox\z@\vbox\bgroup
\let\providecommand\providecommand@j@nk
- \let@environment{thebibliography}{thebibliography@nogroup}%
\let\bibfield\@gobbletwo
\let\bibinfo\@gobbletwo
\let\translation\@gobble
@@ -3908,10 +4115,13 @@ The file \file{template.aps} is a boilerplate file.
\let\emph\@gobble
\@booleanfalse\bibitem@sw
\let\bibitem\bibitem@set
- \setbox\z@\vbox{\IfFileExists {\jobname.bbl}{\@@input\@filef@und}{}}%
+ \auto@bib@innerbib
\bibitem@sw{\aftergroup\true@sw}{\aftergroup\false@sw}%
- \endgroup
+ \egroup
}%
+% \end{macrocode}
+% The \cmd\bibitem@set\ is an alias for \cmd\bibitem\ for the purpose of detecting a non-trivial bibliography.
+% \begin{macrocode}
\newcommand\bibitem@set[1][]{%
\bibitem@sw{}{%
\@booleantrue\bibitem@sw
@@ -3919,6 +4129,25 @@ The file \file{template.aps} is a boilerplate file.
}%
}%
% \end{macrocode}
+% The \cmd\auto@bib@innerbib\ procedure reads in the \filename{.bbl} file (if it exists)
+% within a context where its \env{thebibliography} environment does nothing, not even establishing a group.
+% \begin{macrocode}
+\def\auto@bib@innerbib{%
+ \begingroup
+ \let@environment{thebibliography}{thebibliography@nogroup}%
+ \bibliography{}%
+ \endgroup
+}%
+% \end{macrocode}
+% Environment \env{thebibliography@nogroup} is an alias of the \env{thebibliography} environment that cancels itself.
+% It assumes that it is called within a \env{thebibliography} environment.
+% \begin{macrocode}
+\def\thebibliography@nogroup#1{%
+ \endgroup
+ \def\@currenvir{thebibliography}%
+}%
+\def\endthebibliography@nogroup{\begingroup}%
+% \end{macrocode}
% The following should be part of \filename{ltxutil}.
% \begin{macrocode}
\long\def \@gobblethree #1#2#3{}%
@@ -3932,10 +4161,13 @@ The file \file{template.aps} is a boilerplate file.
}%
}%
}%
-\def\thebibliography@nogroup#1{\endgroup\def\@currenvir{thebibliography}}%
-\def\endthebibliography@nogroup{\begingroup}%
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \section{Initial setup}
%
@@ -4079,7 +4311,7 @@ The file \file{template.aps} is a boilerplate file.
% DPC: We're in galley style so do a lob sided display environment.
%
% QUERY: How can we be sure that we are in galley style?
-% ANSWER: as noted elsewhere, require both \cmd\twocolumn@sw\ and \cmd\preprintsty@sw\ to be false.
+% ANSWER: as noted elsewhere, require that both \cmd\twocolumn@sw\ and \cmd\preprintsty@sw\ be false.
% \begin{macrocode}
\def\galley@outdent{\rightmargin-\columnwidth\advance\rightmargin-\columnsep}%
\let\widetext@outdent\@empty
@@ -4114,16 +4346,14 @@ The file \file{template.aps} is a boilerplate file.
% \changes{4.0c}{1999/11/13}{grid changes with ltxgrid}
%
% Note that, for the procedure \cmd\close@column@grid,
-% we balance columns by switching to the one-column page grid,
-% then we return to a two-column page grid in anticipation of the
-% upcoming \cmd\clearpage.
+% we balance columns by switching to the one-column page grid.
% \begin{macrocode}
\def\title@column@grid#1{%
\minipagefootnote@init
\onecolumngrid
\begingroup
\let\@footnotetext\frontmatter@footnotetext
- \let\set@footnotewidth\set@footnotewidth@ii
+%<ignore> \let\set@footnotewidth\set@footnotewidth@two
\ltx@no@footnote
#1%
\endgroup
@@ -4133,7 +4363,7 @@ The file \file{template.aps} is a boilerplate file.
\def\close@column@grid{%
\balancelastpage@sw{%
\onecolumngrid
-% \twocolumngrid
+%<ignore> \twocolumngrid
}{}%
}%
% \end{macrocode}
@@ -4149,34 +4379,39 @@ The file \file{template.aps} is a boilerplate file.
%
% Note that we set adornments above and below the \env{widettext}.
% These are set as leaders, so they will disappear at a page break.
+% \changes{4.1n}{2010/01/02}{(AO) fine-tune spacing above and below widetext}%
% \begin{macrocode}
\newenvironment{widetext@grid}{%
\par\ignorespaces
\setbox\widetext@top\vbox{%
- \vskip15\p@
+%<ignore> \vskip15\p@
\hb@xt@\hsize{%
\leaders\hrule\hfil
\vrule\@height6\p@
}%
- \vskip6\p@
+%<ignore> \vskip6\p@
}%
\setbox\widetext@bot\hb@xt@\hsize{%
\vrule\@depth6\p@
\leaders\hrule\hfil
}%
\onecolumngrid
+ \vskip10\p@
\dimen@\ht\widetext@top\advance\dimen@\dp\widetext@top
\cleaders\box\widetext@top\vskip\dimen@
- \let\set@footnotewidth\set@footnotewidth@ii
+%<ignore> \let\set@footnotewidth\set@footnotewidth@two
+ \vskip6\p@
\prep@math@patch
}{%
\par
+ \vskip6\p@
\setbox\widetext@bot\vbox{%
\hb@xt@\hsize{\hfil\box\widetext@bot}%
- \vskip14\p@
+%<ignore> \vskip14\p@
}%
\dimen@\ht\widetext@bot\advance\dimen@\dp\widetext@bot
\cleaders\box\widetext@bot\vskip\dimen@
+ \vskip8.5\p@
\twocolumngrid\global\@ignoretrue
\@endpetrue
}%
@@ -4190,6 +4425,13 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macrocode}
\def\set@page@grid{%
\twocolumn@sw{%
+% \end{macrocode}
+% The following two assignments determine what procedures are to be executed when
+% the footnote set width is calculated, and how footnotes are to be composed at the bottom of the page.
+% A society or journal wishing to do otherwise will override this code.
+% \begin{macrocode}
+ \let\set@footnotewidth\set@footnotewidth@two
+ \let\compose@footnotes\compose@footnotes@two
\let@environment{widetext}{widetext@grid}%
\let\title@column\title@column@grid
\let\close@column\close@column@grid
@@ -4564,7 +4806,7 @@ The file \file{template.aps} is a boilerplate file.
%
% \section{Patches for lineno.sty}
%
-% The \filename{lineno.sty} package detects the case where the package has been loaded
+% The \classname{lineno} package detects the case where the package has been loaded
% and the document invokes \cmd\linelabel, but the \cmd\linenumbers\ command has not been
% issued: it treats this case as an error.
%
@@ -4591,7 +4833,7 @@ The file \file{template.aps} is a boilerplate file.
% If appropriate, enable line numbering within the abstract.
%
% This mechanism applies generally:
-% Create the box in a context in which the meaning of \cmd\par\ has been patched by \filename{lineno.sty},
+% Create the box in a context in which the meaning of \cmd\par\ has been patched by \classname{lineno},
% then \cmd\unvbox\ the box in a context where \cmd\set@linepenalties\ has been executed, and
% follow up with \cmd\@linenumberpar, which forces a visit to the output routine just there.
% Note that here, we have to de-fang \cmd\@LN@parpgbrk, which would otherwise causes the appearance
@@ -4763,26 +5005,26 @@ The file \file{template.aps} is a boilerplate file.
% Warn if past maturation date. This code to be enabled only in beta software.
% \changes{4.1f}{2009/07/11}{(AO, 522) Warn if software is expired}%
% \changes{4.1h}{2009/10/09}{(AO) Remove expiry code in the release software}%
-% \begin{verbatim}
-% \def\rtx@fin@year{2010}%
-% \def\rtx@fin@month{01}%
-% \def\rtx@fin@day{01}%
-% \end{verbatim}
% \begin{macrocode}
-\def\rtx@fin@warn{%
- \@ifnum{\rtx@fin@year>\the\year\relax}{\true@sw}{%
- \@ifnum{\rtx@fin@month>\the\month\relax}{\true@sw}{%
- \@ifnum{\rtx@fin@day>\the\day\relax}{\true@sw}{%
- \false@sw
+%<*ignore>
+ \def\rtx@fin@year{2010}%
+ \def\rtx@fin@month{01}%
+ \def\rtx@fin@day{01}%
+ \def\rtx@fin@warn{%
+ \@ifnum{\rtx@fin@year>\the\year\relax}{\true@sw}{%
+ \@ifnum{\rtx@fin@month>\the\month\relax}{\true@sw}{%
+ \@ifnum{\rtx@fin@day>\the\day\relax}{\true@sw}{%
+ \false@sw
+ }%
}%
}%
+ {%
+ \class@info{Beta software expires \rtx@fin@year-\rtx@fin@month-\rtx@fin@day; updates available at http://publish.aps.org/revtex4/}%
+ }{%
+ \class@warn{Outdated software expired \rtx@fin@year-\rtx@fin@month-\rtx@fin@day; please retrieve an update at http://publish.aps.org/revtex4/}%
+ }%
}%
- {%
- \class@info{Beta software expires \rtx@fin@year-\rtx@fin@month-\rtx@fin@day; updates available at http://publish.aps.org/revtex4/}%
- }{%
- \class@warn{Outdated software expired \rtx@fin@year-\rtx@fin@month-\rtx@fin@day; please retrieve an update at http://publish.aps.org/revtex4/}%
- }%
-}%
+%</ignore>
% \end{macrocode}
% In shipping (non-beta) software, the following line should be commented out.
% \changes{4.1f}{2009/07/11}{(AO, 522) Warn if software is expired}%
@@ -5166,8 +5408,10 @@ The file \file{template.aps} is a boilerplate file.
\headsep 16pt
% \end{macrocode}
%
+% \changes{4.1n}{2010/01/02}{(AO, 571) class file must set \cs{splittopskip}; fine tune \cs{skip}\cs{footins}; \cs{footnoterule} defined in terms of \cs{skip}\cs{footins}}%
% \begin{macrocode}
\topskip 10pt
+\splittopskip\topskip
% \end{macrocode}
%
% \begin{macrocode}
@@ -5187,10 +5431,14 @@ The file \file{template.aps} is a boilerplate file.
\columnseprule 0pt
% \end{macrocode}
%
+% \changes{4.1n}{2010/01/02}{(AO, 571) class file must set \cs{splittopskip}; fine tune \cs{skip}\cs{footins}; \cs{footnoterule} defined in terms of \cs{skip}\cs{footins}}%
% \begin{macrocode}
\footnotesep 1pt
-\skip\footins 39pt plus 4pt minus 2pt
-\def\footnoterule{\kern-19pt\hrule width.5in\kern18.6pt\relax}%
+\skip\footins 39pt plus 4pt minus 12pt
+\def\footnoterule{%
+ \dimen@\skip\footins\divide\dimen@\tw@
+ \kern-\dimen@\hrule width.5in\kern\dimen@
+}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -5519,8 +5767,10 @@ The file \file{template.aps} is a boilerplate file.
\headsep 25pt
% \end{macrocode}
%
+% \changes{4.1n}{2010/01/02}{(AO, 571) class file must set \cs{splittopskip}; fine tune \cs{skip}\cs{footins}; \cs{footnoterule} defined in terms of \cs{skip}\cs{footins}}%
% \begin{macrocode}
\topskip 10pt
+\splittopskip\topskip
% \end{macrocode}
%
% \begin{macrocode}
@@ -5550,10 +5800,14 @@ The file \file{template.aps} is a boilerplate file.
\columnseprule 0pt
% \end{macrocode}
%
+% \changes{4.1n}{2010/01/02}{(AO, 571) class file must set \cs{splittopskip}; fine tune \cs{skip}\cs{footins}; \cs{footnoterule} defined in terms of \cs{skip}\cs{footins}}%
% \begin{macrocode}
\footnotesep 1pt
-\skip\footins 25.25pt plus 4pt minus 2pt
-\def\footnoterule{\kern-5.25pt\hrule width.5in\kern4.85pt\relax}
+\skip\footins 25.25pt plus 4pt minus 12pt
+\def\footnoterule{%
+ \dimen@\skip\footins\divide\dimen@\f@ur
+ \kern-\dimen@\hrule width.5in\kern\dimen@
+}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -5711,39 +5965,40 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
%
% \subsection{Abbreviations}%
+% \changes{4.1p}{2010/02/24}{(AO, 584) Per MD, remove trailing space character from each journal abbreviation: it had caused an extraneous space in the .bbl}
% The following macros constitute typing shortcuts for
% certain journal names.
% \begin{macrocode}
-\def\ao{Appl.\ Opt.\ }%
-\def\ap{Appl.\ Phys.\ }%
-\def\apl{Appl.\ Phys.\ Lett.\ }%
-\def\apj{Astrophys.\ J.\ }%
-\def\bell{Bell Syst.\ Tech.\ J.\ }%
-\def\jqe{IEEE J.\ Quantum Electron.\ }%
-\def\assp{IEEE Trans.\ Acoust.\ Speech Signal Process.\ }%
-\def\aprop{IEEE Trans.\ Antennas Propag.\ }%
-\def\mtt{IEEE Trans.\ Microwave Theory Tech.\ }%
-\def\iovs{Invest.\ Ophthalmol.\ Vis.\ Sci.\ }%
-\def\jcp{J.\ Chem.\ Phys.\ }%
-\def\jmo{J.\ Mod.\ Opt.\ }%
-\def\josa{J.\ Opt.\ Soc.\ Am.\ }%
-\def\josaa{J.\ Opt.\ Soc.\ Am.\ A }%
-\def\josab{J.\ Opt.\ Soc.\ Am.\ B }%
-\def\jpp{J.\ Phys.\ (Paris) }%
-\def\nat{Nature (London) }%
-\def\oc{Opt.\ Commun.\ }%
-\def\ol{Opt.\ Lett.\ }%
-\def\pl{Phys.\ Lett.\ }%
-\def\pra{Phys.\ Rev.\ A }%
-\def\prb{Phys.\ Rev.\ B }%
-\def\prc{Phys.\ Rev.\ C }%
-\def\prd{Phys.\ Rev.\ D }%
-\def\pre{Phys.\ Rev.\ E }%
-\def\prl{Phys.\ Rev.\ Lett.\ }%
-\def\rmp{Rev.\ Mod.\ Phys.\ }%
-\def\pspie{Proc.\ Soc.\ Photo-Opt.\ Instrum.\ Eng.\ }%
-\def\sjqe{Sov.\ J.\ Quantum Electron.\ }%
-\def\vr{Vision Res.\ }%
+\def\ao{Appl.\ Opt.}%
+\def\ap{Appl.\ Phys.}%
+\def\apl{Appl.\ Phys.\ Lett.}%
+\def\apj{Astrophys.\ J.}%
+\def\bell{Bell Syst.\ Tech.\ J.}%
+\def\jqe{IEEE J.\ Quantum Electron.}%
+\def\assp{IEEE Trans.\ Acoust.\ Speech Signal Process.}%
+\def\aprop{IEEE Trans.\ Antennas Propag.}%
+\def\mtt{IEEE Trans.\ Microwave Theory Tech.}%
+\def\iovs{Invest.\ Ophthalmol.\ Vis.\ Sci.}%
+\def\jcp{J.\ Chem.\ Phys.}%
+\def\jmo{J.\ Mod.\ Opt.}%
+\def\josa{J.\ Opt.\ Soc.\ Am.}%
+\def\josaa{J.\ Opt.\ Soc.\ Am.\ A}%
+\def\josab{J.\ Opt.\ Soc.\ Am.\ B}%
+\def\jpp{J.\ Phys.\ (Paris)}%
+\def\nat{Nature (London)}%
+\def\oc{Opt.\ Commun.}%
+\def\ol{Opt.\ Lett.}%
+\def\pl{Phys.\ Lett.}%
+\def\pra{Phys.\ Rev.\ A}%
+\def\prb{Phys.\ Rev.\ B}%
+\def\prc{Phys.\ Rev.\ C}%
+\def\prd{Phys.\ Rev.\ D}%
+\def\pre{Phys.\ Rev.\ E}%
+\def\prl{Phys.\ Rev.\ Lett.}%
+\def\rmp{Rev.\ Mod.\ Phys.}%
+\def\pspie{Proc.\ Soc.\ Photo-Opt.\ Instrum.\ Eng.}%
+\def\sjqe{Sov.\ J.\ Quantum Electron.}%
+\def\vr{Vision Res.}%
% \end{macrocode}
%
% \subsection{APS Setup}%
@@ -5901,7 +6156,12 @@ The file \file{template.aps} is a boilerplate file.
\def\frontmatter@abstractwidth{\textwidth}%
\def\frontmatter@affiliationfont{\it}%
\let\section\section@preprintsty
+% \end{macrocode}
+% The following line of code had been commented out at this point.
+% \begin{verbatim}
% \let\@hangfrom@section\@hangfrom@section@preprintsty
+% \end{verbatim}
+% \begin{macrocode}
\let\subsection\subsection@preprintsty
\let\subsubsection\subsubsection@preprintsty
}{%
@@ -5925,9 +6185,14 @@ The file \file{template.aps} is a boilerplate file.
\advance\baselineskip\p@
\parskip11.5\p@\relax
\@flushglue\skip@
+% \end{macrocode}
+% The following line of code had been commented out at this point.
+% \begin{verbatim}
%\preprintsty@sw{}{%
% \addvspace{0\p@}%
%}%
+% \end{verbatim}
+% \begin{macrocode}
}%
% \end{macrocode}
% \end{macro}
@@ -5937,9 +6202,14 @@ The file \file{template.aps} is a boilerplate file.
% APS Journals have 24 points b-b above an affiliation group.
% \begin{macrocode}
\def\frontmatter@above@affilgroup{%
+% \end{macrocode}
+% The following line of code had been commented out at this point.
+% \begin{verbatim}
%\preprintsty@sw{}{%
% \addvspace{11\p@}%
%}%
+% \end{verbatim}
+% \begin{macrocode}
}%
% \end{macrocode}
% \end{macro}
@@ -5958,7 +6228,12 @@ The file \file{template.aps} is a boilerplate file.
}%
\def\frontmatter@above@affiliation{%
\preprintsty@sw{}{%
+% \end{macrocode}
+% The following line of code had been commented out at this point.
+% \begin{verbatim}
% \addvspace{12\p@}%
+% \end{verbatim}
+% \begin{macrocode}
}%
}%
% \end{macrocode}
@@ -6035,7 +6310,12 @@ The file \file{template.aps} is a boilerplate file.
\def\frontmatter@RRAP@format{%
\small
\centering
+% \end{macrocode}
+% The following line of code had been commented out at this point.
+% \begin{verbatim}
% \preprintsty@sw{}{\parskip.5ex\relax}%
+% \end{verbatim}
+% \begin{macrocode}
\everypar{\hbox\bgroup(\@gobble@leavemode@uppercase}%
\def\par{\@ifvmode{}{\unskip)\egroup\@@par}}%
}%
@@ -6367,10 +6647,9 @@ The file \file{template.aps} is a boilerplate file.
%
% \subsubsection{Default column bottom}%
% All APS journal styles have flush bottoms.
-%
-% APS journals may set with ragged bottoms.
+%\changes{4.1n}{2009/11/30}{(AO, 566) restore 4.0 behavior: flush column bottoms}
% \begin{macrocode}
-\@booleantrue\raggedcolumn@sw
+\@booleanfalse\raggedcolumn@sw
% \end{macrocode}
%
%
@@ -6398,10 +6677,11 @@ The file \file{template.aps} is a boilerplate file.
%
%
% \subsubsection{Footnote formatting}%
+% \changes{4.1n}{2010/01/02}{(AO, 572) \cs{@makefntext} and \cs{frontmatter@makefntext} must be defined harmoniously}%
% We customize the formatting of footnotes for all APS journals.
% \begin{macro}{\@makefntext}
% \begin{macrocode}
-\def\@makefntext#1{%
+\long\def\@makefntext#1{%
\def\baselinestretch{1}%
\leftskip1em%
\parindent1em%
@@ -6415,6 +6695,26 @@ The file \file{template.aps} is a boilerplate file.
}%
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\frontmatter@makefntext}
+% We ensure that frontmatter footnotes format similarly to body footnotes.
+% But we provide our own hypertext anchor, otherwise not provided.
+% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
+% \begin{macrocode}
+\long\def\frontmatter@makefntext#1{%
+ \def\baselinestretch{1}%
+ \leftskip1em%
+ \parindent1em%
+ \noindent
+ \nobreak\hskip-\leftskip
+ \Hy@raisedlink{\hyper@anchorstart{frontmatter.\expandafter\the\csname c@\@mpfn\endcsname}\hyper@anchorend}%
+ \hb@xt@\leftskip{%
+ \hss\@makefnmark\ %
+ }%
+ #1%
+ \par
+}%
+% \end{macrocode}
+% \end{macro}
%
%
% \subsubsection{Appendix}%
@@ -6449,11 +6749,11 @@ The file \file{template.aps} is a boilerplate file.
% \end{macro}
%
% \subsubsection{Bibliography}%
+% \changes{4.1n}{2010/01/04}{(AO, 576) In .bst files, remove support for the annote field}%
%
% Customize \revtex\ for the journal substyle;
% this task requires three components:
-% the \BibTeX\ \file{apsrev.bst} and \file{apsrmp.bst} style files,
-% customizing code for \file{natbib}, and
+% the \BibTeX\ \file{apsrev.bst} and \file{apsrmp.bst} style files, and
% customizations of the \env{thebibliography} environment.
%
% \begin{macro}{\@bibstyle}
@@ -6470,7 +6770,6 @@ The file \file{template.aps} is a boilerplate file.
% \def\CandE#1{\item\relax\texttt{#1}---}%
% \begin{enumerate}
% \QandA{LANGUAGE FIELD}{l}{lang}Use language field to switch hyphenation patterns for title
-% \QandA{ANNOTATIONS}{a}{annote}Annotations in \texttt{annote} field or in \file{.tex} file of citekey name
% \QandA{PRESENTATIONS}{b}{pres,pres-bf}Presentation, speaker bold face
% \QandA{ORDERING OF REFERENCES}{c}{seq-no}Citation order (unsorted, like unsrt.bst)
% \QandA{ORDER ON VON PART}{x}{vonx}Sort without von part (de la Maire after Mahone)
@@ -6546,7 +6845,7 @@ The file \file{template.aps} is a boilerplate file.
%\input docstrip
%\preamble
%----------------------------------------
-%*** REVTeX-compatible Phys Rev 2009-10-08 ***
+%*** REVTeX-compatible Phys Rev 2010-02-12 ***
%\endpreamble
%\postamble
%End of customized bst file
@@ -6560,10 +6859,11 @@ The file \file{template.aps} is a boilerplate file.
%\from{photjour.mbs}{\MBopta}
%\from{merlin.mbs}{tail,\MBopta}}
%\def\MBopta{%
+% ay,%: Author-year with some non-standard interface
+% nat,%: Natbib for use with natbib v5.3 or later
% lang,%: Use language field to switch hyphenation patterns for title
-% annote,%: Annotations in annote field or in .tex file of citekey name
% pres,pres-bf,%: Presentation, speaker bold face
-% seq-no,%: Citation order (unsorted, like unsrt.bst)
+% seq-no,%: Citation order (unsorted, only meaningful for numericals)
% vonx,%: Sort without von part (de la Maire after Mahone)
% nm-init,ed-au,%: Initials + surname (J. F. Smith)
% jnrlst,%: Junior comes last as Smith, John, Jr.
@@ -6573,7 +6873,10 @@ The file \file{template.aps} is a boilerplate file.
% nmand-rm,%: `And' in normal font (JONES and JAMES)
% lab,lab-def,%: User defined citation font (\citenamefont)
% and-rm,%: Cited `and' in normal font
-% yr-par,%: Date in parentheses as (May 1993)
+% keyxyr,%: Year blank when KEY replaces missing author (for natbib 7.0)
+% blkyear,%: Missing date left blank
+% yr-par,%: Year in parentheses as (1993)
+% dtrev,%: Date as year month
% date-nil-x,%: If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
% tit-qq,%: Title and punctuation in double quotes (``Title,'' ..)
% inproceedings-chapter,%: produce pages after chapter, just as in InBook
@@ -6637,17 +6940,19 @@ The file \file{template.aps} is a boilerplate file.
% Note that \file{apsrevlong.dbj} is the same as \file{apsrev.dbj}, except:
% \begin{itemize}
% \item
-% Remove \texttt{jtit-x}, \texttt{jpg-1}. This means article titles and full page range.
+% Remove \texttt{jpg-1}. This means full page range.
% \item
-% Add \texttt{article-title-o}: article title is not required.
+% Remove \texttt{jtit-x}, and add \texttt{article-title-o}: article title is accepted, but not required.
% \item
% Remove \texttt{nm-init}. This means full names.
% \item
+% Add \texttt{note-yr}. This means year field produced in full.
+% \item
% The file to be \cmd\generate d is \filename{apsrev4-1long.bst} instead of \filename{apsrev4-1.bst}.
% \end{itemize}
%
%
-% \subsubsection{Comparing apsrev.bst and apsrmp.bst}
+% \subsubsection{Comparing apsrev.bst and apsrmp.bst}\label{sec:CompRevRmp}
% These two bibliographic styles differ as follows:
% \file{apsrev.dbj} has the following guard codes, which \file{apsrmp.dbj} does not:
% \begin{itemize}
@@ -6655,8 +6960,8 @@ The file \file{template.aps} is a boilerplate file.
% Citation order (unsorted, like unsrt.bst)
% \CandE{nm-init,ed-au}%
% Initials + surname (J. F. Smith)
-% \CandE{yr-par}%
-% Date in parentheses as (May 1993)
+% \CandE{blkyear}%
+% Missing date left blank
% \CandE{date-nil-x}%
% If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
% \CandE{inproceedings-chapter}%
@@ -6664,22 +6969,33 @@ The file \file{template.aps} is a boilerplate file.
% \CandE{techreport-institution-par}%
% format tech report institution like book publisher
% \CandE{vnum-x}%
-% Journal vol, without number as 34
+% Journal vol, without number as `34'
% \CandE{pub-date}%
% Publisher with address and date in parentheses (Oxford, 1994)
% \CandE{pre-pub}%
-% Publisher before volume, chapter, pages
-% \CandE{pre-pub,pre-edn}%
-% Edition, publisher, volume, chapter, pages
-% \CandE{url,url-prefix-x}%
-% URL without prefix (default: `URL ')
+% Edition, publisher, volume, chapter, pages. Note that both use guard code pre-edn.
% \end{itemize}
%
-% To get a banner in the \file{.blg} file, patch by hand into \file{apsrev.bst}:
-% \begin{verbatim}
-% FUNCTION {banner.log} {"REVTeX-compatible apsrev.bst 9812" warning$}
-% \end{verbatim}
-% and invoke \texttt{banner.log} from within \texttt{begin.bib}
+% \file{apsrmp.dbj} has the following guard codes, which \file{apsrev.dbj} does not:
+% \begin{itemize}
+% \CandE{nm-rev1}%
+% Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
+% \CandE{dt-beg}%
+% Date after authors
+% \CandE{vnum-sp}%
+% Journal vol (num) as `34 (2)'
+% \CandE{pp-last}%
+% Pages at end, but before any notes
+% \CandE{pub-par}%
+% Publisher in parentheses
+% \CandE{school-par}%
+% School/address in parens: `(school, address)'
+% \CandE{bkedcap}%
+% `Name Editor,' as above, editor upper case
+% \CandE{and-com}%
+% Comma even with 2 authors as `Tom, and Harry'
+%
+% \end{itemize}
%
% We ensure that the journal substyle has the first word
% in the matter by installing the (default) APS code
@@ -7048,6 +7364,11 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macrocode}
\rtx@apsprb
% \end{macrocode}
+% Per Mark Doyle (2009-12-22), the default is longbibliography.
+% \changes{4.1n}{2010/01/04}{(AO, 575) the default for journal prstper is longbibliography}%
+% \begin{macrocode}
+ \@booleantrue\longbibliography@sw
+% \end{macrocode}
%
% ``Section heads are bold, centered (Roman numeral, Latin letter)''
%
@@ -7079,6 +7400,46 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@bibdataout@init}
+% \begin{macro}{\@bibdataout@aps}
+% \changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
+% Procedure \cmd\@bibdataout@aps\ has the job of writing the control record into the
+% job's \cmd\jobname\filename{.bib} file, where it will adjust the options to \filename{.bst} processing.
+% It is installed into the initialization procedure \cmd\@bibdataout@init, and its meaning
+% is set by the society (APS) and journal.
+% For all but RMP, we select the Physical Review style.
+% For the latter case, we change the meaning, per the code in \file{apsrmp.rtx}.
+%
+% \begin{macrocode}
+\appdef\@bibdataout@init{\@bibdataout@aps}%
+\def\@bibdataout@aps{%
+ \immediate\write\@bibdataout{%
+% \end{macrocode}
+% An entry that controls processing of the \filename{.bst} file has entry type \texttt{@CONTROL}.
+% \begin{macrocode}
+ @CONTROL{%
+ apsrev41Control%
+% \end{macrocode}
+% Say whether we want long bibliography style (the default), or the abbreviated style.
+% \begin{macrocode}
+ \longbibliography@sw{%
+ ,author="00",editor="1",pages="1",title="0",year="0"%
+ }{%
+ ,author="08",editor="1",pages="0",title="",year="1"%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% Place a \cmd\citation\ into the auxiliary file corresponding to this entry.
+% \begin{macrocode}
+ \if@filesw
+ \immediate\write\@auxout{\string\citation{apsrev41Control}}%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\place@bibnumber}
% \begin{macro}{\@bibstyle}
% We install code that will select the presentation for \cmd\bibitem s
@@ -7086,12 +7447,14 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macrocode}
\let\place@bibnumber\place@bibnumber@inl
\def\@bibstyle{apsrev\substyle@post}%
-\appdef\setup@hook{%
- \longbibliography@sw{%
- \appdef\@bibstyle{long}%
- }{}%
-}%
% \end{macrocode}
+% \begin{verbatim}
+%\appdef\setup@hook{%
+% \longbibliography@sw{%
+% \appdef\@bibstyle{long}%
+% }{}%
+%}%
+% \end{verbatim}
% \end{macro}
% \end{macro}
%
@@ -7361,10 +7724,14 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
%
% Footnote mods:
+% \changes{4.1n}{2010/01/02}{(AO, 571) class file must set \cs{splittopskip}; fine tune \cs{skip}\cs{footins}; \cs{footnoterule} defined in terms of \cs{skip}\cs{footins}}%
% \begin{macrocode}
\footnotesep 9.25pt
- \skip\footins 36pt plus 4pt minus 2pt
- \def\footnoterule{\kern-13pt\hrule width.5in\kern15.6pt\relax}%
+ \skip\footins 36pt plus 4pt minus 12pt
+ \def\footnoterule{%
+ \dimen@\skip\footins\divide\dimen@\thr@@
+ \kern-\dimen@\hrule width.5in\kern\dimen@
+ }%
% \end{macrocode}
%
%
@@ -7533,7 +7900,6 @@ The file \file{template.aps} is a boilerplate file.
% \QandA{STYLE OF CITATIONS}{a}{ay}Author-year with some non-standard interface
% \QandA{AUTHOR}{*}{nat}Natbib for use with natbib v5.3 or later
% \QandA{LANGUAGE FIELD}{l}{lang}Use language field to switch hyphenation patterns for title
-% \QandA{ANNOTATIONS}{a}{annote}Annotations in annote field or in .tex file of citekey name
% \QandA{PRESENTATIONS}{b}{pres,pres-bf}Presentation, speaker bold face
% \QandA{ORDER ON VON PART }{x}{vonx}Sort without von part (de la Maire after Mahone)
% \QandA{AUTHOR NAMES}{a}{nm-rev1}Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
@@ -7611,7 +7977,7 @@ The file \file{template.aps} is a boilerplate file.
%\input docstrip
%\preamble
%----------------------------------------
-%*** REVTeX-compatible RMP 2009-10-08 ***
+%*** REVTeX-compatible RMP 2010-02-12 ***
%\endpreamble
%\postamble
%End of customized bst file
@@ -7628,7 +7994,6 @@ The file \file{template.aps} is a boilerplate file.
% ay,%: Author-year with some non-standard interface
% nat,%: Natbib for use with natbib v5.3 or later
% lang,%: Use language field to switch hyphenation patterns for title
-% annote,%: Annotations in annote field or in .tex file of citekey name
% pres,pres-bf,%: Presentation, speaker bold face
% vonx,%: Sort without von part (de la Maire after Mahone)
% nm-rev1,%: Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
@@ -7641,11 +8006,9 @@ The file \file{template.aps} is a boilerplate file.
% and-rm,%: Cited `and' in normal font
% keyxyr,%: Year blank when KEY replaces missing author (for natbib 7.0)
% dt-beg,%: Date after authors
-% yr-com,%: Date preceded by comma as `, 1993'
-% aymth,%: Include month in date
+% yr-par,%: Year in parentheses as (1993)
% dtrev,%: Date as year month
% date-nil-x,%: If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
-% note-yr,%: Year text full as 1990--1993 or `in press'
% tit-qq,%: Title and punctuation in double quotes (``Title,'' ..)
% inproceedings-chapter,%: produce pages after chapter, just as in InBook
% jtit-x,%: Title is ignored
@@ -7712,49 +8075,18 @@ The file \file{template.aps} is a boilerplate file.
% Note that \file{apsrmplong.dbj} is the same as \file{apsrmp.dbj}, except:
% \begin{itemize}
% \item
-% Remove \texttt{jtit-x}, \texttt{jpg-1}. This means article titles and full page range.
+% Remove \texttt{jpg-1}. This means full page range.
+% \item
+% Remove \texttt{jtit-x}, and add \texttt{article-title-o}: article title is accepted, but not required.
+% \item
+% Remove \texttt{nm-revv1}, and add \texttt{nm-rev1}. This means full author names, with first author reversed.
% \item
-% Add \texttt{article-title-o}: article title is optional.
+% Add \texttt{note-yr}. This means year field produced in full.
% \item
-% Remove \texttt{nm-rev1}, remove \texttt{nm-revv1}. This means full author names.
+% The file to be \cmd\generate d is \filename{apsrmp4-1long.bst} instead of \filename{apsrmp4-1.bst}.
% \end{itemize}
%
-% \subsubsection{Comparing apsrev.bst and apsrmp.bst}
-% These two bibliographic styles differ as follows:
-% \file{apsrmp.dbj} has the following guard codes, which \file{apsrev.dbj} does not:
-% \begin{itemize}
-% \CandE{ay}%
-% Author-year with some non-standard interface
-% \CandE{nat}%
-% Natbib for use with natbib v5.3 or later
-% \CandE{nm-rev1}%
-% Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
-% \CandE{keyxyr}%
-% Year blank when KEY replaces missing author (for natbib 7.0)
-% \CandE{dt-beg}%
-% Date after authors
-% \CandE{yr-com}%
-% Date preceded by comma as `, 1993'
-% \CandE{aymth}%
-% Include month in date
-% \CandE{dtrev}%
-% Date as year month
-% \CandE{note-yr}%
-% Year text full as 1990--1993 or `in press'
-% \CandE{vnum-sp}%
-% Journal vol (num) as 34 (2)
-% \CandE{pp-last}%
-% Pages at end but before any notes
-% \CandE{pub-par}%
-% Publisher in parentheses
-% \CandE{school-par}%
-% school/address in parens: `(school, address)'
-% \CandE{bkedcap}%
-% `Name Editor,' as above, editor upper case
-% \CandE{and-com}%
-% Comma even with 2 authors as `Tom, and Harry'
-% \end{itemize}
-%
+% For a comparison between apsrmp.bst and apsrev.bst, see Section~\ref{sec:CompRevRmp}.
%
% \changes{4.1c}{2008/08/15}{Document class option longbibliography via \cs{substyle@post}}
% \begin{macrocode}
@@ -7770,11 +8102,36 @@ The file \file{template.aps} is a boilerplate file.
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\cite}
-% Per Mark Doyle, \cmd\cite\ is mapped to \cmd\citep\ in RMP.
-%
+% \begin{macro}{\@bibdataout@rmp}
+% \changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
+% When the journal is RMP, the meaning of the procedure \cmd\@bibdataout@aps\ needs to be different
+% because of the way the author names are formatted. In other respects, it is the same.
% \begin{macrocode}
-\let\cite\citep
+\def\@bibdataout@aps{%
+ \immediate\write\@bibdataout{%
+% \end{macrocode}
+% An entry that controls processing of the \filename{.bst} file has entry type \texttt{@CONTROL}.
+% This entry's cite key is \texttt{apsrmp41Control}, which serves as a version number.
+% \begin{macrocode}
+ @CONTROL{%
+ apsrmp41Control%
+% \end{macrocode}
+% Say whether we want long bibliography style (the default), or the abbreviated style.
+% \begin{macrocode}
+ \longbibliography@sw{%
+ ,author="03",editor="0",pages="1",title="0",year="0"%
+ }{%
+ ,author="0B",editor="0",pages="0",title="",year="1"%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% Place a \cmd\citation\ into the auxiliary file corresponding to this entry.
+% \begin{macrocode}
+ \if@filesw
+ \immediate\write\@auxout{\string\citation{apsrmp41Control}}%
+ \fi
+}%
% \end{macrocode}
% \end{macro}
%
@@ -7784,6 +8141,7 @@ The file \file{template.aps} is a boilerplate file.
% \begin{macro}{\newblock}
% \begin{macro}{\bibhang}
% \begin{macro}{\bibsep}
+% \begin{macro}{\cite}
% The following commands effectively establish the style in which \cmd\cite\ commands are
% formatted.
% You can think of them as the second needed component for the bibliography.
@@ -7817,7 +8175,9 @@ The file \file{template.aps} is a boilerplate file.
% We define the punctuation to use in the \cmd\cite\ command's production.
%
% \begin{macrocode}
- \bibpunct{(}{)}{;}{a}{,}{,}%
+ \bibpunct{(%)
+ }{%(
+ )}{;}{a}{,}{,}%
% \end{macrocode}
%
% We define the sectioning command to use when starting the bibliography.
@@ -7831,6 +8191,16 @@ The file \file{template.aps} is a boilerplate file.
\def\newblock{\ }%
\bibhang10\p@
\bibsep\z@
+% \end{macrocode}
+%
+% Per Mark Doyle, \cmd\cite\ is mapped to \cmd\citep\ in RMP.
+% \changes{4.1i}{2009/10/23}{(AO, 541) Defer assignment of \cs{cite} until after natbib loads}
+% \begin{macrocode}
+ \let\cite\citep
+% \end{macrocode}
+%
+% End of code to be delayed until after \classname{natbib} loads.
+% \begin{macrocode}
}%
% \end{macrocode}
% \end{macro}
@@ -7839,6 +8209,7 @@ The file \file{template.aps} is a boilerplate file.
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\footinbib@sw}
% Footnotes in bibliography are consistent only with numbered citations,