~chris-rogers/maus/emr_mc_digitization

« back to all changes in this revision

Viewing changes to doc/doc_src/detectors/tracker/01-Current/99-Styles/revtex4-1/revtex4-1-tds/source/latex/revtex/revtex4-1.dtx

  • Committer: Chris Rogers
  • Date: 2014-04-16 11:48:45 UTC
  • mfrom: (707 merge)
  • mto: This revision was merged to the branch mainline in revision 711.
  • Revision ID: chris.rogers@stfc.ac.uk-20140416114845-h3u3q7pdcxkxvovs
Update to trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
% \iffalse meta-comment balanced on line 122
2
 
% revtex4-1.dtx: package to typeset APS, AIP, OSA, ASA, etc. journal articles
3
 
% Copyright (c) 2009 The American Physical Society.
4
 
% http://publish.aps.org/revtex4/
5
 
% mailto:revtex@aps.org
6
 
%
7
 
% Disclaimer
8
 
%   This file is distributed WITHOUT ANY WARRANTY;
9
 
%   without even the implied warranty of
10
 
%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
 
% License
12
 
%   You may distribute this file under the conditions of the 
13
 
%   LaTeX Project Public License 1.3 or later 
14
 
%   (http://www.latex-project.org/lppl.txt).
15
 
% ReadMe
16
 
%   For the documentation and more detailed instructions for
17
 
%   installation, typeset this document with \LaTeX.
18
 
% Maintenance Status
19
 
%   This work has the LPPL maintenance status "maintained";
20
 
%   Current Maintainer of this work is Arthur Ogawa.
21
 
%
22
 
% This work consists of the main source file revtex4-1.dtx
23
 
% and the derived files
24
 
%    revtex4.cls, revtex4.pdf
25
 
% Distribution:
26
 
%    CTAN:macros/latex/contrib/revtex/
27
 
%
28
 
% Unpacking:
29
 
%    tex revtex4-1.dtx
30
 
%
31
 
% Documentation:
32
 
%    latex revtex4-1.dtx; ...
33
 
%
34
 
%    Programm calls to get the documentation (example):
35
 
%       pdflatex revtex4-1.dtx
36
 
%       makeindex -s gind.ist revtex4-1.idx
37
 
%       makeindex -s gglo.ist -o revtex4-1.gls revtex4-1.glo
38
 
%       pdflatex revtex4-1.dtx
39
 
%       makeindex -s gind.ist revtex4-1.idx
40
 
%       pdflatex revtex4-1.dtx
41
 
%
42
 
% Installation:
43
 
%    TDS:bibtex/bst/revtex/
44
 
%    TDS:doc/latex/revtex/
45
 
%    TDS:tex/latex/revtex/
46
 
%    TDS:source/latex/revtex/
47
 
%
48
 
% Thanks, Heiko!
49
 
%    This method of letting a single .dtx file serve as both
50
 
%    documentation (via latex) and installer (via tex) follows
51
 
%    the example of Heiko Oberdiek. Thanks!
52
 
%<*ignore>
53
 
\begingroup
54
 
  \def\x{LaTeX2e}%
55
 
\expandafter\endgroup
56
 
\ifcase
57
 
 0\expandafter\ifx\csname processbatchFile\endcsname\relax\else1\fi\ifx\fmtname\x\else 1\fi
58
 
 \relax
59
 
\else
60
 
 \csname fi\endcsname
61
 
%</ignore>
62
 
%<*install>
63
 
%% This file will generate documentation and runtime files
64
 
%% from revtex4-1.dtx when run through TeX.
65
 
\input docstrip
66
 
\preamble
67
 
 
68
 
This file is part of the APS files in the REVTeX 4 distribution.
69
 
For the version number, search on the string %FileInfo
70
 
 
71
 
Original version by David Carlisle
72
 
Modified by Arthur Ogawa (mailto:arthur_ogawa at sbcglobal dot net)
73
 
 
74
 
Copyright (c) 2009 The American Physical Society.
75
 
http://publish.aps.org/revtex4/
76
 
mailto:revtex4@aps.org
77
 
 
78
 
See the REVTeX 4 README file for restrictions and more information.
79
 
 
80
 
\endpreamble
81
 
\askforoverwritefalse
82
 
\keepsilent
83
 
\generate{%
84
 
  \file{revtex4-1.cls}{%
85
 
   \from{revtex4-1.dtx}{kernel}%
86
 
   \from{ltxutil.dtx}{kernel}%
87
 
   \from{ltxfront.dtx}{kernel}%
88
 
   \from{ltxgrid.dtx}{kernel}%
89
 
   \from{revtex4-1.dtx}{options}%
90
 
   \from{ltxutil.dtx}{options}%
91
 
   \from{ltxfront.dtx}{options}%
92
 
   \from{ltxgrid.dtx}{options}%
93
 
   \from{revtex4-1.dtx}{package}%
94
 
  }%
95
 
  \file{aps4-1.rtx}{\from{revtex4-1.dtx}{aps}}%
96
 
  \file{apsrmp4-1.rtx}{\from{revtex4-1.dtx}{rmp}}%
97
 
  \file{aps10pt4-1.rtx}{\from{revtex4-1.dtx}{10pt}}%
98
 
  \file{aps11pt4-1.rtx}{\from{revtex4-1.dtx}{11pt}}%
99
 
  \file{aps12pt4-1.rtx}{\from{revtex4-1.dtx}{12pt}}%
100
 
  \file{revsymb4-1.sty}{\from{revtex4-1.dtx}{revsymb}}%
101
 
}%
102
 
\ifToplevel{
103
 
\Msg{***********************************************************}
104
 
\Msg{*}
105
 
\Msg{* To finish the installation, please move}
106
 
\Msg{*    *.cls, *.rtx, and *.sty }
107
 
\Msg{* into a directory searched by TeX;}
108
 
\Msg{* in a TDS-compliant installation:}
109
 
\Msg{* texmf/tex/macros/latex/revtex/.}
110
 
\Msg{*}
111
 
\Msg{* To produce the documentation,
112
 
       run revtex4-1.dtx through LaTeX.}
113
 
\Msg{*}
114
 
\Msg{* Happy TeXing}
115
 
\Msg{***********************************************************}
116
 
}
117
 
\endbatchfile
118
 
%</install>
119
 
%<*ignore>
120
 
\fi
121
 
%</ignore>
122
 
% \fi
123
 
%
124
 
% \GetFileInfo{revtex4-1.dtx}\CheckSum{7177}
125
 
%
126
 
% \iffalse ltxdoc klootch
127
 
%<*package>
128
 
%%%  @LaTeX-file{
129
 
%%%     filename        = "revtex4-1.dtx",
130
 
%%%     version         = "4.1r",
131
 
%%%     date            = "2010/07/25",
132
 
%%%     time            = "20:33:00 UT-8",
133
 
%%%     checksum        = "7177",
134
 
%%%     author          = "Arthur Ogawa (mailto:arthur_ogawa at sbcglobal.net),
135
 
%%%                        commissioned by the American Physical Society.
136
 
%%%                        ",
137
 
%%%     copyright       = "Copyright (C) 1999, 2009 Arthur Ogawa,
138
 
%%%                        distributed under the terms of the 
139
 
%%%                        LaTeX Project Public License, see
140
 
%%%                        ftp://ctan.tug.org/macros/latex/base/lppl.txt
141
 
%%%                        ",
142
 
%%%     address         = "Arthur Ogawa,
143
 
%%%                        USA",
144
 
%%%     telephone       = "",
145
 
%%%     FAX             = "",
146
 
%%%     email           = "mailto colon arthur_ogawa at sbcglobal.net",
147
 
%%%     codetable       = "ISO/ASCII",
148
 
%%%     keywords        = "latex, page grid, main vertical list",
149
 
%%%     supported       = "yes",
150
 
%%%     abstract        = "package to change page grid, MVL",
151
 
%%%     docstring       = "The checksum field above generated by ltxdoc",
152
 
%%%  }
153
 
%</package>
154
 
% \fi
155
 
%
156
 
% \iffalse ltxdoc klootch
157
 
% The following references the \file{00readme.tex} file,
158
 
% which contains the frontmatter for the programmer's docs.
159
 
% The contents of this file are generated when
160
 
% you typeset this file with LaTeX.
161
 
% Search on "{filecontents*}{00readme.tex}" to locate it.
162
 
% \fi\input{00readme.tex}%
163
 
%
164
 
% \subsection{Bill of Materials}
165
 
%
166
 
% Following is a list of the files in this distribution arranged
167
 
% according to provenance.
168
 
%
169
 
% \subsubsection{Primary Source}%
170
 
% One single file generates all.
171
 
%\begin{verbatim}
172
 
%revtex4-1.dtx
173
 
%\end{verbatim}
174
 
%
175
 
% \subsubsection{Generated by \texttt{tex revtex4-1.dtx}}%
176
 
% Typesetting ths file under \TeX\ itself runs the installer, 
177
 
% which generates the package files.
178
 
%\begin{verbatim}
179
 
%revtex4-1.cls, revtex4.ins, revtex4.drv, aps4-1.rtx, 
180
 
%aps10pt4-1.rtx, aps11pt4-1.rtx, aps12pt4-1.rtx, revsymp.sty
181
 
%\end{verbatim}
182
 
%
183
 
% \subsubsection{Generated by \texttt{pdflatex revtex4-1.dtx}}%
184
 
% Typesetting the source file under \LaTeX\
185
 
% generates the documentation.
186
 
%\begin{verbatim}
187
 
%revtex4.pdf, 
188
 
%\end{verbatim}
189
 
%
190
 
% \subsubsection{Auxiliary}%
191
 
% The following are auxiliary files generated
192
 
% in the course of running \LaTeX:
193
 
% \begin{verbatim}
194
 
%revtex4.aux revtex4.idx revtex4.ind revtex4.log revtex4.toc
195
 
% \end{verbatim}
196
 
%
197
 
% \section{Code common to all modules}%
198
 
%
199
 
% The following may look a bit klootchy, but we
200
 
% want to require only one place in this file
201
 
% where the version number is stated,
202
 
% and we also want to ensure that the version
203
 
% number is embedded into every generated file.
204
 
%
205
 
% Now we declare that
206
 
% these files can only be used with \LaTeXe.
207
 
% An appropriate message is displayed if
208
 
% a different \TeX{} format is used.
209
 
%    \begin{macrocode}
210
 
%<*doc|kernel|aps|rmp|revsymb>
211
 
\NeedsTeXFormat{LaTeX2e}[1996/12/01]%
212
 
%</doc|kernel|aps|rmp|revsymb>
213
 
%<kernel>\ProvidesClass{revtex4-1}
214
 
%<aps>\ProvidesFile{aps4-1}
215
 
%<rmp>\ProvidesFile{apsrmp4-1}
216
 
%<10pt>\ProvidesFile{aps10pt4-1}
217
 
%<11pt>\ProvidesFile{aps11pt4-1}
218
 
%<12pt>\ProvidesFile{aps12pt4-1}
219
 
%<revsymb>\ProvidesPackage{revsymb4-1}
220
 
%<*doc>
221
 
\ProvidesFile{revtex4-1.dtx}
222
 
%</doc>
223
 
%<*!package&!options>
224
 
%<version>
225
 
 [2010/07/25/20:33:00 4.1r (http://publish.aps.org/revtex4/ for documentation)]% \fileversion
226
 
%</!package&!options>
227
 
%    \end{macrocode}
228
 
% The current class name is remembered in \cmd\class@name.
229
 
% This is something of a klootch, relying as it does on knowledge of the implementation of \cmd\ProvidesPackage.
230
 
%    \begin{macrocode}
231
 
%<kernel>\let\class@name\@gtempa
232
 
%    \end{macrocode}
233
 
%
234
 
% \section{The driver module \texttt{driver}}
235
 
%
236
 
% This module, consisting of the present section,
237
 
% typesets the programmer's documentation,
238
 
% generating the \file{00readme.txt} and sample document as needed.
239
 
%
240
 
% Because the only uncommented-out lines of code at the beginning of
241
 
% this file constitute the \file{driver} module itself,
242
 
% we can simply typeset the \file{.dtx} file directly,
243
 
% and there is thus rarely any need to
244
 
% generate the ``driver'' {\sc docstrip} module.
245
 
% Module delimiters are nonetheless required so that
246
 
% this code does not find its way into the other modules.
247
 
%
248
 
% The \enve{document} command concludes the typesetting run.
249
 
%
250
 
%    \begin{macrocode}
251
 
%<*doc>
252
 
%    \end{macrocode}
253
 
% The driver uses packages \file{ltxdoc.sty}, \file{ltxdocext.sty}, 
254
 
% \file{hyperref.sty}, and whatever font package has been selected.
255
 
%    \begin{macrocode}
256
 
\documentclass{ltxdoc}
257
 
\RequirePackage{ltxdocext}%
258
 
\let\url\undefined
259
 
\RequirePackage[colorlinks=true,linkcolor=blue]{hyperref}%
260
 
\expandafter\ifx\csname package@font\endcsname\@undefined\else
261
 
 \expandafter\RequirePackage\expandafter{\csname package@font\endcsname}%
262
 
\fi
263
 
%    \end{macrocode}
264
 
% We ask for the usual indices and glossaries.
265
 
%    \begin{macrocode}
266
 
\CodelineIndex\EnableCrossrefs % makeindex -s gind.ist revtex4
267
 
\RecordChanges % makeindex -s gglo.ist -o revtex4.gls revtex4.glo
268
 
%    \end{macrocode}
269
 
%
270
 
% \subsubsection{Docstrip and info directives}
271
 
%    We use so many {\sc docstrip} modules that we set the
272
 
%    \texttt{StandardModuleDepth} counter to 1.
273
 
%    \begin{macrocode}
274
 
\setcounter{StandardModuleDepth}{1}
275
 
%    \end{macrocode}
276
 
%    The following command retrieves the date and version information
277
 
%    from this file.
278
 
%    \begin{macrocode}
279
 
\expandafter\GetFileInfo\expandafter{\jobname.dtx}%
280
 
%    \end{macrocode}
281
 
%
282
 
% \subsection{The Frontmatter File}
283
 
% As promised above, here is the contents of the frontmatter file. 
284
 
%    \begin{macrocode}
285
 
\begin{filecontents*}{00readme.tex}
286
 
\title{%
287
 
 The \classname{revtex4-1} document class of the American Physical Society%
288
 
 \protect\thanks{Work under hire to The American Physical Society.}%
289
 
}%
290
 
\author{Arthur Ogawa%
291
 
 \protect\thanks{First revision of REV\TeX4.0 (unreleased) by David Carlisle}%
292
 
}%
293
 
\date{Version \fileversion, dated \filedate}%
294
 
\newcommand\revtex{REV\TeX}
295
 
 
296
 
\maketitle
297
 
 
298
 
This file embodies the implementation of the APS \revtex\ 4.1 document class
299
 
for electronic submissions to journals.
300
 
 
301
 
The distribution point for this work is
302
 
\url{http://publish.aps.org/revtex4/},
303
 
which contains fully unpacked, prebuilt runtime files and documentation.
304
 
 
305
 
\tableofcontents
306
 
 
307
 
\section{Using \protect\revtex}
308
 
 
309
 
The file \file{README} has retrieval and installation information.
310
 
 
311
 
User documentation is presented separately in \file{auguide.tex}.
312
 
 
313
 
The file \file{template.aps} is a boilerplate file. 
314
 
 
315
 
\changes{4.0a}{1998/01/16}{Initial version}
316
 
\changes{4.0a}{1998/01/31}{Move after process options, so \cs{clearpage} not in scope of twocolumn}
317
 
\changes{4.0a}{1998/01/31}{Rearrange the ordering so numerical ones come first. AO: David, what does this mean?}
318
 
\changes{4.0a}{1998/01/31}{use font-dependent spacing}
319
 
\changes{4.0a}{1998/01/31}{4.0d had twoside option setting twoside switch to false}
320
 
\changes{4.0a}{1998/01/31}{Move after process options, so the following test works}
321
 
\changes{4.0a}{1998/01/31}{print homepage}
322
 
\changes{4.0a}{1998/01/31}{protect against hyperref revtex kludges which are not needed now}
323
 
\changes{4.0a}{1998/06/10}{multiple preprint commands}
324
 
\changes{4.0a}{1998/06/10}{comma not space between email and homepage}
325
 
\changes{4.0a}{1998/06/10}{single space footnotes}
326
 
\changes{4.0b}{1999/06/20}{First modifications by Arthur Ogawa (mailto:arthur\_ogawa at sbcglobal dot net)}
327
 
\changes{4.0b}{1999/06/20}{Added localization of \cs{figuresname}}
328
 
\changes{4.0b}{1999/06/20}{Added localization of \cs{tablesname}}
329
 
\changes{4.0b}{1999/06/20}{AO: all code for \protect\classoption{10pt} is in this module.}
330
 
\changes{4.0b}{1999/06/20}{AO: all code for \protect\classoption{11pt} is in this module.}
331
 
\changes{4.0b}{1999/06/20}{AO: all code for \protect\classoption{12pt} is in this module.}
332
 
\changes{4.0b}{1999/06/20}{AO: made aps.rtx part of revtex4.dtx}
333
 
\changes{4.0b}{1999/06/20}{AO: remove duplicates}
334
 
\changes{4.0b}{1999/06/20}{call \cs{print@floats}}
335
 
\changes{4.0b}{1999/06/20}{Defer assignment until \cs{AtBeginDocument} time.}
336
 
\changes{4.0b}{1999/06/20}{Defer decision until \cs{AtBeginDocument} time}
337
 
\changes{4.0b}{1999/06/20}{Define three separate environments, defer assignment to \cs{AtBeginDocument} time.}
338
 
\changes{4.0b}{1999/06/20}{Frank Mittelbach, has stated in \protect\classname{multicol}: ``The kernel command \cs{@footnotetext} should not be modified.'' Thus, I have removed David Carlisle's redefinition of that command. Note, however, that later versions of \protect\classname{multicol} do not require this workaround. Belt and suspenders.}%
339
 
\changes{4.0b}{1999/06/20}{Move this ``complex'' option to the front, where it can be overridden by ``simple'' options.}
340
 
\changes{4.0b}{1999/06/20}{New option}
341
 
\changes{4.0b}{1999/06/20}{One-line caption sets flush left.}
342
 
\changes{4.0b}{1999/06/20}{only execute if appropriate}
343
 
\changes{4.0b}{1999/06/20}{Processing delayed to \cs{AtBeginDocument} time}
344
 
\changes{4.0b}{1999/06/20}{Removed invocation of nonexistent class option \protect\classoption{groupauthors} and all other class options that should only be invoked by the document. (Otherwise precedence of class options does not work.)}
345
 
\changes{4.0b}{1999/06/20}{Restore all media size class option of \protect\file{classes.dtx}}
346
 
\changes{4.0b}{1999/06/20}{Stack \cs{preprint} args flush right at right margin.}
347
 
\changes{4.0c}{1999/11/13}{(AO, 115) If three or more preprints specified, set on single line, with commas.}
348
 
\changes{4.0c}{1999/11/13}{(AO, 129) section* within appendix was producing appendixname}
349
 
\changes{4.0c}{1999/11/13}{*-form mandates pagebreak}
350
 
\changes{4.0c}{1999/11/13}{also spelled ``acknowledgements''.}
351
 
\changes{4.0c}{1999/11/13}{Do not put by REVTeX in every page foot}
352
 
\changes{4.0c}{1999/11/13}{grid changes via ltxgrid procedures}
353
 
\changes{4.0c}{1999/11/13}{grid changes with ltxgrid}
354
 
\changes{4.0c}{1999/11/13}{Insert procedure \cs{checkindate}}
355
 
\changes{4.0c}{1999/11/13}{Lose compatability mode.}
356
 
\changes{4.0c}{1999/11/13}{New ltxgrid-based  code, other bug fixes}
357
 
\changes{4.0c}{1999/11/13}{New option ``checkin''}
358
 
\changes{4.0c}{1999/11/13}{Prevent an inner footnote from performing twice}
359
 
\changes{4.0d}{2000/04/10}{Also alter how lists get indented.}
360
 
\changes{4.0d}{2000/04/10}{eprint takes an optional argument, syntactical only in this case.}
361
 
\changes{4.0d}{2000/04/10}{New option}
362
 
\changes{4.0d}{2000/05/10}{More features and bug fixes: compatability with longtable and array packages. Now certainly incompatible with multicol.}
363
 
\changes{4.0d}{2000/05/17}{make longtable trigger the head, too}
364
 
\changes{4.0d}{2000/05/18}{But alternative spelling is deprecated.}
365
 
\changes{4.0e}{2000/09/20}{New option showkeys}
366
 
\changes{4.0e}{2000/11/14}{Bug fixes and minor new features: title block affiliations can have ancillary data, just like authors; clearpage processing revamped, with floats staying in order; widetext ornaments.}
367
 
\changes{4.0e}{2000/11/21}{adornments above and below.}
368
 
\changes{4.0f}{2001/02/13}{Last bug fixes before release.}
369
 
\changes{4.0rc1}{2001/06/17}{Running headers always as if two-sided}
370
 
\changes{4.0rc1}{2001/06/18}{grid changes with push and pop}
371
 
\changes{4.0rc1}{2001/06/18}{grid changes with push and pop}
372
 
\changes{4.0rc4}{2001/07/23}{hyperref is no longer loaded via class option: use a usepackage statement instead}
373
 
\changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
374
 
\changes{4.1a}{2008/01/18}{(AO, 451) ``Cannot have more than 256 cites in a document''}%
375
 
\changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
376
 
\changes{4.1a}{2008/01/18}{(AO, 460) ``Proper style is "FIG. 1. ..." (no colon)''}%
377
 
\changes{4.1a}{2008/01/18}{(AO, 478) \cs{ds@letterpaper}, so that ``letterpaper really is the default''}%
378
 
\changes{4.1a}{2008/01/18}{(AO, 488) Change processing of options to allow an unused option to specify society and journal}%
379
 
\changes{4.1a}{2008/01/19}{(AO, 461) Change the csname revtex uses from @dotsep to ltxu@dotsep. The former is understood in mu. (What we wanted was a dimension.)}%
380
 
\changes{4.1a}{2008/01/19}{For natbib versions before 8.21, \cs{NAT@sort} was consulted only as natbib was being read in. Now it is fully dynamic.}
381
 
\changes{4.1b}{2008/05/29}{The csname substyle@ext is now defined without a dot (.), to be compatible with \LaTeX usage (see @clsextension and @pkgextension).}
382
 
\changes{4.1b}{2008/06/01}{(AO) Implement bibnotes through \cs{frontmatter@footnote@produce} instead of \cs{bibnotes@sw}}%
383
 
\changes{4.1b}{2008/06/01}{Add option reprint, opposite of preprint, and preferred alternative to twocolumn}
384
 
\changes{4.1b}{2008/06/29}{(AO, 455) Be nice to a list within the abstract (assign \cs{@totalleftmargin}).}
385
 
\changes{4.1b}{2008/06/30}{(AO) Structure the Abstract using the \texttt{bibliography} environment}
386
 
\changes{4.1b}{2008/07/01}{(AO) coordinate \cs{if@twoside} with \cs{twoside@sw}}
387
 
\changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
388
 
\changes{4.1b}{2008/07/01}{(AO) No longer need to test \cs{chapter} as of \texttt{natbib} version 8.2}
389
 
\changes{4.1b}{2008/07/01}{(AO) No longer use \cs{secnumarabic@sw}, instead use \cs{setup@secnums}}
390
 
\changes{4.1b}{2008/07/01}{(AO) Provide more diagnostics when \cs{@society} is assigned.}
391
 
\changes{4.1b}{2008/07/01}{(AO) provide option longbibliography}
392
 
\changes{4.1b}{2008/07/01}{Add \cs{@hangfroms@section}}
393
 
\changes{4.1b}{2008/07/01}{Break out \cs{@caption@fignum@sep}}
394
 
\changes{4.1b}{2008/07/01}{Class option galley sets \cs{preprintsty@sw} to false}
395
 
\changes{4.1b}{2008/07/01}{Code relating to new syntax for frontmatter has been placed in \file{ltxfront.dtx}}
396
 
\changes{4.1b}{2008/07/01}{Package textcase is now simply a required package}
397
 
\changes{4.1b}{2008/07/01}{Procedures \cs{@parse@class@options@society} and \cs{@parse@class@options@journal} and friends}
398
 
\changes{4.1b}{2008/07/01}{Read in all required packages together}
399
 
\changes{4.1b}{2008/07/01}{Remove options newabstract and oldabstract}
400
 
\changes{4.1b}{2008/08/01}{Section numbering via procedures \cs{secnums@rtx} and \cs{secnums@arabic}.}
401
 
\changes{4.1b}{2008/08/04}{As with author formatting, rag the right more, and assign \cs{@totalleftmargin}. Also neutralize \cs{def@after@address}.}%
402
 
\changes{4.1b}{2008/08/04}{Rag the right even more: .8\cs{hsize}. Also, assign \cs{@totalleftmargin}.}%
403
 
\changes{4.1b}{2008/08/04}{The \texttt{rmp} journal substyle selects \texttt{groupedaddress} by default.}%
404
 
\changes{4.1b}{2008/08/04}{Use \cs{setup@hook} to initialize all.}
405
 
\changes{4.1c}{2008/08/15}{Document class option longbibliography via \cs{substyle@post}}
406
 
\changes{4.1d}{2009/03/27}{Definition of \cs{   @fnsymbol} follows fixltx2e.sty}
407
 
\changes{4.1e}{2008/06/29}{(AO, 455) be nice to a list within the abstract}
408
 
\changes{4.1f}{2009/07/07}{(AO, 513) Add class option linenumbers: number the lines a la \classname{lineno}}
409
 
\changes{4.1f}{2009/07/07}{(AO, 516) Merged references are separated with a semicolon}
410
 
\changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
411
 
\changes{4.1f}{2009/07/11}{(AO, 521) Lonely bibliography head}%
412
 
\changes{4.1f}{2009/07/11}{(AO, 522) Warn if software is expired}%
413
 
\changes{4.1f}{2009/07/15}{(AO, 523) Add class option nomerge, to turn off new natbib 8.3 syntax}
414
 
\changes{4.1f}{2009/07/20}{(AO, 524) Makes no sense if citations are superscript numbers and so are footnotes}
415
 
\changes{4.1f}{2009/10/05}{(AO, 530) \cs{@fnsymbol}: Failed to import fixltx2e.sty technology. Return to LaTeX core.}
416
 
\changes{4.1g}{2009/10/07}{(AO, 525) Remove phantom paragraph above display math that is given in vertical mode}%
417
 
\changes{4.1g}{2009/10/07}{(AO, 538) \cs{MakeTextUppercase} inappropriately expands the double backslash}
418
 
\changes{4.1h}{2009/10/09}{(AO) Remove expiry code in the release software}%
419
 
\changes{4.1i}{2009/10/23}{(AO, 541) Defer assignment of \cs{cite} until after natbib loads}
420
 
\changes{4.1j}{2009/10/24}{(AO, 549) Repairing natbib's \cs{BibitemShut} and \cs{bibAnnote}}
421
 
\changes{4.1j}{2009/10/25}{(AO, 545) hypertext capabilities off by default; enable with \classoption{hypertext}}
422
 
\changes{4.1j}{2009/10/25}{(AO, 552) Repair spacing in \cs{onlinecite}}
423
 
\changes{4.1k}{2009/11/06}{(AO, 554) give the \cs{newlabel} command syntax appropriate to the hyperref package}
424
 
\changes{4.1n}{2009/11/06}{(AO, 565) restore 4.0 behavior: invoking class option preprint implies class option preprintnumbers}
425
 
\changes{4.1n}{2009/11/30}{(AO, 566) restore 4.0 behavior: flush column bottoms}
426
 
\changes{4.1n}{2009/12/05}{(AO, 569) Use of \classname{hyperref} interferes with column balancing of last page}%
427
 
\changes{4.1n}{2009/12/09}{(AO, 569) execute the after-last-shipout procedures from within the safety of the output routine}%
428
 
\changes{4.1n}{2010/01/02}{(AO, 571) Interface \cs{set@footnotewidth} for determining the set width of footnotes}%
429
 
\changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
430
 
\changes{4.1n}{2009/12/13}{(AO, 573) arrange to load \classname{lineno} after any other packages.}%
431
 
\changes{4.1n}{2010/01/04}{(AO, 575) the default for journal prstper is longbibliography}%
432
 
\changes{4.1n}{2010/01/04}{(AO, 576) In .bst files, remove support for the annote field}%
433
 
\changes{4.1n}{2010/01/02}{(AO) fine-tune spacing above and below widetext}%
434
 
\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}}%
435
 
\changes{4.1n}{2010/01/02}{(AO, 572) \cs{@makefntext} and \cs{frontmatter@makefntext} must be defined harmoniously}%
436
 
\changes{4.1o}{2010/02/02}{(AO, 575) Automatically incorporate the (Bib\TeX-generated) .bbl into an explicit \env{thebibliography}}%
437
 
\changes{4.1o}{2010/02/05}{(AO, 549) Remove patch to natbib, which is now at version 8.31a}
438
 
\changes{4.1o}{2010/02/07}{(AO, 578) accommodate the possible space character preceding \cs{BibitemShut}.} 
439
 
\changes{4.1o}{2010/02/05}{(AO, 579) Endnote shall comprise their own Bib\TeX\ entry type: @FOOTNOTE.} 
440
 
\changes{4.1o}{2010/02/10}{(AO, 580) Provide a document class option to turn off production of eprint field in bibliography.} 
441
 
\changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
442
 
\changes{4.1o}{2010/02/09}{(AO, 581) Handle case: merged references, with first ending in a stop character.} 
443
 
\changes{4.1p}{2010/02/24}{(AO, 583) Provide interface to \classname{ltxgrid} \cs{onecolumn@grid@setup} and \cs{twocolumn@grid@setup}} 
444
 
\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} 
445
 
\changes{4.1q}{2010/04/01}{(AO, 586) When .bbl is pasted into the document, prevent automatic bibliography inclusion.}%
446
 
\changes{4.1q}{2010/04/13}{(AO, 588) Only write \revtex-specific BibTeX .bib data if the .bst style is set by REVTeX.}%
447
 
\changes{4.1r}{2010/06/22}{(AO, 595) Provide \cs{lovname} along with other List of Videos definitions.}%
448
 
 
449
 
\end{filecontents*}
450
 
%    \end{macrocode}
451
 
%
452
 
% \subsection{The Document Body}
453
 
%
454
 
% Here is the document body, containing only a
455
 
% \cmd\DocInput\ directive---referring to this very file.
456
 
% This very cute self-reference is a common \classname{ltxdoc} idiom.
457
 
%    \begin{macrocode}
458
 
\begin{document}%
459
 
\expandafter\DocInput\expandafter{\jobname.dtx}%
460
 
\PrintChanges
461
 
\end{document}
462
 
%    \end{macrocode}
463
 
% And that is the end of the driver for the programmer's documentation.
464
 
%    \begin{macrocode}
465
 
%</doc>
466
 
%    \end{macrocode}
467
 
%
468
 
% \section{Overview}%
469
 
% \revtex\ is a \LaTeXe\ document class, somewhat like a hybrid of 
470
 
% the standard \LaTeX\ \classname{book} and \classname{article} classes.
471
 
%
472
 
% Certain packages are (should be) loaded by this class in any case:
473
 
% \classname{amssymb}, \classname{amsmath}, \classname{bm}, \classname{natbib}.
474
 
475
 
% Certain packages are automatically loaded by this class
476
 
% when a corresponding class option has been invoked:
477
 
478
 
% \begin{tabular}{ll}
479
 
% \textbf{\revtex\ option}&\textbf{package}\\
480
 
% \classoption{amsfonts}&\classname{amsfonts}\\
481
 
% \classoption{amssymb}&\classname{amssymb}\\
482
 
% \classoption{aps}&\classname{overcite}\\
483
 
% \end{tabular}
484
 
%
485
 
% Certain other packages are to be loaded by the
486
 
% document through explicit use of \cmd\usepackage.
487
 
% Some mentioned in the user documentation are
488
 
% \classname{graphicx}, \classname{longtable}, \classname{hyperref}, 
489
 
% and \classname{bm}.
490
 
%
491
 
% Certain commonly used packages are known to be incompatible with
492
 
% \revtex, among them \classname{multicol} and \classname{cite}.
493
 
% If such a package is found to be loaded, \revtex\ issues an error message
494
 
% and halts the job.
495
 
% Halting might be considered severe punishment for loading an incompatible 
496
 
% package, but if we were to proceed, an even weirder error might be encountered
497
 
% further down the road.
498
 
%
499
 
% This document class implements the substyle: a set of mutually
500
 
% exclusive class options that, in this case, allow the 
501
 
% document class to address multiple societies.
502
 
% It also implements a sub-substyle, giving the 
503
 
% journal of the given society.
504
 
% Any society may create a substyle;
505
 
% this file generates one for \classoption{aps}.
506
 
%
507
 
% FIXME: should always load the \classname{graphicx} package. No, allow user to load whichever graphics package is desired.
508
 
509
 
% QUERY: since \classname{amsfonts} and \classname{amssymb} extend
510
 
% syntax, why not load them in any case?
511
 
512
 
% Certain processing occurs at the endgame for reading in \revtex, thereby establishing
513
 
% precedence for assignments to \LaTeX's (and \revtex's) parameters:
514
 
% \begin{enumerate}
515
 
% \item
516
 
%  Figure out which society is operative and read in the indicated \file{.rtx} file.
517
 
% \item
518
 
%  Figure out which journal option is operative and execute the indicated journal command. This may lead to reading in a journal substyle \file{.rtx} file.
519
 
% \item
520
 
%  Figure out which pointsize is operative and execute the indicateded pointsize command. This may lead to reading in a pointsize  \file{.rtx} file.
521
 
% \item
522
 
%  Execute all of the document's options, in the order declared within the document.
523
 
% \item
524
 
%  Read in all required packages (like \classname{natbib}, \classname{amsfonts}, \classname{amssymb}), that were determined by class, society, and journal.
525
 
% \item
526
 
%  The last required package, if existing, is the document's style file, the \file{.rty} file. 
527
 
%  Note that the \file{.rty} file can override the assignments of \revtex, society, journal, and required packages, and even load its own packages.
528
 
%  It can also, via appendations to \cmd\setup@hook, override the setup code itself.
529
 
% \item
530
 
%  Execute all of the setup code accumulated. Such code can be queued by \revtex\ itself, by the society, by the journal, or by the pointsize. 
531
 
% \item
532
 
%  At this point, \revtex\ has completed the process of inputting itself, 
533
 
%  and \LaTeX\ will now execute the \cmd\AtEndOfClass\ procedures.
534
 
% \end{enumerate}
535
 
%
536
 
% \revtex\ will have enqueued code to execute at \cmd\AtBeginDocument\ time,
537
 
% in two different queues. 
538
 
% \cmd\document@inithook\ executes immediately upon encountering the \cmd\begin\env{document} statement, 
539
 
% \cmd\class@documenthook\ at the end of all the code enqueued via \cmd\AtBeginDocument. 
540
 
% \begin{enumerate}
541
 
% \item
542
 
%  Install procedures to execute at the very end of the class's
543
 
%  \cmd\AtBeginDocument\ processing, such as
544
 
%  \begin{enumerate}
545
 
%  \item
546
 
%   closing out the page grid
547
 
%  \item
548
 
%   putting out the LastPage label.
549
 
%  \item
550
 
%   issuing a \cmd\bibliographystyle\ command, based on the value set
551
 
%   by the society substyle.
552
 
%  \item
553
 
%   setting default values for parameters used in the document.
554
 
%FIXME: differentiate between class's parameters that can wait until
555
 
% they are used in the document, and parameters that are used at \cmd\AtBeginDocument\ time.
556
 
%  \end{enumerate}
557
 
% \item
558
 
%  Install procedures to execute the very last at \cmd\AtEndDocument\ time,
559
 
%  such as the \cmd\clearpage\ processing.
560
 
% \end{enumerate}
561
 
%
562
 
% Certain events are optionally scheduled for \cmd\AtBeginDocument\ time:
563
 
% \begin{enumerate}
564
 
% \item
565
 
%  Setting default values for the Booleans and for other procedures used in formatting.
566
 
% \item
567
 
%  In response to class options options, adjusting parameters and procedures used in formatting.
568
 
% \item
569
 
%  Implementing the \classoption{eqsecnum} option, if required.
570
 
% \item
571
 
%  Setting the state engine for data commands.
572
 
% \item
573
 
%  Memorizing procedures for later use.
574
 
% \item
575
 
%  Setting type size and area, for use by later calculations.
576
 
% \end{enumerate}
577
 
%
578
 
% Certain events are scheduled for \cmd\class@enddocumenthook\ time:
579
 
% \begin{enumerate}
580
 
% \item
581
 
%  Print out the migrated floats or the end notes, if needed.
582
 
% \item
583
 
%  Close out the page grid.
584
 
% \item
585
 
%  Label the last page of the document
586
 
% \item
587
 
%  (\classname{natbib}) prepare to read in the \file{.aux} file.
588
 
% \end{enumerate}
589
 
%
590
 
% \section{Writing journal-specifc extensions to \revtex}
591
 
%
592
 
% With this version of \revtex, we introduce a somewhat different
593
 
% scheme for adapting \revtex\ to the needs of a specific journal.
594
 
%
595
 
% To create a journal substyle, you create new class options in 
596
 
% \revtex\ for the society, say \classoption{osa}, and any of that society's journals,
597
 
% one of which is, say, \classoption{josaa},
598
 
% using the code for the APS as a guide.
599
 
% In particular, each of your new options should separately define \cmd\@society\
600
 
% and \cmd\@journal. That for the former will be the same for
601
 
% all options relating to a particular society.
602
 
%
603
 
% Then, for the society, you create a corresponding \file{.rtx}
604
 
% file, in our case \file{osa.rtx}.
605
 
% Within that file, you override procedures and parameter assignments as you see fit.
606
 
% Ideally they will be generally applicable to all of that society's
607
 
% journals (see the file \file{aps.rtx} for a realization of this scheme).
608
 
% Also within that file, you include a 
609
 
% section of code for each journal, that for josaa looks like:
610
 
% \begin{verbatim}
611
 
% \@ifx{\@journal\journal@josaa}{%
612
 
% <code specific to the josaa>
613
 
% }{}%
614
 
% \end{verbatim}
615
 
616
 
% Thus far, the scheme is similar to that used in \revtex\ 3.1.
617
 
% However, the new scheme does differ from the old in that 
618
 
% the \file{.rtx} file should define no syntactical extensions
619
 
% to \revtex.
620
 
%
621
 
% \section{The \classname{revtex4} Document Class}
622
 
% Above, we took
623
 
% advantage of 1) the \LaTeX\ definition of \cmd\ProvidesPackage\ and
624
 
% 2) that the line of code immediately afterwards follows the \cmd\ProvidesClass\ statement above. 
625
 
%    \begin{macrocode}
626
 
%<*kernel>
627
 
%    \end{macrocode}
628
 
%
629
 
% Print a banner in the log:
630
 
%    \begin{macrocode}
631
 
\GenericInfo{}{\space
632
 
 Copyright (c) 2009 The American Physical Society.^^J
633
 
 mailto:revtex@aps.org^^J
634
 
 Licensed under the LPPL:^^Jhttp://www.ctan.org/tex-archive/macros/latex/base/lppl.txt^^J
635
 
 Arthur Ogawa <arthur_ogawa at sbcglobal dot net>^^J
636
 
 Based on work by David Carlisle <david at dcarlisle.demon.co.uk>%
637
 
 \@gobble
638
 
}%
639
 
%    \end{macrocode}
640
 
%
641
 
% \subsection{Compatibility Processing}
642
 
%
643
 
% If the document has \cmd\documentstyle|{revtex4}|,
644
 
% then, instead of attempting to run in compatability mode,
645
 
% just complain and exit.
646
 
% \changes{4.0c}{1999/11/13}{Lose compatability mode.}
647
 
%    \begin{macrocode}
648
 
\if@compatibility    
649
 
  \edef\reserved@a{\errhelp{%
650
 
   Change your \string\documentstyle\space statement to
651
 
   \string\documentclass\space and rerun.
652
 
  }}\reserved@a
653
 
  \errmessage{You cannot run \class@name\space in compatability mode}%
654
 
  \expandafter\@@end
655
 
\fi
656
 
%    \end{macrocode}
657
 
%
658
 
%
659
 
% \section{Extensions to the \LaTeX\ Kernel}
660
 
%
661
 
%    \begin{macrocode}
662
 
%</kernel>
663
 
%    \end{macrocode}
664
 
%
665
 
% Here, we incorporate the utility, frontmatter, and page grid packages.
666
 
% The \classname{ltxutil}, \classname{ltxfront}, and \classname{ltxgrid} source are distributed with 
667
 
% \revtex.
668
 
%
669
 
% Here begins the \file{options} \textsc{docstrip} module.
670
 
%    \begin{macrocode}
671
 
%<*options>
672
 
%    \end{macrocode}
673
 
%
674
 
% \subsection{Hooks}
675
 
%
676
 
% \begin{macro}{\setup@hook}
677
 
% The procedure 
678
 
% \cmd\setup@hook\
679
 
% serves as the vehicle for all code that 
680
 
% gives values to the class's parameters once all the 
681
 
% society, journal, options, and packages have been processed. 
682
 
%
683
 
% Arrange for journal substyles to set their own default values.
684
 
%    \begin{macrocode}
685
 
\let\setup@hook\@empty
686
 
%    \end{macrocode}
687
 
% \end{macro}
688
 
%
689
 
% After preamble processing is complete,
690
 
% detect whether package \classname{longtable} has been loaded and patch it.
691
 
%    \begin{macrocode}
692
 
\appdef\document@inithook{%
693
 
 \switch@longtable
694
 
 \let\LT@makecaption\LT@makecaption@rtx
695
 
}%
696
 
%    \end{macrocode}
697
 
%
698
 
% \begin{macro}{\LT@makecaption}
699
 
% We override the caption processing method of the \classname{longtable} package:
700
 
% space below the caption is created via strut instead of whitespace.
701
 
%    \begin{macrocode}
702
 
\def\LT@makecaption@rtx#1#2#3{%
703
 
  \LT@mcol\LT@cols c{%
704
 
    \hbox to\z@{%
705
 
     \hss
706
 
     \parbox[t]\LTcapwidth{%
707
 
      \sbox\@tempboxa{#1{#2: }#3\unskip\nobreak\vrule\@width\z@\@height\z@\@depth .5\baselineskip}%
708
 
      \ifdim\wd\@tempboxa>\hsize
709
 
        #1{#2: }#3\unskip\nobreak\vrule\@width\z@\@height\z@\@depth .5\baselineskip
710
 
      \else
711
 
        \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
712
 
      \fi
713
 
      \endgraf
714
 
     }%
715
 
     \hss
716
 
    }%
717
 
  }%
718
 
}%
719
 
%    \end{macrocode}
720
 
% \end{macro}
721
 
%
722
 
% \begin{macro}{\robust@boldmath}
723
 
% Robustify the \cmd\boldmath command. 
724
 
% If Team \LaTeX\ (or any package) ever gets around to fixing this problem, 
725
 
% we will bow out. (This fix relates to bug \#394.)
726
 
%    \begin{macrocode}
727
 
\def\protectdef@boldmath{%
728
 
 \expandafter\@ifnotrelax\csname boldmath \endcsname{}{%
729
 
  \class@info{Robustifying \string\LaTeX's \string\boldmath\space command}%
730
 
  \expandafter\let\csname boldmath \endcsname\boldmath
731
 
  \expandafter\def\expandafter\boldmath\expandafter{\expandafter\protect\csname boldmath \endcsname}%
732
 
 }%
733
 
}%
734
 
\appdef\document@inithook{%
735
 
 \protectdef@boldmath
736
 
}%
737
 
%    \end{macrocode}
738
 
% \end{macro}
739
 
%
740
 
% \section{Compatability with the geometry package}
741
 
%
742
 
% The \classname{geometry} package of Hideo Umeki provides a way to 
743
 
% specify the metrics of the media and page layout.
744
 
% We want to ensure that \revtex\ does not foreclose on the use of 
745
 
% this or any other such package, nor to interfere with
746
 
% explicit assignments of such metric parameters within the 
747
 
% document preamble.
748
 
749
 
% The \LaTeX\ parameters (resp. \TeX\ primitives) set by \classname{geometry} are:
750
 
% \cmd\paperwidth, \cmd\paperheight, 
751
 
% \cmd\textwidth, \cmd\textheight, 
752
 
% \cmd\topmargin, \cmd\headheight, \cmd\headsep, 
753
 
% \cmd\footskip, \cmd\skip\cmd\footins, 
754
 
% \cmd\marginparwidth, \cmd\marginparsep, 
755
 
% \cmd\oddsidemargin, \cmd\evensidemargin, 
756
 
% \cmd\columnsep, 
757
 
% \cmd\hoffset, \cmd\voffset, \cmd\mag, 
758
 
% \cmd\if@twocolumn, \cmd\if@twoside, \cmd\if@mparswitch, \cmd\if@reversemargin, 
759
 
%
760
 
% \revtex's assignments can be overridden by 
761
 
% any package or other statement in the document preamble, 
762
 
% so it should be compatible. 
763
 
%
764
 
%FIXME: one parameter is rendered semantically void (by \file{ltxgrid.dtx}): 
765
 
% \cmd\if@twocolumn. 
766
 
%
767
 
% \section{Options}\label{sec:options}%
768
 
%
769
 
% \subsection{Define Booleans Used in Options}%
770
 
% The following Booleans are used within the document class to
771
 
% allow the document or the substyle to make selections
772
 
% of formatting.
773
 
% An explicit document class option overrides an assignment made by a substyle.
774
 
%
775
 
% \subsection{Declare Options}%
776
 
%
777
 
% \subsubsection{Checkin: for Editorial Use}%
778
 
% A document class option declaring that the document is being processed by the 
779
 
% editorial staff.
780
 
%
781
 
% This option should:
782
 
% \begin{itemize}
783
 
% \item
784
 
% put date in footer along with folio
785
 
% \item
786
 
% Have the effect of selecting the \classoption{preprint} class option.
787
 
% \item
788
 
% Have the effect of selecting the \classoption{showpacs} class option.
789
 
% \item
790
 
% specify that when a float is placed h or H, it will be allowed to break over pages.
791
 
% (Note: be sure that if the enclosed \env{tabular} has an optional argument, you change it to [v], or remove it entirely.)
792
 
% \end{itemize}
793
 
% \changes{4.0c}{1999/11/13}{New option ``checkin''}
794
 
%    \begin{macrocode}
795
 
\DeclareOption{checkin}{%
796
 
  \@booleantrue\dateinRH@sw
797
 
  \@booleantrue\preprintsty@sw
798
 
  \def\@pointsize{12}%
799
 
  \@booleantrue\showPACS@sw
800
 
  \@booleantrue\showKEYS@sw
801
 
  \def\fp@proc@h{\allow@breaking@tables}%
802
 
  \def\fp@proc@H{\allow@breaking@tables}%
803
 
}%
804
 
\@booleanfalse\dateinRH@sw
805
 
\def\checkindate{\dateinRH@sw{{\tiny(\today)}}{}}%
806
 
\def\allow@breaking@tables{%
807
 
 \def\array@default{v}% tabular can break over pages
808
 
 \@booleanfalse\floats@sw % table can break over pages
809
 
}%
810
 
%    \end{macrocode}
811
 
%
812
 
% \subsubsection{Preprint Style}%
813
 
%
814
 
% \begin{macro}{\preprintsty@sw}
815
 
% The boolean \cmd\preprintsty@sw\ signifies that 
816
 
% the document is to be formatted in preprint style.
817
 
% \changes{4.0a}{1998/01/31}{Rearrange the ordering so numerical ones come first. AO: David, what does this mean?}
818
 
% \changes{4.0a}{1998/06/10}{comma not space between email and homepage}
819
 
% \changes{4.0b}{1999/06/20}{Move this ``complex'' option to the front, where it can be overridden by ``simple'' options.}
820
 
% \changes{4.1b}{2008/06/01}{Add option reprint, opposite of preprint, and preferred alternative to twocolumn}
821
 
%    \begin{macrocode}
822
 
\DeclareOption{preprint}{%
823
 
 \@booleantrue\preprintsty@sw
824
 
 \ExecuteOptions{12pt}%
825
 
}%
826
 
\DeclareOption{reprint}{%
827
 
 \@booleanfalse\preprintsty@sw
828
 
 \@booleantrue\twocolumn@sw
829
 
 \ExecuteOptions{10pt}%
830
 
}%
831
 
\DeclareOption{manuscript}{%
832
 
 \class@warn{Document class option manuscript is obsolete; use preprint instead}%
833
 
 \ExecuteOptions{preprint}%
834
 
}%
835
 
\@booleanfalse\preprintsty@sw
836
 
%    \end{macrocode}
837
 
% \end{macro}
838
 
%
839
 
% \begin{macro}{\showPACS@sw}
840
 
% \begin{macro}{\showKEYS@sw}
841
 
% If \cmd\showPACS@sw\ is true, print the PACS information in the title block,
842
 
% otherwise not.
843
 
% Similarly for \cmd\showKEYS@sw\ and the keywords.
844
 
% \subsubsection{Showing PACS and keywords}%
845
 
% \changes{4.0b}{1999/06/20}{New option}
846
 
% \changes{4.0e}{2000/09/20}{New option showkeys}
847
 
%    \begin{macrocode}
848
 
\DeclareOption{showpacs}{%
849
 
  \@booleantrue\showPACS@sw
850
 
}%
851
 
\DeclareOption{noshowpacs}{%
852
 
  \@booleanfalse\showPACS@sw
853
 
}%
854
 
\DeclareOption{showkeys}{%
855
 
  \@booleantrue\showKEYS@sw
856
 
}%
857
 
\DeclareOption{noshowkeys}{%
858
 
  \@booleanfalse\showKEYS@sw
859
 
}%
860
 
\@booleanfalse\showPACS@sw
861
 
\@booleanfalse\showKEYS@sw
862
 
%    \end{macrocode}
863
 
% \end{macro}
864
 
% \end{macro}
865
 
%
866
 
% \subsubsection{Balance the last page when in two-column page grid}%
867
 
%
868
 
% \begin{macro}{\balancelastpage@sw}
869
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
870
 
% If we are in a two-column page grid, we may wish to balance the columns
871
 
% of the last page. This will be done automatically if the 
872
 
% \classoption{twocolumn} document class option is chosen.
873
 
% This action will be turned off by the \classoption{nobalancelastpage}.
874
 
% A complementary class option, \classoption{balancelastpage} is also provided.
875
 
%    \begin{macrocode}
876
 
\DeclareOption{balancelastpage}{%
877
 
  \@booleantrue\balancelastpage@sw
878
 
}%
879
 
\DeclareOption{nobalancelastpage}{%
880
 
  \@booleanfalse\balancelastpage@sw
881
 
}%
882
 
\@booleantrue\balancelastpage@sw
883
 
%    \end{macrocode}
884
 
% \end{macro}
885
 
%
886
 
% \subsubsection{Showing preprint numbers}%
887
 
%
888
 
% \begin{macro}{\preprint@sw}
889
 
% \changes{4.0d}{2000/04/10}{New option}
890
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
891
 
% \changes{4.1n}{2009/11/06}{(AO, 565) restore 4.0 behavior: default value of \cs{preprint@sw} follows \cs{preprintsty@sw}}
892
 
% The boolean \cmd\preprint@sw\ signifies that 
893
 
% the preprints (cf. \cmd\preprint) are to be formatted (usually on the title page).
894
 
% The option \classoption{preprintnumbers} declares to do so,
895
 
% \classoption{nopreprintnumbers} declares not to; 
896
 
% the default is to follow \cmd\preprintsty@sw. 
897
 
%    \begin{macrocode}
898
 
\DeclareOption{nopreprintnumbers}{\@booleanfalse\preprint@sw}%
899
 
\DeclareOption{preprintnumbers}{\@booleantrue\preprint@sw}%
900
 
\appdef\setup@hook{%
901
 
 \@ifxundefined\preprint@sw{\let\preprint@sw\preprintsty@sw}{}%
902
 
}%
903
 
%    \end{macrocode}
904
 
% \end{macro}
905
 
%
906
 
% \subsubsection{Hypertext Option}%
907
 
%
908
 
% \changes{4.0a}{1998/01/31}{protect against hyperref revtex kludges which are not needed now}
909
 
% \changes{4.0b}{1999/06/20}{Move this ``complex'' option to the front, where it can be overridden by ``simple'' options.}
910
 
% \changes{4.0rc4}{2001/07/23}{hyperref is no longer loaded via class option: use a usepackage statement instead}
911
 
%    \begin{macrocode}
912
 
\DeclareOption{hyperref}{%
913
 
%    \end{macrocode}
914
 
% The following code had been commented out, it is now truly a comment:
915
 
%    \begin{verbatim}
916
 
%\AtEndOfClass{%
917
 
% \begingroup
918
 
%  \edef\@tempa{%
919
 
%   \let
920
 
%   \noexpand\@clsextension
921
 
%   \noexpand\@empty
922
 
%   \noexpand\RequirePackage{hyperref}%
923
 
%   \def\noexpand
924
 
%   \@clsextension{\@clsextension}%
925
 
%  }%
926
 
%  \expandafter
927
 
% \endgroup
928
 
% \@tempa
929
 
%}%
930
 
% \def\@pointsize{10}%
931
 
%    \end{verbatim}
932
 
%
933
 
% If you have a hyper-foo enabled browser you may prefer this format
934
 
% which does not print the URL for the home page, but just makes the
935
 
% name a link, but by default print it so it works on paper.
936
 
% \changes{4.0a}{1998/01/31}{print homepage}
937
 
%
938
 
%    \begin{macrocode}
939
 
 \class@warn{Class option "hyperref" is no longer supported.^^JEmploy \string\usepackage{hyperref} instead}%
940
 
}%
941
 
%    \end{macrocode}
942
 
%
943
 
% \subsubsection{Type Size}%
944
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
945
 
% Use \cmd\@pointsize|=10| rather than \cmd\@ptsize|=0| to allow easy extensions
946
 
% to 9pt or whatever. 
947
 
% Note: the three alternatives are mutually exclusive. 
948
 
%
949
 
% At this point, the parameter \cmd\@pointsize\ is set to \cmd\undefined:
950
 
% a society \emph{must} give it a definition.
951
 
%    \begin{macrocode}
952
 
\DeclareOption{10pt}{\def\@pointsize{10}}%
953
 
\DeclareOption{11pt}{\def\@pointsize{11}}%
954
 
\DeclareOption{12pt}{\def\@pointsize{12}}%
955
 
\let\@pointsize\@undefined
956
 
%    \end{macrocode}
957
 
%
958
 
% \subsubsection{Media Size}%
959
 
%
960
 
% \begin{macro}{\paperheight}
961
 
% \begin{macro}{\paperwidth}
962
 
% \changes{4.0b}{1999/06/20}{Restore all media size class option of \protect\file{classes.dtx}}
963
 
%    \begin{macrocode}
964
 
\DeclareOption{a4paper}{%
965
 
    \setlength\paperheight {297mm}%
966
 
    \setlength\paperwidth  {210mm}%
967
 
}%
968
 
\DeclareOption{a5paper}{%
969
 
    \setlength\paperheight {210mm}%
970
 
    \setlength\paperwidth  {148mm}%
971
 
}%
972
 
\DeclareOption{b5paper}{%
973
 
    \setlength\paperheight {250mm}%
974
 
    \setlength\paperwidth  {176mm}%
975
 
}%
976
 
\DeclareOption{letterpaper}{%
977
 
    \setlength\paperheight {11in}%
978
 
    \setlength\paperwidth  {8.5in}%
979
 
}%
980
 
\DeclareOption{legalpaper}{%
981
 
    \setlength\paperheight {14in}%
982
 
    \setlength\paperwidth  {8.5in}%
983
 
}%
984
 
\DeclareOption{executivepaper}{%
985
 
    \setlength\paperheight {10.5in}%
986
 
    \setlength\paperwidth  {7.25in}%
987
 
}%
988
 
\DeclareOption{landscape}{%
989
 
    \setlength\@tempdima   {\paperheight}%
990
 
    \setlength\paperheight {\paperwidth}%
991
 
    \setlength\paperwidth  {\@tempdima}%
992
 
}%
993
 
%    \end{macrocode}
994
 
%
995
 
% \changes{4.1a}{2008/01/18}{(AO, 478) \cs{ds@letterpaper}, so that ``letterpaper really is the default''}%
996
 
% Effectively select \classoption{letterpaper}. 
997
 
%    \begin{macrocode}
998
 
\ds@letterpaper
999
 
%    \end{macrocode}
1000
 
% \end{macro}
1001
 
% \end{macro}
1002
 
%
1003
 
% \subsubsection{Bibnotes}%
1004
 
%
1005
 
% \begin{macro}{\frontmatter@footnote@produce}
1006
 
% Frontmatter footnotes result from frontmatter commands like
1007
 
% \cmd\email, \cmd\homepage, \cmd\altaffiliation, and \cmd\thanks.
1008
 
% The default for \cmd\frontmatter@footnote@produce\ is
1009
 
% \cmd\frontmatter@footnote@produce@footnote, which formats the frontmatter footnotes
1010
 
% at the foot of the title page. The \classoption{bibnotes} class option
1011
 
% defers them to the bibliography.
1012
 
% \changes{4.1b}{2008/06/01}{(AO) Implement bibnotes through \cs{frontmatter@footnote@produce} instead of \cs{bibnotes@sw}}%
1013
 
%    \begin{macrocode}
1014
 
\DeclareOption{bibnotes}{\let\frontmatter@footnote@produce\frontmatter@footnote@produce@endnote}%
1015
 
\DeclareOption{nobibnotes}{\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote}%
1016
 
\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote
1017
 
\appdef\class@enddocumenthook{\auto@bib}%
1018
 
%    \end{macrocode}
1019
 
% \end{macro}
1020
 
%
1021
 
% \subsubsection{Footinbib}%
1022
 
%
1023
 
% \begin{macro}{\footinbib@sw}
1024
 
% The boolean \cmd\footinbib@sw\ signifies that 
1025
 
% text footnotes are to be set in the bibliography, as endnotes.
1026
 
1027
 
% The document may set the value one way or the other via
1028
 
% the following two class options.
1029
 
%    \begin{macrocode}
1030
 
\DeclareOption{footinbib}{\@booleantrue\footinbib@sw}
1031
 
\DeclareOption{nofootinbib}{\@booleanfalse\footinbib@sw}
1032
 
%    \end{macrocode}
1033
 
% The default value is \cmd\false@sw, and the society or journal
1034
 
% may override the default. 
1035
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1036
 
%    \begin{macrocode}
1037
 
\@booleanfalse\footinbib@sw
1038
 
%    \end{macrocode}
1039
 
% \end{macro}
1040
 
%
1041
 
% \subsubsection{altaffilletter}%
1042
 
1043
 
% \begin{macro}{\altaffilletter@sw}
1044
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1045
 
% Determine the procedure \cmd\thefootnote\ used in frontmatter: 
1046
 
% the footnote symbol used in titlepage footnotes.
1047
 
%     \begin{macrocode}
1048
 
\DeclareOption{altaffilletter}{\@booleantrue\altaffilletter@sw}%
1049
 
\DeclareOption{altaffilsymbol}{\@booleanfalse\altaffilletter@sw}%
1050
 
\@booleanfalse\altaffilletter@sw
1051
 
%    \end{macrocode}
1052
 
% \end{macro}
1053
 
%
1054
 
% \subsubsection{superbib}%
1055
 
%
1056
 
% \begin{macro}{\place@bibnumber}
1057
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1058
 
% The procedure \cmd\place@bibnumber\ produces the number
1059
 
% at the head of the \cmd\bibitem, in the bibliography.
1060
 
% By default, it has the \cmd\bibnumfmt\ meaning assigned by the \classname{natbib} package.
1061
 
% It may be overridden by society, journal, or by the document options.
1062
 
%
1063
 
%     \begin{macrocode}
1064
 
\DeclareOption{superbib}{%
1065
 
 \let\place@bibnumber\place@bibnumber@sup
1066
 
}%
1067
 
\def\place@bibnumber{\NATx@bibnumfmt}%
1068
 
%    \end{macrocode}
1069
 
% \end{macro}
1070
 
%
1071
 
% \begin{macro}{\place@bibnumber@sup}
1072
 
% \begin{macro}{\place@bibnumber@inl}
1073
 
% For producing the \cmd\bibitem\ device,
1074
 
% we define two procedures to select from.
1075
 
%
1076
 
% Note that we could have used \classname{natbib}'s \cmd\ifNAT@super\
1077
 
% switch, but it does not allow for altering the meaning of \cmd\bibnumfmt.
1078
 
%    \begin{macrocode}
1079
 
\def\place@bibnumber@sup#1{\textsuperscript{#1}}%
1080
 
\def\place@bibnumber@inl#1{[#1]}%
1081
 
%    \end{macrocode}
1082
 
% \end{macro}
1083
 
% \end{macro}
1084
 
%
1085
 
% \subsubsection{citeautoscript}%
1086
 
% \begin{macro}{\citeautoscript@sw}
1087
 
% This class option allows you to automatically accomodate a change from non-superscripted, numbered references
1088
 
% to superscripted, bunmbered references.
1089
 
%
1090
 
% Note: you should always mark up your document with the assumption that references are \emph{not} going to be superscripted.
1091
 
% Otherwise this option has no hope of working properly.
1092
 
%
1093
 
%     \begin{macrocode}
1094
 
\DeclareOption{citeautoscript}{\@booleantrue\citeautoscript@sw}%
1095
 
\@booleanfalse\citeautoscript@sw
1096
 
%    \end{macrocode}
1097
 
% \end{macro}
1098
 
%
1099
 
% \subsubsection{Variants on the Bibliography Style}%
1100
 
% \changes{4.1b}{2008/07/01}{(AO) provide option longbibliography}
1101
 
%
1102
 
% \revtex\ anticipates that a society or journal will provide two related Bib\TeX bibliography style variants,
1103
 
% designating one as the default.
1104
 
% A pair of document class options \classoption{longbibliography} and \classoption{nolongbibliography}
1105
 
% allows the user to explicitly select between them. 
1106
 
% \begin{macro}{\longbibliography@sw}
1107
 
%
1108
 
% \revtex's default for \cmd\longbibliography@sw\ is \cmd\false@sw.
1109
 
%
1110
 
%     \begin{macrocode}
1111
 
\DeclareOption{longbibliography}{\@booleantrue\longbibliography@sw}%
1112
 
\DeclareOption{nolongbibliography}{\@booleanfalse\longbibliography@sw}%
1113
 
\@booleanfalse\longbibliography@sw
1114
 
%    \end{macrocode}
1115
 
% \end{macro}
1116
 
%
1117
 
% \begin{macro}{\eprint@enable@sw}
1118
 
% \changes{4.1o}{2010/02/10}{(AO, 580) Provide a document class option to turn off production of eprint field in bibliography.} 
1119
 
%
1120
 
% The document class options \classoption{eprint} and \classoption{noeprint}
1121
 
% give the user the ability to turn off production of the \texttt{eprint} field in the bibliography. 
1122
 
%     \begin{macrocode}
1123
 
\DeclareOption{eprint}{\@booleantrue\eprint@enable@sw}%
1124
 
\DeclareOption{noeprint}{\@booleanfalse\eprint@enable@sw}%
1125
 
\@booleantrue\eprint@enable@sw
1126
 
%    \end{macrocode}
1127
 
% \end{macro}
1128
 
%
1129
 
% \subsubsection{Simplex/Duplex Pages}%
1130
 
%
1131
 
% \begin{macro}{\twoside@sw}
1132
 
% \changes{4.1b}{2008/07/01}{(AO) coordinate \cs{if@twoside} with \cs{twoside@sw}}
1133
 
% The flag \cmd\twoside@sw\ signifies that the document is to be 
1134
 
% formatted for duplex printing.
1135
 
% After the preamble is processed, we align the value
1136
 
% of the kernel \cmd\newif\ switch \cmd\if@twoside\ 
1137
 
% to that of \cmd\twoside@sw. 
1138
 
% \cmd\if@twoside\ itself is used in the kernel's
1139
 
% \cmd\cleardoublepage\ and \cmd\@outputpage\ procedures.
1140
 
%    \begin{macrocode}
1141
 
\@booleanfalse\twoside@sw
1142
 
\appdef\document@inithook{%
1143
 
 \twoside@sw{\@twosidetrue}{\@twosidefalse}%
1144
 
}%
1145
 
%    \end{macrocode}
1146
 
% \changes{4.0a}{1998/01/31}{4.d had twoside option setting twoside switch to false}
1147
 
% The complementary options \classoption{twoside} and \classoption{oneside}
1148
 
% assert formatting for duplex or simplex printing, respectively.
1149
 
% At the same time, we arrange for the selection of the page grid 
1150
 
% with respect to the marginal column:
1151
 
% Because \cmd\if@reversemargin\ remains default (false),
1152
 
% if duplex printing, this column will always be on the (right),
1153
 
% if simplex printing, it will always be on the (outside).
1154
 
% QUERY: correct choice?
1155
 
%FIXME: assign \cmd\if@mparswitch\ later (and protect the assignment, too). 
1156
 
%    \begin{macrocode}
1157
 
\DeclareOption{twoside}{\@booleantrue \twoside@sw\@mparswitchfalse}%
1158
 
\DeclareOption{oneside}{\@booleanfalse\twoside@sw\@mparswitchtrue}%
1159
 
%    \end{macrocode}
1160
 
% \end{macro}
1161
 
%
1162
 
% \subsubsection{Two-Column Page Grid}%
1163
 
%
1164
 
% \begin{macro}{\twocolumn@sw}
1165
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1166
 
% \changes{4.1p}{2010/02/24}{(AO, 583) Provide interface to \classname{ltxgrid} \cs{onecolumn@grid@setup} and \cs{twocolumn@grid@setup}} 
1167
 
% The flag \cmd\twocolumn@sw\ signifies that the document is to be 
1168
 
% formatted in the two-column page grid.
1169
 
%
1170
 
% If no options relating to page grid are invoked by 
1171
 
% \cmd\AtBeginDcoument\ time, we set default values.
1172
 
% Up to that point, the class can check if \cmd\twocolumn@sw\
1173
 
% is \cmd\undefined\ to see if any related options have been invoked.
1174
 
%
1175
 
% \classoption{onecolumn} specifies one-column page grid.
1176
 
% The \classoption{twocolumn} class option employs the standard mechanism for
1177
 
% changing the column grid: the \classname{ltxgrid} package.
1178
 
%    \begin{macrocode}
1179
 
\DeclareOption{onecolumn}{\@booleanfalse\twocolumn@sw}%
1180
 
\DeclareOption{twocolumn}{\@booleantrue \twocolumn@sw}%
1181
 
\@booleanfalse\twocolumn@sw
1182
 
%    \end{macrocode}
1183
 
% The column grid is determined by the state of the switch \cmd\twocolumn@sw
1184
 
% and is effected at \cmd\class@documenthook\ time.
1185
 
% The society or journal file may re-define \cmd\select@column@grid\ 
1186
 
% to accomodate, e.g., more than two choices for the page grid. 
1187
 
%
1188
 
% Note that \cmd\open@column@two\ adds items to the Main Vertical List, 
1189
 
% so constitutes the true beginning of the document.
1190
 
%
1191
 
% Note also that if the selected column grid is a one-column grid, 
1192
 
% there is nothing to do, because \classname{ltxgrid} has already
1193
 
% set that up via \cmd\@begindocumenthook.
1194
 
%    \begin{macrocode}
1195
 
\def\select@column@grid{%
1196
 
 \twocolumn@sw{%
1197
 
  \twocolumn@grid@setup
1198
 
  \open@twocolumn
1199
 
 }{%
1200
 
  \onecolumn@grid@setup
1201
 
%    \end{macrocode}
1202
 
%    \begin{verbatim}
1203
 
% \open@onecolumn
1204
 
%    \end{verbatim}
1205
 
%    \begin{macrocode}
1206
 
 }%
1207
 
}%
1208
 
\appdef\class@documenthook{%
1209
 
 \select@column@grid
1210
 
}%
1211
 
%    \end{macrocode}
1212
 
%
1213
 
% \end{macro}
1214
 
%
1215
 
% \begin{macro}{\clear@document}
1216
 
% \changes{4.1n}{2009/12/05}{(AO, 569) Use of \classname{hyperref} interferes with column balancing of last page}%
1217
 
%
1218
 
% We install into \cmd\class@enddocumenthook\ 
1219
 
% a trap for the procedure \cmd\clearpage\ that attempts to end the current page.
1220
 
% This procedure needs to be headpatched with \cmd\close@column\ to end the current page grid. 
1221
 
%
1222
 
% This procedure is executed after all typesetting is complete
1223
 
% i.e., after items like \cmd\printtables, as well as all commands queued up by \cmd\AtEndDocument. 
1224
 
%
1225
 
%    \begin{macrocode}
1226
 
\appdef\setup@hook{%
1227
 
 \let\clearpage@ltx\clearpage
1228
 
 \prepdef\clear@document{\let\clearpage\clearpage@ltx\let\clear@document\@empty\close@column}%
1229
 
 \appdef\class@documenthook{%
1230
 
  \appdef\class@enddocumenthook{%
1231
 
   \let\clearpage\clear@document
1232
 
  }%
1233
 
 }%
1234
 
}%
1235
 
%    \end{macrocode}
1236
 
%
1237
 
% \end{macro}
1238
 
%
1239
 
% \begin{macro}{\authoryear@sw}
1240
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
1241
 
% The boolean \cmd\authoryear@sw\ signifies that we are to use author-year citations rather than numerical citations.
1242
 
1243
 
% The \classoption{author-year} class option selects ``'author-year'' citations;  
1244
 
% \classoption{numerical} selectes ``numerical'' citations.
1245
 
% The former is the default.
1246
 
%    \begin{macrocode}
1247
 
\DeclareOption{author-year}{\@booleantrue\authoryear@sw}%
1248
 
\DeclareOption{numerical}{\@booleanfalse\authoryear@sw}%
1249
 
\@booleanfalse\authoryear@sw
1250
 
%    \end{macrocode}
1251
 
% \end{macro}
1252
 
%
1253
 
% \begin{macro}{\galley@sw}
1254
 
% The boolean \cmd\galley@sw\ signifies that 
1255
 
% the document is to be formatted in galley style.
1256
 
%
1257
 
% Asserting both \cmd\galley@sw\ and \cmd\preprintsty@sw\ 
1258
 
% may produce strange formatting results, but it is not illegal.
1259
 
% However, it \emph{is} illegal to assert galley and any 
1260
 
% twocolumn option.
1261
 
%    \begin{macrocode}
1262
 
%    \end{macrocode}
1263
 
% \classoption{galley} emulates setting the galleys of
1264
 
% a two-column journal.
1265
 
% CHANGED: this option should effectively set \cmd\preprintsty@sw\ false.
1266
 
% NOTE: it makes no sense to assert both galley and twocolumn.
1267
 
% \changes{4.1b}{2008/07/01}{Class option galley sets \cs{preprintsty@sw} to false}
1268
 
1269
 
%    \begin{macrocode}
1270
 
\DeclareOption{galley}{%
1271
 
  \ExecuteOptions{onecolumn}%
1272
 
  \@booleantrue\galley@sw
1273
 
  \@booleanfalse\preprintsty@sw
1274
 
  \appdef\setup@hook{%
1275
 
    \advance\textwidth-\columnsep
1276
 
    \textwidth.5\textwidth
1277
 
  }%
1278
 
}%
1279
 
\@booleanfalse\galley@sw
1280
 
%    \end{macrocode}
1281
 
% \end{macro}
1282
 
%
1283
 
% \subsubsection{raggedbottom or flushbottom}%
1284
 
% \begin{macro}{\raggedcolumn@sw}
1285
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1286
 
% The class options \classoption{raggedbottom} and \classoption{flushbottom} determine whether the columns (page)
1287
 
% are ragged bottom or flush bottom.
1288
 
% Note that we do not select a default here; that is done by the journal substyle.
1289
 
%    \begin{macrocode}
1290
 
\DeclareOption{raggedbottom}{\@booleantrue\raggedcolumn@sw}
1291
 
\DeclareOption{flushbottom}{\@booleanfalse\raggedcolumn@sw}
1292
 
\@booleanfalse\raggedcolumn@sw
1293
 
\appdef\setup@hook{%
1294
 
 \raggedcolumn@sw{\raggedbottom}{\flushbottom}%
1295
 
}%
1296
 
%    \end{macrocode}
1297
 
% \end{macro}
1298
 
%
1299
 
% \subsubsection{tightenlines}%
1300
 
%
1301
 
% This class option specifies that standard leading 
1302
 
% is to be used to set the type.
1303
 
% If lacking, the leading will be loose.
1304
 
%
1305
 
% \begin{macro}{\tightenlines@sw}
1306
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1307
 
% The boolean \cmd\tightenlines@sw\ signifies that 
1308
 
% the leading is to be made standard amount.
1309
 
% If false, it means that the leading is to be set extra open.
1310
 
% Has no effect on 10pt size option.
1311
 
%
1312
 
%    \begin{macrocode}
1313
 
\DeclareOption{tightenlines}{\@booleantrue\tightenlines@sw}
1314
 
\@booleanfalse\tightenlines@sw
1315
 
%    \end{macrocode}
1316
 
% \end{macro}
1317
 
%
1318
 
% \subsubsection{lengthcheck}%
1319
 
%
1320
 
% \begin{macro}{\lengthcheck@sw}
1321
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1322
 
% The flag \cmd\lengthcheck@sw\ signifies that 
1323
 
% the length checking is in effect.
1324
 
% It is up to the individual journal substyle 
1325
 
% to alter its formatting accordingly.
1326
 
%    \begin{macrocode}
1327
 
\@booleanfalse\lengthcheck@sw
1328
 
%    \end{macrocode}
1329
 
% This class option specifies that the formatted document 
1330
 
% should approach as closely as possible the
1331
 
% formatting of an actual journal article 
1332
 
% to facilitate the author's performance of a length check.
1333
 
%
1334
 
%FIXME: society or journal may have its own definition of this option.
1335
 
%    \begin{macrocode}
1336
 
\DeclareOption{lengthcheck}{%
1337
 
 \@booleantrue\lengthcheck@sw
1338
 
 \ExecuteOptions{reprint}%
1339
 
}%
1340
 
%    \end{macrocode}
1341
 
% In addition, if length checking is in effect, we will enable 
1342
 
% the tally of text length. 
1343
 
%    \begin{macrocode}
1344
 
\appdef\setup@hook{%
1345
 
 \lengthcheck@sw{\@booleantrue\tally@box@size@sw}{}%
1346
 
}%
1347
 
%    \end{macrocode}
1348
 
% \end{macro}
1349
 
%
1350
 
% \subsubsection{Draft and Final}%
1351
 
%
1352
 
% \begin{macro}{\draft@sw}
1353
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1354
 
% The flag \cmd\draft@sw\ signifies that the document is to be 
1355
 
% formatted in draft mode. 
1356
 
%
1357
 
%    \begin{macrocode}
1358
 
\appdef\setup@hook{%
1359
 
 \draft@sw{\overfullrule 5\p@}{\overfullrule\z@}%
1360
 
}%
1361
 
%    \end{macrocode}
1362
 
%
1363
 
% Certain packages may pay attention to the 
1364
 
% class option \classoption{draft} that sets this Boolean.
1365
 
%    \begin{macrocode}
1366
 
\DeclareOption{draft}{\@booleantrue\draft@sw}%
1367
 
\DeclareOption{final}{\@booleanfalse\draft@sw}%
1368
 
\@booleanfalse\draft@sw
1369
 
%    \end{macrocode}
1370
 
%
1371
 
% \end{macro}
1372
 
%
1373
 
% \subsubsection{eqsecnum}%
1374
 
%
1375
 
% \begin{macro}{\eqsecnum@sw}
1376
 
% The flag \cmd\eqsecnum@sw\ signifies that equations are to be 
1377
 
% numbered with the section, e.g., ``Eq. (2.13)''.
1378
 
%    \begin{macrocode}
1379
 
\appdef\setup@hook{%
1380
 
 \eqsecnum@sw{%
1381
 
  \@addtoreset{equation}{section}%
1382
 
  \def\theequation@prefix{\arabic{section}.}%
1383
 
 }{}%
1384
 
}%
1385
 
%    \end{macrocode}
1386
 
%
1387
 
% The \classoption{eqsecnum} class option signifies that equations are
1388
 
% to be numbered within sections.
1389
 
%    \begin{macrocode}
1390
 
\DeclareOption{eqsecnum}{\@booleantrue\eqsecnum@sw}%
1391
 
\@booleanfalse\eqsecnum@sw
1392
 
%    \end{macrocode}
1393
 
% \end{macro}
1394
 
%
1395
 
% \subsubsection{secnumarabic}%
1396
 
% \changes{4.1b}{2008/07/01}{(AO) No longer use \cs{secnumarabic@sw}, instead use \cs{setup@secnums}}
1397
 
% The \classoption{secnumarabic} class option signifies that sectioning commands are
1398
 
% to be numbered arabic: 
1399
 
% the procedure \cmd\secnums@arabic\ is executed as the default. 
1400
 
% Otherwise, the procedure \cmd\secnums@rtx\ determines things. 
1401
 
% The society or journal may redefine either procedure,
1402
 
% and may change the definition of \cmd\setup@secnums\ itself, 
1403
 
% thereby establishing a different default. 
1404
 
%    \begin{macrocode}
1405
 
\appdef\setup@hook{%
1406
 
 \setup@secnums
1407
 
}%
1408
 
\DeclareOption{secnumarabic}{%
1409
 
 \def\setup@secnums{\secnums@arabic}%
1410
 
}%
1411
 
\def\setup@secnums{\secnums@rtx}%
1412
 
%    \end{macrocode}
1413
 
% The code that defines \cmd\secnums@rtx\ and \cmd\secnums@arabic\ appears
1414
 
% in Section~\ref{sec:secnumarabic}.
1415
 
%
1416
 
% \begin{macro}{fleqn}
1417
 
% FIXME: model fleqn after amsfonts. I no longer understand why I said this.
1418
 
% \file{fleqn.clo} is not a package, so it can simply be \cmd\input. 
1419
 
%    \begin{macrocode}
1420
 
\DeclareOption{fleqn}{%
1421
 
 \input{fleqn.clo}%
1422
 
}%
1423
 
%    \end{macrocode}
1424
 
% \end{macro}
1425
 
%
1426
 
% \subsubsection{floats/endfloats}%
1427
 
%
1428
 
% \begin{macro}{\floats@sw}
1429
 
% \begin{macro}{\floatp@sw}
1430
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1431
 
% The Boolean \cmd\floats@sw\ signifies that floats are to be floated;
1432
 
% if false, that floats are to be deferred to the end of the document.
1433
 
% By default, the former.
1434
 
% Note that the state of this Boolean is to be changed by 
1435
 
% the document class in response to user-selected options.
1436
 
1437
 
% This boolean and the assignment of its default value is done by
1438
 
% the \classname{ltxutil} package.
1439
 
%
1440
 
% The Boolean \cmd\floatp@sw\ signifies that endfloats are to be set one per page;
1441
 
% if false, that endfloats are to be set with multiple floats per page permitted.
1442
 
% By default, the latter.
1443
 
% Note that the state of this Boolean is to be changed by 
1444
 
% the document class in response to user-selected options.
1445
 
% The default is established here.
1446
 
%
1447
 
% These options control, via the Boolean \cmd\floats@sw, 
1448
 
% whether floats are to be migrated to the end of the document.
1449
 
%    \begin{macrocode}
1450
 
\DeclareOption{floats}{\@booleantrue\floats@sw\@booleanfalse\floatp@sw}
1451
 
\DeclareOption{endfloats}{\@booleanfalse\floats@sw\@booleanfalse\floatp@sw}
1452
 
\DeclareOption{endfloats*}{\@booleanfalse\floats@sw\@booleantrue\floatp@sw}
1453
 
\@booleantrue\floats@sw
1454
 
\@booleantrue\floatp@sw
1455
 
%    \end{macrocode}
1456
 
% \end{macro}
1457
 
% \end{macro}
1458
 
%
1459
 
% \subsubsection{titlepage/notitlepage}%
1460
 
% These options control, via \cmd\titlepage@sw, 
1461
 
% whether the title block is to be set on a separate page.
1462
 
%
1463
 
% \begin{macro}{\titlepage@sw}
1464
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1465
 
% The flag \cmd\titlepage@sw\ signifies that a forced 
1466
 
% page break is to follow the title page: the article
1467
 
% title appears on a page by itself.
1468
 
%
1469
 
%    \begin{macrocode}
1470
 
\DeclareOption{titlepage}{\@booleantrue\titlepage@sw}
1471
 
\DeclareOption{notitlepage}{\@booleanfalse\titlepage@sw}
1472
 
\@booleanfalse\titlepage@sw
1473
 
%    \end{macrocode}
1474
 
% \end{macro}
1475
 
%
1476
 
% \subsubsection{Substyle and Sub-substyle}%
1477
 
%
1478
 
% \begin{macro}{\change@society}
1479
 
% \begin{macro}{\change@journal}
1480
 
% \changes{4.1b}{2008/07/01}{(AO) Provide more diagnostics when \cs{@society} is assigned.}
1481
 
% If the society or, resp., journal has already been assigned,
1482
 
% notify user whether it is being overridden. 
1483
 
1484
 
%    \begin{macrocode}
1485
 
\def\change@society#1{%
1486
 
 \def\@tempa{#1}%
1487
 
 \@ifxundefined\@society{%
1488
 
  \class@info{Selecting society \@tempa}%
1489
 
  \let\@society\@tempa
1490
 
 }{%
1491
 
  \@ifx{\@tempa\@society}{}{%
1492
 
   \class@warn{Conflicting society \@tempa<>\@society; not selected}%
1493
 
  }%
1494
 
 }%
1495
 
}%
1496
 
\def\change@journal#1{%
1497
 
 \def\@tempa{#1}%
1498
 
 \@ifxundefined\@journal{%
1499
 
  \class@info{Selecting journal \@tempa}%
1500
 
  \let\@journal\@tempa
1501
 
 }{%
1502
 
  \@ifx{\@tempa\@journal}{}{%
1503
 
   \class@warn{Conflicting journal \@tempa<>\@journal; not selected}%
1504
 
  }%
1505
 
 }%
1506
 
}%
1507
 
%    \end{macrocode}
1508
 
% \end{macro}
1509
 
% \end{macro}
1510
 
%
1511
 
% Here had been the class options relating to the APS.
1512
 
% Now that all societies are on an equal footing, this code is in the
1513
 
% respective \file{.rtx} file.
1514
 
%    \begin{macrocode}
1515
 
%    \end{macrocode}
1516
 
%
1517
 
% \subsubsection{Optical Society of America}%
1518
 
% Here are the class options relating to the Optical Society of America.
1519
 
%
1520
 
% Note: as of 2008, the only OSA module being distributed by ctan is \file{osajnl.rtx}.
1521
 
% The class options declared here are, I think, unused.
1522
 
%    \begin{macrocode}
1523
 
\DeclareOption{osa}{\change@society{osa}\let\@journal\@undefined}%
1524
 
\DeclareOption{osameet}{\change@society{osa}\def\@journal{osameet}}%
1525
 
\DeclareOption{opex}{\change@society{osa}\def\@journal{opex}}%
1526
 
\DeclareOption{tops}{\change@society{osa}\def\@journal{tops}}%
1527
 
\DeclareOption{josa}{\change@society{osa}\def\@journal{josa}}%
1528
 
%    \end{macrocode}
1529
 
%
1530
 
% \begin{macro}{\rtx@require@packages}
1531
 
% \changes{4.1b}{2008/07/01}{Read in all required packages together}
1532
 
% The procedure \cmd\rtx@require@packages\ accumulates all \cmd\RequirePackage\ statements
1533
 
% in the course of loading the document class. 
1534
 
% Carrying out these operations at that time is needed:
1535
 
% \cmd\ProcessOptions\ must be executed first. 
1536
 
%    \begin{macrocode}
1537
 
\let\rtx@require@packages\@empty
1538
 
%    \end{macrocode}
1539
 
% \end{macro}
1540
 
%
1541
 
% \begin{macro}{\MakeUppercase}
1542
 
% \begin{macro}{\MakeLowercase}
1543
 
% \changes{4.1b}{2008/07/01}{Package textcase is now simply a required package}
1544
 
% \changes{4.1b}{2008/07/01}{Read in all required packages together}
1545
 
% \changes{4.1g}{2009/10/07}{(AO, 538) \cs{MakeTextUppercase} inappropriately expands the double backslash}
1546
 
% We load the \classname{textcase} package of David Carlisle.
1547
 
% Now that its bug of long standing has been repaired, we no longer need to doctor it up. 
1548
 
% And, because its loading has been deferred until \cmd\rtx@require@packages\ time, 
1549
 
% we no longer override \LaTeX\ here. Instead, the \classname{textcase} package
1550
 
% will be asked to do that. 
1551
 
%    \begin{macrocode}
1552
 
\appdef\rtx@require@packages{%
1553
 
 \RequirePackage[overload]{textcase}%
1554
 
}%
1555
 
%    \end{macrocode}
1556
 
% The following code used to
1557
 
% let the \classname{textcase} commands override those of \LaTeX:
1558
 
%    \begin{verbatim}
1559
 
%\appdef\setup@hook{%
1560
 
% \expandafter
1561
 
% \let\csname MakeUppercase \expandafter\endcsname
1562
 
%    \csname MakeTextUppercase \endcsname
1563
 
% \expandafter
1564
 
% \let\csname MakeLowercase \expandafter\endcsname
1565
 
%    \csname MakeTextLowercase \endcsname
1566
 
% }%
1567
 
%    \end{verbatim}
1568
 
% \end{macro}
1569
 
% \end{macro}
1570
 
%
1571
 
% \begin{macro}{amsfonts}
1572
 
% \changes{4.1b}{2008/07/01}{Read in all required packages together}
1573
 
% The class option \classoption{amsfonts} has the
1574
 
% same effect as if the document preamble contained
1575
 
% a \cmd\usepackage\verb${amsfonts}$ statement.
1576
 
%    \begin{macrocode}
1577
 
\DeclareOption{amsfonts}{%
1578
 
  \def\class@amsfonts{\RequirePackage{amsfonts}}%
1579
 
}%
1580
 
\DeclareOption{noamsfonts}{%
1581
 
  \let\class@amsfonts\@empty
1582
 
}%
1583
 
\appdef\rtx@require@packages{%
1584
 
 \@ifxundefined\class@amsfonts{}{\class@amsfonts}%
1585
 
}%
1586
 
%    \end{macrocode}
1587
 
% \end{macro}
1588
 
%
1589
 
% \begin{macro}{amssymb}
1590
 
% \changes{4.1b}{2008/07/01}{Read in all required packages together}
1591
 
% The class option \classoption{amssymb} has the
1592
 
% same effect as if the document preamble contained
1593
 
% a \cmd\usepackage\verb${amssymb}$ statement.
1594
 
%    \begin{macrocode}
1595
 
\DeclareOption{amssymb}{%
1596
 
  \def\class@amssymb{\RequirePackage{amssymb}}%
1597
 
}%
1598
 
\DeclareOption{noamssymb}{%
1599
 
  \let\class@amssymb\@empty
1600
 
}%
1601
 
\appdef\rtx@require@packages{%
1602
 
 \@ifxundefined\class@amssymb{}{\class@amssymb}%
1603
 
}%
1604
 
%    \end{macrocode}
1605
 
% \end{macro}
1606
 
%
1607
 
% \begin{macro}{amsmath}
1608
 
% \changes{4.1b}{2008/07/01}{Read in all required packages together}
1609
 
% The class option \classoption{amsmath} has the
1610
 
% same effect as if the document preamble contained
1611
 
% a \cmd\usepackage\verb${amsmath}$ statement.
1612
 
%
1613
 
% We require version 1.2 (datestamped 1997/03/20) or later.
1614
 
% The \expandafter\cmd\csname ver@amsmath.sty\endcsname, will 
1615
 
1616
 
% \LaTeX\ note:
1617
 
% Certain \LaTeX\ procedures have an arbitrary and pointless restriction that they may be used only within the preamble.
1618
 
% We get around this by preserving the procedures in private \cmd\csname s.
1619
 
%
1620
 
% FIXME note: it is difficult to ensure that an error summary will be printed on the console at the very end,
1621
 
% but \classname{ltxgrid} allows accomplishing this via an interrupt, put down at \cmd\AtEndDocument\ time.
1622
 
%
1623
 
%    \begin{macrocode}
1624
 
\DeclareOption{amsmath}{%
1625
 
  \def\class@amsmath{\RequirePackage{amsmath}[\ver@amsmath@prefer]}%
1626
 
}%
1627
 
\DeclareOption{noamsmath}{%
1628
 
  \let\class@amsmath\@empty
1629
 
}%
1630
 
\appdef\rtx@require@packages{%
1631
 
 \preserve@LaTeX
1632
 
 \@ifxundefined\class@amsmath{}{\class@amsmath}%
1633
 
 \appdef\class@enddocumenthook{\test@amsmath@ver}%
1634
 
}%
1635
 
\appdef\preserve@LaTeX{%
1636
 
 \let\@ifl@aded@LaTeX\@ifl@aded
1637
 
 \let\@ifpackageloaded@LaTeX\@ifpackageloaded
1638
 
 \let\@pkgextension@LaTeX\@pkgextension
1639
 
 \let\@ifpackagelater@LaTeX\@ifpackagelater
1640
 
 \let\@ifl@ter@LaTeX\@ifl@ter
1641
 
 \let\@ifl@t@r@LaTeX\@ifl@t@r
1642
 
 \let\@parse@version@LaTeX\@parse@version
1643
 
}%
1644
 
\appdef\restore@LaTeX{%
1645
 
 \let\@ifl@aded\@ifl@aded@LaTeX
1646
 
 \let\@ifpackageloaded\@ifpackageloaded@LaTeX
1647
 
 \let\@pkgextension\@pkgextension@LaTeX
1648
 
 \let\@ifpackagelater\@ifpackagelater@LaTeX
1649
 
 \let\@ifl@ter\@ifl@ter@LaTeX
1650
 
 \let\@ifl@t@r\@ifl@t@r@LaTeX
1651
 
 \let\@parse@version\@parse@version@LaTeX
1652
 
}%
1653
 
\def\test@amsmath@ver{%
1654
 
 \begingroup
1655
 
  \restore@LaTeX
1656
 
  \@ifpackageloaded{amsmath}{%
1657
 
   \@ifpackagelater{amsmath}{\ver@amsmath@prefer}{}{%
1658
 
     \class@warn{%
1659
 
      You have loaded amsmath, version "\csname ver@amsmath.sty\endcsname",\MessageBreak
1660
 
      but this class requires version "\ver@amsmath@prefer", or later.\MessageBreak
1661
 
      Please update your LaTeX installation.
1662
 
     }%
1663
 
   }%
1664
 
  }{%
1665
 
  }%
1666
 
 \endgroup
1667
 
}%
1668
 
\def\ver@amsmath@prefer{2000/01/15 v2.05 AMS math features}%
1669
 
%    \end{macrocode}
1670
 
% \end{macro}
1671
 
%
1672
 
% \subsubsection{Presenting Authors and Their Affiliations}%
1673
 
% \changes{4.1b}{2008/07/01}{Code relating to new syntax for frontmatter has been placed in \file{ltxfront.dtx}}
1674
 
% Class options for presenting authors and their affiliations are now defined in 
1675
 
% \file{ltxfront.dtx}.
1676
 
%
1677
 
%    \begin{macrocode}
1678
 
%    \end{macrocode}
1679
 
%
1680
 
% \subsubsection{Typeset by \revtex}%
1681
 
%
1682
 
% \begin{macro}{\byrevtex@sw}
1683
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1684
 
% The flag \cmd\byrevtex@sw\ signifies that the document should
1685
 
% bear an imprint to the effect that it was formatted by this document class.
1686
 
%
1687
 
% The class option \classoption{byrevtex} signifies that you want the 
1688
 
% ``Typeset by \revtex'' byline to appear on your formatted output.
1689
 
% By default, no such byline appears.
1690
 
%    \begin{macrocode}
1691
 
\DeclareOption{byrevtex}{\@booleantrue\byrevtex@sw}%
1692
 
\@booleanfalse\byrevtex@sw
1693
 
%    \end{macrocode}
1694
 
% \end{macro}
1695
 
%
1696
 
% \subsection{Attempt to fix float placement failure}%
1697
 
1698
 
% \begin{macro}{\force@deferlist@sw}
1699
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
1700
 
% \revtex\ uses the \classname{ltxgrid} package, which provides the ability to attempt repairs when 
1701
 
% \LaTeX's float placement mechanism is about to fail, but that facility is turned off by default.
1702
 
% Users should invoke the \classoption{floatfix} document class option to enable this \LaTeX\ extension.
1703
 
% If not, a helpful message is printed in the log, indicating how to work around the difficulty.
1704
 
%    \begin{macrocode}
1705
 
\DeclareOption{floatfix}{\@booleantrue\force@deferlist@sw}%
1706
 
\DeclareOption{nofloatfix}{\@booleanfalse\force@deferlist@sw}%
1707
 
\@booleanfalse\force@deferlist@sw
1708
 
%    \end{macrocode}
1709
 
% \end{macro}
1710
 
%
1711
 
% \begin{macro}{\@fltovf}
1712
 
% \begin{macro}{\@fltstk}
1713
 
%  The \LaTeX\ kernel error message \cmd\@fltovf\ may now be a bit more helpful to the user;
1714
 
%  likewise for the \cmd\@fltstk\ message of \classname{ltxgrid}.
1715
 
%    \begin{macrocode}
1716
 
\gdef\@fltovf{%
1717
 
 \@latex@error{%
1718
 
  Too many unprocessed floats%
1719
 
  \force@deferlist@sw{}{; try class option [floatfix]}%
1720
 
 }\@ehb
1721
 
}%
1722
 
\def\@fltstk{%
1723
 
 \@latex@warning{%
1724
 
  A float is stuck (cannot be placed)%
1725
 
  \force@deferlist@sw{}{; try class option [floatfix]}%
1726
 
 }%
1727
 
}%
1728
 
%    \end{macrocode}
1729
 
% \end{macro}
1730
 
% \end{macro}
1731
 
%
1732
 
% \begin{macro}{\ltxgrid@info@sw}
1733
 
% \begin{macro}{\outputdebug@sw}
1734
 
% The two options \classoption{ltxgridinfo} and \classoption{outputdebug} turn on informative diagnostics within the 
1735
 
% package \classname{ltxgrid}. Only people who really want to see this output will select these class options.
1736
 
% Consult documentation for the \classname{ltxgrid} package to see what output the related switches enable.
1737
 
%    \begin{macrocode}
1738
 
\DeclareOption{ltxgridinfo}{%
1739
 
 \@booleantrue\ltxgrid@info@sw
1740
 
%\@booleantrue\ltxgrid@foot@info@sw
1741
 
}%
1742
 
\DeclareOption{outputdebug}{%
1743
 
 \@booleantrue\outputdebug@sw
1744
 
 \@booleantrue\ltxgrid@info@sw
1745
 
 \@booleantrue\ltxgrid@foot@info@sw
1746
 
 \traceoutput
1747
 
}%
1748
 
%    \end{macrocode}
1749
 
% \end{macro}
1750
 
% \end{macro}
1751
 
%
1752
 
% \subsection{Option to relax page height}%
1753
 
1754
 
% \begin{macro}{\textheight@sw}
1755
 
% The \classname{ltxgrid} package can set text pages to their natural height or force them to the full 
1756
 
% text height; the latter is the default.
1757
 
% If setting the pages with a variable length,
1758
 
% the running foot will move up or down with the natural length of the text column.
1759
 
% While I recommend against doing so, this option will turn that switch to the latter setting.
1760
 
%    \begin{macrocode}
1761
 
\DeclareOption{raggedfooter}{\@booleanfalse\textheight@sw}%
1762
 
\DeclareOption{noraggedfooter}{\@booleantrue\textheight@sw}%
1763
 
%    \end{macrocode}
1764
 
% \end{macro}
1765
 
%
1766
 
% \subsection{Selecting procedure for processing abstract}%
1767
 
% \changes{4.1b}{2008/07/01}{Remove options newabstract and oldabstract}
1768
 
% Code defining options \classoption{newabstract} and \classoption{oldabstract} has been removed.
1769
 
%
1770
 
% \subsection{Option to turn on diagnostics in the frontmatter}%
1771
 
1772
 
% \begin{macro}{\frontmatterverbose@sw}
1773
 
% \changes{4.1b}{2008/07/01}{Code relating to new syntax for frontmatter has been placed in \file{ltxfront.dtx}}
1774
 
% A diagnostic option, not for the average enduser, which reveals 
1775
 
% the workings of the frontmatter.
1776
 
% This code interfaces to that of \file{ltxfront.dtx}.
1777
 
%    \begin{macrocode}
1778
 
\DeclareOption{frontmatterverbose}{\@booleantrue\frontmatterverbose@sw}%
1779
 
\@booleanfalse\frontmatterverbose@sw
1780
 
%    \end{macrocode}
1781
 
% \end{macro}
1782
 
1783
 
% \begin{macro}{\linenumbers@sw}
1784
 
% \changes{4.1f}{2009/07/07}{(AO, 513) Add class option linenumbers: number the lines a la \classname{lineno}}
1785
 
% \changes{4.1n}{2009/12/13}{(AO, 573) arrange to load \classname{lineno} after any other packages.}%
1786
 
% An option to number the lines of type in the output in the manner of \classname{lineno}.
1787
 
%
1788
 
% At present, we use that very package to implement this functionality.
1789
 
% This means that users may modify the workings of that package per its documentation (which see).
1790
 
%
1791
 
% However, compatibility with \classname{amsmath} requires that \classname{lineno} be loaded afterwards.
1792
 
% Therefore, we defer loading of this package until after the preamble is completed. 
1793
 
%    \begin{macrocode}
1794
 
\DeclareOption{linenumbers}{%
1795
 
 \appdef
1796
 
 \class@documenthook{%
1797
 
  \RequirePackage{lineno}[2005/11/02 v4.41]%
1798
 
  \linenumbersep4pt\relax
1799
 
  \linenumbers\relax
1800
 
 }%
1801
 
}%
1802
 
%    \end{macrocode}
1803
 
% By default, line numbering is off. 
1804
 
% \end{macro}
1805
 
1806
 
% \begin{macro}{\NAT@merge}
1807
 
% \changes{4.1f}{2009/07/15}{(AO, 523) Add class option nomerge, to turn off new natbib 8.3 syntax}
1808
 
% Add class option nomerge, to turn off natbib 8.3 syntax for citation key. 
1809
 
% The default value of REVTeX 4.1 for \cmd\NAT@merge is \cmd\thr@@, which turns on  
1810
 
% the new syntax along with its semantics. 
1811
 
% Legacy documents that would be incompatible with the new syntax can be successfully processed 
1812
 
% with class option \classoption{nomerge}.
1813
 
%    \begin{macrocode}
1814
 
\DeclareOption{nomerge}{%
1815
 
 \appdef\setup@hook{%
1816
 
  \@ifnum{\NAT@merge>\z@}{\let\NAT@merge\z@}{}%
1817
 
 }%
1818
 
}%
1819
 
%    \end{macrocode}
1820
 
% \end{macro}
1821
 
%
1822
 
% \subsection{Default Option, Society, Journal, and pointsize}%
1823
 
%
1824
 
% \changes{4.1a}{2008/01/18}{(AO, 488) Change processing of options to allow an unused option to specify society and journal}%
1825
 
% This change will not break OSA documents because that society is still built in to revtex4.
1826
 
%
1827
 
% \begin{macro}{\@parse@class@options@society}
1828
 
% \begin{macro}{\@parse@class@options@}
1829
 
% \changes{4.1b}{2008/07/01}{Procedures \cs{@parse@class@options@society} and \cs{@parse@class@options@journal} and friends}
1830
 
% The procedure \cmd\@parse@class@options@society\ parses the options passed to this document class 
1831
 
% for the \cmd\@society. 
1832
 
% It is like \cmd\ProcessOptions*\ in that it accesses
1833
 
% \cmd\@ptionlist\{\cmd\@currname.\cmd\@currext\}.
1834
 
% Any undefined option is considered: if there is a corresponding \file{.rtx} file,
1835
 
% it will change the society accordingly
1836
 
% and define a placeholder class option for the society thus found
1837
 
% (thus preventing a spurious "option not found" message). 
1838
 
1839
 
% The procedure \cmd\@parse@class@options@\ parses the document's options
1840
 
% for any that set the \cmd\csname\ provided. 
1841
 
%    \begin{macrocode}
1842
 
\def\@parse@class@options@society{%
1843
 
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
1844
 
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
1845
 
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{}{%
1846
 
   \IfFileExists{\CurrentOption\substyle@post.\substyle@ext}{%
1847
 
    \expandafter\change@society\expandafter{\CurrentOption}%
1848
 
    \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
1849
 
   }{}%
1850
 
  }%
1851
 
 }%
1852
 
}%
1853
 
\def\@parse@class@options@#1{%
1854
 
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
1855
 
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
1856
 
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{%
1857
 
   \begingroup\csname ds@\CurrentOption\endcsname
1858
 
    \@ifxundefined#1{%
1859
 
     \endgroup
1860
 
    }{%
1861
 
     \expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#1}%
1862
 
    }%
1863
 
  }{}%
1864
 
 }%
1865
 
}%
1866
 
\def\@parse@class@options@journal{%
1867
 
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
1868
 
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
1869
 
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{%
1870
 
   \begingroup
1871
 
    \csname ds@\CurrentOption\endcsname
1872
 
    \@ifxundefined\@journal{%
1873
 
     \endgroup
1874
 
    }{%
1875
 
     \expandafter\endgroup\expandafter\def\expandafter\@journal\expandafter{\@journal}%
1876
 
    }%
1877
 
  }{}%
1878
 
 }%
1879
 
}%
1880
 
\def\@parse@class@options{%
1881
 
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
1882
 
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
1883
 
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{%
1884
 
   \begingroup
1885
 
    \csname ds@\CurrentOption\endcsname
1886
 
    \@ifxundefined\@pointsize{%
1887
 
     \endgroup
1888
 
    }{%
1889
 
     \expandafter\endgroup\expandafter\def\expandafter\@pointsize\expandafter{\@pointsize}%
1890
 
    }%
1891
 
  }{%
1892
 
   \IfFileExists{\CurrentOption\substyle@post.\substyle@ext}{%
1893
 
    \expandafter\change@society\expandafter{\CurrentOption}%
1894
 
    \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
1895
 
   }{}%
1896
 
  }%
1897
 
 }%
1898
 
}%
1899
 
%    \end{macrocode}
1900
 
% \end{macro}
1901
 
% \end{macro}
1902
 
%
1903
 
% \changes{4.1j}{2009/10/25}{(AO, 545) hypertext capabilities off by default; enable with \classoption{hypertext}}
1904
 
% The class option \classoption{hypertext} enables the built-in hypertext capabilities,
1905
 
% which coincide with those of \classname{custom-bib}-generated BIBTeX styles
1906
 
% using the guard code \texttt{hypertext}. 
1907
 
%
1908
 
% Note that APS has these capabilities turned off by default;
1909
 
% Loading the hyperref package turns them on.
1910
 
%    \begin{macrocode}
1911
 
\DeclareOption{hypertext}{\hypertext@enable@ltx}%
1912
 
\appdef\document@inithook{\@ifpackageloaded{hyperref}{\hypertext@enable@ltx}{}}%
1913
 
%    \end{macrocode}
1914
 
%
1915
 
% The default handling for a document class option depends upon whether the \cmd\@society\ is 
1916
 
% defined. 
1917
 
%
1918
 
% If not, then hunt for a \file{.rtx} file with that name.
1919
 
% If it exists, then we will take this option as the name of the society, 
1920
 
% otherwise, declare the option as not used.
1921
 
1922
 
% (This behavior is similar to the \LaTeX2.09 handling, where
1923
 
% one looked for a \file{.sty} file, except that 
1924
 
% in this case, we must provide for journal substyles that may be 
1925
 
% defined in the society file, or have their own journal substyle file.)
1926
 
%
1927
 
% At the point where the class file is finished loading, 
1928
 
% we then read in the society file. 
1929
 
% That file can define further class options, such as the journal substyle.
1930
 
%
1931
 
% For users, this will mean that they can specify the society and journal simply 
1932
 
% by specifying first the former and then the latter among their document class options.
1933
 
% The society \emph{must} have a corresponding \file{.rtx}.
1934
 
%
1935
 
% \changes{4.1b}{2008/05/29}{The csname substyle@ext is now defined without a dot (.), to be compatible with \LaTeX usage (see @clsextension and @pkgextension).}
1936
 
%
1937
 
%    \begin{macrocode}
1938
 
%</options>
1939
 
%    \end{macrocode}
1940
 
%
1941
 
%    \begin{macrocode}
1942
 
%<*package>
1943
 
%    \end{macrocode}
1944
 
%
1945
 
% \begin{macro}{\@process@society}
1946
 
% \begin{macro}{\@process@journal}
1947
 
% \begin{macro}{\@process@pointsize}
1948
 
%    \begin{macrocode}
1949
 
\def\substyle@post{4-1}%
1950
 
\def\substyle@ext{rtx}%
1951
 
\DeclareOption*{\OptionNotUsed}%
1952
 
%    \end{macrocode}
1953
 
% A society substyle may define its own options, via \cmd\DeclareOption. 
1954
 
%
1955
 
% At the end of this document class, we process the society file,
1956
 
% using \file{aps.rtx} if none has been specified in the document.
1957
 
%    \begin{macrocode}
1958
 
\def\@process@society#1{%
1959
 
 \@ifxundefined\@society{%
1960
 
  \class@warn{No Society specified, using default society #1}%
1961
 
  \def\@society{#1}\let\@journal\@undefined
1962
 
 }{}%
1963
 
 \expandafter\input\expandafter{\@society\substyle@post.\substyle@ext}%
1964
 
}%
1965
 
%    \end{macrocode}
1966
 
%
1967
 
% A society substyle can encompass any number of journal substyles;
1968
 
% we use the following procedure to invoke the proper one.
1969
 
%    \begin{macrocode}
1970
 
\def\@process@journal#1{%
1971
 
 \@ifxundefined\@journal{%
1972
 
  \class@warn{No journal specified, using default #1}%
1973
 
  \def\@journal{#1}%
1974
 
 }{}%
1975
 
 \expandafter\expandafter
1976
 
 \expandafter\rtx@do@substyle
1977
 
 \expandafter\expandafter
1978
 
 \expandafter{\expandafter\@society\@journal}%
1979
 
}%
1980
 
\def\rtx@do@substyle#1{%
1981
 
 \InputIfFileExists{#1\substyle@post.\substyle@ext}{}{\csname rtx@#1\endcsname}%
1982
 
}%
1983
 
%    \end{macrocode}
1984
 
1985
 
% Document class options \classoption{10pt}, \classoption{11pt}, and \classoption{12pt} 
1986
 
% are implemented by \revtex\ itself and determine \cmd\@pointsize. 
1987
 
% These provide formatting settings appropriate to the society's journals. 
1988
 
%
1989
 
% If not specified by the document, a value \cmd\@pointsize@default\ is used. 
1990
 
% This default can be set by the journal. Here, the society sets its default. 
1991
 
%    \begin{macrocode}
1992
 
\def\@process@pointsize#1{%
1993
 
 \@ifxundefined\@pointsize{%
1994
 
  \def\@pointsize{#1}%
1995
 
  \class@warn{No type size specified, using default \@pointsize}%
1996
 
 }{}%
1997
 
 \expandafter\expandafter
1998
 
 \expandafter\rtx@do@substyle
1999
 
 \expandafter\expandafter
2000
 
 \expandafter{\expandafter\@society\@pointsize pt}%
2001
 
}%
2002
 
%    \end{macrocode}
2003
 
% \end{macro}
2004
 
% \end{macro}
2005
 
% \end{macro}
2006
 
%
2007
 
% \subsection{Class-Asserted Options}%
2008
 
% \changes{4.0b}{1999/06/20}{Removed invocation of nonexistent class option \protect\classoption{groupauthors} and all other class options that should only be invoked by the document. (Otherwise precedence of class options does not work.)}
2009
 
% Here we establish the default document class options.
2010
 
% Those of the document itself will override these.
2011
 
%
2012
 
% \section{Procedures Dependent Upon Options}
2013
 
%
2014
 
% Here we introduce \classname{classes.dtx} definitions for 
2015
 
% the page styles that people will expect to be able to use.
2016
 
% \begin{macro}{\ps@headings}
2017
 
% \begin{macro}{\ps@myheadings}
2018
 
%    \begin{macrocode}
2019
 
  \def\ps@headings{%
2020
 
      \let\@oddfoot\@empty\let\@evenfoot\@empty
2021
 
      \def\@evenhead{\thepage\hfil\slshape\leftmark}%
2022
 
      \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
2023
 
      \let\@mkboth\markboth
2024
 
    \def\sectionmark##1{%
2025
 
      \markboth {\MakeUppercase{%
2026
 
        \ifnum \c@secnumdepth >\z@
2027
 
          \thesection\quad
2028
 
        \fi
2029
 
        ##1}}{}}%
2030
 
    \def\subsectionmark##1{%
2031
 
      \markright {%
2032
 
        \ifnum \c@secnumdepth >\@ne
2033
 
          \thesubsection\quad
2034
 
        \fi
2035
 
        ##1}}}%
2036
 
\def\ps@myheadings{%
2037
 
    \let\@oddfoot\@empty\let\@evenfoot\@empty
2038
 
    \def\@evenhead{\thepage\hfil\slshape\leftmark}%
2039
 
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
2040
 
    \let\@mkboth\@gobbletwo
2041
 
    \let\sectionmark\@gobble
2042
 
    \let\subsectionmark\@gobble
2043
 
    }%
2044
 
%    \end{macrocode}
2045
 
% \end{macro}
2046
 
% \end{macro}
2047
 
%
2048
 
% \begin{macro}{\ps@article}
2049
 
% \begin{macro}{\ps@article@final}
2050
 
% \begin{macro}{\ps@preprint}
2051
 
% \changes{4.0a}{1998/01/31}{Move after process options, so the following test works}
2052
 
% \changes{4.0b}{1999/06/20}{Defer decision until \cs{AtBeginDocument} time}
2053
 
% \changes{4.0c}{1999/11/13}{Insert procedure \cs{checkindate}}
2054
 
% \changes{4.0rc1}{2001/06/17}{Running headers always as if two-sided}
2055
 
%    \begin{macrocode}
2056
 
\def\ps@article{%
2057
 
    \def\@evenhead{\let\\\heading@cr\thepage\quad\checkindate\hfil{\leftmark}}%
2058
 
    \def\@oddhead{\let\\\heading@cr{\rightmark}\hfil\checkindate\quad\thepage}%
2059
 
    \def\@oddfoot{}%
2060
 
    \def\@evenfoot{}%
2061
 
    \let\@mkboth\markboth
2062
 
  \let\sectionmark\@gobble
2063
 
  \let\subsectionmark\@gobble
2064
 
}%
2065
 
\def\ps@article@final{%
2066
 
    \def\@evenhead{\let\\\heading@cr\thepage\quad\checkindate\hfil{\leftmark}}%
2067
 
    \def\@oddhead{\let\\\heading@cr{\rightmark}\hfil\checkindate\quad\thepage}%
2068
 
    \def\@oddfoot{}%
2069
 
    \def\@evenfoot{}%
2070
 
    \let\@mkboth\markboth
2071
 
    \def\sectionmark##1{%
2072
 
      \markboth{%
2073
 
       \MakeTextUppercase{%
2074
 
        \@ifnum{\c@secnumdepth >\z@}{\thesection\hskip 1em\relax}{}%
2075
 
         ##1%
2076
 
       }%
2077
 
       }{}%
2078
 
    }%
2079
 
    \def\subsectionmark##1{%
2080
 
      \markright {%
2081
 
        \@ifnum{\c@secnumdepth >\@ne}{\thesubsection\hskip 1em\relax}{}%
2082
 
         ##1%
2083
 
      }%
2084
 
    }%
2085
 
}%
2086
 
%    \end{macrocode}
2087
 
%
2088
 
%    \begin{macrocode}
2089
 
\def\heading@cr{\unskip\space\ignorespaces}%
2090
 
%    \end{macrocode}
2091
 
%
2092
 
% \changes{4.0c}{1999/11/13}{Do not put by REVTeX in every page foot}
2093
 
% \changes{4.0c}{1999/11/13}{Insert procedure \cs{checkindate}}
2094
 
%    \begin{macrocode}
2095
 
\def\ps@preprint{%
2096
 
  \def\@oddfoot{\hfil\thepage\quad\checkindate\hfil}%
2097
 
  \def\@evenfoot{\hfil\thepage\quad\checkindate\hfil}%
2098
 
  \def\@oddhead{}%
2099
 
  \def\@evenhead{}%
2100
 
  \let\@mkboth\@gobbletwo
2101
 
  \let\sectionmark\@gobble
2102
 
  \let\subsectionmark\@gobble
2103
 
}%
2104
 
%    \end{macrocode}
2105
 
%
2106
 
%    \begin{macrocode}
2107
 
\let\@oddhead\@empty
2108
 
\let\@evenhead\@empty
2109
 
\let\@oddfoot\@empty
2110
 
\let\@evenfoot\@empty
2111
 
%    \end{macrocode}
2112
 
% \end{macro}
2113
 
% \end{macro}
2114
 
% \end{macro}
2115
 
%
2116
 
% \begin{macro}{\lastpage@putlabel}
2117
 
% Support the default meaning of \cmd\@endpage.
2118
 
% \changes{4.0a}{1998/01/31}{Move after process options, so \cs{clearpage} not in scope of twocolumn}
2119
 
% \changes{4.1k}{2009/11/06}{(AO, 554) give the \cs{newlabel} command syntax appropriate to the hyperref package}
2120
 
% Name of this macro (and the \cmd\label\ key) taken from 
2121
 
% \url{CTAN:/macros/latex/contrib/other/lastpage}%
2122
 
% with code optimised slightly.
2123
 
%    \begin{macrocode}
2124
 
\def\lastpage@putlabel{%
2125
 
 \if@filesw
2126
 
  \begingroup
2127
 
    \advance\c@page\m@ne
2128
 
    \immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}{}{}{}}}%
2129
 
  \endgroup
2130
 
 \fi
2131
 
}%
2132
 
%    \end{macrocode}
2133
 
% Install a procedure into document endgame processing that 
2134
 
% labels the last page of the document.
2135
 
% This is done just before the \file{.aux} file
2136
 
% is closed, and does not require a \cmd\shipout, because it writes
2137
 
% directly to the \file{.aux} file.
2138
 
% Note that we assume no further \cmd\shipout s will be done past this point.
2139
 
% \changes{4.1n}{2009/12/09}{(AO, 569) execute the after-last-shipout procedures from within the safety of the output routine}%
2140
 
%    \begin{macrocode}
2141
 
\appdef\clear@document{%
2142
 
 \do@output@cclv{%
2143
 
  \lastpage@putlabel
2144
 
  \tally@box@size@sw{\total@text}{}%
2145
 
 }%
2146
 
}%
2147
 
\providecommand\write@column@totals{}%
2148
 
%    \end{macrocode}
2149
 
% \end{macro}
2150
 
%
2151
 
%
2152
 
% \section{Required Packages}
2153
 
% \url{CTAN:macros/latex/contrib/other/misc/url.sty}%
2154
 
%    \begin{macrocode}
2155
 
\appdef\rtx@require@packages{%
2156
 
 \RequirePackage{url}%
2157
 
}%
2158
 
%    \end{macrocode}
2159
 
%
2160
 
% \section{Incompatible Packages}
2161
 
%
2162
 
% We wait until after the preamble is processed, then check for any packages 
2163
 
% that might have been loaded which we know to be incompatible with \revtex.
2164
 
%
2165
 
% The \classname{multicol} package is incompatible with \classname{ltxgrid}, which replaces it.
2166
 
% The \classname{cite} package is incompatible with \classname{natbib}, which replaces its functionality.
2167
 
% The functionality of the \classname{mcite} package is provided by \classname{natbib}. 
2168
 
%    \begin{macrocode}
2169
 
\appdef\document@inithook{%
2170
 
 \incompatible@package{cite}%
2171
 
 \incompatible@package{mcite}%
2172
 
 \incompatible@package{multicol}%
2173
 
}%
2174
 
%    \end{macrocode}
2175
 
%
2176
 
% \section{Society- and Journal-Specific Code}
2177
 
%
2178
 
% \begin{macro}{\@journal}
2179
 
% Journal test helper, used as
2180
 
% \begin{verbatim}
2181
 
%\@ifx{\@journal\journal@pra}{%
2182
 
%  <journal-specific setup>
2183
 
%\fi
2184
 
% \end{verbatim}
2185
 
% Journal code might like to further specify (if as yet undefined) or distinguish on
2186
 
% the following Booleans.
2187
 
%
2188
 
% Note: the journal substyle code should only alter the value of one of these Booleans if
2189
 
% the Boolean is \cmd\undefined. This convention is what makes the document's
2190
 
% options take precedence over the values set by the journal.
2191
 
2192
 
% FIXME: make this table an exhaustive listing of all the parameters set by
2193
 
% the class options.
2194
 
%
2195
 
% \begin{tabular}{ll}
2196
 
% \cmd\@pointsize      &(10|11|12), depending on the type size\\
2197
 
% \cmd\footinbib@sw    &true if footnotes are to be formatted in the bibliography\\
2198
 
% \cmd\preprintsty@sw  &true for preprint and hyperpreprint\\
2199
 
% \cmd\eqsecnum@sw     &true means that equations are numbered within sections\\
2200
 
% \cmd\groupauthors@sw &true means authors listed separately for each address\\
2201
 
% \cmd\preprint@sw     &true means to produce the preprint numbers as part of the title block\\
2202
 
% \cmd\showPACS@sw     &true means to produce the PACS as part of the title block\\
2203
 
% \cmd\showKEYS@sw     &true means to produce the keywords as part of the title block\\
2204
 
% \cmd\@affils@sw      &true means each affiliation is printed, for each author\\
2205
 
% \cmd\runinaddress@sw &true means author addresses are printed run-in\\
2206
 
% \cmd\draft@sw        &true implies that PACS will be printed\\
2207
 
% \cmd\tightenlines@sw &true if preprint single spaced\\
2208
 
% \cmd\lengthcheck@sw  &true if length checking is in effect\\
2209
 
% \cmd\byrevtex@sw     &true means to announce ``typeset by \revtex''\\
2210
 
% \cmd\titlepage@sw    &true for title is to be set on a separate page\\
2211
 
% \cmd\twocolumn@sw    &true if two-column page grid\\
2212
 
% \cmd\twocolumn@sw    &true if we are to automatically balance the columns of the last page\\
2213
 
% \cmd\twoside@sw      &true means to format pages for duplex printing\\
2214
 
% \cmd\floats@sw       &false means floats are migrated to end of document\\
2215
 
% \cmd\floatp@sw       &true means endfloats are set one to a page\\
2216
 
% \cmd\class@amsfonts  &if \cmd\@empty, means that \classname{amsfonts} will \emph{not} be loaded\\
2217
 
% \cmd\class@amssymb   &if \cmd\@empty, means that \classname{amssymb} will \emph{not} be loaded\\
2218
 
% \cmd\frontmatter@footnote &if \cmd\undefined, means that the default (\cmd\footnote) will be used\\
2219
 
% \cmd\place@bibnumber &if \cmd\undefined, means that the default (inline) will be used\\
2220
 
% \end{tabular}
2221
 
%
2222
 
% Note: if \cmd\twocolumn@sw\ and \cmd\preprintsty@sw\ are both false,
2223
 
% then `galley' style is in effect. The \classoption{galley} option invokes
2224
 
% \classoption{onecolumn}, but does not affect the \cmd\preprintsty@sw.
2225
 
%
2226
 
% Note: \cmd\paperwidth\ and \cmd\paperheight\ are not integrated into this scheme,
2227
 
% and should be selected by the document alone.
2228
 
% \end{macro}
2229
 
%
2230
 
% \section{Body}
2231
 
%
2232
 
% \subsection{counters}
2233
 
% The following definitions are probably identical to those in 
2234
 
% \file{classes.dtx}%
2235
 
%    \begin{macrocode}
2236
 
\def\labelenumi{\theenumi.}
2237
 
\def\theenumi{\arabic{enumi}}
2238
 
%    \end{macrocode}
2239
 
%
2240
 
%    \begin{macrocode}
2241
 
\def\labelenumii{(\theenumii)}
2242
 
\def\theenumii{\alph{enumii}}
2243
 
\def\p@enumii{\theenumi}
2244
 
%    \end{macrocode}
2245
 
%
2246
 
%    \begin{macrocode}
2247
 
\def\labelenumiii{\theenumiii.}
2248
 
\def\theenumiii{\roman{enumiii}}
2249
 
\def\p@enumiii{\theenumi(\theenumii)}
2250
 
%    \end{macrocode}
2251
 
%
2252
 
%    \begin{macrocode}
2253
 
\def\labelenumiv{\theenumiv.}
2254
 
\def\theenumiv{\Alph{enumiv}}
2255
 
\def\p@enumiv{\p@enumiii\theenumiii}
2256
 
%    \end{macrocode}
2257
 
%
2258
 
%    \begin{macrocode}
2259
 
\def\labelitemi{\textbullet}
2260
 
\def\labelitemii{\normalfont\bfseries\textendash}
2261
 
\def\labelitemiii{\textasteriskcentered}
2262
 
\def\labelitemiv{\textperiodcentered}
2263
 
%    \end{macrocode}
2264
 
%
2265
 
%    \begin{macrocode}
2266
 
\pagenumbering{arabic}
2267
 
%    \end{macrocode}
2268
 
%
2269
 
% \subsection{float parameters}
2270
 
%
2271
 
% from the old aps.sty. (DPC: same as article I think)
2272
 
% AO: here, \LaTeX's standard classes fail very poorly
2273
 
% (the price of backward compatability): the values for
2274
 
% \cmd\floatpagefraction\ and \cmd\dblfloatpagefraction\
2275
 
% need to be raised to avoid creating extremely short
2276
 
% float pages.
2277
 
%    \begin{macrocode}
2278
 
\setcounter{topnumber}{2}
2279
 
\def\topfraction{.9}
2280
 
\setcounter{bottomnumber}{1}
2281
 
\def\bottomfraction{.9}
2282
 
\setcounter{totalnumber}{3}
2283
 
\def\textfraction{.1}
2284
 
\def\floatpagefraction{.9}
2285
 
\setcounter{dbltopnumber}{2}
2286
 
\def\dbltopfraction{.9}
2287
 
\def\dblfloatpagefraction{.9}
2288
 
%    \end{macrocode}
2289
 
%
2290
 
% \subsection{List Environments}
2291
 
%
2292
 
%    \begin{macrocode}
2293
 
\newenvironment{verse}{%
2294
 
  \let\\=\@centercr
2295
 
  \list{}{%
2296
 
    \itemsep\z@ \itemindent -1.5em\listparindent \itemindent
2297
 
    \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]%
2298
 
}{%
2299
 
 \endlist
2300
 
}%
2301
 
%    \end{macrocode}
2302
 
%
2303
 
%    \begin{macrocode}
2304
 
\newenvironment{quotation}{%
2305
 
  \list{}{%
2306
 
    \listparindent 1.5em
2307
 
    \itemindent\listparindent
2308
 
    \rightmargin\leftmargin \parsep \z@ \@plus\p@}\item[]%
2309
 
}{%
2310
 
 \endlist
2311
 
}%
2312
 
%    \end{macrocode}
2313
 
%
2314
 
%    \begin{macrocode}
2315
 
\newenvironment{quote}{%
2316
 
  \list{}{%
2317
 
  \rightmargin\leftmargin}\item[]%
2318
 
}{%
2319
 
 \endlist
2320
 
}%
2321
 
%    \end{macrocode}
2322
 
%
2323
 
% \changes{4.1b}{2008/06/30}{(AO) Structure the Abstract using the \texttt{bibliography} environment}
2324
 
%    \begin{macrocode}
2325
 
\def\descriptionlabel#1{%
2326
 
  \hspace\labelsep \normalfont\bfseries #1\unskip:%
2327
 
}%
2328
 
%    \end{macrocode}
2329
 
%
2330
 
%    \begin{macrocode}
2331
 
\newenvironment{description}{%
2332
 
 \list{}{%
2333
 
    \labelwidth\z@ \itemindent-\leftmargin
2334
 
    \let\makelabel\descriptionlabel
2335
 
 }%
2336
 
}{%
2337
 
 \endlist
2338
 
}%
2339
 
%    \end{macrocode}
2340
 
%
2341
 
% \subsection{Sectioning Commands\label{sec:secnumarabic}}
2342
 
%
2343
 
% \subsubsection{Sectioning Commands and Their Productions}%
2344
 
% The following counters are defined by LaTeX's standard document classes.
2345
 
% We do likewise, then assign flag values to the productions, awaiting
2346
 
% overrides.
2347
 
%    \begin{macrocode}
2348
 
\newcounter{part}%
2349
 
\let\thepart\@undefined
2350
 
\newcounter{section}%
2351
 
\let\thesection\@undefined
2352
 
\newcounter{subsection}[section]%
2353
 
\let\thesubsection\@undefined
2354
 
\newcounter{subsubsection}[subsection]%
2355
 
\let\thesubsubsection\@undefined
2356
 
\newcounter{paragraph}[subsubsection]%
2357
 
\let\theparagraph\@undefined
2358
 
\newcounter{subparagraph}[paragraph]%
2359
 
\let\thesubparagraph\@undefined
2360
 
%    \end{macrocode}
2361
 
% The procedure invoked by \cmd\setup@secnums\ provides meanings for these productions. 
2362
 
2363
 
% \begin{macro}{\secnums@rtx}
2364
 
% \begin{macro}{\secnums@arabic}
2365
 
% These two procedures define the meanings of each of the productions
2366
 
% of the counters of the sectioning commands,
2367
 
% but only if nothing else has defined it.
2368
 
%    \begin{macrocode}
2369
 
\def\secnums@rtx{%
2370
 
 \@ifxundefined\thepart{%
2371
 
  \def\thepart{\Roman{part}}%
2372
 
 }{}%
2373
 
 \@ifxundefined\thesection{%
2374
 
  \def\thesection       {\Roman{section}}%
2375
 
  \def\p@section        {}%
2376
 
 }{}%
2377
 
 \@ifxundefined\thesubsection{%
2378
 
  \def\thesubsection    {\Alph{subsection}}%
2379
 
  \def\p@subsection     {\thesection\,}%
2380
 
 }{}%
2381
 
 \@ifxundefined\thesubsubsection{%
2382
 
  \def\thesubsubsection {\arabic{subsubsection}}%
2383
 
  \def\p@subsubsection  {\thesection\,\thesubsection\,}%
2384
 
 }{}%
2385
 
 \@ifxundefined\theparagraph{%
2386
 
  \def\theparagraph     {\alph{paragraph}}%
2387
 
  \def\p@paragraph      {\thesection\,\thesubsection\,\thesubsubsection\,}%
2388
 
 }{}%
2389
 
 \@ifxundefined\thesubparagraph{%
2390
 
  \def\thesubparagraph  {\arabic{subparagraph}}%
2391
 
  \def\p@subparagraph   {\thesection\,\thesubsection\,\thesubsubsection\,\theparagraph\,}%
2392
 
 }{}%
2393
 
}%
2394
 
\def\secnums@arabic{%
2395
 
 \@ifxundefined\thepart{%
2396
 
  \def\thepart          {\Roman{part}}%
2397
 
 }{}%
2398
 
 \@ifxundefined\thesection{%
2399
 
  \def\thesection       {\Roman{section}}%
2400
 
  \def\p@section        {}%
2401
 
 }{}%
2402
 
 \@ifxundefined\thesubsection{%
2403
 
  \def\thesubsection    {\thesection.\arabic{subsection}}%
2404
 
  \def\p@subsection     {}%
2405
 
 }{}%
2406
 
 \@ifxundefined\thesubsubsection{%
2407
 
  \def\thesubsubsection {\thesubsection.\arabic{subsubsection}}%
2408
 
  \def\p@subsubsection  {}%
2409
 
 }{}%
2410
 
 \@ifxundefined\theparagraph{%
2411
 
  \def\theparagraph     {\thesubsubsection.\arabic{paragraph}}%
2412
 
  \def\p@paragraph      {}%
2413
 
 }{}%
2414
 
 \@ifxundefined\thesubparagraph{%
2415
 
  \def\thesubparagraph  {\theparagraph.\arabic{subparagraph}}%
2416
 
  \def\p@subparagraph   {}%
2417
 
 }{}%
2418
 
}%
2419
 
%    \end{macrocode}
2420
 
% \end{macro}
2421
 
% \end{macro}
2422
 
%
2423
 
% \subsubsection{The Acknowledgments Environment}%
2424
 
% This user-level markup produces a head introducing 
2425
 
% the acknowledgments, and acts as a wrapper for the text.
2426
 
% In this implementation, it is an unnumbered section,
2427
 
% but appears within the toc.
2428
 
%
2429
 
% For compatiability's sake, we implement it under the alternative
2430
 
% spelling \env{acknowledgements}.
2431
 
% \changes{4.0c}{1999/11/13}{also spelled ``acknowledgements''.}
2432
 
% \changes{4.0d}{2000/05/18}{But alternative spelling is deprecated.}
2433
 
%    \begin{macrocode}
2434
 
\newenvironment{acknowledgments}{%
2435
 
 \acknowledgments@sw{%
2436
 
  \expandafter\section\expandafter*\expandafter{\acknowledgmentsname}%
2437
 
 }{%
2438
 
  \par
2439
 
  \phantomsection
2440
 
  \addcontentsline{toc}{section}{\protect\numberline{}\acknowledgmentsname}%
2441
 
 }%
2442
 
}{%
2443
 
 \par
2444
 
}%
2445
 
\@booleantrue\acknowledgments@sw
2446
 
\newenvironment{acknowledgements}{%
2447
 
 \replace@environment{acknowledgements}{acknowledgments}%
2448
 
}{%
2449
 
 \endacknowledgments
2450
 
}%
2451
 
%    \end{macrocode}
2452
 
%
2453
 
% \subsubsection{Part Opener}%
2454
 
% section setup copied verbatim from revtex3 aps/osa.
2455
 
% Does not explicitly depend on pointsize options.
2456
 
%    \begin{macrocode}
2457
 
\def\part{\par
2458
 
   \addvspace{4ex}%
2459
 
   \@afterindentfalse
2460
 
   \secdef\@part\@spart}%
2461
 
%    \end{macrocode}
2462
 
%
2463
 
%    \begin{macrocode}
2464
 
\def\@part[#1]#2{%
2465
 
 \@ifnum{\c@secnumdepth >\m@ne}{%
2466
 
        \refstepcounter{part}%
2467
 
        \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
2468
 
 }{%
2469
 
      \addcontentsline{toc}{part}{#1}%
2470
 
 }%
2471
 
 \begingroup
2472
 
    \parindent \z@ \raggedright
2473
 
    \interlinepenalty\@M
2474
 
    \@ifnum{\c@secnumdepth >\m@ne}{%
2475
 
      \Large \bf \partname~\thepart%
2476
 
      \par\nobreak
2477
 
    }{}%
2478
 
    \huge \bf
2479
 
    #2%
2480
 
    \markboth{}{}\par
2481
 
 \endgroup
2482
 
   \nobreak
2483
 
   \vskip 3ex
2484
 
   \@afterheading
2485
 
}%
2486
 
%    \end{macrocode}
2487
 
%
2488
 
%    \begin{macrocode}
2489
 
\def\@spart#1{{\parindent \z@ \raggedright
2490
 
    \interlinepenalty\@M
2491
 
    \huge \bf
2492
 
    #1\par}
2493
 
    \nobreak
2494
 
    \vskip 3ex
2495
 
    \@afterheading}
2496
 
%    \end{macrocode}
2497
 
%
2498
 
% \subsubsection{Stacked Heads}%
2499
 
% Here are the class default definitions for sectioning commands.
2500
 
% A society or a journal substyle will likely override these definitions.
2501
 
%
2502
 
% In doing so, you can customize the formatting for a particular level by defining,
2503
 
% e.g., \cmd\@hangfrom@section\ or \cmd\@subsectioncntformat.
2504
 
%    \begin{macrocode}
2505
 
\def\section{%
2506
 
  \@startsection
2507
 
    {section}%
2508
 
    {1}%
2509
 
    {\z@}%
2510
 
    {0.8cm \@plus1ex \@minus .2ex}%
2511
 
    {0.5cm}%
2512
 
    {\normalfont\small\bfseries}%
2513
 
}%
2514
 
%    \end{macrocode}
2515
 
%
2516
 
%    \begin{macrocode}
2517
 
\def\subsection{%
2518
 
  \@startsection
2519
 
    {subsection}%
2520
 
    {2}%
2521
 
    {\z@}%
2522
 
    {.8cm \@plus1ex \@minus .2ex}%
2523
 
    {.5cm}%
2524
 
    {\normalfont\small\bfseries}%
2525
 
}%
2526
 
%    \end{macrocode}
2527
 
%
2528
 
%    \begin{macrocode}
2529
 
\def\subsubsection{%
2530
 
  \@startsection
2531
 
    {subsubsection}%
2532
 
    {3}%
2533
 
    {\z@}%
2534
 
    {.8cm \@plus1ex \@minus .2ex}%
2535
 
    {.5cm}%
2536
 
    {\normalfont\small\itshape}%
2537
 
}%
2538
 
%    \end{macrocode}
2539
 
%
2540
 
% \subsubsection{Runin Heads}%
2541
 
%    \begin{macrocode}
2542
 
\def\paragraph{%
2543
 
  \@startsection
2544
 
    {paragraph}%
2545
 
    {4}%
2546
 
    {\parindent}%
2547
 
    {\z@}%
2548
 
    {-1em}%
2549
 
    {\normalfont\normalsize\itshape}%
2550
 
}%
2551
 
%    \end{macrocode}
2552
 
%
2553
 
%    \begin{macrocode}
2554
 
\def\subparagraph{%
2555
 
  \@startsection
2556
 
    {subparagraph}%
2557
 
    {5}%
2558
 
    {\parindent}%
2559
 
    {3.25ex \@plus1ex \@minus .2ex}%
2560
 
    {-1em}%
2561
 
    {\normalfont\normalsize\bfseries}%
2562
 
}%
2563
 
%    \end{macrocode}
2564
 
%
2565
 
%
2566
 
% \subsection{Math}
2567
 
%
2568
 
% \begin{macro}{\theequation}
2569
 
% We change the production of the equation counter so that 
2570
 
% we can accomodate the \classoption{eqsecnum} option.
2571
 
%    \begin{macrocode}
2572
 
\def\theequation{%
2573
 
 \theequation@prefix\arabic{equation}%
2574
 
}%
2575
 
\def\theequation@prefix{}%
2576
 
%    \end{macrocode}
2577
 
% \end{macro}
2578
 
%
2579
 
%
2580
 
% \subsection{Type Size-Dependent Settings}
2581
 
%
2582
 
% \subsection{All Point Sizes}
2583
 
%    \begin{macrocode}
2584
 
\setcounter{secnumdepth}{4}
2585
 
%    \end{macrocode}
2586
 
%
2587
 
%    \begin{macrocode}
2588
 
\lineskip 1pt
2589
 
\normallineskip 1pt
2590
 
\def\baselinestretch{1}%
2591
 
%    \end{macrocode}
2592
 
%
2593
 
%    \begin{macrocode}
2594
 
\@lowpenalty   51
2595
 
\@medpenalty  151
2596
 
\@highpenalty 301
2597
 
%    \end{macrocode}
2598
 
%
2599
 
%    \begin{macrocode}
2600
 
\@beginparpenalty -\@lowpenalty
2601
 
\@endparpenalty   -\@lowpenalty
2602
 
\@itempenalty     -\@lowpenalty
2603
 
%    \end{macrocode}
2604
 
%
2605
 
%    \begin{macrocode}
2606
 
\arraycolsep 3pt
2607
 
\tabcolsep 2pt
2608
 
\arrayrulewidth .4pt
2609
 
\doublerulesep 2pt
2610
 
%    \end{macrocode}
2611
 
%
2612
 
%    \begin{macrocode}
2613
 
\skip\@mpfootins = 0pt
2614
 
%    \end{macrocode}
2615
 
%
2616
 
%    \begin{macrocode}
2617
 
\fboxsep  = 3.0pt
2618
 
\fboxrule = 0.4pt
2619
 
%    \end{macrocode}
2620
 
%
2621
 
% \subsection{Figures}
2622
 
% \changes{4.0b}{1999/06/20}{Processing delayed to \cs{AtBeginDocument} time}
2623
 
%
2624
 
% \begin{environment}{figure}
2625
 
% We define the \env{figure} environment.
2626
 
% Later, we will horse around with its meaning
2627
 
% in order to accomodate \cmd\floats@sw.
2628
 
%    \begin{macrocode}
2629
 
\newenvironment{figure}
2630
 
               {\@float{figure}}
2631
 
               {\end@float}
2632
 
\newenvironment{figure*}
2633
 
               {\@dblfloat{figure}}
2634
 
               {\end@dblfloat}
2635
 
%    \end{macrocode}
2636
 
% \end{environment}
2637
 
%
2638
 
%    \begin{macrocode}
2639
 
\def\listoffigures{\print@toc{lof}}%
2640
 
\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}%
2641
 
%    \end{macrocode}
2642
 
%
2643
 
% \begin{macro}{\@makecaption}
2644
 
% If caption is one line long, to be centered; if lines turn, then set justified.
2645
 
%    \begin{macrocode}
2646
 
\newlength\abovecaptionskip
2647
 
\newlength\belowcaptionskip
2648
 
\setlength\abovecaptionskip{10\p@}
2649
 
\setlength\belowcaptionskip{2\p@}
2650
 
%    \end{macrocode}
2651
 
%
2652
 
% \changes{4.0b}{1999/06/20}{One-line caption sets flush left.}
2653
 
% \changes{4.0c}{1999/11/13}{Prevent an inner footnote from performing twice}
2654
 
% \changes{4.1a}{2008/01/18}{(AO, 460) ``Proper style is "FIG. 1. ..." (no colon)''}%
2655
 
% There is a hook \cmd\@caption@fignum@sep\ for determining 
2656
 
% the separator following the float number, e.g., ``Fig.1''.
2657
 
% Formerly, we had defined it to be ``: '', now the colon has been replace by a period (full stop). 
2658
 
%    \begin{macrocode}
2659
 
\long\def\@makecaption#1#2{%
2660
 
  \par
2661
 
% \nobreak
2662
 
  \vskip\abovecaptionskip
2663
 
  \begingroup
2664
 
   \small\rmfamily
2665
 
   \sbox\@tempboxa{%
2666
 
    \let\\\heading@cr
2667
 
    \@make@capt@title{#1}{#2}%
2668
 
   }%
2669
 
   \@ifdim{\wd\@tempboxa >\hsize}{%
2670
 
    \begingroup
2671
 
     \samepage
2672
 
     \flushing
2673
 
     \let\footnote\@footnotemark@gobble
2674
 
     \@make@capt@title{#1}{#2}\par
2675
 
    \endgroup
2676
 
   }{%
2677
 
     \global \@minipagefalse
2678
 
     \hb@xt@\hsize{\hfil\unhbox\@tempboxa\hfil}%
2679
 
   }%
2680
 
  \endgroup
2681
 
  \vskip\belowcaptionskip
2682
 
}%
2683
 
\def\@make@capt@title#1#2{%
2684
 
 \@ifx@empty\float@link{\@firstofone}{\expandafter\href\expandafter{\float@link}}%
2685
 
  {#1}\@caption@fignum@sep#2%
2686
 
}%
2687
 
\def\@footnotemark@gobble{%
2688
 
 \@footnotemark
2689
 
 \@ifnextchar[{\@gobble@opt@i}{\@gobble}%
2690
 
}%
2691
 
\def\@gobble@opt@i[#1]#2{}%
2692
 
\def\@mpmakefntext#1{%
2693
 
 \flushing
2694
 
 \parindent=1em
2695
 
 \noindent
2696
 
 \hb@xt@1em{\hss\@makefnmark}%
2697
 
 #1%
2698
 
}%
2699
 
\def\@caption@fignum@sep{. }%
2700
 
\def\setfloatlink{\def\float@link}%
2701
 
\let\float@link\@empty
2702
 
%    \end{macrocode}
2703
 
% \end{macro}
2704
 
%
2705
 
% \begin{macro}{\thefigure}
2706
 
% The figure counter and float placement defaults.
2707
 
%    \begin{macrocode}
2708
 
\newcounter{figure}
2709
 
\renewcommand \thefigure {\@arabic\c@figure}
2710
 
%    \end{macrocode}
2711
 
% Note that we give the `!' modifier by default.
2712
 
% This is an effort to avoid the syndrome wherein
2713
 
% a deferred float finds itself unqualified for 
2714
 
% placement, thereby getting carried until \cmd\clearpage.
2715
 
%    \begin{macrocode}
2716
 
\def\fps@figure{tbp}
2717
 
\def\ftype@figure{1}
2718
 
\def\ext@figure{lof}
2719
 
\def\fnum@figure{\figurename~\thefigure}
2720
 
%    \end{macrocode}
2721
 
% We allocate a box register for use in tallying the column inches of floats of this type.
2722
 
%    \begin{macrocode}
2723
 
\expandafter\newbox\csname fbox@\ftype@figure\endcsname
2724
 
\expandafter\setbox\csname fbox@\ftype@figure\endcsname\hbox{}%
2725
 
%    \end{macrocode}
2726
 
% \end{macro}
2727
 
%
2728
 
% \subsubsection{Deferring \env{figure} Floats}%
2729
 
%
2730
 
% We determine if figures are to float or be deferred until \cmd\printfigures\ time. 
2731
 
% If so, we open the stream that will receive the deferred document portions. 
2732
 
%    \begin{macrocode}
2733
 
\appdef\class@documenthook{%
2734
 
 \do@if@floats{figure}{.fgx}%
2735
 
}%
2736
 
\appdef\class@enddocumenthook{%
2737
 
 \printfigures\relax
2738
 
}%
2739
 
%    \end{macrocode}
2740
 
2741
 
% \begin{macro}{\printfigures}
2742
 
% The user-level command \cmd\printfigures\ determines
2743
 
% where the figures are to appear in a document in which
2744
 
% \cmd\floats@sw\ is false.
2745
 
% If the user invokes the \classoption{endfloats} class option and fails to
2746
 
% insert a \cmd\printfigures\ command, 
2747
 
% the figures will be printed at the end of the document.
2748
 
% If the command is given, but floats are not being deferred, 
2749
 
% it amounts to a no-op.
2750
 
% \changes{4.0b}{1999/06/20}{call \cs{print@floats}}
2751
 
% \changes{4.0c}{1999/11/13}{*-form mandates pagebreak}
2752
 
%    \begin{macrocode}
2753
 
\newcommand\printfigures{%
2754
 
 \@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}%
2755
 
 {%
2756
 
  \print@float{figure}{\oneapage}%
2757
 
 }{%
2758
 
  \print@float{figure}{}%
2759
 
 }%
2760
 
}%
2761
 
%    \end{macrocode}
2762
 
% \end{macro}
2763
 
%
2764
 
%
2765
 
% \begin{macro}{\@xfloat@prep}
2766
 
% We patch into the procedure \cmd\@xfloat@prep. 
2767
 
% This patch applies to all floats (not \env{figure} alone)
2768
 
% and makes the type center.
2769
 
%    \begin{macrocode}
2770
 
\appdef\@xfloat@prep{%
2771
 
 \appdef\@parboxrestore{\centering}%
2772
 
%\let\@makefnmark\@makefnmark@latex
2773
 
}%
2774
 
%    \end{macrocode}
2775
 
% \end{macro}
2776
 
%
2777
 
%
2778
 
% \subsection{Tables}
2779
 
% \changes{4.0b}{1999/06/20}{Processing delayed to \cs{AtBeginDocument} time}
2780
 
%
2781
 
% DPC: More or less taken from \file{revtex2} \file{aps.sty},
2782
 
% but using dcolumn for decimal alignment.
2783
 
% \begin{environment}{table}
2784
 
% We define the \env{table} environment.
2785
 
% Later, we will horse around with its meaning
2786
 
% in order to accomodate \cmd\floats@sw.
2787
 
%    \begin{macrocode}
2788
 
\newenvironment{table}
2789
 
               {\@float{table}}
2790
 
               {\end@float}
2791
 
\newenvironment{table*}
2792
 
               {\@dblfloat{table}}
2793
 
               {\end@dblfloat}
2794
 
%    \end{macrocode}
2795
 
% \end{environment}
2796
 
%
2797
 
% \begin{macro}{\thetable}
2798
 
% Table counter and default float placement declarations.
2799
 
%    \begin{macrocode}
2800
 
\newcounter{table}
2801
 
\renewcommand\thetable{\@Roman\c@table}
2802
 
%    \end{macrocode}
2803
 
% Note that we give the `!' modifier by default.
2804
 
% This is an effort to avoid the syndrome wherein
2805
 
% a deferred float finds itself unqualified for 
2806
 
% placement, thereby getting carried until \cmd\clearpage.
2807
 
%    \begin{macrocode}
2808
 
\def\fps@table{tbp}
2809
 
\def\ftype@table{2}
2810
 
\def\ext@table{lot}
2811
 
\def\fnum@table{\tablename~\thetable}
2812
 
%    \end{macrocode}
2813
 
% We allocate a box register for use in tallying the column inches of floats of this type.
2814
 
%    \begin{macrocode}
2815
 
\expandafter\newbox\csname fbox@\ftype@table\endcsname
2816
 
\expandafter\setbox\csname fbox@\ftype@table\endcsname\hbox{}%
2817
 
%    \end{macrocode}
2818
 
% \end{macro}
2819
 
%
2820
 
%    \begin{macrocode}
2821
 
\def\listoftables{\print@toc{lot}}%
2822
 
\let\l@table\l@figure
2823
 
%    \end{macrocode}
2824
 
%
2825
 
% \begin{macro}{\table@hook}
2826
 
% \begin{macro}{\squeezetable}
2827
 
% Assign a meaning to the hook installed into float processing.
2828
 
%
2829
 
% By default floats are \cmd\small. The \cmd\squeezetable\ declaration
2830
 
% makes them smaller (\cmd\scriptsize). In general you can locally
2831
 
% redefine \cmd\table@hook\ to be whatever you like.
2832
 
% (DPC: |\Huge\color{magenta}|\ldots?)
2833
 
%    \begin{macrocode}
2834
 
\def\table@hook{\small}%
2835
 
\def\squeezetable{\def\table@hook{\scriptsize}}%
2836
 
\appdef\@floatboxreset{\table@hook}%
2837
 
%    \end{macrocode}
2838
 
% \end{macro}
2839
 
% \end{macro}
2840
 
%
2841
 
% \subsubsection{Deferring \env{table} Floats}%
2842
 
%
2843
 
% After all packages are loaded, we decide
2844
 
% if tables will float or will be deferred until \cmd\printtables\ time.
2845
 
%
2846
 
% We also deal with the possibility of \env{longtable} environments.
2847
 
2848
 
%    \begin{macrocode}
2849
 
\def\set@table@environments{%
2850
 
 \floats@sw{}{%
2851
 
  \let@environment{longtable@float}{longtable}%
2852
 
  \let@environment{longtable}{longtable@write}%
2853
 
  \let@environment{longtable*@float}{longtable*}%
2854
 
  \let@environment{longtable*}{longtable*@write}%
2855
 
  \let@environment{turnpage@float}{turnpage}%
2856
 
  \let@environment{turnpage}{turnpage@write}%
2857
 
 }%
2858
 
 \do@if@floats{table}{.tbx}%
2859
 
}%
2860
 
\appdef\document@inithook{%
2861
 
 \set@table@environments
2862
 
}%
2863
 
\appdef\class@enddocumenthook{%
2864
 
 \printtables\relax
2865
 
}%
2866
 
\newenvironment{longtable@write}{%
2867
 
 \write@@float{longtable}{table}%
2868
 
}{%
2869
 
 \endwrite@float
2870
 
}%
2871
 
\newenvironment{longtable*@write}{%
2872
 
 \write@@float{longtable*}{table}%
2873
 
}{%
2874
 
 \endwrite@float
2875
 
}%
2876
 
\newenvironment{turnpage@write}{%
2877
 
 \immediate\write\tablewrite{\string\begin{turnpage}}%
2878
 
}{%
2879
 
 \immediate\write\tablewrite{\string\end{turnpage}}%
2880
 
}%
2881
 
%    \end{macrocode}
2882
 
%
2883
 
% \begin{macro}{\printtables}
2884
 
% The user-level command \cmd\printtables\ determines
2885
 
% where the tables are to appear in a document in which
2886
 
% \cmd\floats@sw\ is false.
2887
 
% If the user invokes the \classoption{nofloats} and fails to
2888
 
% insert a \cmd\printtables\ command, 
2889
 
% the tables will be printed at the end of the document.
2890
 
% If the command is given, but floats are not being deferred, 
2891
 
% it amounts to a no-op.
2892
 
% \changes{4.0b}{1999/06/20}{only execute if appropriate}
2893
 
% \changes{4.0c}{1999/11/13}{*-form mandates pagebreak}
2894
 
% \changes{4.0d}{2000/05/17}{make longtable trigger the head, too}
2895
 
%    \begin{macrocode}
2896
 
\newcommand\printtables{%
2897
 
 \begingroup
2898
 
  \let@environment{longtable}{longtable@float}%
2899
 
  \let@environment{longtable*}{longtable*@float}%
2900
 
  \let@environment{turnpage}{turnpage@anchored}%
2901
 
  \prepdef\longtable{\trigger@float@par}%
2902
 
  \expandafter\prepdef\csname longtable*\endcsname{\trigger@float@par}%
2903
 
  \expandafter\prepdef\csname table@floats\endcsname{%
2904
 
   \onecolumngrid@push
2905
 
  }%
2906
 
  \expandafter\appdef\csname endtable@floats\endcsname{%
2907
 
   \onecolumngrid@pop
2908
 
  }%
2909
 
  \@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}%
2910
 
  {%
2911
 
   \print@float{table}{\oneapage}%
2912
 
  }{%
2913
 
   \print@float{table}{}%
2914
 
  }%
2915
 
 \endgroup
2916
 
}%
2917
 
\newenvironment{turnpage@anchored}{%
2918
 
 \onecolumngrid@push
2919
 
 \setbox\z@\vbox to\textwidth\bgroup
2920
 
  \columnwidth\textheight
2921
 
}{%
2922
 
  \vfil
2923
 
 \egroup
2924
 
 \rotatebox{90}{\box\z@}%
2925
 
 \onecolumngrid@pop
2926
 
}%
2927
 
%    \end{macrocode}
2928
 
% \end{macro}
2929
 
%
2930
 
%
2931
 
% \subsection{Videos}
2932
 
%\changes{4.1r}{2010/06/22}{(AO, 595) Provide \cs{lovname} along with other List of Videos definitions.}%
2933
 
%
2934
 
% \begin{environment}{video}
2935
 
% We define the \env{video} environment analogously to the 
2936
 
% \env{figure} and \env{table} environments; it is intended to contain a video.
2937
 
%
2938
 
%    \begin{macrocode}
2939
 
\newenvironment{video}
2940
 
 {\@float{video}}
2941
 
 {\end@float}%
2942
 
\newenvironment{video*}
2943
 
 {\@dblfloat{video}}
2944
 
 {\end@dblfloat}%
2945
 
%    \end{macrocode}
2946
 
% \end{environment}
2947
 
%
2948
 
% \begin{macro}{\thevideo}
2949
 
% The video counter, float placement defaults, strings.
2950
 
%    \begin{macrocode}
2951
 
\newcounter{video}
2952
 
\renewcommand \thevideo {\@arabic\c@video}
2953
 
%    \end{macrocode}
2954
 
%
2955
 
% File extension and localizable strings.
2956
 
%    \begin{macrocode}
2957
 
\def\ext@video{lov}%
2958
 
\def\fname@video{Video}%
2959
 
\def\lovname{List of Videos}%
2960
 
%    \end{macrocode}
2961
 
%
2962
 
% Float type and default placement. 
2963
 
%    \begin{macrocode}
2964
 
\def\fps@video{tbp}%
2965
 
\def\ftype@video{4}%
2966
 
\def\fnum@video{\fname@video~\thevideo}%
2967
 
\appdef\document@inithook{%
2968
 
 \@ifxundefined\c@float@type{}{%
2969
 
  \global\setcounter{float@type}{8}%
2970
 
 }%
2971
 
}%
2972
 
%    \end{macrocode}
2973
 
% We allocate a box register for use in tallying the column inches of floats of this type.
2974
 
%    \begin{macrocode}
2975
 
\expandafter\newbox\csname fbox@\ftype@video\endcsname
2976
 
\expandafter\setbox\csname fbox@\ftype@video\endcsname\hbox{}%
2977
 
%    \end{macrocode}
2978
 
% The documentation for the \classname{hyperref} package, \file{hyperref.dtx} states:
2979
 
% ``classes or package which introduce new elements need to define 
2980
 
%   an equivalent  \verb+\theH<name>+  for every  \verb+\the<name>+''
2981
 
% We do accordingly here.
2982
 
%    \begin{macrocode}
2983
 
\let\theHvideo\thevideo
2984
 
%    \end{macrocode}
2985
 
% But \file{hyperref.dtx} goes on to say, 
2986
 
% ``We do make a trap to make \verb+\theH<name>+ be the same as \verb+\arabic{<name>}+,
2987
 
% if \verb+\theH<name>+ is not defined\ldots''
2988
 
% However, it's not doing that right now (as of 6.77u), 
2989
 
% and I cannot find any such code in there anymore.
2990
 
% \end{macro}
2991
 
%
2992
 
%    \begin{macrocode}
2993
 
\def\listofvideos{\print@toc{lov}}%
2994
 
\let\l@video\l@figure
2995
 
%    \end{macrocode}
2996
 
%
2997
 
% \subsubsection{Deferring \env{video} Floats}%
2998
 
%
2999
 
% We determine if videos are to float or be deferred until \cmd\printvideos\ time. 
3000
 
% If so, we open the stream that will receive the deferred document portions. 
3001
 
%    \begin{macrocode}
3002
 
\appdef\class@documenthook{%
3003
 
 \do@if@floats{video}{.vdx}%
3004
 
}%
3005
 
\appdef\class@enddocumenthook{%
3006
 
 \printvideos\relax
3007
 
}%
3008
 
%    \end{macrocode}
3009
 
3010
 
% \begin{macro}{\printvideos}
3011
 
% The user-level command \cmd\printvideos\ determines
3012
 
% where the videos are to appear in a document in which
3013
 
% \cmd\floats@sw\ is false.
3014
 
% If the user invokes the \classoption{endfloats} class option and fails to
3015
 
% insert a \cmd\printvideos\ command, 
3016
 
% the videos will be printed at the end of the document.
3017
 
% If the command is given, but floats are not being deferred, 
3018
 
% it amounts to a no-op.
3019
 
%    \begin{macrocode}
3020
 
\newcommand\printvideos{%
3021
 
 \@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}%
3022
 
 {%
3023
 
  \print@float{video}{\oneapage}%
3024
 
 }{%
3025
 
  \print@float{video}{}%
3026
 
 }%
3027
 
}%
3028
 
%    \end{macrocode}
3029
 
% \end{macro}
3030
 
%
3031
 
%
3032
 
% \section{Tabular}
3033
 
% Every APS tabular has a double (Scotch) rule above and below.
3034
 
% The column specifier ``d'' is implemented using the \classname{dcolumn}
3035
 
% package, if available.
3036
 
% FIXME: always load dcolumn!
3037
 
% \begin{macro}{\tabular@hook}
3038
 
% \begin{macro}{\endtabular@hook}
3039
 
% \begin{environment}{ruledtabular}
3040
 
%    \begin{macrocode}
3041
 
\def\endtabular@hook{}%
3042
 
%    \end{macrocode}
3043
 
%    \begin{verbatim}
3044
 
%\RequirePackage{dcolumn}%
3045
 
%    \end{verbatim}
3046
 
%    \begin{macrocode}
3047
 
\appdef\document@inithook{%
3048
 
 \@ifpackageloaded{dcolumn}{%
3049
 
  \expandafter\@ifnotrelax\csname NC@find@d\endcsname{}{%
3050
 
   \newcolumntype{d}{D{.}{.}{-1}}%
3051
 
  }%
3052
 
 }{}%
3053
 
}%
3054
 
\def\toprule{\hline\hline}%
3055
 
\def\colrule{\hline}%
3056
 
\def\botrule{\hline\hline}%
3057
 
\newenvironment{ruledtabular}{%
3058
 
 \def\array@default{v}%
3059
 
 \appdef\tabular@hook{\def\@halignto{to\hsize}}%
3060
 
 \let\tableft@skip@default\tableft@skip
3061
 
 \let\tableft@skip\tableft@skip@float
3062
 
 \let\tabmid@skip@default\tabmid@skip
3063
 
 \let\tabmid@skip\tabmid@skip@float
3064
 
 \let\tabright@skip@default\tabright@skip
3065
 
 \let\tabright@skip\tabright@skip@float
3066
 
 \let\array@row@pre@default\array@row@pre
3067
 
 \let\array@row@pre\array@row@pre@float
3068
 
 \let\array@row@pst@default\array@row@pst
3069
 
 \let\array@row@pst\array@row@pst@float
3070
 
 \appdef\array@row@rst{%
3071
 
  \let\array@row@pre\array@row@pre@default
3072
 
  \let\array@row@pst\array@row@pst@default
3073
 
  \let\tableft@skip\tableft@skip@default
3074
 
  \let\tabmid@skip\tabmid@skip@default
3075
 
  \let\tabright@skip\tabright@skip@default
3076
 
  \appdef\tabular@hook{\let\@halignto\@empty}%
3077
 
 }%
3078
 
}{%
3079
 
}%
3080
 
%    \end{macrocode}
3081
 
% \end{environment}
3082
 
% \end{macro}
3083
 
% \end{macro}
3084
 
%
3085
 
% \section{Footnote Text}
3086
 
%
3087
 
% \changes{4.0a}{1998/06/10}{single space footnotes}
3088
 
% \changes{4.0b}{1999/06/20}{Frank Mittelbach, has stated in \protect\classname{multicol}: ``The kernel command \cs{@footnotetext} should not be modified.'' Thus, I have removed David Carlisle's redefinition of that command. Note, however, that later versions of \protect\classname{multicol} do not require this workaround. Belt and suspenders.}%
3089
 
%
3090
 
% \begin{macro}{\@makefntext}
3091
 
% \begin{macro}{\@makefnmark}
3092
 
% We customize the presentation of the footnote mark: it will not be italic.
3093
 
%    \begin{macrocode}
3094
 
\def\@makefntext#1{%
3095
 
  \def\baselinestretch{1}%
3096
 
  \parindent1em%
3097
 
  \noindent
3098
 
  \hb@xt@1.8em{%
3099
 
   \hss\@makefnmark
3100
 
  }%
3101
 
  #1%
3102
 
  \par
3103
 
}%
3104
 
\def\@makefnmark{%
3105
 
 \hbox{%
3106
 
  \@textsuperscript{%
3107
 
   \normalfont\@thefnmark
3108
 
  }%
3109
 
 }%
3110
 
}%
3111
 
%    \end{macrocode}
3112
 
% \end{macro}
3113
 
% \end{macro}
3114
 
%
3115
 
%
3116
 
% \subsection{Citations, Bibliography, Endnotes}
3117
 
%
3118
 
% \subsubsection{Bibliography}
3119
 
%
3120
 
% Load Patrick Daly's \classname{natbib} package,
3121
 
% \url{ftp://ctan.tug.org/macros/latex/contrib/supported/natbib}
3122
 
%
3123
 
% Note that \classname{natbib} assumes that it loads
3124
 
% over a document class, such as the \classname{article} class, 
3125
 
% that has already defined \env{thebibliography} and \cmd\@listi.
3126
 
%
3127
 
% Note also that \classname{natbib} also installs a command
3128
 
% \cmd\NAT@set@cites\ into \cmd\AtBeginDocument\ which presumes
3129
 
% that the proper \cmd\bibpunct\ command has been issued.
3130
 
3131
 
% Note that the macro \cmd\NAT@sort\ controls 
3132
 
% whether citations are left alone (\cmd\NAT@sort=0), sorted (\cmd\NAT@sort=1), or sorted and compressed (\cmd\NAT@sort=2).
3133
 
% Since we give \classname{natbib} the \classoption{sort\&compress} option,
3134
 
% if you prefer \classoption{sort}, you need only \cmd\let \cmd\NAT@sort\ to be \cmd\@ne.
3135
 
% However, if you prefer the effect of having neither \classoption{sort} nor \classoption{sort\&compress},
3136
 
% you must \cmd\let \cmd\NAT@sort\ to be \cmd\z@ and you must also define 
3137
 
% \cmd\let\cmd\NAT@cmprs\ to be \cmd\z@.
3138
 
%
3139
 
% As of version 8.2, \classname{natbib} now no longer binds at the point where it is read in.
3140
 
% This means that we can freely change \cmd\NAT@sort, \cmd\NAT@cmprs, and the new
3141
 
% \cmd\NAT@merge. Henceforth, we require that this later version be used.
3142
 
%
3143
 
% For other \classname{natbib} customizations, you may proceed as if you were going to use
3144
 
% the \file{natbib.cfg} file: anything that you can modify by this means is fair game.
3145
 
% Once \revtex\ is finished loading, you can assert any definitions for \classname{natbib} that you wish.
3146
 
%
3147
 
% \begin{macro}{\rev@citet}
3148
 
% \begin{macro}{\rev@citealp}
3149
 
% \begin{macro}{\rev@citealpnum}
3150
 
% We define variants on \classname{natbib}'s commands \cmd\citet, \cmd\citealp, and \cmd\citealpnum. 
3151
 
% \cmd\rev@citealpnum\ uses a numerical citation.
3152
 
% \cmd\rev@citealp\ and \cmd\rev@citealpnum\ are the aliases of \cmd\onlinecite,
3153
 
% \cmd\rev@citet\ that of \cmd\textcite.
3154
 
3155
 
% In each case, we invoke \cmd\rtx@swap@citea\ to effect different productions between 
3156
 
% multiple arguments to the \cmd\cite\ command.
3157
 
%
3158
 
% \cmd\rev@citealpnum\ provides textual citations where superscript citations are the default.
3159
 
% These should be accessible via the \cmd\citet\ command.
3160
 
%
3161
 
% Therefore we remember how to do a numerical citation
3162
 
% even when the superscript citation has been selected.
3163
 
%    \begin{macrocode}
3164
 
\expandafter\DeclareRobustCommand
3165
 
\expandafter\rev@citet
3166
 
\expandafter{%
3167
 
 \expandafter\begingroup
3168
 
  \expandafter\rtx@swap@citea
3169
 
  \expandafter\g@bblefirsttoken
3170
 
              \csname citet \endcsname
3171
 
}%
3172
 
\expandafter\DeclareRobustCommand
3173
 
\expandafter\rev@citealp
3174
 
\expandafter{%
3175
 
 \expandafter\begingroup
3176
 
  \expandafter\rtx@swap@citea
3177
 
  \expandafter\g@bblefirsttoken
3178
 
              \csname citealp \endcsname
3179
 
}%
3180
 
\expandafter\DeclareRobustCommand
3181
 
\expandafter\rev@citealpnum
3182
 
\expandafter{%
3183
 
 \expandafter\begingroup
3184
 
  \expandafter\rtx@swap@citenum
3185
 
  \expandafter\g@bblefirsttoken
3186
 
              \csname citealp \endcsname
3187
 
}%
3188
 
\def\rtx@swap@citenum{%
3189
 
  \rtx@swap@citea
3190
 
  \let\@cite\NAT@citenum
3191
 
  \let\NAT@mbox\mbox
3192
 
  \let\citeyear\NAT@citeyear
3193
 
  \let\NAT@space\NAT@spacechar
3194
 
}%
3195
 
\def\g@bblefirsttoken{%
3196
 
 \expandafter\true@sw
3197
 
 \expandafter\@empty
3198
 
}%
3199
 
%    \end{macrocode}
3200
 
% \end{macro}
3201
 
% \end{macro}
3202
 
% \end{macro}
3203
 
%
3204
 
% \begin{macro}{\rtx@citesuper}
3205
 
% We prepare to redefine \classname{natbib}'s procedure \cmd\NAT@citesuper,
3206
 
% which is executed when setting a superscript citation.
3207
 
% The \cmd\hspace\ is removed: in any case, it
3208
 
% should really be \cmd\hspace*, to prevent an unwanted pagebreak.
3209
 
%    \begin{macrocode}
3210
 
\newcommand\rtx@citesuper[3]{%
3211
 
 \ifNAT@swa
3212
 
  \leavevmode
3213
 
  \unskip
3214
 
% \hspace{1\p@}%
3215
 
  \textsuperscript{\normalfont#1}%
3216
 
  \if*#3*\else\ (#3)\fi
3217
 
 \else
3218
 
  #1%
3219
 
 \fi
3220
 
 \endgroup
3221
 
}%
3222
 
%    \end{macrocode}
3223
 
% \end{macro}
3224
 
%
3225
 
% \begin{macro}{\@makefnmark@cite}
3226
 
% We define a procedure that will set a footnote mark the same way that
3227
 
% a citation is set. If footnotes are put in the bibliography with
3228
 
% \cmd\footinbib@sw, then the corresponding mark should look the same
3229
 
% as the result of a \cmd\cite. This is how we do it.
3230
 
%    \begin{macrocode}
3231
 
\def\@makefnmark@cite{\begingroup\NAT@swatrue\@cite{{\@thefnmark}}{}{}}%
3232
 
%    \end{macrocode}
3233
 
% \end{macro}
3234
 
%
3235
 
% \begin{macro}{\rtx@bibsection}
3236
 
% Prepare to override \classname{natbib}'s definition of \cmd\bibsection.
3237
 
%    \begin{macrocode}
3238
 
\def\rtx@bibsection{%
3239
 
 \@ifx@empty\refname{%
3240
 
  \par
3241
 
 }{%
3242
 
% \let\@hangfroms@section\@hang@froms
3243
 
  \expandafter\section\expandafter*\expandafter{\refname}%
3244
 
  \@nobreaktrue
3245
 
 }%
3246
 
}%
3247
 
%    \end{macrocode}
3248
 
% \end{macro}
3249
 
%
3250
 
% \begin{macro}{\rtx@swap@citea}
3251
 
% \begin{macro}{\rtx@def@citea}
3252
 
% \begin{macro}{\rtx@def@citea@close}
3253
 
% \begin{macro}{\rtx@def@citea@box}
3254
 
% The procedures |\rtx@def@citea|, |\rtx@def@citea@close|, and |\rtx@def@citea@box| 
3255
 
% can take over the management of \classname{natbib}'s |\@citea| macro to effect more sophisticated
3256
 
% behavior of the punctuation between textual citations. The switch is performed by \cmd\rtx@swap@citea.
3257
 
%
3258
 
% \changes{4.1j}{2009/10/25}{(AO, 552) Repair spacing in \cs{onlinecite}}
3259
 
% In these procedures, we use \cmd\count@\ to count the number of arguments of the \cmd\cite\ command,
3260
 
% and we use \cmd\c@NAT@ctr\ to keep track of which argument we are processing.
3261
 
% The latter counter is created by \classname{natbib} and used there solely in bibliography processing,
3262
 
% where it keeps track of the reference number. 
3263
 
% We take over its use in these macros, but only locally; therefore these procedures should work properly, even within the bibliography.
3264
 
%FIXME: check whether this is true!
3265
 
%
3266
 
% Because we are using a scratch counter \cmd\count@, we are vulnerable to other \TeX\ programmers
3267
 
% who patch in to \classname{natbib}'s processing and who might use that counter at the same time we are doing so.
3268
 
% This is a potential source of trouble for us. 
3269
 
%FIXME: store the value of \cmd\count@\ in a private \cmd\csname!
3270
 
%
3271
 
% Note that \cmd\rtx@def@citea\ begins the same as \cmd\NAT@def@citea, which it replaces, 
3272
 
% then makes further decisions based on the values of the counters. 
3273
 
%
3274
 
% Note also that, in \classname{natbib}, the replacement part of \cmd\NAT@def@citea@close\ could be rewritten as
3275
 
% \cmd\NAT@def@citea\cmd\prepdef\cmd\@citea\verb+{+\cmd\NAT@@close\verb+}+, which 
3276
 
% would them obviate the need for us to override its meaning. 
3277
 
%
3278
 
% Note, too, the effect of \cmd\rtx@def@citea@box, which replaces \cmd\NAT@def@citea@box,
3279
 
% is almost the same as the latter, except the entire \cmd\@citea\ is given as the argument
3280
 
% of \cmd\NAT@mbox.
3281
 
%
3282
 
% Finally, bear in mind that the English (and some American editors) do not place a comma
3283
 
% before the ``and''; our procedures do (but they could be rewritten with that convention). 
3284
 
%    \begin{macrocode}
3285
 
\def\rtx@swap@citea{%
3286
 
 \let\NAT@def@citea\rtx@def@citea
3287
 
 \let\NAT@def@citea@close\rtx@def@citea@close
3288
 
 \let\NAT@def@citea@box\rtx@def@citea@box
3289
 
}%
3290
 
\def\rtx@def@citea{%
3291
 
 \def\@citea{\NAT@separator\NAT@space}%
3292
 
 \advance\c@NAT@ctr\@ne
3293
 
 \@ifnum{\count@>\tw@}{%
3294
 
  \@ifnum{\c@NAT@ctr=\count@}{\appdef\@citea{\NAT@conj\NAT@space}}{}%
3295
 
 }{%
3296
 
  \def\@citea{\NAT@space\NAT@conj\NAT@space}%
3297
 
 }%
3298
 
}%
3299
 
\def\rtx@def@citea@close{%
3300
 
 \rtx@def@citea
3301
 
 \prepdef\@citea{\NAT@@close}%
3302
 
}%
3303
 
\def\rtx@def@citea@box{%
3304
 
 \rtx@def@citea@close
3305
 
 \expandafter\def\expandafter\@citea\expandafter{\expandafter\NAT@mbox\expandafter{\@citea}}%
3306
 
}%
3307
 
\def\NAT@conj{and}%
3308
 
%    \end{macrocode}
3309
 
%
3310
 
% \end{macro}
3311
 
% \end{macro}
3312
 
% \end{macro}
3313
 
% \end{macro}
3314
 
%
3315
 
% \begin{macro}{\BibitemShut}
3316
 
% \begin{macro}{\bibAnnote}
3317
 
% \changes{4.1j}{2009/10/24}{(AO, 549) Repairing natbib's \cs{BibitemShut} and \cs{bibAnnote}}
3318
 
% \changes{4.1o}{2010/02/05}{(AO, 549) Remove patch to natbib, which is now at version 8.31a}
3319
 
% \changes{4.1o}{2010/02/07}{(AO, 578) accommodate the possible space character preceding \cs{BibitemShut}.} 
3320
 
% We remember a temporary patch to \classname{natbib}'s definition of \cmd\BibitemShut.
3321
 
%    \begin{macrocode}
3322
 
\def\NAT@BibitemShut#1{%
3323
 
 \def\@bibstop{#1}%
3324
 
 \let\bibitem@Stop\bibitemStop
3325
 
 \let\bibitem@NoStop\bibitemNoStop
3326
 
 \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%
3327
 
  \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%
3328
 
 }%
3329
 
}%
3330
 
%    \end{macrocode}
3331
 
% The following is a bug fix to \classname{natbib} version 8.31b.
3332
 
%    \begin{macrocode}
3333
 
\def\BibitemShut@ltx#1{%
3334
 
 \unskip
3335
 
 \def\@bibstop{#1}%
3336
 
 \let\bibitem@Stop\bibitemStop
3337
 
 \let\bibitem@NoStop\bibitemNoStop
3338
 
 \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%
3339
 
  \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%
3340
 
 }%
3341
 
}%
3342
 
%    \end{macrocode}
3343
 
%
3344
 
%    \begin{verbatim}
3345
 
%\providecommand{\bibAnnote}[3]{%
3346
 
%  \BibitemShut{#1}%
3347
 
%  \def\@tempa{#3}\@ifx{\@tempa\@empty}{}{%
3348
 
%   \begin{quotation}\noindent
3349
 
%    \textsc{Key:}\ #2\\\textsc{Annotation:}\ \@tempa
3350
 
%   \end{quotation}%
3351
 
%  }%
3352
 
%  \ignorespaces
3353
 
%}%
3354
 
%\def\@bibitemShut{}%
3355
 
%    \end{verbatim}
3356
 
% \end{macro}
3357
 
% \end{macro}
3358
 
%
3359
 
%
3360
 
%    \begin{macrocode}
3361
 
\newenvironment{thebibliography}{}{}%
3362
 
\let\@listi\@empty
3363
 
\appdef\rtx@require@packages{%
3364
 
 \RequirePackage[sort&compress]{natbib}[2009/11/07 8.31a (PWD, AO)]%
3365
 
 \let@environment{NAT@thebibliography}{thebibliography}%
3366
 
 \let@environment{thebibliography}{rtx@thebibliography}%
3367
 
 \let\bibliographystyle@latex\bibliographystyle
3368
 
 \let\NAT@citesuper\rtx@citesuper
3369
 
%    \end{macrocode}
3370
 
%
3371
 
% \begin{macro}{\NAT@bibsetnum}
3372
 
% \begin{macro}{\NAT@bibsetup}
3373
 
% \begin{macro}{\bibpreamble}
3374
 
% \begin{macro}{\newblock}
3375
 
% \begin{macro}{\bibnumfmt}
3376
 
% \begin{macro}{\NAT@merge}
3377
 
% We define the sectioning command to use when starting the bibliography
3378
 
% and gently coax \classname{natbib} into using
3379
 
% the formatting procedures that \emph{we} want it to use.
3380
 
%
3381
 
% This way of setting up \env{thebibliography} 
3382
 
% automatically sets the label width based on
3383
 
% the largest number used within the bibliography.
3384
 
% This scheme will not work properly using the
3385
 
% author/year style of bib entry, though.
3386
 
%
3387
 
% We define \cmd\bibnumfmt\ to be \cmd\place@bibnumber, which is a macro
3388
 
% managed by \revtex. If the document defines \cmd\bibnumfmt, then that
3389
 
% definition will be used instead, which is what the \classname{natbib}
3390
 
% package gives as its programming interface.
3391
 
%
3392
 
% We set \cmd\NAT@merge\ to \cmd\tw@, which turns on \classname{natbib}'s
3393
 
% \classname{mcite} capabilities. This is the default setting. 
3394
 
% If numerical citations are not to be used, then \cmd\NAT@merge\ 
3395
 
% should be set to \cmd\@ne\ (syntax is still enabled, but semantics are turned off). 
3396
 
%    \begin{macrocode}
3397
 
\let\bibsection\rtx@bibsection
3398
 
\let\NATx@bibsetnum\NAT@bibsetnum
3399
 
\def\NAT@bibsetnum#1{%
3400
 
 \setlength{\topsep}{\z@}%
3401
 
 \NATx@bibsetnum{\ref{LastBibItem}}%
3402
 
}%
3403
 
\let\NATx@bibsetup\NAT@bibsetup
3404
 
\def\NAT@bibsetup{%
3405
 
 \setlength{\labelwidth}{\z@}%
3406
 
 \setlength{\labelsep}{\z@}%
3407
 
 \setlength{\itemindent}{\z@}%
3408
 
 \setlength{\listparindent}{\z@}%
3409
 
 \setlength{\topsep}{\z@}%
3410
 
 \setlength{\parsep}{\z@}%
3411
 
 \NATx@bibsetup
3412
 
}%
3413
 
\let\bibpreamble\@empty
3414
 
\def\newblock{\ }%
3415
 
\let\NATx@bibnumfmt\bibnumfmt
3416
 
\def\bibnumfmt{\place@bibnumber}%
3417
 
\let\NAT@merge\thr@@
3418
 
\let\NAT@citeyear\citeyear
3419
 
\let\onlinecite\rev@citealp
3420
 
\let\textcite\rev@citet
3421
 
%    \end{macrocode}
3422
 
% The following is needed until \classname{natbib} is at 8.31b.
3423
 
%    \begin{macrocode}
3424
 
\@ifx{\BibitemShut\NAT@BibitemShut}{%
3425
 
 \class@info{Repairing natbib's \string\BibitemShut}%
3426
 
 \let\BibitemShut\BibitemShut@ltx
3427
 
}{}%
3428
 
%    \end{macrocode}
3429
 
% \end{macro}
3430
 
% \end{macro}
3431
 
% \end{macro}
3432
 
% \end{macro}
3433
 
% \end{macro}
3434
 
% \end{macro}
3435
 
%
3436
 
% \begin{macro}{\bibliographystyle}
3437
 
% \changes{4.1q}{2010/04/01}{(AO, 586) When .bbl is pasted into the document, prevent automatic bibliography inclusion.}%
3438
 
% \changes{4.1q}{2010/04/13}{(AO, 588) Only write \revtex-specific BibTeX .bib data if the .bst style is set by REVTeX.}%
3439
 
% We arrange for the selection of bibliography style
3440
 
% to occur either due to the document's explicit
3441
 
% \cmd\bibliographystyle\ statement or
3442
 
% via the journal substyle.
3443
 
%
3444
 
% Note that \revtex\ is incompatible with 
3445
 
% any package that patches \cmd\bibliographystyle.
3446
 
% Since \classname{natbib} does this, we need a fix.
3447
 
%
3448
 
% The Boolean \cmd\bibliographystyle@sw\ signifies that the document  contains explicit
3449
 
% \cmd\bibliographystyle\ markup. If, on the contrary, the bibliography style is set by
3450
 
% the the society or the journal, then no explicit \cmd\bibliographystyle\ command appears in the document instance.
3451
 
% In this case \cmd\bibliographystyle@sw\ will be \cmd\false@sw.
3452
 
%    \begin{macrocode}
3453
 
\let\bibliographystyle@latex\bibliographystyle
3454
 
\def\bibliographystyle{\@booleantrue\bibliographystyle@sw\def\@bibstyle}%
3455
 
\@booleanfalse\bibliographystyle@sw
3456
 
%    \end{macrocode}
3457
 
% \end{macro}
3458
 
%
3459
 
% \changes{4.1j}{2009/11/03}{(AO, 551) Punctuation at end of reference when optional arguments to the cite key are given.}
3460
 
% The following had been bug fixes to \classname{natbib} version 8.31a.
3461
 
%    \begin{verbatim}
3462
 
%\def\bibitemStop{\@bibitemShut}%
3463
 
%\def\NAT@bibitem@cont{%
3464
 
% \let\bibitem@Stop\bibitemContinue
3465
 
% \let\bibitem@NoStop\bibitemContinue
3466
 
%}%
3467
 
%    \end{verbatim}
3468
 
% The following are alterations to \classname{natbib} version 8.31a to 
3469
 
% accommodate the possible space character preceding \cmd\BibitemShut,
3470
 
% and to handle the case of merged references, where the first ends with a stop character. 
3471
 
% \changes{4.1o}{2010/02/07}{(AO, 578) accommodate the possible space character preceding \cs{BibitemShut}.} 
3472
 
% \changes{4.1o}{2010/02/09}{(AO, 581) Handle case: merged references, with first ending in a stop character.} 
3473
 
%    \begin{macrocode}
3474
 
\def\NAT@bibitem@cont{%
3475
 
 \let\bibitem@Stop\bibitemContinue@Stop
3476
 
 \let\bibitem@NoStop\bibitemContinue
3477
 
}%
3478
 
%    \end{macrocode}
3479
 
%    \begin{macrocode}
3480
 
\def\bibitemNoStop{%
3481
 
 \@ifx@empty\@bibitemShut{.\spacefactor\@mmm\space}{\@bibitemShut}%
3482
 
}%
3483
 
%    \end{macrocode}
3484
 
%    \begin{macrocode}
3485
 
\def\bibitemContinue{%
3486
 
 \@ifx@empty\@bibitemShut{;\spacefactor\@mmm\space}{\@bibitemShut}%
3487
 
}%
3488
 
%    \end{macrocode}
3489
 
%    \begin{macrocode}
3490
 
\def\bibitemContinue@Stop{%
3491
 
 \@ifx@empty\@bibitemShut{\spacefactor\@mmm\space}{\@bibitemShut}%
3492
 
}%
3493
 
%    \end{macrocode}
3494
 
%
3495
 
% \changes{4.1k}{2009/11/11}{(AO, 561) remove dead code relating to \cs{bibitemContinue}} 
3496
 
% We used to customize one of the productions of \classname{natbib}, but no longer.
3497
 
%    \begin{verbatim}
3498
 
%\let\bibitemContinue\bibitemContinue@rtx
3499
 
%    \end{verbatim}
3500
 
%
3501
 
% Here ends the code to be executed at \cmd\rtx@require@packages\ time.
3502
 
%    \begin{macrocode}
3503
 
}%
3504
 
%    \end{macrocode}
3505
 
% \changes{4.1f}{2009/07/07}{(AO, 516) Merged references are separated with a semicolon}
3506
 
% Redefine a macro of \classname{natbib} so that merged references are separated with a semicolon.
3507
 
% \changes{4.1k}{2009/11/11}{(AO, 561) remove dead code relating to \cs{bibitemContinue}} 
3508
 
%    \begin{verbatim}
3509
 
% \def\bibitemContinue@rtx{;\spacefactor\@mmm\space}%
3510
 
%    \end{verbatim}
3511
 
%
3512
 
% \begin{macro}{\onlinecite}
3513
 
% \begin{macro}{\textcite}
3514
 
% We extend \classname{natbib}'s syntax with two commands to set a citation
3515
 
% on the baseline (as opposed to superscripted) and as text (rather than parenthetical), respectively.
3516
 
% A journal substyle that makes citations be superscripted or parenthetical as the case may be, should ensure
3517
 
% that the author has continued access to these two styles. 
3518
 
%
3519
 
% Note that the society or journal substyle override the meanings of \cmd\@onlinecite\ or
3520
 
% \cmd\@textcite\ given here.
3521
 
3522
 
%    \begin{macrocode}
3523
 
\DeclareRobustCommand\onlinecite{\@onlinecite}%
3524
 
\DeclareRobustCommand\textcite{\@textcite}%
3525
 
%    \end{macrocode}
3526
 
% \end{macro}
3527
 
% \end{macro}
3528
 
%
3529
 
% \begin{macro}{\bibliography}
3530
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
3531
 
% Provide a hook for supplying Bib\TeX\ a bibliographic database that may contain, say, 
3532
 
% footnotes.
3533
 
3534
 
% Note that Bib\TeX\ chokes if the argument of the \cmd\bibdata\ command has null fields,
3535
 
% hence these tests.
3536
 
%    \begin{macrocode}
3537
 
\let\bibliography@latex\bibliography
3538
 
\def\bibliography#1{%
3539
 
 \auto@bib@empty
3540
 
 \begingroup
3541
 
  \let\auto@bib@innerbib\@empty
3542
 
  \@ifx@empty{\pre@bibdata}{%
3543
 
   \bibliography@latex{#1}%
3544
 
  }{%
3545
 
   \@if@empty{#1}{%
3546
 
    \expandafter\bibliography@latex\expandafter{\pre@bibdata}%
3547
 
   }{%
3548
 
    \expandafter\bibliography@latex\expandafter{\pre@bibdata,#1}%
3549
 
   }%
3550
 
  }%
3551
 
 \endgroup
3552
 
}%
3553
 
\let\pre@bibdata\@empty
3554
 
%    \end{macrocode}
3555
 
% \end{macro}
3556
 
%
3557
 
% \begin{environment}{rtx@thebibliography}%
3558
 
% \begin{macro}{\present@bibnote}%
3559
 
% \changes{4.1f}{2009/07/11}{(AO, 521) Lonely bibliography head}%
3560
 
% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
3561
 
% \changes{4.1o}{2010/02/02}{(AO, 575) Automatically incorporate the (Bib\TeX-generated) .bbl into an explicit \env{thebibliography}}%
3562
 
% \changes{4.1q}{2010/04/01}{(AO, 586) When .bbl is pasted into the document, prevent automatic bibliography inclusion.}%
3563
 
% We put a tail patch into \cmd\thebibliogrphy\ and
3564
 
% a headpatch into \cmd\endthebibliography.
3565
 
%
3566
 
% Here we provide a default treatment for frontmatter notes 
3567
 
% deferred to the bibliography; a journal substyle 
3568
 
% might want to override the definition of \cmd\present@bibnote.
3569
 
%
3570
 
% We make provisions for the case where there are no \cmd\bibitem s 
3571
 
% for the bibliography: we produce no bibliography head at all.
3572
 
3573
 
%    \begin{macrocode}
3574
 
\newenvironment{rtx@thebibliography}[1]{%
3575
 
 \NAT@thebibliography{#1}%
3576
 
 \let\@TBN@opr\present@bibnote
3577
 
 \@FMN@list
3578
 
}{%
3579
 
%    \end{macrocode}
3580
 
% The following line was commented out:
3581
 
%    \begin{verbatim}
3582
 
%\@endnotesinbib
3583
 
%    \end{verbatim}
3584
 
% The \cmd\auto@bib@innerbib\ directive has been moved from the begin processing to the end processing.
3585
 
% This means that the content of the \env{thebibliography} environment can itself prevent the 
3586
 
% automatic reading in of the .bbl file. This would be needed when the user has pasted in the 
3587
 
% content of the .bbl file into the document itself, something required by APS and AIP editorial direction.
3588
 
%    \begin{macrocode}
3589
 
 \auto@bib@innerbib
3590
 
 \edef\@currentlabel{\arabic{NAT@ctr}}%
3591
 
 \label{LastBibItem}%
3592
 
 \endNAT@thebibliography
3593
 
 \aftergroup\auto@bib@empty
3594
 
}%
3595
 
\def\present@bibnote#1#2{%
3596
 
 \item[%
3597
 
  \textsuperscript{%
3598
 
   \normalfont
3599
 
   \Hy@raisedlink{\hyper@anchorstart{frontmatter.#1}\hyper@anchorend}%
3600
 
   \begingroup
3601
 
    \csname c@\@mpfn\endcsname#1\relax
3602
 
    \frontmatter@thefootnote
3603
 
   \endgroup
3604
 
  }%
3605
 
 ]#2\par
3606
 
%    \end{macrocode}
3607
 
% The following line was commented out:
3608
 
%    \begin{verbatim}
3609
 
%\global\let\NAT@bibitem@first@sw\@secondoftwo
3610
 
%    \end{verbatim}
3611
 
%    \begin{macrocode}
3612
 
}%
3613
 
%    \end{macrocode}
3614
 
% \end{macro}
3615
 
% \end{environment}
3616
 
%
3617
 
% \begin{macro}{write@bibliographystyle}
3618
 
% \changes{4.1q}{2010/04/13}{(AO, 588) Only write \revtex-specific BibTeX .bib data if the .bst style is set by REVTeX.}%
3619
 
% We wish to delay committing the \cmd\bibliographystyle\ until as late as possible.
3620
 
% The journal substyle will define a default bibliography style, and 
3621
 
% the document's explicit \cmd\bibliographystyle\ command, if any, will override that default.
3622
 
%
3623
 
% The \cmd\bibstyle\ command is allowed appear quite late in the \file{.aux} file. 
3624
 
% We now delay the automatic writing of the \cmd\bibstyle\ command to the end of the job.
3625
 
%
3626
 
% The procedure \cmd\write@bibliographystyle\ tests whether a \cmd\bibliographystyle\ command has 
3627
 
% already been given.
3628
 
% If not, it effectively executes the needed \cmd\bibliographystyle\ command, then neutralizes itself
3629
 
% (we only need to do this once per job).
3630
 
%
3631
 
% If the document lacks explicit \cmd\bibliographystyle\ markup, we execute
3632
 
% \cmd\@bibdataout@rev, a hook for \revtex-aware processing. 
3633
 
%    \begin{macrocode}
3634
 
\def\write@bibliographystyle{%
3635
 
 \@ifxundefined\@bibstyle{}{%
3636
 
  \expandafter\bibliographystyle@latex\expandafter{\@bibstyle}%
3637
 
  \bibliographystyle@sw{}{\@bibdataout@rev}%
3638
 
 }%
3639
 
 \global\let\write@bibliographystyle\relax
3640
 
}%
3641
 
\AtEndDocument{\write@bibliographystyle}%
3642
 
%    \end{macrocode}
3643
 
% \end{macro}
3644
 
%
3645
 
% \begin{macro}{\rtx@@citetp}
3646
 
% \begin{macro}{\rtx@citex}
3647
 
% \begin{macro}{\super@cite@let}
3648
 
% \begin{macro}{\super@cite@end}
3649
 
% \begin{macro}{\super@cite@swap}
3650
 
% We wish to extend \classname{natbib} to move spaces and citations around
3651
 
% a superscript-style citation, imitating Donald Arseneau's \classname{cite} package
3652
 
% with the \classoption{super}.
3653
 
%
3654
 
% The \cmd\rtx@@citetp\ procedure is substituted for \cmd\NAT@@citetp;
3655
 
% it then calls the \cmd\rtx@citex\ procedure and implements the features of the
3656
 
% \classoption{citeautoscript} class option.
3657
 
% In the end, \cmd\@citex\ is called with its customary parameters. 
3658
 
%
3659
 
% The document should be marked up as if citations were \emph{not} superscripted,
3660
 
% and then if you select a journal substyle that has superscripted citations, \revtex\ will do its best
3661
 
% to alter the formatting of the \cmd\cite s to accomodate superscript style.
3662
 
%
3663
 
% Only citations set as superscript are affected by this procedure,
3664
 
% because we check \cmd\@cite\ against \cmd\NAT@citesuper. 
3665
 
%
3666
 
% Here's a subtle point: when is the argument of \cmd\super@cite@swap\ not the same as the token \cmd\@let@token?
3667
 
% Answer: when the latter is \cmd\@sptoken! This case has to be handled separately.
3668
 
3669
 
% Note that whether a punctuation is movable is determined by the definition
3670
 
% of a particular control sequence name.
3671
 
% A society or journal can alter things: to remove a character from the set,
3672
 
% do, say, \cmd\expandafter \cmd\let \cmd\csname \texttt{rtx@automove;} \cmd\endcsname \cmd\relax.
3673
 
% To add a character to the set, do, say, \cmd\expandafter \cmd\let \cmd\csname \texttt{rtx@automove;} \cmd\endcsname \cmd\@empty.
3674
 
%
3675
 
% Implementation note: due to a \TeX\ peculiarity, we have to check for the case
3676
 
% where \cmd\@let@token\ is a space token \emph{before} we parse forward.
3677
 
% At issue is the corner case where an end of file is at hand. If we 
3678
 
% were to let \cmd\super@cite@swap\ parse forward, we would encounter a \TeX\ end-of-file
3679
 
% error. Note that the test will be true in many distinct cases:
3680
 
% the file ends, the next character is a line terminator, the next character is a space.
3681
 
%    \begin{macrocode}
3682
 
\def\rtx@@citetp[#1]{\@ifnextchar[{\rtx@citex[#1]}{\rtx@citex[][#1]}}%
3683
 
\def\rtx@citex[#1][#2]#3{%
3684
 
 \begingroup
3685
 
  \def\@tempa{[#1][#2]{#3}}%
3686
 
  \@ifx{\@cite\NAT@citesuper}{%
3687
 
   \leavevmode
3688
 
   \skip@\lastskip
3689
 
   \unskip
3690
 
   \super@cite@let
3691
 
  }{%
3692
 
   \super@cite@end
3693
 
  }%
3694
 
}%
3695
 
\def\super@cite@let{%
3696
 
 \futurelet\@let@token\super@cite@check
3697
 
}%
3698
 
\def\super@cite@end{%
3699
 
 \aftergroup\@citex\expandafter\endgroup\@tempa
3700
 
}%
3701
 
\def\super@cite@check{%
3702
 
 \@ifx{\@let@token\@sptoken}{%
3703
 
  \super@cite@end
3704
 
 }{%
3705
 
  \super@cite@swap
3706
 
 }%
3707
 
}%
3708
 
\long\def\super@cite@swap#1{%
3709
 
 \expandafter\@ifx\expandafter{\csname rtx@automove#1\endcsname\@empty}{%
3710
 
  #1%
3711
 
  \super@cite@let
3712
 
 }{%
3713
 
  \super@cite@end
3714
 
  #1%
3715
 
 }%
3716
 
}%
3717
 
\expandafter\let\csname rtx@automove.\endcsname\@empty
3718
 
\expandafter\let\csname rtx@automove,\endcsname\@empty
3719
 
\expandafter\let\csname rtx@automove:\endcsname\@empty
3720
 
\expandafter\let\csname rtx@automove;\endcsname\@empty
3721
 
%    \end{macrocode}
3722
 
% \end{macro}
3723
 
% \end{macro}
3724
 
% \end{macro}
3725
 
% \end{macro}
3726
 
% \end{macro}
3727
 
%
3728
 
% The following must execute only after \classname{natbib} is loaded and has set
3729
 
% up its parameters (which it does at \cmd\AtBeginDocument\ time).
3730
 
% If superscript citations have been selected, and 
3731
 
% if the \classoption{citeautoscript} class option has been selected, 
3732
 
% we patch into \classname{natbib}'s mechanism to migrate punctuation around the 
3733
 
% citation, as in class \classname{cite} with the \classoption{superscript} option.
3734
 
%    \begin{macrocode}
3735
 
\appdef\class@documenthook{%
3736
 
 \citeautoscript@sw{%
3737
 
  \@ifx{\@cite\NAT@citesuper}{%
3738
 
   \let\NAT@@citetp\rtx@@citetp
3739
 
  }{}%
3740
 
 }{}%
3741
 
}%
3742
 
%    \end{macrocode}
3743
 
%
3744
 
% Resolve an incompatability between \classname{natbib} and \classname{listings}.
3745
 
% The latter package tests \cmd\chapter (which has now been \cmd\let\ to \cmd\relax\ as a side effect \classname{natbib}'s use of \LaTeX's \cmd\@ifundefined).
3746
 
%
3747
 
% We couch our fix in such terms that will not be disruptive if \cmd\chapter\ is actually defined at this point.
3748
 
%
3749
 
% \changes{4.1b}{2008/07/01}{(AO) No longer need to test \cs{chapter} as of \texttt{natbib} version 8.2}
3750
 
%    \begin{verbatim}
3751
 
%\@ifx{\chapter\relax}{\let\chapter\@undefined}{}%
3752
 
%    \end{verbatim}
3753
 
%
3754
 
%
3755
 
% \subsubsection{\cs{endnote}s and \cs{rtx@bibnote}s}
3756
 
%
3757
 
% \begin{macro}{\mini@note}
3758
 
% \begin{macro}{\save@note}
3759
 
% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
3760
 
% QUERY: how do footnotes get thrown to the bibliography. \cmd\footinbib@sw\ appears to be irrelevant. 
3761
 
%    \begin{macrocode}
3762
 
\def\mini@note{\save@note\mini@notes}%Implicit #2
3763
 
\def\save@note#1#2{%
3764
 
  \stepcounter\@mpfn
3765
 
  \protected@xdef\@thefnmark{\thempfn}%
3766
 
  \@footnotemark
3767
 
  \expandafter\g@addto@macro
3768
 
  \expandafter#1%
3769
 
  \expandafter{%
3770
 
  \expandafter \@@footnotetext
3771
 
  \expandafter {\@thefnmark}{#2}%
3772
 
              }%
3773
 
}%
3774
 
\long\def\@@footnotetext#1{\def\@thefnmark{#1}\@footnotetext}%
3775
 
\let\mini@notes\@empty
3776
 
%    \end{macrocode}
3777
 
% \end{macro}
3778
 
% \end{macro}
3779
 
%
3780
 
% \begin{macro}{\endnote}
3781
 
% A version of footnote that appears in the bibliography, or where \cmd\printendnotes\ appears.
3782
 
%    \begin{verbatim}
3783
 
%\def\@endnote{%
3784
 
% \begingroup
3785
 
%  \aftergroup\@footnotemark
3786
 
%  \aftergroup\@endnotetext
3787
 
%  \@ifnextchar[{%
3788
 
%   \@xendnote
3789
 
%  }{%
3790
 
%   \stepcounter{footnote}%
3791
 
%   \protected@xdef\@tempa{\thefootnote}%
3792
 
%   \expandafter\@xendnote\expandafter[\the\c@footnote]%
3793
 
% }%
3794
 
%}%
3795
 
%    \end{verbatim}
3796
 
% \end{macro}
3797
 
%
3798
 
% \begin{macro}{\@xendnote}
3799
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
3800
 
% \begin{verbatim}
3801
 
%\def\unused@xendnote[#1]{%
3802
 
%  \begingroup
3803
 
%   \c@footnote#1\relax
3804
 
%    \end{macrocode}
3805
 
% New for 4.1
3806
 
%    \begin{macrocode}
3807
 
%   \unrestored@protected@xdef\@endnotelabel{Note\thefootnote}%
3808
 
%   \authoryear@sw{%
3809
 
%    \unrestored@protected@xdef\@thefnmark{\noexpand\ref{\@endnotelabel}}%
3810
 
%   }{%
3811
 
%    \unrestored@protected@xdef\@thefnmark{\@endnotelabel}%
3812
 
%   }%
3813
 
%    \end{macrocode}
3814
 
% Was:
3815
 
% \unrestored@protected@xdef\@thefnmark{endnote\thefootnote}%
3816
 
% End 4.1 changes
3817
 
%    \begin{macrocode}
3818
 
%  \endgroup
3819
 
% \endgroup
3820
 
%}%
3821
 
%\def\@endnotemark{%
3822
 
% \expandafter\cite\expandafter{\@thefnmark}%
3823
 
%}%
3824
 
% \end{verbatim}
3825
 
%    \begin{macrocode}
3826
 
\def\rev@citemark#1{%
3827
 
 \expandafter\cite\expandafter{\@thefnmark}%
3828
 
}%
3829
 
\def\rev@endtext#1{%
3830
 
 \let\@endnotelabel\@thefnmark
3831
 
 \@endnotetext
3832
 
}%
3833
 
%    \end{macrocode}
3834
 
% \end{macro}
3835
 
%
3836
 
% \begin{macro}{\endnote@ext}
3837
 
% \begin{macro}{\bibdata@app}
3838
 
% \begin{macro}{\bibdata@ext}
3839
 
% The macro \cmd\endnote@ext\ is the file extension for the auxiliary file holding footnotes.
3840
 
% The \cmd\bibdata@app\ and \cmd\bibdata@ext\ macros are used to form the name of a
3841
 
% Bib\TeX\ database file holding footnotes.
3842
 
%    \begin{macrocode}
3843
 
\def\endnote@ext{.end}%
3844
 
\def\bibdata@app{Notes}%
3845
 
\def\bibdata@ext{bib}%
3846
 
%    \end{macrocode}
3847
 
% \end{macro}
3848
 
% \end{macro}
3849
 
% \end{macro}
3850
 
%
3851
 
% \begin{macro}{\@endnotetext}
3852
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
3853
 
% The procedure \cmd\@endnotetext\ writes a Bib\TeX\ .bib file for the purpose
3854
 
% of insering a footnote into the (numbered, unsorted) bibliography.
3855
 
%
3856
 
% We need to define \cmd\pre@bibdata\ to be 
3857
 
% \cmd\jobname\cmd\endnote@ext, and we probably should define \cmd\endnote@ext\ to 
3858
 
% be something like ``Notes.bib''.
3859
 
%
3860
 
% In each case, the material to be written out requires robustification, provided by \cmd\endnote@relax.
3861
 
% The commands \cmd\label, \cmd\index, and \cmd\glossary,
3862
 
% which are robustified for \cmd\markright\ and \cmd\addcontentsline,
3863
 
% are likewise robustified here.
3864
 
%
3865
 
% Procedure \cmd\@endnotetext@note\ is the alias for \cmd\@endnotetext\ when the endnotes are to be
3866
 
% processed separately from the bibliography (generally true when citations are not sorted).
3867
 
%    \begin{verbatim}
3868
 
%\long\def\unused@endnotetext@note#1{%
3869
 
%  \@ifxundefined\@endnoteout{%
3870
 
%    \newwrite\@endnoteout
3871
 
%    \gdef\endnote@stream{\jobname\endnote@ext}%
3872
 
%    \immediate\openout\@endnoteout\endnote@stream\relax
3873
 
%  }{}%
3874
 
%  \begingroup
3875
 
%    \endnote@relax
3876
 
%    \immediate\write\@endnoteout{\string\@doendnote{\@endnotelabel}{#1}}%
3877
 
%  \endgroup
3878
 
%}%
3879
 
%    \end{verbatim}
3880
 
%
3881
 
% \cmd\@doendnote\ is obsolete.
3882
 
%    \begin{verbatim}
3883
 
%\def\@doendnote#1#2{\bibitem{#1}#2}%
3884
 
%    \end{verbatim}
3885
 
%
3886
 
% \changes{4.1o}{2010/02/05}{(AO, 579) Endnote shall comprise their own Bib\TeX\ entry type: @FOOTNOTE.} 
3887
 
% Procedure \cmd\@endnotetext\ is the operative procedure\ when the endnotes are to be
3888
 
% collated in with the other references, typically true when numerical citations are being used.
3889
 
% The technique involves writing a .bib file (\cmd\@bibdataout) with each endnote typed as 
3890
 
% a \texttt{@FOOTNOTE} entry. 
3891
 
%
3892
 
% Timing note: doing \cmd\openout\ should be deferred until the beginning of the document,
3893
 
% as is done here. This allows one to make a format (\filename{.fmt}) file out of this class.
3894
 
%    \begin{macrocode}
3895
 
\long\def\@endnotetext#1{%
3896
 
  \begingroup
3897
 
    \endnote@relax
3898
 
    \immediate\write\@bibdataout{%
3899
 
     @FOOTNOTE{%
3900
 
      \@endnotelabel,%
3901
 
%    \end{macrocode}
3902
 
% The \texttt{key} field is recommended in cases where there is no author (see \filename{btxdoc}).
3903
 
%    \begin{macrocode}
3904
 
      key="\@endnotelabel",%
3905
 
%    \end{macrocode}
3906
 
% The \texttt{note} field is simply the content of the footnote.
3907
 
%    \begin{macrocode}
3908
 
      note="#1"%
3909
 
     }%
3910
 
    }%
3911
 
  \endgroup
3912
 
}%
3913
 
\newwrite\@bibdataout
3914
 
%    \end{macrocode}
3915
 
% \end{macro}
3916
 
%
3917
 
% \begin{macro}{\endnote@relax}
3918
 
% At \cmd\AtBeginDocument\ time, we open the job's \filename{.bib} file.
3919
 
%
3920
 
% Procedure \cmd\endnote@relax\ robustifies commands that ought not to be expanded when
3921
 
% the endnote is written out.
3922
 
% Note the similarity between \cmd\endnote@relax\ and  \cmd\protected@write.
3923
 
%    \begin{macrocode}
3924
 
\def\endnote@relax{%
3925
 
 \let\label\relax \let\index\relax \let\glossary\relax
3926
 
 \let\cite \relax \let\ref  \relax \let\pageref \relax
3927
 
 \let\(    \relax \let\)    \relax \let\\       \relax
3928
 
 \let~\relax
3929
 
%    \end{macrocode}
3930
 
%    \begin{verbatim}
3931
 
%\let\protect\noexpand
3932
 
%    \end{verbatim}
3933
 
%    \begin{macrocode}
3934
 
 \let \protect \@unexpandable@protect
3935
 
 \newlinechar`\^^M%
3936
 
%    \end{macrocode}
3937
 
%    \begin{verbatim}
3938
 
%\newlinechar`\ %
3939
 
%    \end{verbatim}
3940
 
%    \begin{macrocode}
3941
 
 \let\begin\relax \let\end\relax
3942
 
}%
3943
 
%    \end{macrocode}
3944
 
% \end{macro}
3945
 
%
3946
 
% \begin{macro}{\@bibdataout@init}
3947
 
% \begin{macro}{\@bibdataout@aps}
3948
 
% \changes{4.1o}{2010/02/10}{(AO, 580) Provide a document class option to turn off production of eprint field in bibliography.} 
3949
 
% \changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
3950
 
% \changes{4.1q}{2010/04/13}{(AO, 588) Only write \revtex-specific BibTeX .bib data if the .bst style is set by REVTeX.}%
3951
 
% At \cmd\AtBeginDocument\ time, we open the job's \filename{.bib} file.
3952
 
% The hook is available for use by a society to place its own @CONTROL record in the \cmd\@bibdataout\ stream.
3953
 
%    \begin{macrocode}
3954
 
\appdef\class@documenthook{\@bibdataout@init}%
3955
 
\def\@bibdataout@init{%
3956
 
 \immediate\openout\@bibdataout\pre@bibdata.\bibdata@ext\relax
3957
 
}%
3958
 
\def\@bibdataout@rev{%
3959
 
 \immediate\write\@bibdataout{%
3960
 
%    \end{macrocode}
3961
 
% The entry that controls processing of the \filename{.bst} file has entry type \texttt{@CONTROL}. 
3962
 
% The citation key (REVTEX41Control) is effectively a version number,
3963
 
% which the \filename{.bst} can use to interpret the bib entry.
3964
 
%    \begin{macrocode}
3965
 
  @CONTROL{%
3966
 
   REVTEX41Control%
3967
 
%    \end{macrocode}
3968
 
% Say if we want the \texttt{eprint} field disabled. Otherwise accept the default of the \filename{.bst}. 
3969
 
%    \begin{macrocode}
3970
 
   \eprint@enable@sw{}{,eprint=""}%
3971
 
  }%
3972
 
 }%
3973
 
%    \end{macrocode}
3974
 
% Place a \cmd\citation\ into the auxiliary file corresponding to this entry. 
3975
 
%    \begin{macrocode}
3976
 
 \if@filesw
3977
 
  \immediate\write\@auxout{\string\citation{REVTEX41Control}}%
3978
 
 \fi
3979
 
}%
3980
 
%    \end{macrocode}
3981
 
% \end{macro}
3982
 
% \end{macro}
3983
 
%
3984
 
% \begin{macro}{\printendnotes}
3985
 
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
3986
 
% We have removed the endnotes facility from REVTeX, so the \cmd\printendnotes\ command now does nothing.
3987
 
%
3988
 
% Moving footnotes to the bibliogrphy is now accomplished through 
3989
 
% the automatic generation of a job BiB\TeX\ database (called \cmd\pre@bibdata) containing the footnotes.
3990
 
%    \begin{macrocode}
3991
 
\def\printendnotes{%
3992
 
 \class@warn{The \string\printendnotes\space command no longer serves any function. Please remove it from your document.}%
3993
 
}%
3994
 
%    \end{macrocode}
3995
 
% \end{macro}
3996
 
%
3997
 
% \begin{macro}{\@endnotesinbib}
3998
 
% \begin{macro}{\@endnotesinbibliography}
3999
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
4000
 
% We define a function \cmd\@endnotesinbib,
4001
 
% and a variant \cmd\@endnotesinbibliography.
4002
 
% The former is invoked at the start of 
4003
 
% the end processing for \enve{thebibliography};
4004
 
% the latter is a synonym.
4005
 
%
4006
 
% The procedure typesets the footnotes that are to 
4007
 
% appear in the bibliography; the default is to
4008
 
% simply arrange for the footnote counter to be
4009
 
% reset at the start of the document.
4010
 
%
4011
 
% Note that this code make the assumption that 
4012
 
% the counter used in \env{thebibliography} is \cmd\c@NAT@ctr.
4013
 
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
4014
 
%
4015
 
% Here is the sole place where \cmd\footinbib@sw\ has an effect, other code simple assigning its value.
4016
 
% If it is false, or \cmd\authoryear@sw\ is true, then footnotes are handled by the default mechanism.
4017
 
%    \begin{macrocode}
4018
 
\def\make@footnote@endnote{%
4019
 
 \footinbib@sw{%
4020
 
  \authoryear@sw{}{%
4021
 
   \ltx@footnote@push
4022
 
   \def\thempfn{Note\thefootnote}%
4023
 
   \let\ltx@footmark\rev@citemark
4024
 
   \let\ltx@foottext\rev@endtext
4025
 
%    \end{macrocode}
4026
 
% The endnotes facility has been removed. 
4027
 
% Also, there is no need to queue up \cmd\auto@bib\ here, since it is always queued up elsewhere. 
4028
 
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
4029
 
%    \begin{verbatim}
4030
 
%  \appdef\class@enddocumenthook{\auto@bib}%
4031
 
%  \let\printendnotes\relax
4032
 
%    \end{verbatim}
4033
 
%    \begin{macrocode}
4034
 
  }%
4035
 
 }{}%
4036
 
}%
4037
 
%    \end{macrocode}
4038
 
4039
 
%    \begin{macrocode}
4040
 
\def\ltx@footnote@push{%
4041
 
 \let\ltx@footmark@latex\ltx@footmark
4042
 
 \let\ltx@foottext@latex\ltx@foottext
4043
 
 \let\thempfn@latex\thempfn
4044
 
 \def\ltx@footnote@pop{%
4045
 
  \let\ltx@footmark\ltx@footmark@latex
4046
 
  \let\ltx@foottext\ltx@foottext@latex
4047
 
  \let\thempfn\thempfn@latex
4048
 
 }%
4049
 
}%
4050
 
%    \end{macrocode}
4051
 
%
4052
 
% The switchover to setting footnotes in the bibliography
4053
 
% changes the meaning of \cmd\footnote\ and
4054
 
% substitutes the synonym for \cmd\@endnotesinbib. 
4055
 
%
4056
 
% We arrange for the procedure \cmd\make@footnote@endnote\ to be executed
4057
 
% at \cmd\class@documenthook\ time (we mustn't do this earlier because
4058
 
% the meaning of \cmd\@footnotemark\ must not be changed before then, 
4059
 
% for the sake of \file{ltxutil.dtx}).
4060
 
%    \begin{macrocode}
4061
 
\appdef\class@documenthook{%
4062
 
 \make@footnote@endnote
4063
 
}%
4064
 
%    \end{macrocode}
4065
 
% \end{macro}
4066
 
% \end{macro}
4067
 
%
4068
 
% \begin{macro}{\auto@bib}
4069
 
% \begin{macro}{\auto@bib@empty}
4070
 
% \begin{macro}{\test@bbl@sw}
4071
 
% \begin{macro}{\bibitem@set}
4072
 
% \begin{macro}{\auto@bib@innerbib}
4073
 
% \begin{macro}{\thebibliography@nogroup}
4074
 
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
4075
 
% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
4076
 
% \changes{4.1o}{2010/02/02}{(AO, 575) Automatically incorporate the (Bib\TeX-generated) .bbl into an explicit \env{thebibliography}}%
4077
 
% Under some circumstances, we must typeset the bibliography automatically.
4078
 
% If the document requires footnotes to be  set in the bibliography (effectively, class option \texttt{footinbib}), 
4079
 
% or that frontmatter footnotes be set in the bibliography (effectively, class option \texttt{bibnotes}), 
4080
 
% but contains no explicit \cmd\bibliography\ statement.
4081
 
%
4082
 
% Note that this facility is not able to work more than once per document.
4083
 
% If multiple bibliographys are required (e.g., per article), it will be the responsibility of the journal style
4084
 
% to restore \cmd\auto@bib\ to its original meaning so it can be re-invoked.
4085
 
4086
 
% In procedure \cmd\auto@bib, we first test for the presence of frontmatter footnotes deferred to the bibliography.
4087
 
% If none, we further test for the presence of \cmd\bibitem\ commands in the job's \filename{.bbl} file.
4088
 
% If either condition is met, we ask for a bibliography. 
4089
 
% We know that the document itself lacks a \cmd\bibliography\ statement, 
4090
 
% so we know the argument of the \cmd\bibliography\ that we will issue.
4091
 
%    \begin{macrocode}
4092
 
\def\auto@bib{%
4093
 
 \@ifx@empty\@FMN@list{%
4094
 
  \footinbib@sw{%
4095
 
   \@ifnum{\csname c@\@mpfn\endcsname>\z@}{%
4096
 
    \true@sw
4097
 
   }{%
4098
 
    \test@bbl@sw
4099
 
   }%
4100
 
  }{%
4101
 
   \test@bbl@sw
4102
 
  }%
4103
 
 }{%
4104
 
  \true@sw
4105
 
 }%
4106
 
 {%
4107
 
  \bibliography{}%
4108
 
 }{}%
4109
 
}%
4110
 
\def\auto@bib@empty{%
4111
 
 \let\auto@bib\@empty
4112
 
}%
4113
 
%    \end{macrocode}
4114
 
% Testing the \filename{.bbl} file involves defanging all expected commands
4115
 
% and processing that file inside a box register (that will be simply discarded).
4116
 
% We provide a new meaning for the \cmd\bibitem\ command: it queues a Boolean.
4117
 
%    \begin{macrocode}
4118
 
\def\test@bbl@sw{%
4119
 
 \setbox\z@\vbox\bgroup
4120
 
  \let\providecommand\providecommand@j@nk
4121
 
  \let\bibfield\@gobbletwo
4122
 
  \let\bibinfo\@gobbletwo
4123
 
  \let\translation\@gobble
4124
 
  \let\BibitemOpen\@empty
4125
 
  \let\bibitemStop\@empty
4126
 
  \let\bibitemNoStop\@empty
4127
 
  \let\EOS\@empty
4128
 
  \let\BibitemShut\@gobble
4129
 
  \let\bibAnnoteFile\@gobbletwo
4130
 
  \let\bibAnnote\@gobblethree
4131
 
  \let\textbf\@gobble
4132
 
  \let\emph\@gobble
4133
 
  \@booleanfalse\bibitem@sw
4134
 
  \let\bibitem\bibitem@set
4135
 
  \auto@bib@innerbib
4136
 
  \bibitem@sw{\aftergroup\true@sw}{\aftergroup\false@sw}%
4137
 
 \egroup
4138
 
}%
4139
 
%    \end{macrocode}
4140
 
% The \cmd\bibitem@set\ is an alias for \cmd\bibitem\ for the purpose of detecting a non-trivial bibliography.
4141
 
%    \begin{macrocode}
4142
 
\newcommand\bibitem@set[1][]{%
4143
 
 \bibitem@sw{}{%
4144
 
  \@booleantrue\bibitem@sw
4145
 
  \aftergroup\@booleantrue\aftergroup\bibitem@sw
4146
 
 }%
4147
 
}%
4148
 
%    \end{macrocode}
4149
 
% The \cmd\auto@bib@innerbib\ procedure reads in the \filename{.bbl} file (if it exists)
4150
 
% within a context where its \env{thebibliography} environment does nothing, not even establishing a group. 
4151
 
%    \begin{macrocode}
4152
 
\def\auto@bib@innerbib{%
4153
 
 \begingroup
4154
 
  \let@environment{thebibliography}{thebibliography@nogroup}%
4155
 
  \bibliography{}%
4156
 
 \endgroup
4157
 
}%
4158
 
%    \end{macrocode}
4159
 
% Environment \env{thebibliography@nogroup} is an alias of the \env{thebibliography} environment that cancels itself. 
4160
 
% It assumes that it is called within a \env{thebibliography} environment. 
4161
 
%    \begin{macrocode}
4162
 
\def\thebibliography@nogroup#1{%
4163
 
 \endgroup
4164
 
 \def\@currenvir{thebibliography}%
4165
 
}%
4166
 
\def\endthebibliography@nogroup{\begingroup}%
4167
 
%    \end{macrocode}
4168
 
% The following should be part of \filename{ltxutil}.
4169
 
%    \begin{macrocode}
4170
 
\long\def \@gobblethree #1#2#3{}%
4171
 
\def\providecommand@j@nk#1[#2]{%
4172
 
 \@ifnum{#2=\z@}{\def\j@nk}{%
4173
 
  \@ifnum{#2=\@ne}{\def\j@nk##1}{%
4174
 
   \@ifnum{#2=\tw@}{\def\j@nk##1##2}{%
4175
 
    \@ifnum{#2=\thr@@}{\def\j@nk##1##2##3}{%
4176
 
    }%
4177
 
   }%
4178
 
  }%
4179
 
 }%
4180
 
}%
4181
 
%    \end{macrocode}
4182
 
% \end{macro}
4183
 
% \end{macro}
4184
 
% \end{macro}
4185
 
% \end{macro}
4186
 
% \end{macro}
4187
 
% \end{macro}
4188
 
%
4189
 
% \section{Initial setup}
4190
 
4191
 
% The standard LaTeX document classes execute certain commands 
4192
 
% that are best deferred until \cmd\class@documenthook\ time.
4193
 
% Here, we effectively split \cmd\pagenumbering\ into two halves,
4194
 
% with a default definition for \cmd\thepage
4195
 
% and an initialization of \cmd\c@page\ at \cmd\class@documenthook\ time.
4196
 
%
4197
 
% The meaning of \cmd\thepage\ can be overridden by society, journal, or
4198
 
% anywhere within the document pramble, and the counter itself will be 
4199
 
% preset at the beginning of the document. 
4200
 
%    \begin{macrocode}
4201
 
\def\thepage{\@arabic\c@page}%
4202
 
%    \end{macrocode}
4203
 
% \changes{4.0b}{1999/06/20}{Defer assignment until \cs{AtBeginDocument} time.}
4204
 
% Note that this code is executed at \cmd\setup@hook\ time 
4205
 
% to allow for the possibility of overrides by packages like \classname{geometry}.
4206
 
%    \begin{macrocode}
4207
 
\appdef\setup@hook{%
4208
 
 \tabbingsep \labelsep
4209
 
 \leftmargin\leftmargini
4210
 
 \labelwidth\leftmargin\advance\labelwidth-\labelsep
4211
 
 \let\@listi\@listI
4212
 
 \@listi
4213
 
}%
4214
 
%    \begin{macrocode}
4215
 
%
4216
 
% We ensure that the ``environment'' component mark (implemented by \file{ltxgrid.dtx}) 
4217
 
% is initialized properly (via a hook, itself defined via \file{ltxutil.dtx}). 
4218
 
%    \begin{macrocode}
4219
 
\appdef\class@documenthook{%
4220
 
 \global\c@page\@ne
4221
 
 \def\curr@envir{document}%
4222
 
 \mark@envir{\curr@envir}%
4223
 
}%
4224
 
%    \end{macrocode}
4225
 
%
4226
 
% \begin{macro}{\open@onecolumn}%
4227
 
% \begin{macro}{\open@column@two}%
4228
 
% \changes{4.0c}{1999/11/13}{Grid changes with ltxgrid}
4229
 
% \changes{4.0d}{2000/04/10}{Also alter how lists get indented.}
4230
 
% When setting the column grid, we have to override the procedure
4231
 
% for formatting lists. 
4232
 
% Because \cmd\twocolumngrid\ requires rebalancing columns at some points, 
4233
 
% typesetting must employ only the manipulation of 
4234
 
% \cmd\leftskip\ and \cmd\rightskip, and must avoid the use of
4235
 
% \cmd\moveleft, \cmd\moveright, and \cmd\parshape. 
4236
 
%
4237
 
% It is one of the stranger features of \TeX\ that these two separate
4238
 
% mechanisms exist. The latter three have the effect of adding things to the 
4239
 
% Main Vertical List that cannot be removed and later added back with all their
4240
 
% properties intact.
4241
 
%
4242
 
% In detail, \cmd\moveleft, say, adds a box to the MVL with
4243
 
% its reference point shifted horizontally by some amount relative to the 
4244
 
% reference point of the enclosing list. If that box is removed from the 
4245
 
% MVL (via a \cmd\lastbox\ operation in the output routine), and later
4246
 
% thrown back to the MVL, the shift of the box will have been ``forgotten'' by \TeX.
4247
 
% This is a bug, but not one ``acceptible to D. E. Knuth'', so it will never be fixed. 
4248
 
%
4249
 
%    \begin{macrocode}
4250
 
\def\open@onecolumn{%
4251
 
 \open@column@one\@ne
4252
 
 \set@colht
4253
 
 \@floatplacement
4254
 
 \@dblfloatplacement
4255
 
}%
4256
 
\def\open@twocolumn{%
4257
 
 \open@column@mlt\tw@
4258
 
 \set@colht
4259
 
 \@floatplacement
4260
 
 \@dblfloatplacement
4261
 
 \sloppy
4262
 
 \let\set@listindent\set@listindent@
4263
 
}%
4264
 
%    \end{macrocode}
4265
 
% \end{macro}
4266
 
% \end{macro}
4267
 
%
4268
 
% \section{\cs{appendix}}
4269
 
%
4270
 
%    \begin{macrocode}
4271
 
%\newif\ifappendixon
4272
 
%    \end{macrocode}
4273
 
% Note that, within appendices, 
4274
 
% equations are numbered within sections (appendices).
4275
 
%    \begin{macrocode}
4276
 
\def\appendix{%
4277
 
 \par
4278
 
%\appendixontrue
4279
 
 \setcounter{section}\z@
4280
 
 \setcounter{subsection}\z@
4281
 
 \setcounter{subsubsection}\z@
4282
 
 \def\thesubsection{\arabic{subsection}}%
4283
 
 \def\thesubsubsection{\alph{subsubsection}}%
4284
 
 \@addtoreset{equation}{section}%
4285
 
 \def\theequation@prefix{\thesection}%
4286
 
 \addtocontents{toc}{\protect\appendix}%
4287
 
 \@ifstar{%
4288
 
  \def\thesection{\unskip}%
4289
 
  \def\theequation@prefix{A.}%
4290
 
 }{%
4291
 
  \def\thesection{\Alph{section}}%
4292
 
 }%
4293
 
}%
4294
 
%    \end{macrocode}
4295
 
%
4296
 
% \section{Changing the page grid}
4297
 
% \changes{4.0b}{1999/06/20}{Define three separate environments, defer assignment to \cs{AtBeginDocument} time.}
4298
 
%
4299
 
% \subsection{Avoiding Grid Changes}%
4300
 
%
4301
 
% In preprint styles, ``wide text'' is a no-op, and the title page
4302
 
% processing involves no grid change.
4303
 
4304
 
% \begin{macro}{\title@column}%
4305
 
% \begin{macro}{\close@column}%
4306
 
% Provide default meanings for \cmd\title@column\ and \cmd\close@column,
4307
 
% in case they were never defined. 
4308
 
% Note that the society or journal substyle may define 
4309
 
% \cmd\title@column\ or \cmd\close@column: this code will not override. 
4310
 
%    \begin{macrocode}
4311
 
\def\title@column#1{%
4312
 
 \minipagefootnote@init
4313
 
 #1%
4314
 
 \minipagefootnote@foot
4315
 
}%
4316
 
\def\close@column{%
4317
 
 \newpage
4318
 
}%
4319
 
%    \end{macrocode}
4320
 
% \end{macro}
4321
 
% \end{macro}
4322
 
%
4323
 
%
4324
 
% \subsection{Galley Style: Margin Changes}%
4325
 
% A variant of preprint processing. Emulate journal appearance somewhat.
4326
 
%
4327
 
% \begin{environment}{widetext@galley}
4328
 
% DPC: We're in galley style so do a lob sided display environment.
4329
 
%
4330
 
% QUERY: How can we be sure that we are in galley style?
4331
 
% ANSWER: as noted elsewhere, require that both \cmd\twocolumn@sw\ and \cmd\preprintsty@sw\ be false.
4332
 
%    \begin{macrocode}
4333
 
\def\galley@outdent{\rightmargin-\columnwidth\advance\rightmargin-\columnsep}%
4334
 
\let\widetext@outdent\@empty
4335
 
\newenvironment{widetext@galley}{%
4336
 
  \list{}{%
4337
 
    \topsep        \z@skip
4338
 
    \listparindent \parindent
4339
 
    \itemindent    \parindent
4340
 
    \leftmargin    \z@
4341
 
    \parsep        \z@\@plus\p@
4342
 
    \widetext@outdent
4343
 
    \relax
4344
 
  }%
4345
 
  \item\relax
4346
 
}{
4347
 
  \endlist
4348
 
}%
4349
 
%    \end{macrocode}
4350
 
% \end{environment}
4351
 
%
4352
 
%
4353
 
% \subsection{Grid Changing Via \classname{ltxgrid}}%
4354
 
%
4355
 
% In case \classoption{twocolumngrid} has been invoked,
4356
 
% switch column grid using the column grid-changing commands.
4357
 
% Supply stub definitions of those commands here.
4358
 
% \changes{4.0c}{1999/11/13}{grid changes with ltxgrid}
4359
 
%
4360
 
% \begin{macro}{\title@column@grid}%
4361
 
% \begin{macro}{\close@column@grid}%
4362
 
% The title block always starts at the top of a new page.
4363
 
% \changes{4.0c}{1999/11/13}{grid changes with ltxgrid}
4364
 
%
4365
 
% Note that, for the procedure \cmd\close@column@grid,
4366
 
% we balance columns by switching to the one-column page grid. 
4367
 
%    \begin{macrocode}
4368
 
\def\title@column@grid#1{%
4369
 
 \minipagefootnote@init
4370
 
  \onecolumngrid
4371
 
  \begingroup
4372
 
   \let\@footnotetext\frontmatter@footnotetext
4373
 
%<ignore>  \let\set@footnotewidth\set@footnotewidth@two
4374
 
   \ltx@no@footnote
4375
 
   #1%
4376
 
  \endgroup
4377
 
  \twocolumngrid
4378
 
 \minipagefootnote@foot
4379
 
}%
4380
 
\def\close@column@grid{%
4381
 
 \balancelastpage@sw{%
4382
 
  \onecolumngrid
4383
 
%<ignore>  \twocolumngrid
4384
 
 }{}%
4385
 
}%
4386
 
%    \end{macrocode}
4387
 
% \end{macro}
4388
 
% \end{macro}
4389
 
%
4390
 
% \begin{environment}{widetext@grid}
4391
 
% \changes{4.0c}{1999/11/13}{grid changes via ltxgrid procedures}
4392
 
% \changes{4.0e}{2000/11/21}{adornments above and below.}
4393
 
% \changes{4.1g}{2009/10/07}{(AO, 525) Remove phantom paragraph above display math that is given in vertical mode}%
4394
 
% We slip into the one-column page grid
4395
 
% within the scope of this environment.
4396
 
%
4397
 
% Note that we set adornments above and below the \env{widettext}.
4398
 
% These are set as leaders, so they will disappear at a page break.
4399
 
% \changes{4.1n}{2010/01/02}{(AO) fine-tune spacing above and below widetext}%
4400
 
%    \begin{macrocode}
4401
 
\newenvironment{widetext@grid}{%
4402
 
  \par\ignorespaces
4403
 
  \setbox\widetext@top\vbox{%
4404
 
%<ignore>  \vskip15\p@
4405
 
   \hb@xt@\hsize{%
4406
 
    \leaders\hrule\hfil
4407
 
    \vrule\@height6\p@
4408
 
   }%
4409
 
%<ignore>  \vskip6\p@
4410
 
  }%
4411
 
  \setbox\widetext@bot\hb@xt@\hsize{%
4412
 
    \vrule\@depth6\p@
4413
 
    \leaders\hrule\hfil
4414
 
  }%
4415
 
  \onecolumngrid
4416
 
  \vskip10\p@
4417
 
  \dimen@\ht\widetext@top\advance\dimen@\dp\widetext@top
4418
 
  \cleaders\box\widetext@top\vskip\dimen@
4419
 
%<ignore> \let\set@footnotewidth\set@footnotewidth@two
4420
 
  \vskip6\p@
4421
 
  \prep@math@patch
4422
 
}{%
4423
 
  \par
4424
 
  \vskip6\p@
4425
 
  \setbox\widetext@bot\vbox{%
4426
 
   \hb@xt@\hsize{\hfil\box\widetext@bot}%
4427
 
%<ignore>  \vskip14\p@
4428
 
  }%
4429
 
  \dimen@\ht\widetext@bot\advance\dimen@\dp\widetext@bot
4430
 
  \cleaders\box\widetext@bot\vskip\dimen@
4431
 
  \vskip8.5\p@
4432
 
  \twocolumngrid\global\@ignoretrue
4433
 
  \@endpetrue
4434
 
}%
4435
 
\newbox\widetext@top
4436
 
\newbox\widetext@bot
4437
 
%    \end{macrocode}
4438
 
% \end{environment}
4439
 
%
4440
 
%
4441
 
% Decide, finally, how the page grid is to be manipulated.
4442
 
%    \begin{macrocode}
4443
 
\def\set@page@grid{%
4444
 
 \twocolumn@sw{%
4445
 
%    \end{macrocode}
4446
 
% The following two assignments determine what procedures are to be executed when 
4447
 
% the footnote set width is calculated, and how footnotes are to be composed at the bottom of the page. 
4448
 
% A society or journal wishing to do otherwise will override this code. 
4449
 
%    \begin{macrocode}
4450
 
  \let\set@footnotewidth\set@footnotewidth@two
4451
 
  \let\compose@footnotes\compose@footnotes@two
4452
 
  \let@environment{widetext}{widetext@grid}%
4453
 
  \let\title@column\title@column@grid
4454
 
  \let\close@column\close@column@grid
4455
 
 }{%
4456
 
  \let@environment{widetext}{widetext@galley}%
4457
 
  \preprintsty@sw{%
4458
 
%    \end{macrocode}
4459
 
% Change the page grid not at all.
4460
 
%    \begin{macrocode}
4461
 
  }{%
4462
 
%    \end{macrocode}
4463
 
% If we are galley style, change the page margin only.
4464
 
%    \begin{macrocode}
4465
 
   \galley@sw{%
4466
 
    \let\widetext@outdent\galley@outdent
4467
 
   }{}%
4468
 
  }%
4469
 
 }%
4470
 
}%
4471
 
\appdef\setup@hook{\set@page@grid}%
4472
 
%    \end{macrocode}
4473
 
%
4474
 
% \section{Old font commands}
4475
 
%
4476
 
%    \begin{macrocode}
4477
 
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
4478
 
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
4479
 
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
4480
 
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
4481
 
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
4482
 
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
4483
 
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
4484
 
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
4485
 
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
4486
 
%    \end{macrocode}
4487
 
%
4488
 
% \section{English-Language Texts}
4489
 
% As this class is just for English language journals, we
4490
 
% could hardwire these texts,
4491
 
% but to make it easier to use this as a
4492
 
% basis for the code for similar journal styles, separate out all the
4493
 
% fixed text strings into babel-style macros of the form 
4494
 
% |\|\ldots|name|
4495
 
%
4496
 
% Note: for babel compatability, use version 1999/05/05 v3.6x or later.
4497
 
%
4498
 
% Some of these might need changing in the society-specific code.
4499
 
%
4500
 
% \begin{macro}{\today}
4501
 
% Procedure \cmd\today\ is used in the article class, but not in 
4502
 
% this document class.
4503
 
%    \begin{macrocode}
4504
 
\def\today{\ifcase\month\or
4505
 
  January\or February\or March\or April\or May\or June\or
4506
 
  July\or August\or September\or October\or November\or December\fi
4507
 
  \space\number\day, \number\year}
4508
 
%    \end{macrocode}
4509
 
%    \end{macro}
4510
 
%
4511
 
% \begin{macro}{\notesname}
4512
 
% Text entity \cmd\notesname\ had been used in \cmd\printendnotes.
4513
 
% \changes{4.1f}{2009/07/10}{(AO, 520) Automatically produce \cs{bibliography} command when needed}%
4514
 
% However, we have removed the endnotes facility from REVTeX.
4515
 
4516
 
%    \begin{verbatim}
4517
 
%\def\notesname{Notes}
4518
 
%    \end{verbatim}
4519
 
%    \end{macro}
4520
 
%
4521
 
% \begin{macro}{\partname}
4522
 
% Text entity \cmd\partname\ is used in \cmd\@part.
4523
 
%    \begin{macrocode}
4524
 
\def\partname{Part}
4525
 
%    \end{macrocode}
4526
 
%    \end{macro}
4527
 
%
4528
 
% \begin{macro}{\tocname}
4529
 
% Text entity \cmd\tocname\ is used in \cmd\tableofcontents,
4530
 
% as defined in the standard \LaTeX\ book class.
4531
 
%    \begin{macrocode}
4532
 
\def\tocname{Contents}
4533
 
%    \end{macrocode}
4534
 
%    \end{macro}
4535
 
%
4536
 
% \begin{macro}{\lofname}
4537
 
% Text entity \cmd\lofname\ is used in \cmd\listoffigures,
4538
 
% as defined in the standard \LaTeX\ book class.
4539
 
%    \begin{macrocode}
4540
 
\def\lofname{List of Figures}
4541
 
%    \end{macrocode}
4542
 
%    \end{macro}
4543
 
%
4544
 
% \begin{macro}{\lotname}
4545
 
% Text entity \cmd\lotname\ is used in \cmd\listoftables,
4546
 
% as defined in the standard \LaTeX\ book class.
4547
 
%    \begin{macrocode}
4548
 
\def\lotname{List of Tables}
4549
 
%    \end{macrocode}
4550
 
%    \end{macro}
4551
 
%
4552
 
% \begin{macro}{\refname}
4553
 
% Text entity \cmd\refname\ is used in \env{thebibliography}.
4554
 
%    \begin{macrocode}
4555
 
\def\refname{References}
4556
 
%    \end{macrocode}
4557
 
%    \end{macro}
4558
 
%
4559
 
% \begin{macro}{\indexname}
4560
 
% Text entity \cmd\indexname\ is used in \env{theindex},
4561
 
% as defined in the standard \LaTeX\ book class.
4562
 
%    \begin{macrocode}
4563
 
\def\indexname{Index}
4564
 
%    \end{macrocode}
4565
 
%    \end{macro}
4566
 
%
4567
 
% \begin{macro}{\figurename}
4568
 
% \changes{4.0b}{1999/06/20}{Added localization of \cs{figuresname}}
4569
 
% Text entity \cmd\figurename\ is used in \env{figure},
4570
 
% \cmd\figuresname\ in \cmd\printfigures.
4571
 
%    \begin{macrocode}
4572
 
\def\figurename{FIG.}
4573
 
\def\figuresname{Figures}%
4574
 
%    \end{macrocode}
4575
 
%    \end{macro}
4576
 
%
4577
 
% \begin{macro}{\tablename}
4578
 
% \changes{4.0b}{1999/06/20}{Added localization of \cs{tablesname}}
4579
 
% Text entity \cmd\tablename\ is used in \env{table},
4580
 
% \cmd\tablesname\ in \cmd\printtables.
4581
 
%    \begin{macrocode}
4582
 
\def\tablename{TABLE}
4583
 
\def\tablesname{Tables}%
4584
 
%    \end{macrocode}
4585
 
%    \end{macro}
4586
 
%
4587
 
% \begin{macro}{\abstractname}
4588
 
% Text entity \cmd\abstractname\ is used in \env{abstract}.
4589
 
%    \begin{macrocode}
4590
 
\def\abstractname{Abstract}
4591
 
%    \end{macrocode}
4592
 
%    \end{macro}
4593
 
%
4594
 
% \begin{macro}{\appendixesname}
4595
 
% \begin{macro}{\appendixname}
4596
 
% Text entity \cmd\appendixesname\ is used in TOC.
4597
 
%    \begin{macrocode}
4598
 
\def\appendixesname{Appendixes}%
4599
 
\def\appendixname{Appendix}%
4600
 
%    \end{macrocode}
4601
 
%    \end{macro}
4602
 
%    \end{macro}
4603
 
%
4604
 
% \begin{macro}{\acknowledgmentsname}
4605
 
% Text entity \cmd\acknowledgmentsname\ is used in \env{acknowledgments}.
4606
 
%    \begin{macrocode}
4607
 
\def\acknowledgmentsname{Acknowledgments}
4608
 
%    \end{macrocode}
4609
 
%    \end{macro}
4610
 
%
4611
 
% \begin{macro}{\journalname}
4612
 
% This should be set by the society journal options, eg `pra'.
4613
 
%    \begin{macrocode}
4614
 
\def\journalname{??}
4615
 
%    \end{macrocode}
4616
 
%    \end{macro}
4617
 
%
4618
 
% \begin{macro}{\copyrightname}
4619
 
% Default layout does not assign copyright, but a journal that wants
4620
 
% to might use this.
4621
 
%    \begin{macrocode}
4622
 
\def\copyrightname{??}
4623
 
%    \end{macrocode}
4624
 
%    \end{macro}
4625
 
%
4626
 
% \begin{macro}{\andname}
4627
 
% The text string ``and'' for use in author lists.
4628
 
%    \begin{macrocode}
4629
 
\def\andname{and}
4630
 
%    \end{macrocode}
4631
 
%    \end{macro}
4632
 
%
4633
 
% \begin{macro}{\@pacs@name}
4634
 
% \begin{macro}{\@keys@name}
4635
 
% The text string prepended to PACS numbers, resp. to keywords.
4636
 
%    \begin{macrocode}
4637
 
\def\@pacs@name{PACS numbers: }%
4638
 
\def\@keys@name{Keywords: }%
4639
 
%    \end{macrocode}
4640
 
%    \end{macro}
4641
 
%    \end{macro}
4642
 
%
4643
 
% \begin{macro}{\ppname}
4644
 
% The text string ``pp'' for use in page ranges.
4645
 
%    \begin{macrocode}
4646
 
\def\ppname{pp}
4647
 
%    \end{macrocode}
4648
 
%    \end{macro}
4649
 
%
4650
 
% \begin{macro}{\numbername}
4651
 
% The text string ``number'' for use in article reference.
4652
 
%    \begin{macrocode}
4653
 
\def\numbername{number}
4654
 
%    \end{macrocode}
4655
 
%    \end{macro}
4656
 
%
4657
 
% \begin{macro}{\volumename}
4658
 
% The text string ``volume'' for use in article reference.
4659
 
%    \begin{macrocode}
4660
 
\def\volumename{volume}
4661
 
%    \end{macrocode}
4662
 
%    \end{macro}
4663
 
%
4664
 
% \begin{macro}{\Dated@name}
4665
 
% \begin{macro}{\Received@name}
4666
 
% \begin{macro}{\Revised@name}
4667
 
% \begin{macro}{\Accepted@name}
4668
 
% \begin{macro}{\Published@name}
4669
 
% These texts are used in the \cmd\date, et al. commands.
4670
 
%    \begin{macrocode}
4671
 
\def\Dated@name{Dated: }%
4672
 
\def\Received@name{Received }%
4673
 
\def\Revised@name{Revised }%
4674
 
\def\Accepted@name{Accepted }%
4675
 
\def\Published@name{Published }%
4676
 
%    \end{macrocode}
4677
 
%    \end{macro}
4678
 
%    \end{macro}
4679
 
%    \end{macro}
4680
 
%    \end{macro}
4681
 
%    \end{macro}
4682
 
%
4683
 
% \section{Legacy Commands}
4684
 
% We define some commands left over from version 3.1, or give default meanings.
4685
 
% Some definitions can be overridden
4686
 
% in the document preamble or in included packages.
4687
 
%
4688
 
% Note on the namespace: command names like \cmd\REV@\emph{name} are used here,
4689
 
% because it is not clear that any of this code is generally useful.
4690
 
%    \begin{macrocode}
4691
 
\def\address{\replace@command\address\affiliation}%
4692
 
\def\altaddress{\replace@command\altaddress\altaffiliation}%
4693
 
\newenvironment{references}{%
4694
 
 \class@warn@end{The references environment is not supported; use thebibliography instead.}
4695
 
 \gdef\references{\thebibliography{}}\references
4696
 
}{%
4697
 
 \endthebibliography
4698
 
}%
4699
 
\def\draft{%
4700
 
 \class@warn@end{Command \string\draft\space is obsolete;^^JInvoke option draft instead.}%
4701
 
 \@booleantrue\draft@sw
4702
 
}%
4703
 
\def\tighten{%
4704
 
 \class@warn@end{Command \string\tighten\space is obsolete;^^JInvoke option tightenlines instead.}%
4705
 
 \@booleantrue\tightenlines@sw
4706
 
}%
4707
 
\def\tableline{%
4708
 
 \noalign{%
4709
 
  \class@warn@end{Command \string\tableline\space is obsolete;^^JUse \string\colrule\space instead.}%
4710
 
  \global\let\tableline\colrule
4711
 
 }%
4712
 
 \tableline
4713
 
}%
4714
 
\def\case{\replace@command\case\frac}%
4715
 
\def\slantfrac{\replace@command\slantfrac\frac}%
4716
 
\def\tablenote{\replace@command\tablenote\footnote}%
4717
 
\def\tablenotemark{\replace@command\tablenotemark\footnotemark}%
4718
 
\def\tablenotetext{\replace@command\tablenotetext\footnotetext}%
4719
 
% Lose the following definition:
4720
 
\DeclareRobustCommand\REV@text[1]{%
4721
 
 \relax
4722
 
 \ifmmode
4723
 
  \mathchoice
4724
 
   {\hbox{{\everymath{\displaystyle     }#1}}}%
4725
 
   {\hbox{{\everymath{\textstyle        }#1}}}%
4726
 
   {\hbox{{\everymath{\scriptstyle      }\let\f@size\sf@size\selectfont#1}}}%
4727
 
   {\hbox{{\everymath{\scriptscriptstyle}\let\f@size\ssf@size\selectfont#1}}}%
4728
 
  \glb@settings
4729
 
 \else
4730
 
  \mbox{#1}%
4731
 
 \fi
4732
 
}%
4733
 
% Lose the following definition:
4734
 
\DeclareRobustCommand\REV@bbox[1]{%
4735
 
 \relax
4736
 
 \ifmmode
4737
 
  \mathchoice
4738
 
   {\hbox{{\everymath{\displaystyle     }\boldmath$#1$}}}%
4739
 
   {\hbox{{\everymath{\textstyle        }\boldmath$#1$}}}%
4740
 
   {\hbox{{\everymath{\scriptstyle      }\boldmath$#1$}}}%
4741
 
   {\hbox{{\everymath{\scriptscriptstyle}\boldmath$#1$}}}%
4742
 
  \glb@settings
4743
 
 \else
4744
 
  \mbox{#1}%
4745
 
 \fi
4746
 
}%
4747
 
\DeclareRobustCommand\REV@bm[1]{%
4748
 
 \class@warn@end{To use \string\bm, please load the bm package!}%
4749
 
 \global\let\bm\relax
4750
 
}%
4751
 
\def\FL{\obsolete@command\FL}%
4752
 
\def\FR{\obsolete@command\FR}%
4753
 
\def\narrowtext{\obsolete@command\narrowtext}%
4754
 
\def\mediumtext{\obsolete@command\mediumtext}%
4755
 
\newenvironment{quasitable}{%
4756
 
 \let@environment{tabular}{longtable}%
4757
 
}{%
4758
 
}%
4759
 
%    \end{macrocode}
4760
 
%
4761
 
% \begin{macro}{\text}
4762
 
% \begin{macro}{\bm}
4763
 
% \begin{macro}{\bibinfo}
4764
 
% \begin{macro}{\eprint}
4765
 
% \begin{macro}{\url}
4766
 
4767
 
% If not otherwise defined, give default meanings to certain commands.
4768
 
% \changes{4.0d}{2000/04/10}{eprint takes an optional argument, syntactical only in this case.}
4769
 
%FIXME: \cmd\bibinfo?
4770
 
%    \begin{macrocode}
4771
 
\let\text\REV@text
4772
 
\let\bm\REV@bm
4773
 
\appdef\setup@hook{%
4774
 
 \providecommand\bibinfo[2]{#2}%
4775
 
 \providecommand\eprint[2][]{#2}%
4776
 
%\providecommand\url[1]{#1}%
4777
 
}%
4778
 
%    \end{macrocode}
4779
 
% \end{macro}
4780
 
% \end{macro}
4781
 
% \end{macro}
4782
 
% \end{macro}
4783
 
% \end{macro}
4784
 
%
4785
 
% \begin{macro}{\bbox}
4786
 
4787
 
%    \begin{macrocode}
4788
 
\def\bbox#1{%
4789
 
 \class@warn@end{\string\bbox\space is obsolete,^^Jload the bm package and use \string\bm\space instead.}%
4790
 
 \global\let\bbox\relax
4791
 
}%
4792
 
%    \end{macrocode}
4793
 
% \end{macro}
4794
 
%
4795
 
% \begin{macro}{\mathletters}
4796
 
%
4797
 
%    \begin{macrocode}
4798
 
\newenvironment{mathletters}{%
4799
 
 \class@warn@end{Environment {mathletters} is obsolete;^^Jload the amsmath package and use {subequations}!}%
4800
 
 \global\let\mathletters\@empty
4801
 
}{%
4802
 
}%
4803
 
%    \end{macrocode}
4804
 
% \end{macro}
4805
 
%
4806
 
% \begin{macro}{\eqnum}
4807
 
4808
 
%    \begin{macrocode}
4809
 
\def\eqnum#1{%
4810
 
 \class@warn@end{\string\eqnum\space is obsolete, load the amsmath package and use \string\tag!}%
4811
 
 \global\let\eqnum\@gobble
4812
 
}%
4813
 
%    \end{macrocode}
4814
 
% \end{macro}
4815
 
%
4816
 
% We read in the symbol definitions.
4817
 
%    \begin{macrocode}
4818
 
\appdef\rtx@require@packages{%
4819
 
 \RequirePackage{revsymb4-1}%
4820
 
}%
4821
 
\appdef\class@documenthook{\revsymb@inithook}%
4822
 
%    \end{macrocode}
4823
 
%
4824
 
% \section{Patches for lineno.sty}
4825
 
%
4826
 
% The \classname{lineno} package detects the case where the package has been loaded
4827
 
% and the document invokes \cmd\linelabel, but the \cmd\linenumbers\ command has not been
4828
 
% issued: it treats this case as an error. 
4829
 
%
4830
 
% It is wrong for validity of document syntax to be dependent upon package semantics: 
4831
 
% we make the condition a warning rather than an error.  
4832
 
4833
 
%    \begin{macrocode}
4834
 
\def\@LN@LLerror@org{%
4835
 
 \PackageError{lineno}{%
4836
 
  \string\linelabel\space without \string\linenumbers
4837
 
 }{% 
4838
 
  Just see documentation. (New feature v4.11)%
4839
 
 }%
4840
 
 \@gobble
4841
 
}%
4842
 
\def\@LN@LLerror@ltx{%
4843
 
 \PackageWarning{lineno}{%
4844
 
  To make the \string\linelabel\space command work, you must issue the \string\linenumbers\ command 
4845
 
 }%
4846
 
 \@gobble
4847
 
}%
4848
 
%    \end{macrocode}
4849
 
4850
 
% If appropriate, enable line numbering within the abstract. 
4851
 
%
4852
 
% This mechanism applies generally:
4853
 
% Create the box in a context in which the meaning of \cmd\par\ has been patched by \classname{lineno},
4854
 
% then \cmd\unvbox\ the box in a context where \cmd\set@linepenalties\ has been executed, and 
4855
 
% follow up with \cmd\@linenumberpar, which forces a visit to the output routine just there.
4856
 
% Note that here, we have to de-fang \cmd\@LN@parpgbrk, which would otherwise causes the appearance
4857
 
% of a box with depth -1000 points. Go figure.
4858
 
%    \begin{macrocode}
4859
 
\appdef\class@documenthook{%
4860
 
 \@ifx{\@LN@LLerror\@LN@LLerror@org}{%
4861
 
  \class@info{Overriding \string\@LN@LLerror}%
4862
 
  \let\@LN@LLerror\@LN@LLerror@ltx
4863
 
 }{}%
4864
 
 \@ifpackageloaded{lineno}{%
4865
 
  \@ifxundefined{\set@linepenalties}{}{%
4866
 
   \def\prep@absbox{\set@linepenalties}%
4867
 
   \def\post@absbox{\let\@LN@parpgbrk\@empty\@linenumberpar}%
4868
 
  }%
4869
 
 }{}%
4870
 
}%
4871
 
%    \end{macrocode}
4872
 
%
4873
 
% One may well ask: how to obtain line numbering within an alignment in a float?
4874
 
% This objective, along with line numbering within footnotes, would require extraordinary measures.
4875
 
% The float would have to be thrown onto the MVL in order to acquire its line numbers, but
4876
 
% that fragment of MVL would then have to be protected from being shipped out.
4877
 
% The question of how to coordinate those lines' numbers with those of lines in the MVL would 
4878
 
% also require dealing with.
4879
 
%
4880
 
% \section{Endgame for the Document Class}
4881
 
%
4882
 
% We provide for a ``job macro package'' that can override
4883
 
% definitions and assignments made by the class or any other packages it loads.
4884
 
%
4885
 
% \subsection{Job Macro Package}
4886
 
% You can create a ``job macro package'' for your document
4887
 
% that will be read in automatically every time
4888
 
% your document is processed.
4889
 
% Thus, if your job is a file called \file{myarticle.tex},
4890
 
% then the file \file{myarticle.rty} will be read in
4891
 
% just the same as if you had placed a 
4892
 
% \cmd\usepackage|{myarticle.rty}| statement
4893
 
% immediately following your \cmd\documentclass\ statement.
4894
 
%
4895
 
% Within your \file{.rty} file,
4896
 
% you can define and use control sequence names that use the |@| character
4897
 
% and you can override any of the definitions or assignments made 
4898
 
% by the \revtex\ document class or the selected journal substyle.
4899
 
% That is, you have the power to really mess things up badly.
4900
 
%
4901
 
% If you choose to have a job macro package, you are well 
4902
 
% advised to read the \LaTeX\ guide to document classes,
4903
 
% \file{clsguide.tex} or read up on the subject 
4904
 
% in a book like the \LaTeX\ Companion.
4905
 
%
4906
 
% The file \file{template.rty} contains a template for
4907
 
% creating your own job macro package.
4908
 
%
4909
 
%    \begin{macrocode}
4910
 
\appdef\rtx@require@packages{%
4911
 
 \InputIfFileExists{\jobname.rty}{}{}%
4912
 
}%
4913
 
%    \end{macrocode}
4914
 
%
4915
 
% \subsection{Endgame Processing for the Document Class}
4916
 
%
4917
 
% The remaining steps in processing the document class involve
4918
 
% determining the needed society, journal, and pointsize from 
4919
 
% the document's class options and inputting the needed files or
4920
 
% executing the indicated procedures. 
4921
 
%
4922
 
% Note that the society file is expected to declare options that will
4923
 
% allow us to determine the journal involved, and the society and journal
4924
 
% themselves determine the which pointsize options are declared, along with
4925
 
% their meanings. 
4926
 
4927
 
% Note also that required packages are read in only after the document options
4928
 
% have been processed, because the latter can affect the former. 
4929
 
4930
 
% Finally, the setup code is executed: this is code that depends on the 
4931
 
% meanings of the switches we define and on the code within the packages we load. 
4932
 
%
4933
 
% Note that there are other hooks in use: \cmd\document@inithook, which is 
4934
 
% executed right at the beginning of the document, and \cmd\class@documenthook, 
4935
 
% which serves as a vehicle for any \cmd\AtBeginDocument\ code we might wish to
4936
 
% execute. 
4937
 
%
4938
 
%FIXME: use \cmd\class@documenthook\ only for things that bear on the MVL; 
4939
 
% use \cmd\document@inithook\ for all patches to procedures defined within the preamble. 
4940
 
%
4941
 
% Remember that \classname{natbib} changes its state at \cmd\AtBeginDocument\ time,
4942
 
% so we have to install our own code at a later point in the processing.
4943
 
%
4944
 
% We determine the proper \cmd\@society\ by examining the document's class options. 
4945
 
%    \begin{macrocode}
4946
 
\@parse@class@options@society
4947
 
%    \end{macrocode}
4948
 
%
4949
 
% Then, we input the society's substyle
4950
 
% (which may in turn lead to loading a journal substyle or a pointsize substyle). 
4951
 
% The substyle should not assume the value of any class option: 
4952
 
% instead, it should install code into \cmd\setup@hook. 
4953
 
%    \begin{macrocode}
4954
 
\@process@society{aps}%
4955
 
%    \end{macrocode}
4956
 
%
4957
 
% Now that the society has defined the class options relating to journals,
4958
 
% and has defined \cmd\@journal@default, we can process the journal substyle. 
4959
 
% We parse the options for one that sets \cmd\@journal.
4960
 
%    \begin{macrocode}
4961
 
\@parse@class@options@\@journal
4962
 
%    \end{macrocode}
4963
 
% And we process the journal. 
4964
 
% Note that \emph{it is an error} for a society file to fail to define
4965
 
% \cmd\@journal@default.
4966
 
%
4967
 
%    \begin{macrocode}
4968
 
\expandafter\@process@journal\expandafter{\@journal@default}%
4969
 
%    \end{macrocode}
4970
 
%
4971
 
% Now that the society and journal have finished defining any options relating to 
4972
 
% point size, we process the class options for any that set \cmd\@pointsize.
4973
 
%    \begin{macrocode}
4974
 
\@parse@class@options@\@pointsize
4975
 
%    \end{macrocode}
4976
 
% And we process the pointsize.
4977
 
% Note that it is an error for the society and journal to leave \cmd\@pointsize@default\ 
4978
 
% undefined at this point, however, the journal may have overriden the assignment of the society. 
4979
 
%
4980
 
%    \begin{macrocode}
4981
 
\expandafter\@process@pointsize\expandafter{\@pointsize@default}%
4982
 
%    \end{macrocode}
4983
 
%
4984
 
% Next, we process the class options for once and all. 
4985
 
% Doing so sets values for some of the Booleans that were introduced along with
4986
 
% the \cmd\DeclareOption\ statements above. 
4987
 
%
4988
 
%CHANGE: We process the options in the order declared in the document; this 
4989
 
% gives the document greater control. 
4990
 
%
4991
 
%    \begin{macrocode}
4992
 
\@options
4993
 
%    \end{macrocode}
4994
 
4995
 
% Now that the class options have been processed, we can load all the 
4996
 
% packages that we know need loading.
4997
 
%    \begin{macrocode}
4998
 
\rtx@require@packages
4999
 
%    \end{macrocode}
5000
 
%
5001
 
% At this point, the society substyle, the journal substyle, and the 
5002
 
% pointsize have all been processed, along with the document class options.
5003
 
% Some of these have left things for later; we do these now.
5004
 
%
5005
 
% \begin{macro}{\setup@hook}
5006
 
%
5007
 
% This portion of the code for this class file
5008
 
% \emph{must} appear at the very end:
5009
 
% The procedure 
5010
 
% \cmd\setup@hook\
5011
 
% should be executed at the very end of the class file. 
5012
 
% Any code that relies on the value of any of the \texttt{@sw} switches
5013
 
% or will patch the code of one of the required packages
5014
 
% should be executed here. 
5015
 
%
5016
 
%    \begin{macrocode}
5017
 
\setup@hook
5018
 
%    \end{macrocode}
5019
 
% \end{macro}
5020
 
%
5021
 
%
5022
 
% Warn if past maturation date. This code to be enabled only in beta software.
5023
 
% \changes{4.1f}{2009/07/11}{(AO, 522) Warn if software is expired}%
5024
 
% \changes{4.1h}{2009/10/09}{(AO) Remove expiry code in the release software}%
5025
 
%    \begin{macrocode}
5026
 
%<*ignore>
5027
 
 \def\rtx@fin@year{2010}%
5028
 
 \def\rtx@fin@month{01}%
5029
 
 \def\rtx@fin@day{01}%
5030
 
 \def\rtx@fin@warn{%
5031
 
  \@ifnum{\rtx@fin@year>\the\year\relax}{\true@sw}{%
5032
 
   \@ifnum{\rtx@fin@month>\the\month\relax}{\true@sw}{%
5033
 
    \@ifnum{\rtx@fin@day>\the\day\relax}{\true@sw}{%
5034
 
     \false@sw
5035
 
    }%
5036
 
   }%
5037
 
  }%
5038
 
  {%
5039
 
   \class@info{Beta software expires \rtx@fin@year-\rtx@fin@month-\rtx@fin@day; updates available at http://publish.aps.org/revtex4/}%
5040
 
  }{%
5041
 
   \class@warn{Outdated software expired \rtx@fin@year-\rtx@fin@month-\rtx@fin@day; please retrieve an update at http://publish.aps.org/revtex4/}%
5042
 
  }%
5043
 
 }%
5044
 
%</ignore>
5045
 
%    \end{macrocode}
5046
 
% In shipping (non-beta) software, the following line should be commented out.
5047
 
% \changes{4.1f}{2009/07/11}{(AO, 522) Warn if software is expired}%
5048
 
%    \begin{verbatim}
5049
 
%\appdef\class@enddocumenthook{\rtx@fin@warn}%
5050
 
%    \end{verbatim}
5051
 
%
5052
 
% End of the class file.
5053
 
%    \begin{macrocode}
5054
 
%</package>
5055
 
%    \end{macrocode}
5056
 
%
5057
 
%
5058
 
% \section{Symbols: the \texttt{revsymb} module}
5059
 
% We immediately define a utility command: this module's warning.
5060
 
%    \begin{macrocode}
5061
 
%<*revsymb>
5062
 
\def\REVSYMB@warn#1{\PackageWarningNoLine{revsymb}{#1}}%
5063
 
%    \end{macrocode}
5064
 
%
5065
 
% \begin{macro}{\lambdabar}
5066
 
%    \begin{macrocode}
5067
 
\DeclareRobustCommand\lambdabar{%
5068
 
  \bgroup
5069
 
    \def\@tempa{%
5070
 
      \hbox{%
5071
 
        \raise.73\ht\z@
5072
 
        \hb@xt@\z@{%
5073
 
          \kern.25\wd\z@
5074
 
          \vrule \@width.5\wd\z@\@height.1\p@\@depth.1\p@
5075
 
          \hss
5076
 
        }%
5077
 
        \box\z@
5078
 
      }%
5079
 
    }%
5080
 
    \mathchoice
5081
 
      {\setbox\z@\hbox{$\displaystyle     \lambda$}\@tempa}%
5082
 
      {\setbox\z@\hbox{$\textstyle        \lambda$}\@tempa}%
5083
 
      {\setbox\z@\hbox{$\scriptstyle      \lambda$}\@tempa}%
5084
 
      {\setbox\z@\hbox{$\scriptscriptstyle\lambda$}\@tempa}%
5085
 
  \egroup
5086
 
}%
5087
 
%    \end{macrocode}
5088
 
% \end{macro}
5089
 
%
5090
 
% \begin{macro}{\openone}
5091
 
% DPC: Really should use a font that includes this glyph.
5092
 
% Unfortunately not in AMS ones, but is in bbold, cmbb.
5093
 
% (I think, must check),
5094
 
% \changes{4.0a}{1998/01/31}{use font-dependent spacing}
5095
 
% FIXME: check for bbold.
5096
 
%    \begin{macrocode}
5097
 
\DeclareRobustCommand\openone{\leavevmode\hbox{\small1\normalsize\kern-.33em1}}%
5098
 
%    \end{macrocode}
5099
 
% \end{macro}
5100
 
%
5101
 
% \begin{macro}{\corresponds}
5102
 
% \begin{macro}{\overdots}
5103
 
% \begin{macro}{\overcirc}
5104
 
% J\"org Knappen suggests the replacements:
5105
 
% replace \cmd\corresponds\ with \cmd\triangleq, source \classname{amssymb};
5106
 
% replace \cmd\overcirc\ with \cmd\mathring, source \classname{latex2e};
5107
 
% replace \cmd\overdots\ with \cmd\dddot, source \classname{amsmath}.
5108
 
%
5109
 
% Any use of any of these commands will result in a warning message at the end 
5110
 
% of the log file. If the corresponding package is not loaded, a
5111
 
% definition will quietly be provided.
5112
 
%    \begin{macrocode}
5113
 
\DeclareRobustCommand\corresponds{\replace@command\corresponds\triangleq}%
5114
 
\DeclareRobustCommand\overcirc{\replace@command\overcirc\mathring}%
5115
 
\DeclareRobustCommand\overdots{\replace@command\overdots\dddot}%
5116
 
\DeclareRobustCommand\REV@triangleq{%
5117
 
 {\lower.2ex\hbox{=}}{\kern-.75em^\triangle}%
5118
 
}%
5119
 
\DeclareRobustCommand\REV@dddot[1]{%
5120
 
 \@ontopof{#1}{\cdots}{1.0}\mathord{\box2}%
5121
 
}%
5122
 
%    \end{macrocode}
5123
 
% \end{macro}
5124
 
% \end{macro}
5125
 
% \end{macro}
5126
 
%
5127
 
% \begin{macro}{\succsim}
5128
 
% \begin{macro}{\precsim}
5129
 
% \begin{macro}{\lesssim}
5130
 
% \begin{macro}{\gtrsim}
5131
 
% \begin{macro}{\alt}
5132
 
% \begin{macro}{\agt}
5133
 
% These version 3.1 commands are always supplied, 
5134
 
% but the definitions in \classname{amssymb} are preferred.
5135
 
%    \begin{macrocode}
5136
 
\DeclareRobustCommand\altsuccsim{\succ\kern-.9em_\sim\kern.3em}%
5137
 
\DeclareRobustCommand\altprecsim{\prec\kern-1em_\sim\kern.3em}%
5138
 
\let\REV@succsim\altsuccsim
5139
 
\let\REV@precsim\altprecsim
5140
 
\DeclareRobustCommand\REV@lesssim{\mathrel{\mathpalette\vereq{<}}}%
5141
 
\DeclareRobustCommand\REV@gtrsim{\mathrel{\mathpalette\vereq{>}}}%
5142
 
\DeclareRobustCommand\alt{\lesssim}
5143
 
\DeclareRobustCommand\agt{\gtrsim}
5144
 
\def\vereq#1#2{%
5145
 
 \lower3\p@\vbox{%
5146
 
  \baselineskip1.5\p@
5147
 
  \lineskip1.5\p@
5148
 
  \ialign{$\m@th#1\hfill##\hfil$\crcr#2\crcr\sim\crcr}%
5149
 
 }%
5150
 
}%
5151
 
%    \end{macrocode}
5152
 
% \end{macro}
5153
 
% \end{macro}
5154
 
% \end{macro}
5155
 
% \end{macro}
5156
 
% \end{macro}
5157
 
% \end{macro}
5158
 
%
5159
 
% \begin{macro}{\tensor}
5160
 
% \begin{macro}{\overstar}
5161
 
% \begin{macro}{\loarrow}
5162
 
% \begin{macro}{\roarrow}
5163
 
% \changes{4.0b}{1999/06/20}{AO: remove duplicates}
5164
 
%    \begin{macrocode}
5165
 
\DeclareRobustCommand\tensor[1]{\@ontopof{#1}{\leftrightarrow}{1.15}\mathord{\box2}}
5166
 
\DeclareRobustCommand\overstar[1]{\@ontopof{#1}{\ast}{1.15}\mathord{\box2}}
5167
 
\DeclareRobustCommand\loarrow[1]{\@ontopof{#1}{\leftarrow}{1.15}\mathord{\box2}}
5168
 
\DeclareRobustCommand\roarrow[1]{\@ontopof{#1}{\rightarrow}{1.15}\mathord{\box2}}
5169
 
%    \end{macrocode}
5170
 
% \end{macro}
5171
 
% \end{macro}
5172
 
% \end{macro}
5173
 
% \end{macro}
5174
 
%
5175
 
% \begin{macro}{\@ontopof}
5176
 
%    \begin{macrocode}
5177
 
\def\@ontopof#1#2#3{%
5178
 
 {%
5179
 
  \mathchoice
5180
 
    {\@@ontopof{#1}{#2}{#3}\displaystyle     \scriptstyle      }%
5181
 
    {\@@ontopof{#1}{#2}{#3}\textstyle        \scriptstyle      }%
5182
 
    {\@@ontopof{#1}{#2}{#3}\scriptstyle      \scriptscriptstyle}%
5183
 
    {\@@ontopof{#1}{#2}{#3}\scriptscriptstyle\scriptscriptstyle}%
5184
 
 }%
5185
 
}%
5186
 
%    \end{macrocode}
5187
 
% \end{macro}
5188
 
%
5189
 
% \begin{macro}{\@@ontopof}
5190
 
% Same as \revtex3, more or less.
5191
 
%    \begin{macrocode}
5192
 
\def\@@ontopof#1#2#3#4#5{%
5193
 
  \setbox\z@\hbox{$#4#1$}%
5194
 
  \setbox\f@ur\hbox{$#5#2$}%
5195
 
  \setbox\tw@\null\ht\tw@\ht\z@ \dp\tw@\dp\z@
5196
 
  \@ifdim{\wd\z@>\wd\f@ur}{%
5197
 
    \setbox\f@ur\hb@xt@\wd\z@{\hss\box\f@ur\hss}%
5198
 
    \mathord{\rlap{\raise#3\ht\z@\box\f@ur}\box\z@}%
5199
 
  }{%
5200
 
    \setbox\f@ur\hb@xt@.9\wd\f@ur{\hss\box\f@ur\hss}%
5201
 
    \setbox\z@\hb@xt@\wd\f@ur{\hss$#4\relax#1$\hss}%
5202
 
    \mathord{\rlap{\copy\z@}\raise#3\ht\z@\box\f@ur}%
5203
 
  }%
5204
 
}%
5205
 
%    \end{macrocode}
5206
 
% \end{macro}
5207
 
%
5208
 
% \begin{macro}{\frak}
5209
 
% Deal with legacy \cmd\frak:
5210
 
% if \classname{amsfonts} not loaded, defined in such a way as to ask for that package.
5211
 
% Also, says to use \cmd\mathfrak\ instead.
5212
 
%    \begin{macrocode}
5213
 
\DeclareRobustCommand\frak{%
5214
 
 \REVSYMB@warn{%
5215
 
  Command \string\frak\space unsupported:^^J%
5216
 
  please use \string\mathfrak\space instead.%
5217
 
 }%
5218
 
 \global\let\frak\mathfrak
5219
 
 \frak
5220
 
}%
5221
 
\DeclareRobustCommand\REV@mathfrak{%
5222
 
 \REVSYMB@warn{%
5223
 
  Command \string\mathfrak\space undefined:^^J%
5224
 
  please specify the amsfonts or amssymb option!%
5225
 
 }%
5226
 
 \global\let\mathfrak\@firstofone
5227
 
 \mathfrak
5228
 
}%
5229
 
%    \end{macrocode}
5230
 
% \end{macro}
5231
 
%
5232
 
% \begin{macro}{\Bbb}
5233
 
% Deal with legacy \cmd\Bbb:
5234
 
% if \classname{amsfonts} not loaded, defined in such a way as to ask for that package.
5235
 
% Also, says to use \cmd\mathbb\ instead.
5236
 
%    \begin{macrocode}
5237
 
\DeclareRobustCommand\Bbb{%
5238
 
 \REVSYMB@warn{%
5239
 
  Command \string\Bbb\space unsupported:^^J%
5240
 
  please use \string\mathbb\space instead.%
5241
 
 }%
5242
 
 \global\let\Bbb\mathbb
5243
 
 \Bbb
5244
 
}%
5245
 
\DeclareRobustCommand\REV@mathfrak{%
5246
 
 \REVSYMB@warn{%
5247
 
  Command \string\mathbb\space undefined:^^J%
5248
 
  please specify the amsfonts or amssymb option!%
5249
 
 }%
5250
 
 \global\let\mathbb\@firstofone
5251
 
 \mathbb
5252
 
}%
5253
 
%    \end{macrocode}
5254
 
% \end{macro}
5255
 
%
5256
 
% \begin{macro}{\Bigglb}
5257
 
% Deal with legacy bold delimiters. 
5258
 
% Each of the following takes an implicit argument consisting of
5259
 
% the delimiter to be made big and bold.
5260
 
% FIXME: \cmd\DeclareBoldMathCommand\ is not the right tool!
5261
 
%    \begin{macrocode}
5262
 
\def\Bigglb{\REV@boldopen \Bigg}%
5263
 
\def\Biglb {\REV@boldopen \Big }%
5264
 
\def\bigglb{\REV@boldopen \bigg}%
5265
 
\def\biglb {\REV@boldopen \big }%
5266
 
\def\Biggrb{\REV@boldclose\Bigg}%
5267
 
\def\Bigrb {\REV@boldclose\Big }%
5268
 
\def\biggrb{\REV@boldclose\bigg}%
5269
 
\def\bigrb {\REV@boldclose\big }%
5270
 
\def\REV@pmb#1{%
5271
 
 \hbox{%
5272
 
  \setbox\z@=\hbox{#1}%
5273
 
  \kern-.02em\copy\z@\kern-\wd\z@
5274
 
  \kern .04em\copy\z@\kern-\wd\z@
5275
 
  \kern-.02em
5276
 
  \raise.04em\copy\z@
5277
 
 }%
5278
 
}%
5279
 
\def\REV@boldopen #1#2{\mathopen {\REV@pmb{$#1#2$}}}%
5280
 
\def\REV@boldclose#1#2{\mathclose{\REV@pmb{$#1#2$}}}%
5281
 
%    \end{macrocode}
5282
 
% \end{macro}
5283
 
%
5284
 
% \begin{macro}{\revsymb@inithook}
5285
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
5286
 
% Package dependencies are taken care of at \cmd\setup@hook\ time.
5287
 
%    \begin{macrocode}
5288
 
\def\revsymb@inithook{%
5289
 
 \@ifxundefined\dddot{\let\dddot\REV@dddot}{}%
5290
 
 \@ifxundefined\triangleq{\let\triangleq\REV@triangleq}{}%
5291
 
 \@ifxundefined\succsim{\let\succsim\altsuccsim}{}%
5292
 
 \@ifxundefined\precsim{\let\precsim\altprecsim}{}%
5293
 
 \@ifxundefined\lesssim{\let\lesssim\REV@lesssim}{}%
5294
 
 \@ifxundefined\gtrsim {\let\gtrsim \REV@gtrsim }{}%
5295
 
 \@ifxundefined\mathfrak{\let\mathfrak\REV@mathfrak}{}%
5296
 
 \@ifxundefined\mathbb{\let\mathbb\REV@mathbb}{}%
5297
 
}%
5298
 
%    \end{macrocode}
5299
 
% \end{macro}
5300
 
%
5301
 
%    \begin{macrocode}
5302
 
%</revsymb>
5303
 
%    \end{macrocode}
5304
 
%
5305
 
% \section{The \classoption{10pt} class option: the \texttt{10pt} module}
5306
 
% \changes{4.0b}{1999/06/20}{AO: all code for \protect\classoption{10pt} is in this module.}
5307
 
% The file \file{aps10pt.rtx} is read in by the \classname{revtex4} document class
5308
 
% if \cmd\@pointsize\ has the value 10.
5309
 
%
5310
 
%    \begin{macrocode}
5311
 
%<*10pt>
5312
 
%    \end{macrocode}
5313
 
%
5314
 
% \subsection{Defend Against Forseeable Errors}%
5315
 
% Protect this file from being read in by anything but \revtex.
5316
 
%    \begin{macrocode}
5317
 
\ifx\undefined\substyle@ext
5318
 
 \def\@tempa{%
5319
 
  \endinput
5320
 
  \GenericWarning{I must be read in by REVTeX! (Bailing out)}%
5321
 
 }%
5322
 
 \expandafter\else
5323
 
  \def\@tempa{}%
5324
 
 \expandafter\fi\@tempa
5325
 
 \class@info{RevTeX pointsize 10pt selected}%
5326
 
%    \end{macrocode}
5327
 
%
5328
 
%    \begin{macrocode}
5329
 
\def\normalsize{%
5330
 
   \@setfontsize\normalsize\@xpt{11.5}%
5331
 
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
5332
 
   \belowdisplayskip \abovedisplayskip
5333
 
   \abovedisplayshortskip  \abovedisplayskip
5334
 
   \belowdisplayshortskip \abovedisplayskip
5335
 
   \let\@listi\@listI
5336
 
}%
5337
 
%    \end{macrocode}
5338
 
%
5339
 
%    \begin{macrocode}
5340
 
\def\small{%
5341
 
  \@setfontsize\small\@ixpt{10.5}%
5342
 
  \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
5343
 
  \belowdisplayskip \abovedisplayskip
5344
 
  \abovedisplayshortskip \z@ \@plus2\p@
5345
 
  \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
5346
 
  \def\@listi{%
5347
 
    \leftmargin\leftmargini
5348
 
    \topsep 4\p@ \@plus2\p@ \@minus2\p@
5349
 
    \parsep 2\p@ \@plus\p@ \@minus\p@
5350
 
    \itemsep \parsep
5351
 
  }%
5352
 
}%
5353
 
%    \end{macrocode}
5354
 
%
5355
 
%    \begin{macrocode}
5356
 
\def\footnotesize{%
5357
 
  \@setfontsize\footnotesize\@viiipt{9.5pt}%
5358
 
  \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
5359
 
  \belowdisplayskip \abovedisplayskip
5360
 
  \abovedisplayshortskip \z@ \@plus\p@
5361
 
  \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
5362
 
  \def\@listi{%
5363
 
    \leftmargin\leftmargini
5364
 
    \topsep 3\p@ \@plus\p@ \@minus\p@
5365
 
    \parsep 2\p@ \@plus\p@ \@minus\p@
5366
 
    \itemsep \parsep
5367
 
  }%
5368
 
}%
5369
 
%    \end{macrocode}
5370
 
%
5371
 
%    \begin{macrocode}
5372
 
\def\scriptsize{%
5373
 
 \@setfontsize\scriptsize\@viipt\@viiipt
5374
 
}%
5375
 
\def\tiny{%
5376
 
 \@setfontsize\tiny\@vpt\@vipt
5377
 
}%
5378
 
\def\large{%
5379
 
 \@setfontsize\large\@xiipt{14pt}%
5380
 
}%
5381
 
\def\Large{%
5382
 
 \@setfontsize\Large\@xivpt{18pt}%
5383
 
}%
5384
 
\def\LARGE{%
5385
 
 \@setfontsize\LARGE\@xviipt{22pt}%
5386
 
}%
5387
 
\def\huge{%
5388
 
 \@setfontsize\huge\@xxpt{25pt}%
5389
 
}%
5390
 
\def\Huge{%
5391
 
 \@setfontsize\Huge\@xxvpt{30pt}%
5392
 
}%
5393
 
%    \end{macrocode}
5394
 
%
5395
 
% The values of these margin parameters are dependent upon 
5396
 
% \cmd\twoside@sw; any society or journal that 
5397
 
% has its own preferences should override these assignments
5398
 
% by doing \cmd\appdef\cmd\setup@hook.
5399
 
%    \begin{macrocode}
5400
 
\appdef\setup@hook{%
5401
 
 \twoside@sw{%
5402
 
%   \oddsidemargin  -.1in
5403
 
%   \evensidemargin -.4in
5404
 
    \oddsidemargin  -20pt
5405
 
    \evensidemargin -20pt
5406
 
    \marginparwidth 107pt
5407
 
 }{%
5408
 
    \oddsidemargin  -.25in
5409
 
    \evensidemargin -.25in
5410
 
    \marginparwidth 30pt
5411
 
 }%
5412
 
}%
5413
 
%    \end{macrocode}
5414
 
%
5415
 
%    \begin{macrocode}
5416
 
\marginparsep 6pt
5417
 
%    \end{macrocode}
5418
 
%
5419
 
%    \begin{macrocode}
5420
 
\topmargin -61pt
5421
 
%    \end{macrocode}
5422
 
%
5423
 
%    \begin{macrocode}
5424
 
\headheight 25pt
5425
 
\headsep 16pt
5426
 
%    \end{macrocode}
5427
 
%
5428
 
% \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}}%
5429
 
%    \begin{macrocode}
5430
 
\topskip 10pt
5431
 
\splittopskip\topskip
5432
 
%    \end{macrocode}
5433
 
%
5434
 
%    \begin{macrocode}
5435
 
\footskip 30pt
5436
 
%    \end{macrocode}
5437
 
5438
 
%    \begin{macrocode}
5439
 
 \textheight = 56pc
5440
 
%    \end{macrocode}
5441
 
%
5442
 
%    \begin{macrocode}
5443
 
\textwidth42.5pc
5444
 
%    \end{macrocode}
5445
 
%
5446
 
%    \begin{macrocode}
5447
 
\columnsep 1.5pc
5448
 
\columnseprule 0pt
5449
 
%    \end{macrocode}
5450
 
%
5451
 
% \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}}%
5452
 
%    \begin{macrocode}
5453
 
\footnotesep 1pt
5454
 
\skip\footins 39pt plus 4pt minus 12pt
5455
 
\def\footnoterule{%
5456
 
 \dimen@\skip\footins\divide\dimen@\tw@
5457
 
 \kern-\dimen@\hrule width.5in\kern\dimen@
5458
 
}%
5459
 
%    \end{macrocode}
5460
 
%
5461
 
%    \begin{macrocode}
5462
 
\floatsep 12pt plus 2pt minus 2pt
5463
 
\textfloatsep 20pt plus 2pt minus 4pt
5464
 
\intextsep 12pt plus 2pt minus 2pt
5465
 
%    \end{macrocode}
5466
 
%
5467
 
%    \begin{macrocode}
5468
 
\dblfloatsep 12pt plus 2pt minus 2pt
5469
 
\dbltextfloatsep 20pt plus 2pt minus 4pt
5470
 
%    \end{macrocode}
5471
 
%
5472
 
%    \begin{macrocode}
5473
 
\@fptop 0pt plus 1fil
5474
 
\@fpsep 8pt plus 2fil
5475
 
\@fpbot 0pt plus 1fil
5476
 
\@dblfptop 0pt plus 1fil
5477
 
\@dblfpsep 8pt plus 2fil
5478
 
\@dblfpbot 0pt plus 1fil
5479
 
%    \end{macrocode}
5480
 
%
5481
 
%    \begin{macrocode}
5482
 
\marginparpush 5pt
5483
 
%    \end{macrocode}
5484
 
%
5485
 
%    \begin{macrocode}
5486
 
\parskip 0pt plus 1pt
5487
 
\parindent 10pt
5488
 
\emergencystretch8\p@
5489
 
%    \end{macrocode}
5490
 
%
5491
 
%    \begin{macrocode}
5492
 
\partopsep 2pt plus 1pt minus 1pt
5493
 
%    \end{macrocode}
5494
 
%
5495
 
%    \begin{macrocode}
5496
 
\leftmargini 25pt
5497
 
\leftmarginii 22pt
5498
 
\leftmarginiii 18.7pt
5499
 
\leftmarginiv 17pt
5500
 
\leftmarginv 10pt
5501
 
\leftmarginvi 10pt
5502
 
%    \end{macrocode}
5503
 
%
5504
 
%    \begin{macrocode}
5505
 
\def\@listI{%
5506
 
  \leftmargin\leftmargini
5507
 
  \parsep 4\p@ plus2\p@ minus\p@
5508
 
  \topsep 8\p@ plus2\p@ minus4\p@
5509
 
  \itemsep 4\p@ plus2\p@ minus\p@
5510
 
}%
5511
 
%    \end{macrocode}
5512
 
%
5513
 
%    \begin{macrocode}
5514
 
\labelsep 4pt
5515
 
%    \end{macrocode}
5516
 
%
5517
 
%    \begin{macrocode}
5518
 
\def\@listii{%
5519
 
  \leftmargin\leftmarginii
5520
 
  \labelwidth\leftmarginii
5521
 
  \advance\labelwidth-\labelsep
5522
 
  \topsep 4\p@ plus2\p@ minus\p@
5523
 
  \parsep 2\p@ plus\p@ minus\p@
5524
 
  \itemsep \parsep
5525
 
}%
5526
 
%    \end{macrocode}
5527
 
%
5528
 
%    \begin{macrocode}
5529
 
\def\@listiii{%
5530
 
  \leftmargin\leftmarginiii
5531
 
  \labelwidth\leftmarginiii
5532
 
  \advance\labelwidth-\labelsep
5533
 
  \topsep 2\p@ plus\p@ minus\p@
5534
 
  \parsep \z@
5535
 
  \partopsep \p@ plus\z@ minus\p@
5536
 
  \itemsep \topsep
5537
 
}%
5538
 
%    \end{macrocode}
5539
 
%
5540
 
%    \begin{macrocode}
5541
 
\def\@listiv{%
5542
 
  \leftmargin\leftmarginiv
5543
 
  \labelwidth\leftmarginiv
5544
 
  \advance\labelwidth-\labelsep
5545
 
}%
5546
 
%    \end{macrocode}
5547
 
%
5548
 
%    \begin{macrocode}
5549
 
\def\@listv{%
5550
 
  \leftmargin\leftmarginv
5551
 
  \labelwidth\leftmarginv
5552
 
  \advance\labelwidth-\labelsep
5553
 
}%
5554
 
%    \end{macrocode}
5555
 
%
5556
 
%    \begin{macrocode}
5557
 
\def\@listvi{%
5558
 
  \leftmargin\leftmarginvi
5559
 
  \labelwidth\leftmarginvi
5560
 
  \advance\labelwidth-\labelsep
5561
 
}%
5562
 
%    \end{macrocode}
5563
 
%
5564
 
%    \begin{macrocode}
5565
 
%</10pt>
5566
 
%    \end{macrocode}
5567
 
%
5568
 
% \section{The \classoption{11pt} class option: the \texttt{11pt} module}
5569
 
% \changes{4.0b}{1999/06/20}{AO: all code for \protect\classoption{11pt} is in this module.}
5570
 
% The file \file{11pt.rtx} is read in by the \classname{revtex4} document class
5571
 
% if \cmd\@pointsize\ has the value 11.
5572
 
%
5573
 
%    \begin{macrocode}
5574
 
%<*11pt>
5575
 
%    \end{macrocode}
5576
 
%
5577
 
% \subsection{Defend Against Forseeable Errors}%
5578
 
% Protect this file from being read in by anything but \revtex.
5579
 
%    \begin{macrocode}
5580
 
\ifx\undefined\substyle@ext
5581
 
 \def\@tempa{%
5582
 
  \endinput
5583
 
  \GenericWarning{I must be read in by REVTeX! (Bailing out)}%
5584
 
 }%
5585
 
 \expandafter\else
5586
 
  \def\@tempa{}%
5587
 
 \expandafter\fi\@tempa
5588
 
 \class@info{RevTeX pointsize 11pt selected}%
5589
 
%    \end{macrocode}
5590
 
%
5591
 
%    \begin{macrocode}
5592
 
\def\normalsize{%
5593
 
    \@setfontsize\normalsize\@xipt{13.6}%
5594
 
    \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
5595
 
    \belowdisplayskip \abovedisplayskip
5596
 
    \abovedisplayshortskip  \abovedisplayskip
5597
 
    \belowdisplayshortskip \abovedisplayskip
5598
 
    \let\@listi\@listI
5599
 
}%
5600
 
%    \end{macrocode}
5601
 
%
5602
 
%    \begin{macrocode}
5603
 
\def\small{%
5604
 
   \@setfontsize\small\@xpt\@xiipt
5605
 
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
5606
 
   \abovedisplayshortskip \z@ \@plus3\p@
5607
 
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
5608
 
   \def\@listi{\leftmargin\leftmargini
5609
 
               \topsep 6\p@ \@plus2\p@ \@minus2\p@
5610
 
               \parsep 3\p@ \@plus2\p@ \@minus\p@
5611
 
               \itemsep \parsep
5612
 
   }%
5613
 
   \belowdisplayskip \abovedisplayskip
5614
 
}%
5615
 
%    \end{macrocode}
5616
 
%
5617
 
%    \begin{macrocode}
5618
 
\def\footnotesize{%
5619
 
   \@setfontsize\footnotesize\@ixpt{11}%
5620
 
   \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
5621
 
   \abovedisplayshortskip \z@ \@plus\p@
5622
 
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
5623
 
   \def\@listi{\leftmargin\leftmargini
5624
 
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
5625
 
               \parsep 2\p@ \@plus\p@ \@minus\p@
5626
 
               \itemsep \parsep
5627
 
   }%
5628
 
   \belowdisplayskip \abovedisplayskip
5629
 
}%
5630
 
%    \end{macrocode}
5631
 
%
5632
 
%    \begin{macrocode}
5633
 
\def\scriptsize{%
5634
 
  \@setfontsize\scriptsize\@viiipt{9.5}%
5635
 
}%
5636
 
\def\tiny{%
5637
 
  \@setfontsize\tiny\@vipt\@viipt
5638
 
}%
5639
 
\def\large{%
5640
 
  \@setfontsize\large\@xiipt{14}%
5641
 
}%
5642
 
\def\Large{%
5643
 
  \@setfontsize\Large\@xivpt{18}%
5644
 
}%
5645
 
\def\LARGE{%
5646
 
  \@setfontsize\LARGE\@xviipt{22}%
5647
 
}%
5648
 
\def\huge{%
5649
 
    \@setfontsize\huge\@xxpt{25pt}%
5650
 
}%
5651
 
\def\Huge{%
5652
 
  \@setfontsize\Huge\@xxvpt{30pt}%
5653
 
}%
5654
 
%    \end{macrocode}
5655
 
%
5656
 
%    \begin{macrocode}
5657
 
%</11pt>
5658
 
%    \end{macrocode}
5659
 
%
5660
 
% \section{The \classoption{12pt} class option: the \texttt{12pt} module}
5661
 
% \changes{4.0b}{1999/06/20}{AO: all code for \protect\classoption{12pt} is in this module.}
5662
 
% The file \file{12pt.rtx} is read in by the \classname{revtex4} document class
5663
 
% if \cmd\@pointsize\ has the value 12.
5664
 
%
5665
 
%    \begin{macrocode}
5666
 
%<*12pt>
5667
 
%    \end{macrocode}
5668
 
%
5669
 
% \subsection{Defend Against Forseeable Errors}%
5670
 
% Protect this file from being read in by anything but \revtex.
5671
 
%    \begin{macrocode}
5672
 
\ifx\undefined\substyle@ext
5673
 
 \def\@tempa{%
5674
 
  \endinput
5675
 
  \GenericWarning{I must be read in by REVTeX! (Bailing out)}%
5676
 
 }%
5677
 
 \expandafter\else
5678
 
  \def\@tempa{}%
5679
 
 \expandafter\fi\@tempa
5680
 
 \class@info{RevTeX pointsize 12pt selected}%
5681
 
%    \end{macrocode}
5682
 
%
5683
 
%    \begin{macrocode}
5684
 
\def\normalsize{%
5685
 
  \@setfontsize\normalsize\@xiipt{14pt}%
5686
 
  \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
5687
 
  \belowdisplayskip \abovedisplayskip
5688
 
  \abovedisplayshortskip  \z@ plus3\p@
5689
 
  \belowdisplayshortskip  6.5\p@ \@plus3.5\p@ \@minus3\p@
5690
 
  \let\@listi\@listI
5691
 
}%
5692
 
%    \end{macrocode}
5693
 
%
5694
 
%    \begin{macrocode}
5695
 
 \def\small{%
5696
 
  \@setfontsize\small\@xipt{14.5pt}%
5697
 
  \abovedisplayskip 8\p@ \@plus3\p@ \@minus6\p@
5698
 
  \belowdisplayskip \abovedisplayskip
5699
 
  \abovedisplayshortskip \z@ \@plus3\p@
5700
 
  \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
5701
 
  \def\@listi{%
5702
 
    \leftmargin\leftmargini
5703
 
    \topsep 9\p@ \@plus3\p@ \@minus5\p@
5704
 
    \parsep 4.5\p@ \@plus2\p@ \@minus\p@
5705
 
    \itemsep \parsep
5706
 
  }%
5707
 
}%
5708
 
%    \end{macrocode}
5709
 
%
5710
 
% Same baselineskip as \cmd\small\ ?
5711
 
%    \begin{macrocode}
5712
 
 \def\footnotesize{%
5713
 
  \@setfontsize\footnotesize\@xpt{14.5pt}%
5714
 
  \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
5715
 
  \belowdisplayskip \abovedisplayskip
5716
 
  \abovedisplayshortskip \z@ \@plus3\p@
5717
 
  \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
5718
 
  \def\@listi{%
5719
 
    \leftmargin\leftmargini
5720
 
    \topsep 6\p@ \@plus2\p@ \@minus2\p@
5721
 
    \parsep 3\p@ \@plus2\p@ \@minus\p@
5722
 
    \itemsep \parsep
5723
 
  }%
5724
 
}%
5725
 
%    \end{macrocode}
5726
 
%
5727
 
%    \begin{macrocode}
5728
 
\def\scriptsize{%
5729
 
  \@setfontsize\scriptsize\@viiipt{9.5pt}%
5730
 
}%
5731
 
\def\tiny{%
5732
 
  \@setfontsize\tiny\@vipt{7pt}%
5733
 
}%
5734
 
\def\large{%
5735
 
  \@setfontsize\large\@xivpt{18pt}%
5736
 
}%
5737
 
\def\Large{%
5738
 
  \@setfontsize\Large\@xviipt{22pt}%
5739
 
}%
5740
 
\def\LARGE{%
5741
 
  \@setfontsize\LARGE\@xxpt{25pt}%
5742
 
}%
5743
 
\def\huge{%
5744
 
    \@setfontsize\huge\@xxvpt{30pt}%
5745
 
}%
5746
 
\let\Huge=\huge
5747
 
%    \end{macrocode}
5748
 
%
5749
 
%    \begin{macrocode}
5750
 
%</12pt>
5751
 
%    \end{macrocode}
5752
 
%
5753
 
% \section{Page parameters}%
5754
 
% This code is common to both \classoption{11pt} and \classoption{12pt}.
5755
 
%
5756
 
%    \begin{macrocode}
5757
 
%<*11pt|12pt>
5758
 
%    \end{macrocode}
5759
 
%
5760
 
%    \begin{macrocode}
5761
 
\appdef\setup@hook{%
5762
 
 \twoside@sw{%
5763
 
  \oddsidemargin   0pt
5764
 
  \evensidemargin  0pt
5765
 
  \marginparwidth 60pt
5766
 
 }{%
5767
 
  \oddsidemargin 0pt
5768
 
  \evensidemargin 0pt
5769
 
  \marginparwidth 44pt
5770
 
 }%
5771
 
}%
5772
 
%    \end{macrocode}
5773
 
%
5774
 
%    \begin{macrocode}
5775
 
\marginparsep 10pt
5776
 
%    \end{macrocode}
5777
 
%
5778
 
%    \begin{macrocode}
5779
 
\topmargin -37pt
5780
 
%    \end{macrocode}
5781
 
%
5782
 
%    \begin{macrocode}
5783
 
\headheight 12pt
5784
 
\headsep 25pt
5785
 
%    \end{macrocode}
5786
 
%
5787
 
% \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}}%
5788
 
%    \begin{macrocode}
5789
 
\topskip 10pt
5790
 
\splittopskip\topskip
5791
 
%    \end{macrocode}
5792
 
%
5793
 
%    \begin{macrocode}
5794
 
\footskip 30pt
5795
 
%    \end{macrocode}
5796
 
5797
 
%    \begin{macrocode}
5798
 
\textheight=665.5\p@
5799
 
%    \end{macrocode}
5800
 
5801
 
%    \begin{macrocode}
5802
 
\appdef\setup@hook{%
5803
 
 \tightenlines@sw{%
5804
 
  \def\baselinestretch{1}%
5805
 
 }{%
5806
 
  \def\baselinestretch{1.5}%
5807
 
 }%
5808
 
}%
5809
 
%    \end{macrocode}
5810
 
%
5811
 
%    \begin{macrocode}
5812
 
\textwidth 468pt
5813
 
%    \end{macrocode}
5814
 
%
5815
 
%    \begin{macrocode}
5816
 
\columnsep 10pt
5817
 
\columnseprule 0pt
5818
 
%    \end{macrocode}
5819
 
%
5820
 
% \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}}%
5821
 
%    \begin{macrocode}
5822
 
\footnotesep 1pt
5823
 
\skip\footins 25.25pt plus 4pt minus 12pt
5824
 
\def\footnoterule{%
5825
 
 \dimen@\skip\footins\divide\dimen@\f@ur
5826
 
 \kern-\dimen@\hrule width.5in\kern\dimen@
5827
 
}%
5828
 
%    \end{macrocode}
5829
 
%
5830
 
%    \begin{macrocode}
5831
 
\floatsep        14pt plus 2pt minus 4pt
5832
 
\textfloatsep    20pt plus 2pt minus 4pt
5833
 
\intextsep       14pt plus 4pt minus 4pt
5834
 
%    \end{macrocode}
5835
 
%
5836
 
%    \begin{macrocode}
5837
 
\dblfloatsep     14pt plus 2pt minus 4pt
5838
 
\dbltextfloatsep 20pt plus 2pt minus 4pt
5839
 
%    \end{macrocode}
5840
 
%
5841
 
%    \begin{macrocode}
5842
 
\@fptop 0pt plus 1fil
5843
 
\@fpsep 10pt plus 2fil
5844
 
\@fpbot 0pt plus 1fil
5845
 
\@dblfptop 0pt plus 1fil
5846
 
\@dblfpsep 10pt plus 2fil%
5847
 
\@dblfpbot 0pt plus 1fil
5848
 
%    \end{macrocode}
5849
 
%
5850
 
%    \begin{macrocode}
5851
 
\marginparpush 7pt
5852
 
%    \end{macrocode}
5853
 
%
5854
 
%    \begin{macrocode}
5855
 
\parskip 0pt plus 1pt
5856
 
\parindent 15pt
5857
 
\emergencystretch8\p@
5858
 
\partopsep 3pt plus 2pt minus 2pt
5859
 
%    \end{macrocode}
5860
 
%
5861
 
%    \begin{macrocode}
5862
 
\leftmargini   30pt
5863
 
\leftmarginii  26pt
5864
 
\leftmarginiii 22pt
5865
 
\leftmarginiv  20pt
5866
 
\leftmarginv   12pt
5867
 
\leftmarginvi  12pt
5868
 
%    \end{macrocode}
5869
 
%
5870
 
%    \begin{macrocode}
5871
 
\def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@
5872
 
  \topsep 10\p@ plus4\p@ minus6\p@
5873
 
  \itemsep 5\p@ plus2.5\p@ minus\p@
5874
 
}%
5875
 
%    \end{macrocode}
5876
 
%
5877
 
%    \begin{macrocode}
5878
 
\labelsep 6pt
5879
 
%    \end{macrocode}
5880
 
%
5881
 
%    \begin{macrocode}
5882
 
\def\@listii{\leftmargin\leftmarginii
5883
 
  \labelwidth\leftmarginii\advance\labelwidth-\labelsep
5884
 
  \topsep 5\p@ plus2.5\p@ minus\p@
5885
 
  \parsep 2.5\p@ plus\p@ minus\p@
5886
 
  \itemsep \parsep
5887
 
}%
5888
 
%    \end{macrocode}
5889
 
%
5890
 
%    \begin{macrocode}
5891
 
\def\@listiii{\leftmargin\leftmarginiii
5892
 
  \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
5893
 
  \topsep 2.5\p@ plus\p@ minus\p@
5894
 
  \parsep \z@ \partopsep \p@ plus\z@ minus\p@
5895
 
  \itemsep \topsep
5896
 
}%
5897
 
%    \end{macrocode}
5898
 
%
5899
 
%    \begin{macrocode}
5900
 
\def\@listiv{\leftmargin\leftmarginiv
5901
 
  \labelwidth\leftmarginiv\advance\labelwidth-\labelsep
5902
 
}%
5903
 
%    \end{macrocode}
5904
 
%
5905
 
%    \begin{macrocode}
5906
 
\def\@listv{\leftmargin\leftmarginv
5907
 
  \labelwidth\leftmarginv\advance\labelwidth-\labelsep
5908
 
}%
5909
 
%    \end{macrocode}
5910
 
%
5911
 
%    \begin{macrocode}
5912
 
\def\@listvi{\leftmargin\leftmarginvi
5913
 
  \labelwidth\leftmarginvi\advance\labelwidth-\labelsep
5914
 
}%
5915
 
%    \end{macrocode}
5916
 
%
5917
 
%    \begin{macrocode}
5918
 
%</11pt|12pt>
5919
 
%    \end{macrocode}
5920
 
%
5921
 
% \section{The \classoption{aps} class extension: the \texttt{aps} module}
5922
 
% \changes{4.0b}{1999/06/20}{AO: made aps.rtx part of revtex4.dtx}
5923
 
% The file \file{aps.rtx} is read in by the \classname{revtex4} document class
5924
 
% if \cmd\@society\ has the value \classoption{aps}.
5925
 
%
5926
 
% Here, code specific to APS journals is separated out from the \revtex\ document class.
5927
 
% (Other societies can customize \revtex\ by supplying their own \file{.rtx} file.)
5928
 
%
5929
 
% This class extension file is a model for a class extension you might write yourself.
5930
 
%
5931
 
% First, incorporate a \cmd\ProvidesFile\ command with an optional argument giving
5932
 
% the version information, e.g.,
5933
 
% \begin{verbatim}
5934
 
% \ProvidesFile{foo}[2001/09/11 v1.1 Docinfo]%
5935
 
% \end{verbatim}
5936
 
%
5937
 
% Within the society substyle, there are two things we must do as well:
5938
 
% define the default journal, 
5939
 
%    \begin{verbatim}
5940
 
% \def\@journal@default{pra}%
5941
 
%    \end{verbatim}
5942
 
% And do likewise for the point size:
5943
 
%    \begin{verbatim}
5944
 
% \def\@pointsize@default{10}%
5945
 
%    \end{verbatim}
5946
 
%
5947
 
% We first define some text entities (amounting to journal abbreviations),
5948
 
% then some APS-specific initialisations,
5949
 
% then code for particular APS journals.
5950
 
% In the latter case, the choice is 
5951
 
% keyed off the macro \cmd\@journal.
5952
 
%
5953
 
%    \begin{macrocode}
5954
 
%<*aps>
5955
 
%    \end{macrocode}
5956
 
%
5957
 
% \subsection{Defend Against Forseeable Errors}%
5958
 
% Protect this file from being read in by anything but \revtex.
5959
 
%    \begin{macrocode}
5960
 
\ifx\undefined\substyle@ext
5961
 
 \def\@tempa{%
5962
 
  \endinput
5963
 
  \GenericWarning{I must be read in by REVTeX! (Bailing out)}%
5964
 
 }%
5965
 
 \expandafter\else
5966
 
  \def\@tempa{}%
5967
 
 \expandafter\fi\@tempa
5968
 
 \class@info{RevTeX society APS selected}%
5969
 
%    \end{macrocode}
5970
 
%
5971
 
% Here are the class options relating to the APS:
5972
 
%    \begin{macrocode}
5973
 
\DeclareOption{pra}{\change@journal{pra}}%
5974
 
\DeclareOption{prb}{\change@journal{prb}}%
5975
 
\DeclareOption{prc}{\change@journal{prc}}%
5976
 
\DeclareOption{prd}{\change@journal{prd}}%
5977
 
\DeclareOption{pre}{\change@journal{pre}}%
5978
 
\DeclareOption{prl}{\change@journal{prl}}%
5979
 
\DeclareOption{prstab}{\change@journal{prstab}}%
5980
 
\DeclareOption{prstper}{\change@journal{prstper}}%
5981
 
\DeclareOption{rmp}{\change@journal{rmp}}%
5982
 
%    \end{macrocode}
5983
 
%
5984
 
% \subsection{Abbreviations}%
5985
 
% \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} 
5986
 
% The following macros constitute typing shortcuts for
5987
 
% certain journal names.
5988
 
%    \begin{macrocode}
5989
 
\def\ao{Appl.\  Opt.}%
5990
 
\def\ap{Appl.\  Phys.}%
5991
 
\def\apl{Appl.\ Phys.\ Lett.}%
5992
 
\def\apj{Astrophys.\ J.}%
5993
 
\def\bell{Bell Syst.\ Tech.\ J.}%
5994
 
\def\jqe{IEEE J.\ Quantum Electron.}%
5995
 
\def\assp{IEEE Trans.\ Acoust.\ Speech Signal Process.}%
5996
 
\def\aprop{IEEE Trans.\ Antennas Propag.}%
5997
 
\def\mtt{IEEE Trans.\ Microwave Theory Tech.}%
5998
 
\def\iovs{Invest.\ Ophthalmol.\ Vis.\ Sci.}%
5999
 
\def\jcp{J.\ Chem.\ Phys.}%
6000
 
\def\jmo{J.\ Mod.\ Opt.}%
6001
 
\def\josa{J.\ Opt.\ Soc.\ Am.}%
6002
 
\def\josaa{J.\ Opt.\ Soc.\ Am.\ A}%
6003
 
\def\josab{J.\ Opt.\ Soc.\ Am.\ B}%
6004
 
\def\jpp{J.\ Phys.\ (Paris)}%
6005
 
\def\nat{Nature (London)}%
6006
 
\def\oc{Opt.\ Commun.}%
6007
 
\def\ol{Opt.\ Lett.}%
6008
 
\def\pl{Phys.\ Lett.}%
6009
 
\def\pra{Phys.\ Rev.\ A}%
6010
 
\def\prb{Phys.\ Rev.\ B}%
6011
 
\def\prc{Phys.\ Rev.\ C}%
6012
 
\def\prd{Phys.\ Rev.\ D}%
6013
 
\def\pre{Phys.\ Rev.\ E}%
6014
 
\def\prl{Phys.\ Rev.\ Lett.}%
6015
 
\def\rmp{Rev.\ Mod.\ Phys.}%
6016
 
\def\pspie{Proc.\ Soc.\ Photo-Opt.\ Instrum.\ Eng.}%
6017
 
\def\sjqe{Sov.\ J.\ Quantum Electron.}%
6018
 
\def\vr{Vision Res.}%
6019
 
%    \end{macrocode}
6020
 
%
6021
 
% \subsection{APS Setup}%
6022
 
% Here we define the default procedures for APS journals.
6023
 
% Individual APS journals may override these definitions.
6024
 
%
6025
 
% \subsubsection{Title block}%
6026
 
%
6027
 
% The specifics of the title block.
6028
 
% Apply to all APS journals; individual journals may override these settings.
6029
 
%
6030
 
% \begin{macro}{\@fnsymbol}
6031
 
% The \LaTeX\ kernel definition of \cmd\@fnsymbol\ is overridden.
6032
 
% The definition in \filename{fixltx2e.sty} serves as a guide to the new way to symbol,
6033
 
% working in both text- and math modes. 
6034
 
%
6035
 
% \filename{fixltx2e.sty} duplicates some features of \filename{ltxgrid} and \filename{ltxutil},
6036
 
% however, so it may be incompatible with \revtex. 
6037
 
% In case it is not loaded, we must provide a meaning for \cmd\TextOrMath,
6038
 
% which that package makes robust. 
6039
 
% I believe that it is \cmd\@fnsymbol\ itself that ought to be robustified.
6040
 
% e\TeX\ further complicates matters; we do not especially accomodate it. 
6041
 
%
6042
 
% \changes{4.1d}{2009/03/27}{Definition of \cs{ @fnsymbol} follows fixltx2e.sty}
6043
 
%
6044
 
% Not! \cmd\TextOrMath\ must be made robust in any case (Bug 530). I return things to follow
6045
 
% core \LaTeXe\ (\filename{latex.ltx}). 
6046
 
% \changes{4.1f}{2009/10/05}{(AO, 530) \cs{@fnsymbol}: Failed to import fixltx2e.sty technology. Return to LaTeX core.}
6047
 
%    \begin{macrocode}
6048
 
\def\@fnsymbol#1{%
6049
 
 \ensuremath{%
6050
 
  \ifcase#1\or 
6051
 
   *\or
6052
 
   \dagger\or
6053
 
   \ddagger\or
6054
 
   \mathsection\or
6055
 
   \mathparagraph\or
6056
 
%  \|\or
6057
 
   **\or
6058
 
   \dagger\dagger\or
6059
 
   \ddagger\ddagger\else
6060
 
   \mathsection\mathsection\or
6061
 
   \mathparagraph\mathparagraph\or
6062
 
   ***\or
6063
 
   \dagger\dagger\dagger\or
6064
 
   \ddagger\ddagger\ddagger\else
6065
 
   \mathsection\mathsection\mathsection\or
6066
 
   \mathparagraph\mathparagraph\mathparagraph\or
6067
 
%
6068
 
   \@ctrerr 
6069
 
  \fi
6070
 
 }%
6071
 
}%
6072
 
\appdef\document@inithook{%
6073
 
 \@ifxundefined\TextOrMath{%
6074
 
  \DeclareRobustCommand\TextOrMath{\@ifmmode{\false@sw}{\true@sw}}%
6075
 
 }{}%
6076
 
}%
6077
 
\let\thefootnote@latex\thefootnote
6078
 
%    \end{macrocode}
6079
 
% \end{macro}
6080
 
%
6081
 
% We assign the default titlepage style for APS; a journal or document instance 
6082
 
% may override by invoking one of the other \cmd\clo@... procedures defined in \revtex.
6083
 
%    \begin{macrocode}
6084
 
\clo@groupedaddress
6085
 
%    \end{macrocode}
6086
 
%
6087
 
% \begin{macro}{\titlepage}
6088
 
%    \begin{macrocode}
6089
 
\renewenvironment{titlepage}{%
6090
 
  \let\wastwocol@sw\twocolumn@sw
6091
 
  \onecolumngrid
6092
 
  \newpage
6093
 
  \thispagestyle{titlepage}%
6094
 
  \c@page\z@
6095
 
%    \end{macrocode}
6096
 
% A comment: ``article.cls sets this to one not zero?''
6097
 
%    \begin{macrocode}
6098
 
}{%
6099
 
  \wastwocol@sw{\twocolumngrid}{\newpage}%
6100
 
}%
6101
 
%    \end{macrocode}
6102
 
% \end{macro}
6103
 
%
6104
 
% \begin{macro}{\frontmatter@abstractheading}
6105
 
% APS Journals all set the abstract head the same way, with no head.
6106
 
% However, if the user has specified the \classoption{preprint} class option,
6107
 
% then the abstract will have a head.
6108
 
%    \begin{macrocode}
6109
 
\def\frontmatter@abstractheading{%
6110
 
 \preprintsty@sw{%
6111
 
  \begingroup
6112
 
   \centering\large
6113
 
   \abstractname
6114
 
   \par
6115
 
  \endgroup
6116
 
 }{}%
6117
 
}%
6118
 
%    \end{macrocode}
6119
 
% \end{macro}
6120
 
%
6121
 
% \begin{macro}{\frontmatter@abstractwidth}
6122
 
% All APS journals set the abstract to the same width.
6123
 
%    \begin{macrocode}
6124
 
\def\frontmatter@abstractwidth{400\p@}%
6125
 
%    \end{macrocode}
6126
 
% \end{macro}
6127
 
%
6128
 
% \begin{macro}{\frontmatter@abstractfont}
6129
 
% All APS journals set the abstract body the same way.
6130
 
% \changes{4.0c}{1999/11/13}{(AO, 123) add parskip to the abstract.}
6131
 
% \changes{4.1e}{2008/06/29}{(AO, 455) be nice to a list within the abstract}
6132
 
%    \begin{macrocode}
6133
 
\def\frontmatter@abstractfont{%
6134
 
 \small
6135
 
 \parindent1em\relax
6136
 
 \adjust@abstractwidth
6137
 
}%
6138
 
\def\adjust@abstractwidth{%
6139
 
 \dimen@\textwidth\advance\dimen@-\frontmatter@abstractwidth
6140
 
 \divide\dimen@\tw@
6141
 
 \galley@sw{%
6142
 
  \advance\rightskip\tw@\dimen@
6143
 
 }{%
6144
 
  \advance\leftskip\dimen@
6145
 
  \advance\rightskip\dimen@
6146
 
 }%
6147
 
 \@totalleftmargin\leftskip
6148
 
}%
6149
 
%    \end{macrocode}
6150
 
% \end{macro}
6151
 
%
6152
 
% All APS journal preprints use separate titlepage and full-width abstract.
6153
 
6154
 
% In effect, we establish a society default value for \cmd\preprintsty@sw,
6155
 
% and for \cmd\titlepage@sw.
6156
 
%    \begin{macrocode}
6157
 
\@booleanfalse\preprintsty@sw
6158
 
\@booleantrue\titlepage@sw
6159
 
%    \end{macrocode}
6160
 
%
6161
 
% We choose the page style for all APS journals. 
6162
 
% The journal may override by inserting its own code in \cmd\setup@hook. 
6163
 
% Users wishing to customize their documents will be able to invoke a \cmd\pagestyle\
6164
 
% command anywhere in the preamble; it will override the assignments here. 
6165
 
%
6166
 
% Here is the big switch for APS preprints. Note that \cmd\preprintsty@sw
6167
 
% is also consulted in various procedures, but we assume its value does 
6168
 
% not change after \cmd\setup@hook\ time. 
6169
 
%    \begin{macrocode}
6170
 
\appdef\setup@hook{%
6171
 
  \preprintsty@sw{%
6172
 
   \ps@preprint
6173
 
   \def\frontmatter@abstractwidth{\textwidth}%
6174
 
   \def\frontmatter@affiliationfont{\it}%
6175
 
   \let\section\section@preprintsty
6176
 
%    \end{macrocode}
6177
 
% The following line of code had been commented out at this point.
6178
 
%    \begin{verbatim}
6179
 
%  \let\@hangfrom@section\@hangfrom@section@preprintsty
6180
 
%    \end{verbatim}
6181
 
%    \begin{macrocode}
6182
 
   \let\subsection\subsection@preprintsty
6183
 
   \let\subsubsection\subsubsection@preprintsty
6184
 
  }{%
6185
 
   \ps@article
6186
 
  }%
6187
 
}%
6188
 
%    \end{macrocode}
6189
 
%
6190
 
% \begin{macro}{\frontmatter@authorformat}
6191
 
% All APS journals set the author list the same.
6192
 
% The leading is 11.5 points, and
6193
 
% there is 11.5 points of extra space above the first author line
6194
 
% (which amounts to the same thing as 11.5 points extra below the title)
6195
 
% for a total of 23 points base-to-base.
6196
 
%
6197
 
%    \begin{macrocode}
6198
 
\def\frontmatter@authorformat{%
6199
 
 \skip@\@flushglue
6200
 
 \@flushglue\z@ plus.3\hsize\relax
6201
 
 \centering
6202
 
 \advance\baselineskip\p@
6203
 
 \parskip11.5\p@\relax
6204
 
 \@flushglue\skip@
6205
 
%    \end{macrocode}
6206
 
% The following line of code had been commented out at this point.
6207
 
%    \begin{verbatim}
6208
 
%\preprintsty@sw{}{%
6209
 
% \addvspace{0\p@}%
6210
 
%}%
6211
 
%    \end{verbatim}
6212
 
%    \begin{macrocode}
6213
 
}%
6214
 
%    \end{macrocode}
6215
 
% \end{macro}
6216
 
%
6217
 
% \begin{macro}{\frontmatter@above@affilgroup}
6218
 
% The default amount of space above affiliation.
6219
 
% APS Journals have 24 points b-b above an affiliation group.
6220
 
%    \begin{macrocode}
6221
 
\def\frontmatter@above@affilgroup{%
6222
 
%    \end{macrocode}
6223
 
% The following line of code had been commented out at this point.
6224
 
%    \begin{verbatim}
6225
 
%\preprintsty@sw{}{%
6226
 
% \addvspace{11\p@}%
6227
 
%}%
6228
 
%    \end{verbatim}
6229
 
%    \begin{macrocode}
6230
 
}%
6231
 
%    \end{macrocode}
6232
 
% \end{macro}
6233
 
%
6234
 
% \begin{macro}{\frontmatter@above@affiliation}
6235
 
% \begin{macro}{\frontmatter@above@affiliation@script}
6236
 
% The default amount of space above affiliation.
6237
 
% APS Journals have no extra space between author group down to common affiliation.
6238
 
%    \begin{macrocode}
6239
 
\def\frontmatter@above@affiliation@script{%
6240
 
 \skip@\@flushglue
6241
 
 \@flushglue\z@ plus.3\hsize\relax
6242
 
 \centering
6243
 
 \@flushglue\skip@
6244
 
 \addvspace{3.5\p@}%
6245
 
}%
6246
 
\def\frontmatter@above@affiliation{%
6247
 
 \preprintsty@sw{}{%
6248
 
%    \end{macrocode}
6249
 
% The following line of code had been commented out at this point.
6250
 
%    \begin{verbatim}
6251
 
% \addvspace{12\p@}%
6252
 
%    \end{verbatim}
6253
 
%    \begin{macrocode}
6254
 
 }%
6255
 
}%
6256
 
%    \end{macrocode}
6257
 
% \end{macro}
6258
 
% \end{macro}
6259
 
%
6260
 
% \begin{macro}{\frontmatter@affiliationfont}
6261
 
% All APS journals set the affiliation the same.
6262
 
%    \begin{macrocode}
6263
 
\def\frontmatter@affiliationfont{%
6264
 
 \small\it
6265
 
}%
6266
 
%    \end{macrocode}
6267
 
% \end{macro}
6268
 
%
6269
 
% \begin{macro}{\frontmatter@collaboration@above}
6270
 
% PRL: 1.5 points extra: 13 points base-to-base above.
6271
 
%    \begin{macrocode}
6272
 
\def\frontmatter@collaboration@above{%
6273
 
 \preprintsty@sw{%
6274
 
 }{%
6275
 
  \parskip1.5\p@\relax
6276
 
 }%
6277
 
}%
6278
 
%    \end{macrocode}
6279
 
% \end{macro}
6280
 
%
6281
 
% \begin{macro}{\frontmatter@setup}
6282
 
% All APS journals set the title page using the same font and size.
6283
 
% However, justification varies for the title block elements, so
6284
 
% we assert none here.
6285
 
%    \begin{macrocode}
6286
 
\def\frontmatter@setup{%
6287
 
 \normalfont
6288
 
}%
6289
 
%    \end{macrocode}
6290
 
% \end{macro}
6291
 
%
6292
 
% \begin{macro}{\frontmatter@title@above}
6293
 
% \begin{macro}{\frontmatter@title@format}
6294
 
% \begin{macro}{\frontmatter@title@below}
6295
 
% All APS journals set the article title the same.
6296
 
%
6297
 
% Note: Spacing from title to author is 23 points base-to-base.
6298
 
%    \begin{macrocode}
6299
 
\def\frontmatter@title@above{\addvspace{6\p@}}%
6300
 
\def\frontmatter@title@format{\large\bfseries\centering\parskip\z@skip}%
6301
 
\def\frontmatter@title@below{}%
6302
 
%    \end{macrocode}
6303
 
% \end{macro}
6304
 
% \end{macro}
6305
 
% \end{macro}
6306
 
%
6307
 
% \begin{macro}{\frontmatter@makefnmark}
6308
 
% All APS journals share this procedure for setting the titlepage footnote text.
6309
 
%    \begin{macrocode}
6310
 
\def\@author@parskip{3\p@}%
6311
 
\def\frontmatter@makefnmark{%
6312
 
 \@textsuperscript{%
6313
 
  \normalfont\@thefnmark
6314
 
 }%
6315
 
}%
6316
 
\def\frontmatter@authorbelow{%
6317
 
 \addvspace{3\p@}%
6318
 
}%
6319
 
%    \end{macrocode}
6320
 
% \end{macro}
6321
 
%
6322
 
% \begin{macro}{\frontmatter@RRAP@format}
6323
 
% All APS journals use the same format for the ``Received, Revised, etc.'' block on the title page.
6324
 
%
6325
 
% Change note: 11.5 points b-b from author/affiliation down to date.
6326
 
%    \begin{macrocode}
6327
 
\def\frontmatter@RRAP@format{%
6328
 
  \small
6329
 
  \centering
6330
 
%    \end{macrocode}
6331
 
% The following line of code had been commented out at this point.
6332
 
%    \begin{verbatim}
6333
 
% \preprintsty@sw{}{\parskip.5ex\relax}%
6334
 
%    \end{verbatim}
6335
 
%    \begin{macrocode}
6336
 
  \everypar{\hbox\bgroup(\@gobble@leavemode@uppercase}%
6337
 
  \def\par{\@ifvmode{}{\unskip)\egroup\@@par}}%
6338
 
}%
6339
 
\def\punct@RRAP{;\egroup\ \hbox\bgroup}%
6340
 
\def\@gobble@leavemode@uppercase#1#2{\expandafter\MakeTextUppercase}%
6341
 
%    \end{macrocode}
6342
 
% \end{macro}
6343
 
%
6344
 
% \begin{macro}{\frontmatter@PACS@format}
6345
 
6346
 
%    \begin{macrocode}
6347
 
\def\frontmatter@PACS@format{%
6348
 
   \addvspace{11\p@}%
6349
 
   \footnotesize
6350
 
   \adjust@abstractwidth
6351
 
   \parindent\z@
6352
 
   \parskip\z@skip
6353
 
   \samepage
6354
 
}%
6355
 
%    \end{macrocode}
6356
 
% \end{macro}
6357
 
%
6358
 
% \begin{macro}{\frontmatter@keys@format}
6359
 
6360
 
%    \begin{macrocode}
6361
 
\def\frontmatter@keys@format{%
6362
 
   \footnotesize
6363
 
   \adjust@abstractwidth
6364
 
   \parindent\z@
6365
 
   \samepage
6366
 
}%
6367
 
%    \end{macrocode}
6368
 
% \end{macro}
6369
 
%
6370
 
% \begin{macro}{\ps@titlepage}
6371
 
% \changes{4.0a}{1998/06/10}{multiple preprint commands}
6372
 
% \changes{4.0b}{1999/06/20}{Stack \cs{preprint} args flush right at right margin.}
6373
 
% Title page style. Currently empty except for preprint header,
6374
 
% which consists of all the \cmd\preprint\ arguments,
6375
 
% stacked flush right at the right margin.
6376
 
% \changes{4.0c}{1999/11/13}{Insert procedure \cs{checkindate}}
6377
 
%    \begin{macrocode}
6378
 
\def\ps@titlepage{%
6379
 
  \def\@oddhead{%
6380
 
   \hfill
6381
 
   \preprint@sw{%
6382
 
    \expandafter\produce@preprints\expandafter{\@preprint}%
6383
 
   }{}%
6384
 
  }%
6385
 
  \let\@evenhead\@oddhead
6386
 
  \def\@oddfoot{%
6387
 
   \hb@xt@\z@{\byrevtex\hss}%
6388
 
   \hfil
6389
 
   \preprintsty@sw{\thepage}{}%
6390
 
   \quad\checkindate
6391
 
   \hfil
6392
 
  }%
6393
 
  \let\@evenfoot\@oddfoot
6394
 
}%
6395
 
\def\byrevtex{\byrevtex@sw{Typeset by REV\TeX}{}}%
6396
 
%    \end{macrocode}
6397
 
% \end{macro}
6398
 
%
6399
 
% \begin{macro}{\produce@preprints}
6400
 
% \changes{4.0c}{1999/11/13}{(AO, 115) If three or more preprints specified, set on single line, with commas.}
6401
 
%    \begin{macrocode}
6402
 
\def\produce@preprints#1{%
6403
 
 \vtop to \z@{%
6404
 
  \def\baselinestretch{1}%
6405
 
  \small
6406
 
  \let\preprint\preprint@count
6407
 
  \count@\z@
6408
 
  #1%
6409
 
  \@ifnum{\count@>\tw@}{%
6410
 
   \hbox{%
6411
 
    \let\preprint\preprint@hlist
6412
 
    #1%
6413
 
    \setbox\z@\lastbox
6414
 
   }%
6415
 
  }{%
6416
 
   \let\preprint\preprint@cr
6417
 
   \halign{\hfil##\cr#1\crcr}%
6418
 
   \par
6419
 
   \vss
6420
 
  }%
6421
 
 }%
6422
 
}%
6423
 
\def\preprint@cr#1{#1\cr}%
6424
 
\def\preprint@count#1{\advance\count@\@ne}%
6425
 
\def\preprint@hlist#1{#1\hbox{, }}%
6426
 
%    \end{macrocode}
6427
 
% \end{macro}
6428
 
%
6429
 
% \subsubsection{Stacked Heads}%
6430
 
% All APS journals put a period (.), followed by quad space, after the section number.
6431
 
% Also, no hanging section number.
6432
 
%    \begin{macrocode}
6433
 
\def\@seccntformat#1{\csname the#1\endcsname.\quad}%
6434
 
\def\@hang@from#1#2#3{#1#2#3}%
6435
 
%    \end{macrocode}
6436
 
%
6437
 
% Note that in the following, we wish to set the section head uppercase, so we use
6438
 
% David Carlisle's \cmd\MakeTextUppercase. However, because this procedure effectively 
6439
 
% parses its argument (looking for things to \emph{not} translate), it has to be invoked
6440
 
% in such a way that the argument of the \cmd\section\ command is passed to it as its
6441
 
% own argument. 
6442
 
%
6443
 
% To accomplish this, we use the \cmd\@hangfrom@\ hook, which was developed for this 
6444
 
% purpose.
6445
 
%
6446
 
%    \begin{macrocode}
6447
 
\def\section{%
6448
 
  \@startsection
6449
 
    {section}%
6450
 
    {1}%
6451
 
    {\z@}%
6452
 
    {0.8cm \@plus1ex \@minus .2ex}%
6453
 
    {0.5cm}%
6454
 
    {%
6455
 
      \normalfont\small\bfseries
6456
 
      \centering
6457
 
    }%
6458
 
}%
6459
 
\def\@hangfrom@section#1#2#3{\@hangfrom{#1#2}\MakeTextUppercase{#3}}%
6460
 
\def\@hangfroms@section#1#2{#1\MakeTextUppercase{#2}}%
6461
 
%    \end{macrocode}
6462
 
%
6463
 
%    \begin{macrocode}
6464
 
\def\subsection{%
6465
 
  \@startsection
6466
 
    {subsection}%
6467
 
    {2}%
6468
 
    {\z@}%
6469
 
    {.8cm \@plus1ex \@minus .2ex}%
6470
 
    {.5cm}%
6471
 
    {%
6472
 
     \normalfont\small\bfseries
6473
 
     \centering
6474
 
    }%
6475
 
}%
6476
 
%    \end{macrocode}
6477
 
%
6478
 
%    \begin{macrocode}
6479
 
\def\subsubsection{%
6480
 
  \@startsection
6481
 
    {subsubsection}%
6482
 
    {3}%
6483
 
    {\z@}%
6484
 
    {.8cm \@plus1ex \@minus .2ex}%
6485
 
    {.5cm}%
6486
 
    {%
6487
 
     \normalfont\small\itshape
6488
 
     \centering
6489
 
    }%
6490
 
}%
6491
 
%    \end{macrocode}
6492
 
%
6493
 
% \subsubsection{Runin Heads}%
6494
 
%    \begin{macrocode}
6495
 
\def\paragraph{%
6496
 
  \@startsection
6497
 
    {paragraph}%
6498
 
    {4}%
6499
 
    {\parindent}%
6500
 
    {\z@}%
6501
 
    {-1em}%
6502
 
    {\normalfont\normalsize\itshape}%
6503
 
}%
6504
 
%    \end{macrocode}
6505
 
%
6506
 
%    \begin{macrocode}
6507
 
\def\subparagraph{%
6508
 
  \@startsection
6509
 
    {subparagraph}%
6510
 
    {5}%
6511
 
    {\parindent}%
6512
 
    {3.25ex \@plus1ex \@minus .2ex}%
6513
 
    {-1em}%
6514
 
    {\normalfont\normalsize\bfseries}%
6515
 
}%
6516
 
%    \end{macrocode}
6517
 
%
6518
 
%
6519
 
%
6520
 
% \begin{macro}{\section@preprintsty}
6521
 
% \begin{macro}{\subsection@preprintsty}
6522
 
% \begin{macro}{\subsubsection@preprintsty}
6523
 
% Here are the formatting procedures specific to the preprint style;
6524
 
% the only difference is that the heads are flush left instead of centered.
6525
 
%
6526
 
%    \begin{macrocode}
6527
 
\def\section@preprintsty{%
6528
 
  \@startsection
6529
 
    {section}%
6530
 
    {1}%
6531
 
    {\z@}%
6532
 
    {0.8cm \@plus1ex \@minus .2ex}%
6533
 
    {0.5cm}%
6534
 
    {%
6535
 
      \normalfont\small\bfseries
6536
 
%     \centering
6537
 
    }%
6538
 
}%
6539
 
%\def\@hangfrom@section@preprintsty#1#2#3{\@hangfrom{#1#2}\MakeTextUppercase{#3}}%
6540
 
%    \end{macrocode}
6541
 
%    \begin{macrocode}
6542
 
\def\subsection@preprintsty{%
6543
 
  \@startsection
6544
 
    {subsection}%
6545
 
    {2}%
6546
 
    {\z@}%
6547
 
    {.8cm \@plus1ex \@minus .2ex}%
6548
 
    {.5cm}%
6549
 
    {%
6550
 
     \normalfont\small\bfseries
6551
 
%    \centering
6552
 
    }%
6553
 
}%
6554
 
%    \end{macrocode}
6555
 
%    \begin{macrocode}
6556
 
\def\subsubsection@preprintsty{%
6557
 
  \@startsection
6558
 
    {subsubsection}%
6559
 
    {3}%
6560
 
    {\z@}%
6561
 
    {.8cm \@plus1ex \@minus .2ex}%
6562
 
    {.5cm}%
6563
 
    {%
6564
 
     \normalfont\small\itshape
6565
 
%    \centering
6566
 
    }%
6567
 
}%
6568
 
%    \end{macrocode}
6569
 
% \end{macro}
6570
 
% \end{macro}
6571
 
% \end{macro}
6572
 
%
6573
 
% By default, APS journals set titlepage notes as footnotes.
6574
 
%    \begin{verbatim}
6575
 
\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote
6576
 
%    \end{verbatim}
6577
 
%
6578
 
% \subsubsection{Table of Contents}%
6579
 
% The toc will itself make an entry in the toc, 
6580
 
% but we temporarily turn off toc formatting for the duration.
6581
 
% \changes{4.1a}{2008/01/19}{(AO, 461) Change the csname revtex uses from @dotsep to ltxu@dotsep. The former is understood in mu. (What we wanted was a dimension.)}%
6582
 
%    \begin{macrocode}
6583
 
\def\@pnumwidth{1.55em}%
6584
 
\def\@tocrmarg {2.55em}%
6585
 
\def\@dotsep{2}%
6586
 
\def\ltxu@dotsep{4.5pt}%
6587
 
\setcounter{tocdepth}{3}%
6588
 
%    \end{macrocode}
6589
 
%
6590
 
%    \begin{macrocode}
6591
 
\def\tableofcontents{%
6592
 
 \addtocontents{toc}{\string\tocdepth@munge}%
6593
 
 \print@toc{toc}%
6594
 
 \addtocontents{toc}{\string\tocdepth@restore}%
6595
 
}%
6596
 
%    \end{macrocode}
6597
 
%
6598
 
%    \begin{macrocode}
6599
 
\def\tocdepth@munge{%
6600
 
  \let\l@section@saved\l@section
6601
 
  \let\l@section\@gobble@tw@
6602
 
}%
6603
 
\def\@gobble@tw@#1#2{}%
6604
 
%    \end{macrocode}
6605
 
%
6606
 
%    \begin{macrocode}
6607
 
\def\tocdepth@restore{%
6608
 
  \let\l@section\l@section@saved
6609
 
}%
6610
 
%    \end{macrocode}
6611
 
%
6612
 
% The following definition of \cmd\l@part\ is a variant on
6613
 
% the definition of \cmd\l@@sections\ in \file{ltxutil.dtx}.
6614
 
%    \begin{macrocode}
6615
 
\def\l@part#1#2{\addpenalty{\@secpenalty}%
6616
 
 \begingroup
6617
 
  \set@tocdim@pagenum\@tempboxa{#2}%
6618
 
% \@tempdima 3em %
6619
 
  \parindent \z@
6620
 
  \rightskip\tocleft@pagenum plus 1fil\relax
6621
 
  \skip@\parfillskip\parfillskip\z@
6622
 
  \addvspace{2.25em plus\p@}%
6623
 
  \large \bf %
6624
 
  \leavevmode\ignorespaces#1\unskip\nobreak\hskip\skip@
6625
 
  \hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip
6626
 
  \par
6627
 
  \nobreak %
6628
 
 \endgroup
6629
 
}%
6630
 
%    \end{macrocode}
6631
 
%
6632
 
% \begin{macro}{\l@section}
6633
 
% Determine which TOC elements are automatically indented.
6634
 
%
6635
 
% We set the TOC to the standard of RMP. 
6636
 
% If APS has its own specification, we will code it, and RMP must override.
6637
 
%    \begin{macrocode}
6638
 
\def\tocleft@{\z@}%
6639
 
\def\tocdim@min{5\p@}%
6640
 
\def\l@section{%
6641
 
 \l@@sections{}{section}% Implicit #3#4
6642
 
}%
6643
 
\def\l@f@section{%
6644
 
 \addpenalty{\@secpenalty}%
6645
 
 \addvspace{1.0em plus\p@}%
6646
 
 %\bf
6647
 
}%
6648
 
\def\l@subsection{%
6649
 
 \l@@sections{section}{subsection}% Implicit #3#4
6650
 
}%
6651
 
\def\l@subsubsection{%
6652
 
 \l@@sections{subsection}{subsubsection}% Implicit #3#4
6653
 
}%
6654
 
\def\l@paragraph#1#2{}%
6655
 
\def\l@subparagraph#1#2{}%
6656
 
%    \end{macrocode}
6657
 
% \end{macro}
6658
 
%
6659
 
% Activate the auto TOC processing.
6660
 
%    \begin{macrocode}
6661
 
\let\toc@pre\toc@pre@auto
6662
 
\let\toc@post\toc@post@auto
6663
 
%    \end{macrocode}
6664
 
%
6665
 
% \subsubsection{Default column bottom}%
6666
 
% All APS journal styles have flush bottoms.
6667
 
%\changes{4.1n}{2009/11/30}{(AO, 566) restore 4.0 behavior: flush column bottoms}
6668
 
%    \begin{macrocode}
6669
 
\@booleanfalse\raggedcolumn@sw
6670
 
%    \end{macrocode}
6671
 
%
6672
 
%
6673
 
% \subsubsection{Table alignment style}%
6674
 
%
6675
 
% \begin{macro}{\tableft@skip@float}
6676
 
% \begin{macro}{\tabmid@skip@float}
6677
 
% \begin{macro}{\tabright@skip@float}
6678
 
% \begin{macro}{\array@row@pre@float}
6679
 
% \begin{macro}{\array@row@pst@float}
6680
 
% All APS publications have the same table specification:
6681
 
% Scotch rules above and below, centered in column.
6682
 
%    \begin{macrocode}
6683
 
\def\tableft@skip@float{\z@ plus\hsize}%
6684
 
\def\tabmid@skip@float{\@flushglue}%
6685
 
\def\tabright@skip@float{\z@ plus\hsize}%
6686
 
\def\array@row@pre@float{\hline\hline\noalign{\vskip\doublerulesep}}%
6687
 
\def\array@row@pst@float{\noalign{\vskip\doublerulesep}\hline\hline}%
6688
 
%    \end{macrocode}
6689
 
% \end{macro}
6690
 
% \end{macro}
6691
 
% \end{macro}
6692
 
% \end{macro}
6693
 
% \end{macro}
6694
 
%
6695
 
%
6696
 
% \subsubsection{Footnote formatting}%
6697
 
% \changes{4.1n}{2010/01/02}{(AO, 572) \cs{@makefntext} and \cs{frontmatter@makefntext} must be defined harmoniously}%
6698
 
% We customize the formatting of footnotes for all APS journals.
6699
 
% \begin{macro}{\@makefntext}
6700
 
%    \begin{macrocode}
6701
 
\long\def\@makefntext#1{%
6702
 
 \def\baselinestretch{1}%
6703
 
 \leftskip1em%
6704
 
 \parindent1em%
6705
 
 \noindent
6706
 
 \nobreak\hskip-\leftskip
6707
 
 \hb@xt@\leftskip{%
6708
 
  \hss\@makefnmark\ %
6709
 
 }%
6710
 
 #1%
6711
 
 \par
6712
 
}%
6713
 
%    \end{macrocode}
6714
 
% \end{macro}
6715
 
% \begin{macro}{\frontmatter@makefntext}
6716
 
% We ensure that frontmatter footnotes format similarly to body footnotes. 
6717
 
% But we provide our own hypertext anchor, otherwise not provided.
6718
 
% \changes{4.1n}{2010/01/02}{(AO, 572) Independent footnote counter for title block. Abstract footnote counter shared with body.}%
6719
 
%    \begin{macrocode}
6720
 
\long\def\frontmatter@makefntext#1{%
6721
 
 \def\baselinestretch{1}%
6722
 
 \leftskip1em%
6723
 
 \parindent1em%
6724
 
 \noindent
6725
 
 \nobreak\hskip-\leftskip
6726
 
 \Hy@raisedlink{\hyper@anchorstart{frontmatter.\expandafter\the\csname c@\@mpfn\endcsname}\hyper@anchorend}%
6727
 
 \hb@xt@\leftskip{%
6728
 
  \hss\@makefnmark\ %
6729
 
 }%
6730
 
 #1%
6731
 
 \par
6732
 
}%
6733
 
%    \end{macrocode}
6734
 
% \end{macro}
6735
 
%
6736
 
%
6737
 
% \subsubsection{Appendix}%
6738
 
% \begin{macro}{\appendix}
6739
 
% \begin{macro}{\@hangfrom@appendix}
6740
 
% \begin{macro}{\@hangfroms@appendix}
6741
 
% \begin{macro}{\@appendixcntformat}
6742
 
% \changes{4.0c}{1999/11/13}{(AO, 129) section* within appendix was producing appendixname}
6743
 
%    \begin{macrocode}
6744
 
\prepdef\appendix{%
6745
 
 \par
6746
 
 \let\@hangfrom@section\@hangfrom@appendix
6747
 
%\let\@hangfroms@section\@hangfroms@appendix
6748
 
 \let\@sectioncntformat\@appendixcntformat
6749
 
}%
6750
 
\def\@hangfrom@appendix#1#2#3{%
6751
 
 #1%
6752
 
 \@if@empty{#2}{%
6753
 
  #3%
6754
 
 }{%
6755
 
  #2\@if@empty{#3}{}{:\ #3}%
6756
 
 }%
6757
 
}%
6758
 
\def\@hangfroms@appendix#1#2{%
6759
 
 #1#2%
6760
 
}%
6761
 
\def\@appendixcntformat#1{\appendixname\ \csname the#1\endcsname}%
6762
 
%    \end{macrocode}
6763
 
% \end{macro}
6764
 
% \end{macro}
6765
 
% \end{macro}
6766
 
% \end{macro}
6767
 
%
6768
 
% \subsubsection{Bibliography}%
6769
 
% \changes{4.1n}{2010/01/04}{(AO, 576) In .bst files, remove support for the annote field}%
6770
 
%
6771
 
% Customize \revtex\ for the journal substyle;
6772
 
% this task requires three components:
6773
 
% the \BibTeX\ \file{apsrev.bst} and \file{apsrmp.bst} style files, and
6774
 
% customizations of the \env{thebibliography} environment.
6775
 
%
6776
 
% \begin{macro}{\@bibstyle}
6777
 
% Define the argument of the \cmd\bibliographystyle\ command
6778
 
% (if the document does not do so).
6779
 
% The user must have installed a \file{.bst} file of the corresponding name.
6780
 
% This file will then be used by \BibTeX\ when compiling the document's \file{.bbl} file.
6781
 
%
6782
 
%  To generate \file{apsrev.bst}, use \classname{custom-bib} version 4.21 or later.
6783
 
%  Run the \file{.bst} generator, \file{makebst.tex}, and
6784
 
%  accept all defaults, with the following exceptions:
6785
 
%
6786
 
% \def\QandA#1#2#3{\item#1: \textbf{#2}: \texttt{#3}---}%
6787
 
% \def\CandE#1{\item\relax\texttt{#1}---}%
6788
 
% \begin{enumerate}
6789
 
% \QandA{LANGUAGE FIELD}{l}{lang}Use language field to switch hyphenation patterns for title
6790
 
% \QandA{PRESENTATIONS}{b}{pres,pres-bf}Presentation, speaker bold face 
6791
 
% \QandA{ORDERING OF REFERENCES}{c}{seq-no}Citation order (unsorted, like unsrt.bst)
6792
 
% \QandA{ORDER ON VON PART}{x}{vonx}Sort without von part (de la Maire after Mahone)
6793
 
% \QandA{AUTHOR NAMES}{i}{nm-init,ed-au}Initials + surname (J. F. Smith)
6794
 
% \QandA{POSITION OF JUNIOR}{*}{jnrlst}Junior comes last as Smith, John, Jr.
6795
 
% \QandA{TYPEFACE FOR AUTHORS IN LIST OF REFERENCES}{u}{nmft,nmft-def}User defined author font (\cmd\bibnamefont)
6796
 
% \QandA{FONT FOR FIRST NAMES}{u}{fnm-def}First names in user defined font (\cmd\bibfnamefont)
6797
 
% \QandA{EDITOR NAMES IN INCOLLECTION ETC}{a}{nmfted}Editors incollection like authors font
6798
 
% \QandA{FONT FOR `AND' IN LIST}{r}{nmand-rm}`And' in normal font (JONES and JAMES)
6799
 
% \QandA{FONT OF CITATION LABELS IN TEXT}{u}{lab,lab-def}User defined citation font (\cmd\citenamefont)
6800
 
% \QandA{FONT FOR `AND' IN CITATIONS}{r}{and-rm}Cited `and' in normal font 
6801
 
% \QandA{DATE FORMAT}{*}{yr-par}Date in parentheses as (May 1993)
6802
 
% \QandA{DATE EMPTY}{-}{date-nil-x}If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
6803
 
% \QandA{TITLE OF ARTICLE}{d}{tit-qq}Title and punctuation in double quotes (``Title,'' ..)
6804
 
% \QandA{INPROCEEDINGS CHAPTER AND PAGES, LIKE INBOOK}{-}{inproceedings-chapter}produce pages after chapter, just as in InBook
6805
 
% \QandA{TITLE PRESENT IN ARTICLE, INCOLLECTION, AND INPROCEEDINGS}{x}{jtit-x}Title is ignored
6806
 
% \QandA{INPROCEEDINGS CHAPTER AND PAGES, LIKE INBOOK}{y}{inproceedings-chapter}produce pages after chapter, just as in InBook
6807
 
% \QandA{ARTICLE BOOKTITLE PRESENT}{}{article-booktitle}format booktitle 
6808
 
% \QandA{ARTICLE SERIES PRESENT}{}{article-series}article can has series
6809
 
% \QandA{JOURNAL NAME FONT}{r}{jttl-rm}Journal name normal font
6810
 
% \QandA{JOURNAL NAME WITH ADDRESS}{y}{journal-address}Include address field (in parentheses) along with journal name
6811
 
% \QandA{BOOK TITLE FIELDS}{y}{book-bt}Field `booktitle', or if absent field `title', is book title 
6812
 
% \QandA{THESIS TITLE OPTIONAL}{}{thesis-title-o}Title is optional: no warning issued if empty
6813
 
% \QandA{TECHNICAL REPORT TITLE}{b}{trtit-b}Tech. report title like books 
6814
 
% \QandA{TECHNICAL REPORT INSTITUTION}{}{techreport-institution-par}format tech report institution like book publisher
6815
 
% \QandA{JOURNAL VOLUME}{b}{vol-bf}Volume bold as {\bf vol}(num)
6816
 
% \QandA{JOURNAL VOL AND NUMBER}{x}{vnum-x}Journal vol, without number as 34
6817
 
% \QandA{VOLUME PUNCTUATION}{c}{volp-com}Volume with comma as vol(num), ppp
6818
 
% \QandA{PAGE NUMBERS}{f}{jpg-1}Only start page number 
6819
 
% \QandA{BOOK EDITOR W/O AUTHOR}{}{book-editor-booktitle}Book permits empty author, produces title before editor in this case
6820
 
% \QandA{INBOOK PERMITS TITLE, BOOKTITLE, AUTHOR, EDITOR}{a}{inbook-editor-booktitle}Allow using both title/booktitle, both author/editor
6821
 
% \QandA{CONFERENCE ADDRESS FOR BOOK, INBOOK, INCOLLECTION, INPROCEEDINGS, PROCEEDINGS}{a}{bookaddress}Italic booktitle followed by bookaddress in roman
6822
 
% \QandA{NUMBER AND SERIES FOR BOOK, INBOOK, INCOLLECTION, INPROCEEDINGS, PROCEEDINGS}{*}{num-xser}Allows number without series and suppresses word "number"
6823
 
% \QandA{WORD NUMBER CAPITALIZED FOR NUMBER AND SERIES}{c}{number-cap}Capitalize word `number' as: "Number 123"
6824
 
% \QandA{WORD CHAPTER CAPITALIZED}{c}{chapter-cap}Capitalize word `chapter' as: `Chapter 42'
6825
 
% \QandA{COMBINING NUMBER AND SERIES}{x}{series-number}Series number as: `Springer Lecture Notes No. 125'
6826
 
% \QandA{POSITION OF NUMBER AND SERIES}{b}{numser-booktitle}After book title and conference address, and before editors 
6827
 
% \QandA{VOLUME AND SERIES FOR BOOKS/COLLECTIONS}{s}{ser-vol}Series, vol. 23
6828
 
% \QandA{VOLUME AND SERIES FORMATTING}{y}{ser-rm}format series roman , even when used with volume
6829
 
% \QandA{WORD VOLUME CAPITALIZED FOR VOLUME AND SERIES}{y}{volume-cap}Capitalize word `volume', as: `Volume 7 in Lecture Series'
6830
 
% \QandA{POSITION OF VOLUME AND SERIES FOR INCOLLECTION, INBOOK, AND INPROCEEDINGS}{e}{ser-ed}Series and volume after booktitle and before editors
6831
 
% \QandA{JOURNAL NAME PUNCTUATION}{x}{jnm-x}Space after journal name
6832
 
% \QandA{PAGES IN BOOK}{*}{pg-bk,book-chapter-pages}As chapter and page: chapter 42, page 345
6833
 
% \QandA{PUBLISHER IN PARENTHESES}{d}{pub-date}Publisher with address and date in parentheses (Oxford, 1994)
6834
 
% \QandA{EMPTY PUBLISHER PARENTHESES}{y}{ay-empty-pub-parens-x}eliminate parentheses altogether if nothing inside
6835
 
% \QandA{PUBLISHER POSITION}{}{pre-pub}Publisher before volume, chapter, pages 
6836
 
% \QandA{}{}{pre-edn}Edition before publisher
6837
 
% \QandA{}{p}{pre-pub,pre-edn}Edition, publisher, volume, chapter, pages
6838
 
% \QandA{ISBN NUMBER}{*}{isbn}Include ISBN for books, booklets, etc.
6839
 
% \QandA{ISSN NUMBER}{*}{issn}Include ISSN for periodicals
6840
 
% \QandA{DOI NUMBER}{a}{doi-link,doi}Doi forms a link to the publication, anchored to the volume or title
6841
 
% \QandA{EDITOR IN COLLECTIONS}{b}{edby}In booktitle, edited by ..  (where .. is names)
6842
 
% \QandA{PUNCTUATION BETWEEN SECTIONS (BLOCKS)}{c}{blk-com}Comma between blocks 
6843
 
% \QandA{FINAL PUNCTUATION}{c}{fin-endbibitem}Command at end instead of period 
6844
 
% \QandA{ABBREVIATE WORD `PAGES'}{a}{pp}`Page' abbreviated as p. or pp.
6845
 
% \QandA{ABBREVIATE WORD `EDITORS'}{a}{ed}`Editor' abbreviated as ed. or eds.
6846
 
% \QandA{OTHER ABBREVIATIONS}{a}{abr}Abbreviations of such words
6847
 
% \QandA{ABBREVIATION FOR `EDITION'}{a}{ednx}`Edition' abbreviated as `ed' 
6848
 
% \QandA{EDITION NUMBERS}{n}{ord}Numerical editions as 1st, 2nd, 3rd, etc
6849
 
% \QandA{STORED JOURNAL NAMES}{a}{jabr}Abbreviated journal names 
6850
 
% \QandA{FONT OF `ET AL'}{i}{etal-it}Italic et al 
6851
 
% \QandA{ADDITIONAL REVTeX DATA FIELDS}{r}{revdata,eprint,url,url-blk,translation}Include REVTeX data fields collaboration, eid, eprint, archive, url, translation
6852
 
% \QandA{SLACcitation FIELD}{}{SLACcitation}Produce SLACcitation field
6853
 
% \QandA{NUMPAGES DATA FIELD}{*}{numpages-x}Do not include numpages field 
6854
 
% \QandA{URL ADDRESS}{*}{url,url-prefix-x}URL without prefix (default: `URL ')
6855
 
% \QandA{REFERENCE COMPONENT TAGS}{b}{bibinfo}Reference component tags like \cmd\bibinfo in the content of \cmd\bibitem
6856
 
% \QandA{ELEMENT TAGS}{b}{bibfield}Element tags like \cmd\bibfield in the content of \cmd\bibitem
6857
 
% \QandA{COMPATIBILITY WITH PLAIN TEX}{*}{nfss}Use LaTeX commands which may not work with Plain TeX
6858
 
% \end{enumerate}
6859
 
%
6860
 
% A file \file{apsrev.dbj} file equivalent to the following should result:
6861
 
% \begin{verbatim}
6862
 
%\input docstrip
6863
 
%\preamble
6864
 
%----------------------------------------
6865
 
%*** REVTeX-compatible Phys Rev 2010-02-12 ***
6866
 
%\endpreamble
6867
 
%\postamble
6868
 
%End of customized bst file
6869
 
%\endpostamble
6870
 
%\keepsilent
6871
 
%\askforoverwritefalse
6872
 
%\def\MBopts{\from{merlin.mbs}{%
6873
 
%  head,\MBopta}
6874
 
%\from{physjour.mbs}{\MBopta}
6875
 
%\from{geojour.mbs}{\MBopta}
6876
 
%\from{photjour.mbs}{\MBopta}
6877
 
%\from{merlin.mbs}{tail,\MBopta}}
6878
 
%\def\MBopta{%
6879
 
%  ay,%: Author-year with some non-standard interface
6880
 
%  nat,%: Natbib for use with natbib v5.3 or later
6881
 
%  lang,%: Use language field to switch hyphenation patterns for title
6882
 
%  pres,pres-bf,%: Presentation, speaker bold face 
6883
 
%  seq-no,%: Citation order (unsorted, only meaningful for numericals)
6884
 
%  vonx,%: Sort without von part (de la Maire after Mahone)
6885
 
%  nm-init,ed-au,%: Initials + surname (J. F. Smith)
6886
 
%  jnrlst,%: Junior comes last as Smith, John, Jr.
6887
 
%  nmft,nmft-def,%: User defined author font (\bibnamefont)
6888
 
%  fnm-def,%: First names in user defined font (\bibfnamefont)
6889
 
%  nmfted,%: Editors incollection like authors font
6890
 
%  nmand-rm,%: `And' in normal font (JONES and JAMES)
6891
 
%  lab,lab-def,%: User defined citation font (\citenamefont)
6892
 
%  and-rm,%: Cited `and' in normal font 
6893
 
%  keyxyr,%: Year blank when KEY replaces missing author (for natbib 7.0)
6894
 
%  blkyear,%: Missing date left blank 
6895
 
%  yr-par,%: Year in parentheses as (1993)
6896
 
%  dtrev,%: Date as year month 
6897
 
%  date-nil-x,%: If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
6898
 
%  tit-qq,%: Title and punctuation in double quotes (``Title,'' ..)
6899
 
%  inproceedings-chapter,%: produce pages after chapter, just as in InBook
6900
 
%  jtit-x,%: Title is ignored
6901
 
%  inproceedings-chapter,%: produce pages after chapter just as in InBook
6902
 
%  article-booktitle,%: format booktitle 
6903
 
%  article-series,%: article can has series
6904
 
%  jttl-rm,%: Journal name normal font
6905
 
%  journal-address,%: Include address field (in parentheses) along with journal name
6906
 
%  book-bt,%: Field `booktitle', or if absent field `title', is book title 
6907
 
%  thesis-title-o,%: Title is optional: no warning issued if empty
6908
 
%  trtit-b,%: Tech. report title like books 
6909
 
%  techreport-institution-par,%: format tech report institution like book publisher
6910
 
%  vol-bf,%: Volume bold as {\bf vol}(num)
6911
 
%  vnum-x,%: Journal vol, without number as 34
6912
 
%  volp-com,%: Volume with comma as vol(num), ppp
6913
 
%  jpg-1,%: Only start page number 
6914
 
%  book-editor-booktitle,%: Book permits empty author, produces title before editor in this case
6915
 
%  inbook-editor-booktitle,%: Allow using both title/booktitle, both author/editor
6916
 
%  bookaddress,%: Italic booktitle followed by bookaddress in roman
6917
 
%  num-xser,%: Allows number without series and suppresses word "number"
6918
 
%  number-cap,%: Capitalize word `number' as: "Number 123"
6919
 
%  chapter-cap,%: Capitalize word `chapter' as: `Chapter 42'
6920
 
%  series-number,%: Series number as: `Springer Lecture Notes No. 125'
6921
 
%  numser-booktitle,%: After book title and conference address, and before editors 
6922
 
%  ser-vol,%: Series, vol. 23
6923
 
%  ser-rm,%: format series roman , even when used with volume
6924
 
%  volume-cap,%: Capitalize word `volume', as: `Volume 7 in Lecture Series'
6925
 
%  ser-ed,%: Series and volume after booktitle and before editors
6926
 
%  jnm-x,%: Space after journal name
6927
 
%  pg-bk,book-chapter-pages,%: As chapter and page: chapter 42, page 345
6928
 
%  pub-date,%: Publisher with address and date in parentheses (Oxford, 1994)
6929
 
%  ay-empty-pub-parens-x,%: eliminate parentheses altogether if nothing inside
6930
 
%  pre-pub,pre-edn,%: Edition, publisher, volume, chapter, pages
6931
 
%  isbn,%: Include ISBN for books, booklets, etc.
6932
 
%  issn,%: Include ISSN for periodicals
6933
 
%  doi-link,doi,%: Doi forms a link to the publication, anchored to the volume or title
6934
 
%  edby,%: In booktitle, edited by ..  (where .. is names)
6935
 
%  blk-com,%: Comma between blocks 
6936
 
%  fin-endbibitem,%: Command at end instead of period 
6937
 
%  pp,%: `Page' abbreviated as p. or pp.
6938
 
%  ed,%: `Editor' abbreviated as ed. or eds.
6939
 
%  abr,%: Abbreviations of such words
6940
 
%  ednx,%: `Edition' abbreviated as `ed' 
6941
 
%  ord,%: Numerical editions as 1st, 2nd, 3rd, etc
6942
 
%  jabr,%: Abbreviated journal names 
6943
 
%  etal-it,%: Italic et al 
6944
 
%  revdata,eprint,url,url-blk,translation,%: Include REVTeX data fields collaboration, eid, eprint, archive, url, translation
6945
 
%  SLACcitation,%: Produce SLACcitation field
6946
 
%  numpages-x,%: Do not include numpages field 
6947
 
%  url,url-prefix-x,%: URL without prefix (default: `URL ')
6948
 
%  bibinfo,%: Reference component tags like \bibinfo in the content of \bibitem
6949
 
%  bibfield,%: Element tags like \bibfield in the content of \bibitem
6950
 
%  nfss,%: Use LaTeX commands which may not work with Plain TeX
6951
 
%,{%
6952
 
%  }}
6953
 
%\generate{\file{apsrev4-1.bst}{\MBopts}}
6954
 
%\endbatchfile
6955
 
% \end{verbatim}
6956
 
%
6957
 
% \subsubsection{Comparing apsrev.bst and apsrmp.bst}\label{sec:CompRevRmp}
6958
 
% These two bibliographic styles differ as follows:
6959
 
% \file{apsrev.dbj} has the following guard codes, which \file{apsrmp.dbj} does not:
6960
 
% \begin{itemize}
6961
 
% \CandE{seq-no}%
6962
 
%    Citation order (unsorted, like unsrt.bst)
6963
 
% \CandE{nm-init,ed-au}%
6964
 
%    Initials + surname (J. F. Smith)
6965
 
% \CandE{blkyear}%
6966
 
%    Missing date left blank 
6967
 
% \CandE{date-nil-x}%
6968
 
%    If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
6969
 
% \CandE{inproceedings-chapter}%
6970
 
%    produce pages after chapter, just as in InBook
6971
 
% \CandE{techreport-institution-par}%
6972
 
%    format tech report institution like book publisher
6973
 
% \CandE{vnum-x}%
6974
 
%    Journal vol, without number as `34'
6975
 
% \CandE{pub-date}%
6976
 
%    Publisher with address and date in parentheses (Oxford, 1994)
6977
 
% \CandE{pre-pub}%
6978
 
%    Edition, publisher, volume, chapter, pages. Note that both use guard code pre-edn.
6979
 
% \end{itemize}
6980
 
%
6981
 
% \file{apsrmp.dbj} has the following guard codes, which \file{apsrev.dbj} does not:
6982
 
% \begin{itemize}
6983
 
% \CandE{nm-rev1}%
6984
 
%    Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
6985
 
% \CandE{dt-beg}%
6986
 
%    Date after authors 
6987
 
% \CandE{vnum-sp}%
6988
 
%    Journal vol (num) as `34 (2)'
6989
 
% \CandE{pp-last}%
6990
 
%    Pages at end, but before any notes
6991
 
% \CandE{pub-par}%
6992
 
%    Publisher in parentheses
6993
 
% \CandE{school-par}%
6994
 
%    School/address in parens: `(school, address)' 
6995
 
% \CandE{bkedcap}%
6996
 
%    `Name Editor,' as above, editor upper case
6997
 
% \CandE{and-com}%
6998
 
%    Comma even with 2 authors as `Tom, and Harry'
6999
 
%    
7000
 
% \end{itemize}
7001
 
%
7002
 
% We ensure that the journal substyle has the first word
7003
 
% in the matter by installing the (default) APS code 
7004
 
% later on (see Section~\ref{sec:aps-defaults}).
7005
 
% \end{macro}
7006
 
%
7007
 
% \begin{macro}{\authoryear@sw}
7008
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
7009
 
% Numerical citations: default value of \cmd\authoryear@sw\ is false.
7010
 
%    \begin{macrocode}
7011
 
\@booleanfalse\authoryear@sw
7012
 
%    \end{macrocode}
7013
 
% \end{macro}
7014
 
%
7015
 
% \begin{macro}{\bibpunct}
7016
 
% The following commands effectively establish the style in which \cmd\cite\ commands are
7017
 
% formatted.
7018
 
% You can think of them as the second needed component for the bibliography.
7019
 
7020
 
% Set up for APS numerical citations (once the packages are loaded). 
7021
 
% The journal substyle can override these choices.
7022
 
%
7023
 
% Note that, prior to \classname{natbib} version 8.21, changing \cmd\NAT@sort\ at this late hour would not be totally effective;
7024
 
% you would have to give \classname{natbib} the relevant options at load time.
7025
 
% From version 8.21 on, \cmd\NAT@sort\ and \cmd\NAT@cmprs\ are not bound at all. 
7026
 
% \changes{4.1a}{2008/01/19}{For natbib versions before 8.21, \cs{NAT@sort} was consulted only as natbib was being read in. Now it is fully dynamic.}
7027
 
%    \begin{macrocode}
7028
 
\appdef\setup@hook{%
7029
 
 \bibpunct{[}{]}{,}{n}{}{,}%
7030
 
}%
7031
 
%    \end{macrocode}
7032
 
% \end{macro}
7033
 
%
7034
 
% \begin{macro}{\pre@bibdata}
7035
 
7036
 
% Set up to write endnotes to a .bib file; its data will be incorporated into the bibliography.
7037
 
%    \begin{macrocode}
7038
 
 \def\pre@bibdata{\jobname\bibdata@app}%
7039
 
%    \end{macrocode}
7040
 
% \end{macro}
7041
 
%
7042
 
% \begin{macro}{\bibsection}
7043
 
% We define the sectioning command to use when starting the bibliography.
7044
 
%
7045
 
% \changes{4.0rc1}{2001/06/18}{grid changes with push and pop}
7046
 
%    \begin{macrocode}
7047
 
\appdef\setup@hook{%
7048
 
 \def\bibsection{%
7049
 
  \par
7050
 
  \onecolumngrid@push
7051
 
  \begingroup
7052
 
   \baselineskip26\p@
7053
 
   \bib@device{\textwidth}{245.5\p@}%
7054
 
  \endgroup
7055
 
  \nobreak\@nobreaktrue
7056
 
  \addvspace{19\p@}%
7057
 
  \par
7058
 
  \onecolumngrid@pop
7059
 
 }%
7060
 
}%
7061
 
%    \end{macrocode}
7062
 
% \end{macro}
7063
 
%
7064
 
% \begin{macro}{\bib@device}
7065
 
% \begin{macro}{\bibpreamble}
7066
 
% \begin{macro}{\bibsep}
7067
 
% \begin{macro}{\newblock}
7068
 
% We define the sectioning command to use when starting the bibliography.
7069
 
%    \begin{macrocode}
7070
 
\def\bib@device#1#2{%
7071
 
 \hb@xt@\z@{%
7072
 
  \hb@xt@#1{%
7073
 
   \hfil
7074
 
   \phantomsection
7075
 
   \addcontentsline {toc}{section}{\protect\numberline{}\refname}%
7076
 
%  \hyper@anchorstart {\@currentHref }%
7077
 
   \hb@xt@#2{%
7078
 
    \skip@\z@\@plus-1fil\relax
7079
 
                           \leaders\hrule height.25 \p@ depth.25 \p@ \hskip\z@\@plus1fil
7080
 
    \hskip\skip@
7081
 
    \hskip\z@\@plus0.125fil\leaders\hrule height.375\p@ depth.375\p@ \hskip\z@\@plus0.75fil \hskip\z@\@plus0.125fil
7082
 
    \hskip\skip@
7083
 
    \hskip\z@\@plus0.25 fil\leaders\hrule height.5  \p@ depth.5  \p@ \hskip\z@\@plus0.5 fil \hskip\z@\@plus0.25 fil
7084
 
    \hskip\skip@
7085
 
    \hskip\z@\@plus0.375fil\leaders\hrule height.625\p@ depth.625\p@ \hskip\z@\@plus0.25fil \hskip\z@\@plus0.375fil
7086
 
 %  \hskip\skip@
7087
 
 %  \hfil
7088
 
   }%
7089
 
%  \hyper@anchorend
7090
 
   \hfil
7091
 
  }%
7092
 
  \hss
7093
 
 }%
7094
 
}%
7095
 
\appdef\setup@hook{%
7096
 
 \let\bibpreamble\@empty
7097
 
 \bibsep\z@\relax
7098
 
 \def\newblock{\ }%
7099
 
}%
7100
 
%    \end{macrocode}
7101
 
% \end{macro}
7102
 
% \end{macro}
7103
 
% \end{macro}
7104
 
% \end{macro}
7105
 
%
7106
 
% \begin{macro}{\bibfont}
7107
 
% We define the font switch that applies to the body of the bibliography.
7108
 
%
7109
 
%    \begin{macrocode}
7110
 
\appdef\setup@hook{%
7111
 
 \def\bibfont{%
7112
 
  \small
7113
 
  \@clubpenalty\clubpenalty
7114
 
 }%
7115
 
}%
7116
 
%    \end{macrocode}
7117
 
% \end{macro}
7118
 
%
7119
 
%
7120
 
% \subsubsection{Index}%
7121
 
% FIXME: the following call to \cmd\twocolumn\ appears wrong if we were in two-column grid.
7122
 
% \changes{4.0c}{1999/11/13}{grid changes with ltxgrid}
7123
 
% \changes{4.0rc1}{2001/06/18}{grid changes with push and pop}
7124
 
%    \begin{macrocode}
7125
 
\newenvironment{theindex}{%
7126
 
 \columnseprule \z@
7127
 
 \columnsep 35\p@
7128
 
 \c@secnumdepth-\maxdimen
7129
 
 \onecolumngrid@push
7130
 
 \section{\indexname}%
7131
 
 \thispagestyle{plain}%
7132
 
 \parindent\z@
7133
 
 \parskip\z@ plus.3\p@\relax
7134
 
 \let\item\@idxitem
7135
 
 \onecolumngrid@pop
7136
 
}{%
7137
 
%\onecolumngrid@pop
7138
 
}%
7139
 
%
7140
 
\def\@idxitem{\par\hangindent 40\p@}%
7141
 
%
7142
 
\def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}%
7143
 
%
7144
 
\def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}%
7145
 
%
7146
 
\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}%
7147
 
%    \end{macrocode}
7148
 
%
7149
 
%
7150
 
% \subsection{Journal- and Pointsize-Specific Code}%
7151
 
%
7152
 
% After this substyle is read in, we will execute the code specific to the selected 
7153
 
% journal: execute the society/journal \file{.rtx} file if it exists, or
7154
 
% execute the society/journal macro (if the latter is not defined, it will \cmd\relax\ out). 
7155
 
% Here we define the default journal.
7156
 
%    \begin{macrocode}
7157
 
\def\@journal@default{pra}%
7158
 
%    \end{macrocode}
7159
 
%
7160
 
% \subsection{Typesize-Specific Code}%
7161
 
%
7162
 
% After this society file is read in, we will process the \cmd\@pointsize-specific
7163
 
% code. Here we define the default.
7164
 
%    \begin{macrocode}
7165
 
\def\@pointsize@default{10}%
7166
 
%    \end{macrocode}
7167
 
%
7168
 
% Note: the convention in \revtex\ and its substyles is that 
7169
 
% the substyle must not override any explicit class options
7170
 
% declared by the document.
7171
 
% This means that the various Booleans of Section~\ref{sec:options}
7172
 
% may be assigned here only if they are still undefined at this point.
7173
 
%
7174
 
% For the APS, we supply code specific to journals PRA, PRB, PRC, PRD, PRE, PRL, and RMP.
7175
 
% At present, they are identical,
7176
 
% with the exception of PRB and RMP.
7177
 
%
7178
 
% For most all of the APS journals, the journal-dependent 
7179
 
% code is relatively meager and is therefore embedded in this file.
7180
 
% However, the RMP code is sufficiently extensive that 
7181
 
% splitting it out into a separate file is more convenient.
7182
 
%
7183
 
% \subsubsection{\classoption{pra}}%
7184
 
% There is no code specific to \classoption{pra}.
7185
 
%    \begin{macrocode}
7186
 
\def\rtx@apspra{%
7187
 
 \class@info{APS journal PRA selected}%
7188
 
}%
7189
 
%    \end{macrocode}
7190
 
%
7191
 
% \subsubsection{\classoption{prb}}%
7192
 
% We define a \cmd\citealp-like procedure that uses a numerical citation; it is for use in 
7193
 
% the PRB journal.
7194
 
%    \begin{macrocode}
7195
 
\def\rtx@apsprb{%
7196
 
 \class@info{APS journal PRB selected}%
7197
 
%    \end{macrocode}
7198
 
% PRB requires superscript citations.
7199
 
% We use Patrick Daly's \classname{natbib} package,
7200
 
% and hyperref and other packages are already set up to cope with this.
7201
 
%
7202
 
% \begin{macro}{\bibpunct}
7203
 
% By default, PRB selects the \classoption{bibnotes} option.
7204
 
% We also set up for numerical citations.
7205
 
%    \begin{macrocode}
7206
 
 \let\frontmatter@footnote@produce\frontmatter@footnote@produce@endnote
7207
 
 \appdef\setup@hook{%
7208
 
  \bibpunct{}{}{,}{s}{}{\textsuperscript{,}}%
7209
 
  \let\onlinecite\rev@citealpnum
7210
 
 }%
7211
 
%    \end{macrocode}
7212
 
% \end{macro}
7213
 
%
7214
 
% \begin{macro}{\pre@bibdata}
7215
 
% \begin{macro}{\@endnotetext}
7216
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
7217
 
7218
 
% Set up to write endnotes to a .bib file; its data will be incorporated into the bibliography.
7219
 
%    \begin{macrocode}
7220
 
 \def\pre@bibdata{\jobname\bibdata@app}%
7221
 
%    \end{macrocode}
7222
 
% \end{macro}
7223
 
% \end{macro}
7224
 
%
7225
 
% Invoke \classoption{superbib} option. 
7226
 
% If the document makes a selection of its own, it will override this assignment.
7227
 
%    \begin{macrocode}
7228
 
 \let\place@bibnumber\place@bibnumber@sup
7229
 
%    \end{macrocode}
7230
 
%
7231
 
% End of \classoption{prb} code.
7232
 
%    \begin{macrocode}
7233
 
}%
7234
 
%    \end{macrocode}
7235
 
%
7236
 
% \subsubsection{\classoption{prc}}%
7237
 
% There is no code specific to \classoption{prc}. 
7238
 
%    \begin{macrocode}
7239
 
\def\rtx@apsprc{%
7240
 
 \class@info{APS journal PRC selected}%
7241
 
}%
7242
 
%    \end{macrocode}
7243
 
%
7244
 
% \subsubsection{\classoption{prd}}%
7245
 
% There is no code specific to \classoption{prd}. 
7246
 
%    \begin{macrocode}
7247
 
\def\rtx@apsprd{%
7248
 
 \class@info{APS journal PRD selected}%
7249
 
}%
7250
 
%    \end{macrocode}
7251
 
%
7252
 
% \subsubsection{\classoption{pre}}%
7253
 
% There is no code specific to \classoption{pre}. 
7254
 
%    \begin{macrocode}
7255
 
\def\rtx@apspre{%
7256
 
 \class@info{APS journal PRE selected}%
7257
 
}%
7258
 
%    \end{macrocode}
7259
 
%
7260
 
% \subsubsection{\classoption{prl}}%
7261
 
%    \begin{macrocode}
7262
 
\def\rtx@apsprl{%
7263
 
 \class@info{APS journal PRL selected}%
7264
 
%    \end{macrocode}
7265
 
% In PRL, the default is the \classoption{bibnotes} option,
7266
 
% and the Acknowledgments section has no head.
7267
 
%
7268
 
% The References head is a device that may be described as a lozenge centered on the baseline,
7269
 
% 71 points wide by 2 points thick, with the ends tapering to a half point in thickness.
7270
 
% Space above 26 points base to base, below 31 base to base.
7271
 
%FIXME: this code may confound \classname{geometry}
7272
 
%    \begin{macrocode}
7273
 
 \let\frontmatter@footnote@produce\frontmatter@footnote@produce@endnote
7274
 
 \@booleanfalse\acknowledgments@sw
7275
 
 \appdef\setup@hook{%
7276
 
  \def\bibsection{%
7277
 
   \par
7278
 
   \begingroup
7279
 
    \baselineskip26\p@
7280
 
    \bib@device{\hsize}{72\p@}%
7281
 
   \endgroup
7282
 
   \nobreak\@nobreaktrue
7283
 
   \addvspace{19\p@}%
7284
 
  }%
7285
 
 }%
7286
 
%    \end{macrocode}
7287
 
% Implement length checking.
7288
 
% Use the \classname{times} and \classname{mathtime} packages,
7289
 
% plus whatever other processing is required
7290
 
% to make the formatted output be true
7291
 
% to the metrics of the journal.
7292
 
%
7293
 
%    \begin{macrocode}
7294
 
\appdef\setup@hook{%
7295
 
  \lengthcheck@sw{%
7296
 
   \RequirePackage{times}%
7297
 
%    \end{macrocode}
7298
 
% Wait. Do not use mathtime after all. APS has their own way of doing math pi, involving
7299
 
% Adobe Mathematical Pi and other fonts.
7300
 
%    \begin{verbatim}
7301
 
%  \RequirePackage{mathtime}%
7302
 
%    \end{verbatim}
7303
 
%    \begin{macrocode}
7304
 
  }{}%
7305
 
}%
7306
 
%    \end{macrocode}
7307
 
% A PRL does not have numbered sections.
7308
 
%    \begin{macrocode}
7309
 
 \c@secnumdepth=-\maxdimen
7310
 
%    \end{macrocode}
7311
 
% Note: we defer this code until after type size file is read in.
7312
 
%    \begin{macrocode}
7313
 
 \appdef\setup@hook{%
7314
 
  \@ifnum{\@pointsize=10\relax}{%
7315
 
   \lengthcheck@sw{%
7316
 
    \def\large{%
7317
 
     \@setfontsize\large{12.5}{14\p@}%
7318
 
    }%
7319
 
    \def\normalsize{%
7320
 
     \@setfontsize\normalsize{10.5}\@xiipt
7321
 
     \abovedisplayskip 6\p@ \@plus6\p@ \@minus5\p@
7322
 
     \belowdisplayskip \abovedisplayskip
7323
 
     \abovedisplayshortskip  \abovedisplayskip
7324
 
     \belowdisplayshortskip \abovedisplayskip
7325
 
     \let\@listi\@listI
7326
 
    }%
7327
 
    \def\small{%
7328
 
     \@setfontsize\small{9.5}\@xipt
7329
 
     \abovedisplayskip 5\p@ \@plus5\p@ \@minus4\p@
7330
 
     \belowdisplayskip \abovedisplayskip
7331
 
     \abovedisplayshortskip  \abovedisplayskip
7332
 
     \belowdisplayshortskip \abovedisplayskip
7333
 
     \let\@listi\@listI
7334
 
    }%
7335
 
    \DeclareMathSizes{12.5}{12.5}{9}{6}%
7336
 
    \DeclareMathSizes{10.5}{10.5}{7.5}{5}%
7337
 
    \DeclareMathSizes{9.5}{9.5}{7.0}{5}%
7338
 
   }{%
7339
 
    \def\normalsize{%
7340
 
     \@setfontsize\normalsize\@xpt\@xiipt
7341
 
     \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
7342
 
     \belowdisplayskip \abovedisplayskip
7343
 
     \abovedisplayshortskip  \abovedisplayskip
7344
 
     \belowdisplayshortskip \abovedisplayskip
7345
 
     \let\@listi\@listI
7346
 
    }%
7347
 
   }%
7348
 
  }{}%
7349
 
 }%
7350
 
 \textheight = 694.0\p@
7351
 
%    \end{macrocode}
7352
 
%
7353
 
% End of \classoption{prl} code.
7354
 
%    \begin{macrocode}
7355
 
}%
7356
 
%    \end{macrocode}
7357
 
%
7358
 
% \subsubsection{\classoption{per}}%
7359
 
% Here is code specific to \classoption{per}. 
7360
 
%    \begin{macrocode}
7361
 
\def\rtx@apsprstper{%
7362
 
 \class@info{APS journal PRST-PER selected}%
7363
 
%    \end{macrocode}
7364
 
% To first order, PER is the same as PRB, with superscript citations.
7365
 
%
7366
 
%    \begin{macrocode}
7367
 
 \rtx@apsprb
7368
 
%    \end{macrocode}
7369
 
% Per Mark Doyle (2009-12-22), the default is longbibliography.
7370
 
% \changes{4.1n}{2010/01/04}{(AO, 575) the default for journal prstper is longbibliography}%
7371
 
%    \begin{macrocode}
7372
 
 \@booleantrue\longbibliography@sw
7373
 
%    \end{macrocode}
7374
 
%
7375
 
% ``Section heads are bold, centered (Roman numeral, Latin letter)''
7376
 
7377
 
% Article titles do not have surrounding double-quotes!
7378
 
%
7379
 
% End of \classoption{prb} code.
7380
 
%    \begin{macrocode}
7381
 
}%
7382
 
%    \end{macrocode}
7383
 
%
7384
 
% \subsubsection{\classoption{prstab}}%
7385
 
% There is no code specific to \classoption{prstab}. 
7386
 
%    \begin{macrocode}
7387
 
\def\rtx@apsprstab{%
7388
 
 \class@info{APS journal PRSTAB selected}%
7389
 
}%
7390
 
%    \end{macrocode}
7391
 
%
7392
 
% \subsubsection{\classoption{rmp}}%
7393
 
% If this option has been selected, we will read in the needed code from the file \file{apsrmp.rtx}. 
7394
 
%
7395
 
% \subsection{Establish APS Defaults}\label{sec:aps-defaults}
7396
 
%
7397
 
% \begin{macro}{\footinbib@sw}
7398
 
% All APS journals except RMP effectively invoke the \classoption{footinbib} option.
7399
 
% We rely on the RMP-specific code to override this assignment. 
7400
 
%    \begin{macrocode}
7401
 
\@booleantrue\footinbib@sw
7402
 
%    \end{macrocode}
7403
 
% \end{macro}
7404
 
%
7405
 
% \begin{macro}{\@bibdataout@init}
7406
 
% \begin{macro}{\@bibdataout@aps}
7407
 
% \changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
7408
 
% Procedure \cmd\@bibdataout@aps\ has the job of writing the control record into the
7409
 
% job's \cmd\jobname\filename{.bib} file, where it will adjust the options to \filename{.bst} processing. 
7410
 
% It is installed into the initialization procedure \cmd\@bibdataout@init, and its meaning 
7411
 
% is set by the society (APS) and journal. 
7412
 
% For all but RMP, we select the Physical Review style.
7413
 
% For the latter case, we change the meaning, per the code in \file{apsrmp.rtx}.
7414
 
7415
 
%    \begin{macrocode}
7416
 
\appdef\@bibdataout@rev{\@bibdataout@aps}%
7417
 
\def\@bibdataout@aps{%
7418
 
 \immediate\write\@bibdataout{%
7419
 
%    \end{macrocode}
7420
 
% An entry that controls processing of the \filename{.bst} file has entry type \texttt{@CONTROL}. 
7421
 
%    \begin{macrocode}
7422
 
  @CONTROL{%
7423
 
   apsrev41Control%
7424
 
%    \end{macrocode}
7425
 
% Say whether we want long bibliography style (the default), or the abbreviated style. 
7426
 
%    \begin{macrocode}
7427
 
   \longbibliography@sw{%
7428
 
    ,author="00",editor="1",pages="1",title="0",year="0"%
7429
 
   }{%
7430
 
    ,author="08",editor="1",pages="0",title="",year="1"%
7431
 
   }%
7432
 
  }%
7433
 
 }%
7434
 
%    \end{macrocode}
7435
 
% Place a \cmd\citation\ into the auxiliary file corresponding to this entry. 
7436
 
%    \begin{macrocode}
7437
 
 \if@filesw
7438
 
  \immediate\write\@auxout{\string\citation{apsrev41Control}}%
7439
 
 \fi
7440
 
}%
7441
 
%    \end{macrocode}
7442
 
% \end{macro}
7443
 
% \end{macro}
7444
 
%
7445
 
% \begin{macro}{\place@bibnumber}
7446
 
% \begin{macro}{\@bibstyle}
7447
 
% We install code that will select the presentation for \cmd\bibitem s
7448
 
% and govern the \BibTeX\ processing.
7449
 
%    \begin{macrocode}
7450
 
\let\place@bibnumber\place@bibnumber@inl
7451
 
\def\@bibstyle{apsrev\substyle@post}%
7452
 
%    \end{macrocode}
7453
 
% \begin{verbatim}
7454
 
%\appdef\setup@hook{%
7455
 
% \longbibliography@sw{%
7456
 
% \appdef\@bibstyle{long}%
7457
 
% }{}%
7458
 
%}%
7459
 
% \end{verbatim}
7460
 
% \end{macro}
7461
 
% \end{macro}
7462
 
%
7463
 
% \subsection{APS Sanity Checking}\label{sec:aps-sanity}
7464
 
% \changes{4.1f}{2009/07/20}{(AO, 524) Makes no sense if citations are superscript numbers and so are footnotes}
7465
 
%
7466
 
% Rule: if \cmd\place@bibnumber\ is \cmd\place@bibnumber@sup\ 
7467
 
% (citations are numbered and set superscript),
7468
 
% then it makes no sense for \cmd\footinbib@sw\ to be \cmd\false@sw\ 
7469
 
% (footnotes set in the bibliography, as endnotes). 
7470
 
% If both conditions prevailed, then the document would have footnotes
7471
 
% and citations both as superscript arabic numbers, but independently numbered, 
7472
 
% which would be confusing. 
7473
 
%
7474
 
% Any society that provides for both superscript numbered citations as well as for 
7475
 
% numbered footnotes should check for this same condition, and deal with it. 
7476
 
%
7477
 
% Note: an alternative would be for footnotes to use the same sequence of footnote devices
7478
 
% that are used by the frontmatter footnotes 
7479
 
% (\cmd\frontmatter@thefootnote\ instead of arabic numbers). 
7480
 
%
7481
 
% In this case, we would want to refrain from resetting \cmd\c@footnote\ at the end of 
7482
 
% the title page formatting.
7483
 
% We would also want to treat body footnotes identically to frontmatter footnotes: 
7484
 
% the assignments in \cmd\titleblock@produce\ would persist throughout the document.
7485
 
%
7486
 
% But APS do not choose to go that route. 
7487
 
%    \begin{macrocode}
7488
 
\appdef\setup@hook{%
7489
 
 \@ifx{\place@bibnumber\place@bibnumber@sup}{%
7490
 
  \footinbib@sw{}{%
7491
 
   \class@warn{Citations are superscript numbers: footnotes must be endnotes; changing to that configuration}%
7492
 
   \@booleantrue\footinbib@sw
7493
 
  }%
7494
 
 }{}%
7495
 
}%
7496
 
%    \end{macrocode}
7497
 
7498
 
% Here ends the substyle for society APS.
7499
 
%    \begin{macrocode}
7500
 
%</aps>
7501
 
%    \end{macrocode}
7502
 
%
7503
 
%
7504
 
% \section{The \classoption{rmp} journal substyle: the \texttt{rmp} module}
7505
 
%
7506
 
% The file \file{apsrmp.rtx} is read in by the \classname{revtex4} document class
7507
 
% if \cmd\@society\ has the value \classoption{aps}
7508
 
% and \cmd\@journal\ has the value \classoption{rmp}.
7509
 
%
7510
 
% It is read at the end of the \file{aps.rtx}, so all definitions
7511
 
% and assignments in that file are operative unless overridden here.
7512
 
%
7513
 
%
7514
 
%    \begin{macrocode}
7515
 
%<*rmp>
7516
 
%    \end{macrocode}
7517
 
%
7518
 
% Protect this file from being read in by anything but \revtex.
7519
 
%    \begin{macrocode}
7520
 
\ifx\undefined\substyle@ext
7521
 
 \def\@tempa{%
7522
 
  \endinput
7523
 
  \GenericWarning{I must be read in by REVTeX! (Bailing out)}%
7524
 
 }%
7525
 
 \expandafter\else
7526
 
  \def\@tempa{}%
7527
 
 \expandafter\fi\@tempa
7528
 
%    \end{macrocode}
7529
 
%
7530
 
% Protect this file from being read in as a society instead of a journal.
7531
 
% In such a case, \cmd\@journal\ will be undefined. 
7532
 
%    \begin{macrocode}
7533
 
\@ifxundefined\@journal{%
7534
 
%    \end{macrocode}
7535
 
% One alternative: abort the document.
7536
 
% Another alternative: try to recover: force load the aps society file
7537
 
%    \begin{macrocode}
7538
 
 \class@warn{Please specify the REVTeX options [aps,rmp]!}%
7539
 
 \@@end
7540
 
}{}%
7541
 
%    \end{macrocode}
7542
 
% Log the journal substyle.
7543
 
%    \begin{macrocode}
7544
 
 \class@info{APS journal RMP selected}%
7545
 
%    \end{macrocode}
7546
 
%
7547
 
% \subsection{Frontmatter}%
7548
 
%
7549
 
% We assign the titlepage style for RMP; a document instance 
7550
 
% may override by invoking one of the class options of \revtex.
7551
 
%    \begin{macrocode}
7552
 
\clo@groupedaddress
7553
 
%    \end{macrocode}
7554
 
%
7555
 
% \begin{macro}{\frontmatter@setup}
7556
 
7557
 
%    \begin{macrocode}
7558
 
\def\frontmatter@setup{%
7559
 
 \normalfont\sffamily\raggedright
7560
 
}%
7561
 
%    \end{macrocode}
7562
 
% \end{macro}
7563
 
%
7564
 
% \begin{macro}{\PACS@warn}
7565
 
% Per Mark Doyle, RMP  never displays the PACS, so they don't want the `use showpacs' warning spit out.
7566
 
%    \begin{macrocode}
7567
 
\def\PACS@warn{RMP documents do not display PACS. Your \string\pacs\space will be ignored}%
7568
 
%    \end{macrocode}
7569
 
% \end{macro}
7570
 
%
7571
 
% \begin{macro}{\frontmatter@title@above}
7572
 
% \begin{macro}{\frontmatter@title@format}
7573
 
% \begin{macro}{\frontmatter@title@below}
7574
 
7575
 
%    \begin{macrocode}
7576
 
\def\frontmatter@title@above{}%
7577
 
\def\frontmatter@title@format{\Large\bfseries\raggedright}% HelveticaNeue-Medium(Italic) 14pt.
7578
 
\def\frontmatter@title@below{\addvspace{12\p@}}% 24pt b-b down to first author
7579
 
%    \end{macrocode}
7580
 
% \end{macro}
7581
 
% \end{macro}
7582
 
% \end{macro}
7583
 
%
7584
 
% \begin{macro}{\frontmatter@authorformat}
7585
 
% \changes{4.1b}{2008/08/04}{Rag the right even more: .8\cs{hsize}. Also, assign \cs{@totalleftmargin}.}%
7586
 
% \changes{4.1b}{2008/06/29}{(AO, 455) Be nice to a list within the abstract (assign \cs{@totalleftmargin}).}
7587
 
% Set the rag to a milder value, because we want to do true ragged right
7588
 
% typesetting, as opposed to the \LaTeX\ default, which gives very poor results.
7589
 
%
7590
 
% Note: author font is 9.8bp. 19.2bp/14.3bp above/below.
7591
 
%    \begin{macrocode}
7592
 
\def\frontmatter@authorformat{%
7593
 
 \preprintsty@sw{\vskip0.5pc\relax}{}%
7594
 
 \@tempskipa\@flushglue
7595
 
 \@flushglue\z@ plus.8\hsize
7596
 
 \raggedright\advance\leftskip.5in\relax
7597
 
 \@flushglue\@tempskipa
7598
 
 \parskip\z@skip
7599
 
 \@totalleftmargin\leftskip
7600
 
}%
7601
 
%    \end{macrocode}
7602
 
% \end{macro}
7603
 
%
7604
 
% \begin{macro}{\frontmatter@affiliationfont}
7605
 
% \changes{4.1b}{2008/08/04}{As with author formatting, rag the right more, and assign \cs{@totalleftmargin}. Also neutralize \cs{def@after@address}.}%
7606
 
% \changes{4.1b}{2008/06/29}{(AO, 455) Be nice to a list within the abstract (assign \cs{@totalleftmargin}).}
7607
 
% The hook \cmd\frontmatter@affiliationfont\ controls the formatting of affiliations and affiliation groups.
7608
 
% The hook \cmd\frontmatter@above@affilgroup\ is invoked just before proceeding with author/affiliation processing.
7609
 
% The \cmd\frontmatter@above@affiliation\ is the amount of space above affiliations in the \classoption{groupedaddress} style,
7610
 
% and \cmd\frontmatter@above@affiliation@script\ is that for \classoption{superscriptaddress}.
7611
 
%
7612
 
% Note: affiliation font is 9.03/10.4bp, 14.3bp/19.2bp b-b above/below
7613
 
%    \begin{macrocode}
7614
 
\def\frontmatter@affiliationfont{% Helvetica 9/10.2
7615
 
 \small\slshape\selectfont\baselineskip10.5\p@\relax
7616
 
 \@tempskipa\@flushglue
7617
 
 \@flushglue\z@ plus.8\hsize
7618
 
 \raggedright\advance\leftskip.5in\relax
7619
 
 \@flushglue\@tempskipa
7620
 
 \@totalleftmargin\leftskip
7621
 
 \let\def@after@address\def@after@address@empty
7622
 
}%
7623
 
\def\frontmatter@above@affilgroup{\addvspace{7.2\p@}}% additional leading above an author
7624
 
\def\frontmatter@above@affiliation{\addvspace{5.3\p@}}%
7625
 
\def\frontmatter@above@affiliation@script{}%
7626
 
%    \end{macrocode}
7627
 
% \end{macro}
7628
 
%
7629
 
% Set up the default RMP style for title block authors and affiliations.
7630
 
% We assign the titlepage style for RMP; a document instance 
7631
 
% may override by invoking one of the class options of \revtex.
7632
 
% \changes{4.1b}{2008/08/04}{The \texttt{rmp} journal substyle selects \texttt{groupedaddress} by default.}%
7633
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
7634
 
%
7635
 
% This command should override the effect of the 
7636
 
% corresponding command in the society substyle,
7637
 
% and any document class option bearing on same will in turn override. 
7638
 
%    \begin{macrocode}
7639
 
\clo@groupedaddress
7640
 
%    \end{macrocode}
7641
 
%
7642
 
% \begin{macro}{\frontmatter@RRAP@format}
7643
 
% \changes{4.1b}{2008/06/29}{(AO, 455) Be nice to a list within the abstract (assign \cs{@totalleftmargin}).}
7644
 
% Note: in RMP, if we are not in preprint mode, the date will not be produced.
7645
 
%
7646
 
% Note: Helvetica C/lc, 8.98bp, space above: 16.3bp b-b.
7647
 
%    \begin{macrocode}
7648
 
\def\frontmatter@RRAP@format{%
7649
 
  \addvspace{7.3\p@}%
7650
 
  \small
7651
 
  \raggedright\advance\leftskip.5in\relax
7652
 
 \@totalleftmargin\leftskip
7653
 
}%
7654
 
\def\produce@RRAP#1{%
7655
 
  \@if@empty{#1}{}{%
7656
 
   \@ifvmode{\leavevmode}{}%
7657
 
   \unskip(\ignorespaces#1\unskip)\quad
7658
 
  }%
7659
 
}%
7660
 
%    \end{macrocode}
7661
 
% \end{macro}
7662
 
%
7663
 
% \begin{macro}{\frontmatter@abstractheading}
7664
 
% Space above 21.8bp b-b.
7665
 
%    \begin{macrocode}
7666
 
\def\frontmatter@abstractheading{%
7667
 
 \preprintsty@sw{%
7668
 
  \begingroup
7669
 
   \centering\large
7670
 
   \abstractname
7671
 
   \par
7672
 
  \endgroup
7673
 
  \vspace{.5pc}%
7674
 
 }{}%
7675
 
}%
7676
 
%    \end{macrocode}
7677
 
% \end{macro}
7678
 
%
7679
 
% \begin{macro}{\frontmatter@abstractfont}
7680
 
% TimesTen 8.93bp/9.6bp X 360bp, indented 36bp, with 21.9/37.6bp b-b above/below
7681
 
% \changes{4.1b}{2008/06/29}{(AO, 455) Be nice to a list within the abstract (assign \cs{@totalleftmargin}).}
7682
 
%    \begin{macrocode}
7683
 
\def\frontmatter@abstractfont{%
7684
 
 \footnotesize
7685
 
 \hsize360\p@
7686
 
 \leftskip=0.5in
7687
 
 \parindent\z@
7688
 
 \@totalleftmargin\leftskip
7689
 
}%
7690
 
%    \end{macrocode}
7691
 
% \end{macro}
7692
 
%
7693
 
% \begin{macro}{\frontmatter@preabstractspace}
7694
 
% \begin{macro}{\frontmatter@postabstractspace}
7695
 
% Space above and space below abstract in title block.
7696
 
% Should be 22/36 points base-to-base.
7697
 
%    \begin{macrocode}
7698
 
\def\frontmatter@preabstractspace{7.7\p@}%
7699
 
\def\frontmatter@postabstractspace{24.6\p@}%
7700
 
%    \end{macrocode}
7701
 
% \end{macro}
7702
 
% \end{macro}
7703
 
%
7704
 
% FIXME: Not done: PACS.
7705
 
% FIXME: TOC: Head is same as \section: HelveticaNeue 8.98. 32/22bp b-b above/below,
7706
 
%             Body: TimesTen 8/10.5.
7707
 
%
7708
 
% \subsection{General Text}%
7709
 
%
7710
 
% \changes{4.1b}{2008/07/01}{(AO) make settings at class time instead of deferring them to later.}
7711
 
% If not in preprint mode, RMP sets the type size to 10/12 point. Note: s/b 11.6bp leading
7712
 
%FIXME: define \cmd\normalsize\ only if nobody else has done so. 
7713
 
%    \begin{macrocode}
7714
 
 \appdef\setup@hook{%
7715
 
  \preprintsty@sw{}{%
7716
 
   \def\normalsize{%
7717
 
    \@setsize\normalsize{12pt}\xpt\@xpt
7718
 
    \abovedisplayskip 10\p@ plus2\p@ minus5\p@
7719
 
    \belowdisplayskip \abovedisplayskip
7720
 
    \abovedisplayshortskip  \abovedisplayskip
7721
 
    \belowdisplayshortskip \abovedisplayskip
7722
 
    \let\@listi\@listI
7723
 
   }%
7724
 
  }%
7725
 
 }%
7726
 
%    \end{macrocode}
7727
 
%
7728
 
% Footnote mods:
7729
 
% \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}}%
7730
 
%    \begin{macrocode}
7731
 
 \footnotesep 9.25pt
7732
 
 \skip\footins 36pt plus 4pt minus 12pt
7733
 
 \def\footnoterule{%
7734
 
  \dimen@\skip\footins\divide\dimen@\thr@@
7735
 
  \kern-\dimen@\hrule width.5in\kern\dimen@
7736
 
 }%
7737
 
%    \end{macrocode}
7738
 
%
7739
 
%
7740
 
% \subsection{Sectioning}
7741
 
% \changes{4.1b}{2008/08/04}{Use \cs{setup@hook} to initialize all.}
7742
 
% \changes{4.1b}{2008/08/01}{Section numbering via procedures \cs{secnums@rtx} and \cs{secnums@arabic}.}
7743
 
%
7744
 
% We override the meaning of \cmd\secnums@rtx. 
7745
 
% The class option \classoption{secnumarabic} will continue to work.
7746
 
%    \begin{macrocode}
7747
 
\def\secnums@rtx{%
7748
 
 \@ifxundefined\thepart{%
7749
 
  \def\thepart{\Roman{part}}%
7750
 
 }{}%
7751
 
 \@ifxundefined\thesection{%
7752
 
  \def\thesection       {\Roman{section}}%
7753
 
  \def\p@section        {}%
7754
 
 }{}%
7755
 
 \@ifxundefined\thesubsection{%
7756
 
  \def\thesubsection    {\Alph{subsection}}%
7757
 
  \def\p@subsection     {\thesection.}%
7758
 
 }{}%
7759
 
 \@ifxundefined\thesubsubsection{%
7760
 
  \def\thesubsubsection {\arabic{subsubsection}}%
7761
 
  \def\p@subsubsection  {\thesection.\thesubsection.}%
7762
 
 }{}%
7763
 
 \@ifxundefined\theparagraph{%
7764
 
  \def\theparagraph     {\alph{paragraph}}%
7765
 
  \def\p@paragraph      {\thesection.\thesubsection.\thesubsubsection.}%
7766
 
 }{}%
7767
 
 \@ifxundefined\thesubparagraph{%
7768
 
  \def\thesubparagraph  {\arabic{subparagraph}}%
7769
 
  \def\p@subparagraph   {\thesection.\thesubsection.\thesubsubsection.\theparagraph.}%
7770
 
 }{}%
7771
 
}%
7772
 
%    \end{macrocode}
7773
 
%
7774
 
% In RMP, put a period (.), followed by `nut space', after the section number.
7775
 
% Also, hang the section number (the \LaTeX\ default).
7776
 
%    \begin{macrocode}
7777
 
\def\@seccntformat#1{\csname the#1\endcsname.\hskip0.5em\relax}%
7778
 
%    \end{macrocode}
7779
 
%
7780
 
% Note that we wish to set the section head uppercase, so we use
7781
 
% David Carlisle's \cmd\MakeTextUppercase. However, because this procedure effectively 
7782
 
% parses its argument (looking for things to \emph{not} translate), it has to be invoked
7783
 
% in such a way that the argument of the \cmd\section\ command is passed to it as its
7784
 
% own argument. 
7785
 
%
7786
 
% To accomplish this, we use the \cmd\@hangfrom@\ hook, which was developed for this 
7787
 
% purpose.
7788
 
% \changes{4.1b}{2008/07/01}{Add \cs{@hangfroms@section}}
7789
 
%    \begin{macrocode}
7790
 
 \def\section{%
7791
 
  \@startsection{section}{1}{\z@}{0.8cm plus1ex minus.2ex}{0.4cm}%
7792
 
  {%
7793
 
   \small\sffamily\bfseries\selectfont
7794
 
   \raggedright
7795
 
   \parindent\z@
7796
 
  }%
7797
 
 }%
7798
 
 \def\@hangfrom@section#1#2#3{\@hangfrom{#1#2}\MakeTextUppercase{#3}}%
7799
 
 \def\@hangfroms@section#1#2{#1\MakeTextUppercase{#2}}%
7800
 
 \def\subsection{%
7801
 
  \@startsection{subsection}{2}{\z@}{0.8cm plus1ex minus.2ex}{0.4cm}%
7802
 
  {%
7803
 
   \small\sffamily\bfseries
7804
 
   \raggedright
7805
 
   \parindent\z@
7806
 
  }%
7807
 
 }%
7808
 
 \def\subsubsection{%
7809
 
  \@startsection{subsubsection}{3}{\z@}{.8cm plus1ex minus.2ex}{0.4cm}%
7810
 
  {%
7811
 
   \small\sffamily\selectfont
7812
 
   \raggedright
7813
 
   \parindent\z@
7814
 
  }%
7815
 
 }%
7816
 
 \def\paragraph{%
7817
 
  \@startsection{paragraph}{4}{\z@}{.8cm plus1ex minus.2ex}{-1em}%
7818
 
  {%
7819
 
   \small\slshape\selectfont
7820
 
   \raggedright
7821
 
   \parindent\z@
7822
 
  }%
7823
 
 }%
7824
 
 \def\subparagraph{%
7825
 
  \@startsection{subparagraph}{4}{\parindent}{3.25ex plus1ex minus.2ex}{-1em}%
7826
 
  {\normalsize\bfseries\selectfont}%
7827
 
 }%
7828
 
%
7829
 
 \setcounter{tocdepth}{4}% FIXME: has no effect
7830
 
%    \end{macrocode}
7831
 
%
7832
 
% \begin{macro}{\appendix}
7833
 
% \begin{macro}{\@hangfrom@appendix}
7834
 
% \begin{macro}{\@hangfroms@appendix}
7835
 
% \begin{macro}{\@appendixcntformat}
7836
 
% \changes{4.1b}{2008/07/01}{Add \cs{@hangfroms@section}}
7837
 
%    \begin{macrocode}
7838
 
\appdef\appendix{%
7839
 
 \let\@hangfrom@section\@hangfrom@appendix
7840
 
 \let\@sectioncntformat\@appendixcntformat
7841
 
}%
7842
 
\def\@hangfrom@appendix#1#2#3{%
7843
 
 #1%
7844
 
 \@if@empty{#2}{%
7845
 
  #3%
7846
 
 }{%
7847
 
  #2\@if@empty{#3}{}{:\ #3}%
7848
 
 }%
7849
 
}%
7850
 
\def\@hangfroms@appendix#1#2{%
7851
 
 #1\appendixname\@if@empty{#2}{}{:\ #2}%
7852
 
}%
7853
 
\def\@appendixcntformat#1{\appendixname\ \csname the#1\endcsname}%
7854
 
%    \end{macrocode}
7855
 
% \end{macro}
7856
 
% \end{macro}
7857
 
% \end{macro}
7858
 
% \end{macro}
7859
 
%
7860
 
%
7861
 
% \subsection{Figure and Table Caption Formatting}
7862
 
% \begin{macro}{\@makecaption}
7863
 
% \changes{4.1b}{2008/07/01}{Break out \cs{@caption@fignum@sep}}
7864
 
%
7865
 
%    \begin{macrocode}
7866
 
\setlength\belowcaptionskip{2\p@}
7867
 
\long\def\@makecaption#1#2{%
7868
 
  \vskip\abovecaptionskip
7869
 
  \vbox{%
7870
 
   \flushing
7871
 
   \small\rmfamily
7872
 
   \noindent
7873
 
   #1\@caption@fignum@sep#2\par
7874
 
  }%
7875
 
  \vskip\belowcaptionskip
7876
 
}%
7877
 
\def\@caption@fignum@sep{\nobreak\hskip.5em plus.2em\ignorespaces}%
7878
 
%    \end{macrocode}
7879
 
% \end{macro}
7880
 
%
7881
 
% \subsection{Citations and Bibliography}%
7882
 
%
7883
 
% Customize \revtex\ for the journal substyle;
7884
 
% this task requires three components:
7885
 
% a \BibTeX\ \file{.bst} style file,
7886
 
% customizing code for \file{natbib}, and
7887
 
% customizations of the \env{thebibliography} environment.
7888
 
%
7889
 
% \begin{macro}{\@bibstyle}
7890
 
% Define the argument of the \cmd\bibliographystyle\ command
7891
 
% (if the document does not do so).
7892
 
%
7893
 
% The user must have installed a \file{.bst} file of the corresponding name.
7894
 
% This file will then be used by \BibTeX\ when compiling the document's \file{.bbl} file.
7895
 
%
7896
 
%  To generate \file{apsrmp.bst}, use \classname{custom-bib} version 3.89d1 or later.
7897
 
%  Run the \file{.bst} generator, \file{makebst.tex}, with the following options:
7898
 
%
7899
 
% \def\QandA#1#2#3{\item#1: \textbf{#2}: \texttt{#3}---}%
7900
 
% \def\CandE#1{\item\relax\texttt{#1}---}%
7901
 
% \begin{enumerate}
7902
 
% \QandA{STYLE OF CITATIONS}{a}{ay}Author-year with some non-standard interface
7903
 
% \QandA{AUTHOR}{*}{nat}Natbib for use with natbib v5.3 or later
7904
 
% \QandA{LANGUAGE FIELD}{l}{lang}Use language field to switch hyphenation patterns for title
7905
 
% \QandA{PRESENTATIONS}{b}{pres,pres-bf}Presentation, speaker bold face 
7906
 
% \QandA{ORDER ON VON PART }{x}{vonx}Sort without von part (de la Maire after Mahone)
7907
 
% \QandA{AUTHOR NAMES}{a}{nm-rev1}Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
7908
 
% \QandA{POSITION OF JUNIOR }{*}{jnrlst}Junior comes last as Smith, John, Jr.
7909
 
% \QandA{TYPEFACE FOR AUTHORS IN LIST OF REFERENCES}{u}{nmft,nmft-def}User defined author font (\cmd\bibnamefont)
7910
 
% \QandA{FONT FOR FIRST NAMES }{u}{fnm-def}First names in user defined font (\cmd\bibfnamefont)
7911
 
% \QandA{EDITOR NAMES IN INCOLLECTION ETC}{a}{nmfted}Editors incollection like authors font
7912
 
% \QandA{FONT FOR `AND' IN LIST}{r}{nmand-rm}`And' in normal font (JONES and JAMES)
7913
 
% \QandA{FONT OF CITATION LABELS IN TEXT }{u}{lab,lab-def}User defined citation font (\cmd\citenamefont)
7914
 
% \QandA{FONT FOR `AND' IN CITATIONS }{r}{and-rm}Cited `and' in normal font 
7915
 
% \QandA{LABEL WHEN AUTHORS MISSING }{*}{keyxyr}Year blank when KEY replaces missing author (for natbib 7.0)
7916
 
% \QandA{DATE POSITION}{b}{dt-beg}Date after authors 
7917
 
% \QandA{DATE FORMAT }{m}{yr-com}Date preceded by comma as `, 1993'
7918
 
% \QandA{INCLUDE MONTHS}{m}{aymth}Include month in date 
7919
 
% \QandA{REVERSED DATE }{r}{dtrev}Date as year month 
7920
 
% \QandA{TRUNCATE YEAR }{*}{note-yr}Year text full as 1990--1993 or `in press'
7921
 
% \QandA{TITLE OF ARTICLE}{d}{tit-qq}Title and punctuation in double quotes (``Title,'' ..)
7922
 
% \QandA{TITLE PRESENT IN ARTICLE, INCOLLECTION, AND INPROCEEDINGS}{x}{jtit-x}Title is ignored
7923
 
% \QandA{INPROCEEDINGS CHAPTER AND PAGES, LIKE INBOOK}{y}{inproceedings-chapter}produce pages after chapter just as in InBook
7924
 
% \QandA{ARTICLE BOOKTITLE PRESENT}{?}{article-booktitle}format booktitle 
7925
 
% \QandA{ARTICLE SERIES PRESENT}{?}{article-series}article can has series
7926
 
% \QandA{JOURNAL NAME FONT}{r}{jttl-rm}Journal name normal font
7927
 
% \QandA{JOURNAL NAME WITH ADDRESS}{y}{journal-address}Include address field (in parentheses) along with journal name
7928
 
% \QandA{BOOK TITLE FIELDS}{y}{book-bt}Field `booktitle', or if absent field `title', is book title 
7929
 
% \QandA{THESIS TITLE OPTIONAL}{?}{thesis-title-o}Title is optional: no warning issued if empty
7930
 
% \QandA{TECHNICAL REPORT TITLE}{b}{trtit-b}Tech. report title like books 
7931
 
% \QandA{JOURNAL VOLUME}{b}{vol-bf}Volume bold as {\bf vol}(num)
7932
 
% \QandA{JOURNAL VOL AND NUMBER}{s}{vnum-sp}Journal vol (num) as 34 (2)
7933
 
% \QandA{VOLUME PUNCTUATION}{c}{volp-com}Volume with comma as vol(num), ppp
7934
 
% \QandA{PAGE NUMBERS}{f}{jpg-1}Only start page number 
7935
 
% \QandA{POSITION OF PAGES}{e}{pp-last}Pages at end but before any notes
7936
 
% \QandA{BOOK EDITOR W/O AUTHOR}{}{book-editor-booktitle}Book permits empty author, produces title before editor in this case
7937
 
% \QandA{INBOOK PERMITS TITLE, BOOKTITLE, AUTHOR, EDITOR}{a}{inbook-editor-booktitle}Allow using both title/booktitle, both author/editor
7938
 
% \QandA{CONFERENCE ADDRESS FOR BOOK, INBOOK, INCOLLECTION, INPROCEEDINGS, PROCEEDINGS}{a}{bookaddress}Italic booktitle followed by bookaddress in roman
7939
 
% \QandA{NUMBER AND SERIES FOR BOOK, INBOOK, INCOLLECTION, INPROCEEDINGS, PROCEEDINGS}{*}{num-xser}Allows number without series and suppresses word "number"
7940
 
% \QandA{WORD NUMBER CAPITALIZED FOR NUMBER AND SERIES}{c}{number-cap}Capitalize word `number' as: "Number 123"
7941
 
% \QandA{WORD CHAPTER CAPITALIZED}{c}{chapter-cap}Capitalize word `chapter' as: `Chapter 42'
7942
 
% \QandA{COMBINING NUMBER AND SERIES}{x}{series-number}Series number as: `Springer Lecture Notes No. 125'
7943
 
% \QandA{POSITION OF NUMBER AND SERIES}{b}{numser-booktitle}After book title and conference address, and before editors 
7944
 
% \QandA{VOLUME AND SERIES FOR BOOKS}{s}{ser-vol}Series, vol. 23
7945
 
% \QandA{VOLUME AND SERIES FORMATTING}{y}{ser-rm}format series roman , even when used with volume
7946
 
% \QandA{WORD VOLUME CAPITALIZED FOR VOLUME AND SERIES}{y}{volume-cap}Capitalize word `volume', as: `Volume 7 in Lecture Series'
7947
 
% \QandA{POSITION OF VOLUME AND SERIES FOR INCOLLECTION, INBOOK, AND INPROCEEDINGS}{e}{ser-ed}Series and volume after booktitle and before editors
7948
 
% \QandA{JOURNAL NAME PUNCTUATION}{x}{jnm-x}Space after journal name
7949
 
% \QandA{PAGES IN BOOK}{*}{pg-bk,book-chapter-pages}As chapter and page: chapter 42, page 345
7950
 
% \QandA{PUBLISHER IN PARENTHESES}{p}{pub-par}Publisher in parentheses 
7951
 
% \QandA{EMPTY PUBLISHER PARENTHESES}{y}{ay-empty-pub-parens-x}eliminate parentheses altogether if nothing inside
7952
 
% \QandA{PUBLISHER POSITION}{e}{pre-edn}Edition before publisher
7953
 
% \QandA{SCHOOL}{p}{school-par}school/address in parens: `(school, address)' 
7954
 
% \QandA{ISBN NUMBER}{*}{isbn}Include ISBN for books, booklets, etc.
7955
 
% \QandA{ISSN NUMBER}{*}{issn}Include ISSN for periodicals
7956
 
% \QandA{DOI NUMBER}{a}{doi-link,doi}Doi forms a link to the publication, anchored to the volume or title
7957
 
% \QandA{`EDITOR' AFTER NAMES}{a}{bkedcap}`Name Editor,' as above, editor upper case
7958
 
% \QandA{EDITOR IN COLLECTIONS}{b}{edby}In booktitle, edited by ..  (where .. is names)
7959
 
% \QandA{PUNCTUATION BETWEEN SECTIONS }{c}{blk-com}Comma between blocks 
7960
 
% \QandA{FINAL PUNCTUATION}{c}{fin-endbibitem}Command at end instead of period 
7961
 
% \QandA{ABBREVIATE WORD `PAGES' }{a}{pp}`Page' abbreviated as p. or pp.
7962
 
% \QandA{ABBREVIATE WORD `EDITORS'}{a}{ed}`Editor' abbreviated as ed. or eds.
7963
 
% \QandA{OTHER ABBREVIATIONS}{a}{abr}Abbreviations of such words
7964
 
% \QandA{ABBREVIATION FOR `EDITION' }{a}{ednx}`Edition' abbreviated as `ed' 
7965
 
% \QandA{EDITION NUMBERS}{n}{ord}Numerical editions as 1st, 2nd, 3rd, etc
7966
 
% \QandA{STORED JOURNAL NAMES}{a}{jabr}Abbreviated journal names 
7967
 
% \QandA{COMMA BEFORE `AND'}{c}{and-com}Comma even with 2 authors as `Tom, and Harry'
7968
 
% \QandA{FONT OF `ET AL'}{i}{etal-it}Italic et al 
7969
 
% \QandA{ADDITIONAL REVTeX DATA FIELDS}{r}{revdata,eprint,url,url-blk,translation}Include REVTeX data fields collaboration, eid, eprint, archive, url, translation
7970
 
% \QandA{SLACcitation FIELD}{?}{SLACcitation}Produce SLACcitation field
7971
 
% \QandA{NUMPAGES DATA FIELD}{*}{numpages-x}Do not include numpages field 
7972
 
% \QandA{REFERENCE COMPONENT TAGS}{b}{bibinfo}Reference component tags like \cmd\bibinfo\ in the content of \cmd\bibitem
7973
 
% \QandA{ELEMENT TAGS}{b}{bibfield}Element tags like \cmd\bibfield\ in the content of \cmd\bibitem
7974
 
% \QandA{COMPATIBILITY WITH PLAIN TEX}{*}{nfss}Use LaTeX commands which may not work with Plain TeX
7975
 
% \end{enumerate}
7976
 
%
7977
 
% A file \file{apsrmp.dbj} file equivalent to the following should result:
7978
 
% \begin{verbatim}
7979
 
%\input docstrip
7980
 
%\preamble
7981
 
%----------------------------------------
7982
 
%*** REVTeX-compatible RMP 2010-02-12 ***
7983
 
%\endpreamble
7984
 
%\postamble
7985
 
%End of customized bst file
7986
 
%\endpostamble
7987
 
%\keepsilent
7988
 
%\askforoverwritefalse
7989
 
%\def\MBopts{\from{merlin.mbs}{%
7990
 
%  head,\MBopta}
7991
 
%\from{physjour.mbs}{\MBopta}
7992
 
%\from{geojour.mbs}{\MBopta}
7993
 
%\from{photjour.mbs}{\MBopta}
7994
 
%\from{merlin.mbs}{tail,\MBopta}}
7995
 
%\def\MBopta{%
7996
 
%  ay,%: Author-year with some non-standard interface
7997
 
%  nat,%: Natbib for use with natbib v5.3 or later
7998
 
%  lang,%: Use language field to switch hyphenation patterns for title
7999
 
%  pres,pres-bf,%: Presentation, speaker bold face 
8000
 
%  vonx,%: Sort without von part (de la Maire after Mahone)
8001
 
%  nm-rev1,%: Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
8002
 
%  jnrlst,%: Junior comes last as Smith, John, Jr.
8003
 
%  nmft,nmft-def,%: User defined author font (\bibnamefont)
8004
 
%  fnm-def,%: First names in user defined font (\bibfnamefont)
8005
 
%  nmfted,%: Editors incollection like authors font
8006
 
%  nmand-rm,%: `And' in normal font (JONES and JAMES)
8007
 
%  lab,lab-def,%: User defined citation font (\citenamefont)
8008
 
%  and-rm,%: Cited `and' in normal font 
8009
 
%  keyxyr,%: Year blank when KEY replaces missing author (for natbib 7.0)
8010
 
%  dt-beg,%: Date after authors 
8011
 
%  yr-par,%: Year in parentheses as (1993)
8012
 
%  dtrev,%: Date as year month 
8013
 
%  date-nil-x,%: If date is empty, then do not produce the surrounding punctuation (parens, brackets, colon, comma)
8014
 
%  tit-qq,%: Title and punctuation in double quotes (``Title,'' ..)
8015
 
%  inproceedings-chapter,%: produce pages after chapter, just as in InBook
8016
 
%  jtit-x,%: Title is ignored
8017
 
%  inproceedings-chapter,%: produce pages after chapter just as in InBook
8018
 
%  article-booktitle,%: format booktitle 
8019
 
%  article-series,%: article can has series
8020
 
%  jttl-rm,%: Journal name normal font
8021
 
%  journal-address,%: Include address field (in parentheses) along with journal name
8022
 
%  book-bt,%: Field `booktitle', or if absent field `title', is book title 
8023
 
%  thesis-title-o,%: Title is optional: no warning issued if empty
8024
 
%  trtit-b,%: Tech. report title like books 
8025
 
%  techreport-institution-par,%: format tech report institution like book publisher
8026
 
%  vol-bf,%: Volume bold as {\bf vol}(num)
8027
 
%  vnum-sp,%: Journal vol (num) as 34 (2)
8028
 
%  volp-com,%: Volume with comma as vol(num), ppp
8029
 
%  jpg-1,%: Only start page number 
8030
 
%  pp-last,%: Pages at end but before any notes
8031
 
%  book-editor-booktitle,%: Book permits empty author, produces title before editor in this case
8032
 
%  inbook-editor-booktitle,%: Allow using both title/booktitle, both author/editor
8033
 
%  bookaddress,%: Italic booktitle followed by bookaddress in roman
8034
 
%  num-xser,%: Allows number without series and suppresses word "number"
8035
 
%  number-cap,%: Capitalize word `number' as: "Number 123"
8036
 
%  chapter-cap,%: Capitalize word `chapter' as: `Chapter 42'
8037
 
%  series-number,%: Series number as: `Springer Lecture Notes No. 125'
8038
 
%  numser-booktitle,%: After book title and conference address, and before editors 
8039
 
%  ser-vol,%: Series, vol. 23
8040
 
%  ser-rm,%: format series roman , even when used with volume
8041
 
%  volume-cap,%: Capitalize word `volume', as: `Volume 7 in Lecture Series'
8042
 
%  ser-ed,%: Series and volume after booktitle and before editors
8043
 
%  jnm-x,%: Space after journal name
8044
 
%  pg-bk,book-chapter-pages,%: As chapter and page: chapter 42, page 345
8045
 
%  pub-par,%: Publisher in parentheses 
8046
 
%  ay-empty-pub-parens-x,%: eliminate parentheses altogether if nothing inside
8047
 
%  pre-edn,%: Edition before publisher
8048
 
%  school-par,%: school/address in parens: `(school, address)' 
8049
 
%  isbn,%: Include ISBN for books, booklets, etc.
8050
 
%  issn,%: Include ISSN for periodicals
8051
 
%  doi-link,doi,%: Doi forms a link to the publication, anchored to the volume or title
8052
 
%  bkedcap,%: `Name Editor,' as above, editor upper case
8053
 
%  edby,%: In booktitle, edited by ..  (where .. is names)
8054
 
%  blk-com,%: Comma between blocks 
8055
 
%  fin-endbibitem,%: Command at end instead of period 
8056
 
%  pp,%: `Page' abbreviated as p. or pp.
8057
 
%  ed,%: `Editor' abbreviated as ed. or eds.
8058
 
%  abr,%: Abbreviations of such words
8059
 
%  ednx,%: `Edition' abbreviated as `ed' 
8060
 
%  ord,%: Numerical editions as 1st, 2nd, 3rd, etc
8061
 
%  jabr,%: Abbreviated journal names 
8062
 
%  and-com,%: Comma even with 2 authors as `Tom, and Harry'
8063
 
%  etal-it,%: Italic et al 
8064
 
%  revdata,eprint,url,url-blk,translation,%: Include REVTeX data fields collaboration, eid, eprint, archive, url, translation
8065
 
%  SLACcitation,%: Produce SLACcitation field
8066
 
%  numpages-x,%: Do not include numpages field 
8067
 
%  url,url-prefix-x,%: URL without prefix (default: `URL ')
8068
 
%  bibinfo,%: Reference component tags like \bibinfo in the content of \bibitem
8069
 
%  bibfield,%: Element tags like \bibfield in the content of \bibitem
8070
 
%  nfss,%: Use LaTeX commands which may not work with Plain TeX
8071
 
%,{%
8072
 
%  }}
8073
 
%\generate{\file{apsrmp4-1.bst}{\MBopts}}
8074
 
%\endbatchfile
8075
 
% \end{verbatim}
8076
 
%
8077
 
% For a comparison between apsrmp.bst and apsrev.bst, see Section~\ref{sec:CompRevRmp}. 
8078
 
%
8079
 
% \changes{4.1c}{2008/08/15}{Document class option longbibliography via \cs{substyle@post}}
8080
 
%    \begin{macrocode}
8081
 
\def\@bibstyle{apsrmp\substyle@post}%
8082
 
%    \end{macrocode}
8083
 
% \end{macro}
8084
 
%
8085
 
% \begin{macro}{\authoryear@sw}
8086
 
% \changes{4.1a}{2008/01/18}{(AO, 457) Endnotes to be sorted in with numerical citations.}%
8087
 
% Author-year citations: default value of \cmd\authoryear@sw\ is true.
8088
 
%    \begin{macrocode}
8089
 
\@booleantrue\authoryear@sw
8090
 
%    \end{macrocode}
8091
 
% \end{macro}
8092
 
%
8093
 
% \begin{macro}{\@bibdataout@rmp}
8094
 
% \changes{4.1o}{2010/02/12}{(AO, 580) Control .bst at run time.}%
8095
 
% When the journal is RMP, the meaning of the procedure \cmd\@bibdataout@aps\ needs to be different 
8096
 
% because of the way the author names are formatted. In other respects, it is the same. 
8097
 
%    \begin{macrocode}
8098
 
\def\@bibdataout@aps{%
8099
 
 \immediate\write\@bibdataout{%
8100
 
%    \end{macrocode}
8101
 
% An entry that controls processing of the \filename{.bst} file has entry type \texttt{@CONTROL}. 
8102
 
% This entry's cite key is \texttt{apsrmp41Control}, which serves as a version number.
8103
 
%    \begin{macrocode}
8104
 
  @CONTROL{%
8105
 
   apsrmp41Control%
8106
 
%    \end{macrocode}
8107
 
% Say whether we want long bibliography style (the default), or the abbreviated style. 
8108
 
%    \begin{macrocode}
8109
 
   \longbibliography@sw{%
8110
 
    ,author="03",editor="0",pages="1",title="0",year="0"%
8111
 
   }{%
8112
 
    ,author="0B",editor="0",pages="0",title="",year="1"%
8113
 
   }%
8114
 
  }%
8115
 
 }%
8116
 
%    \end{macrocode}
8117
 
% Place a \cmd\citation\ into the auxiliary file corresponding to this entry. 
8118
 
%    \begin{macrocode}
8119
 
 \if@filesw
8120
 
  \immediate\write\@auxout{\string\citation{apsrmp41Control}}%
8121
 
 \fi
8122
 
}%
8123
 
%    \end{macrocode}
8124
 
% \end{macro}
8125
 
%
8126
 
% \begin{macro}{\bibpunct}
8127
 
% \begin{macro}{\bibsection}
8128
 
% \begin{macro}{\bibpreamble}
8129
 
% \begin{macro}{\newblock}
8130
 
% \begin{macro}{\bibhang}
8131
 
% \begin{macro}{\bibsep}
8132
 
% \begin{macro}{\cite}
8133
 
% The following commands effectively establish the style in which \cmd\cite\ commands are
8134
 
% formatted.
8135
 
% You can think of them as the second needed component for the bibliography.
8136
 
8137
 
% Set up for author-year citations:
8138
 
% when \cmd\NAT@set@cites\ executes (at \envb{document} time), the \cmd\@biblabel\ will
8139
 
% be set to \cmd\NAT@biblabel.
8140
 
%
8141
 
% Per Karie Friedman (friedman@phys.washington.edu), multiple citations are separated by semicolons, e.g., 
8142
 
% (Jones, 1999; Abbott and Smith, 2000; Wortley, 2001a), 
8143
 
% and 
8144
 
% multiple citations by the same author by commas, e.g., 
8145
 
% Abela et al. (1995, 1997a, 1997b).
8146
 
% The third argument of \cmd\bibpunct\ handles the former.
8147
 
%
8148
 
% The fifth argument puts a comma after the author when the year is not in parens:
8149
 
% (Lee et al., 1996).
8150
 
%
8151
 
% Incidently, this \cmd\bibpunct\ command specifies the \classname{natbib} default values. 
8152
 
%
8153
 
% We define the sectioning command to use when starting the bibliography.
8154
 
%
8155
 
% We change \classname{natbib}'s \cmd\NAT@def@citea\ procedure to effect more elaborate
8156
 
% punctuation for RMP: see item 473: 
8157
 
% \cmd\cite\ order punctuation: ``If possible, \cmd\textcite should put the word 'and' between two citations and before the last citation in a list of 3 or more.''
8158
 
%
8159
 
%    \begin{macrocode}
8160
 
\appdef\setup@hook{%
8161
 
%    \end{macrocode}
8162
 
%
8163
 
% We define the punctuation to use in the \cmd\cite\ command's production.
8164
 
%
8165
 
%    \begin{macrocode}
8166
 
 \bibpunct{(%)
8167
 
 }{%(
8168
 
 )}{;}{a}{,}{,}%
8169
 
%    \end{macrocode}
8170
 
%
8171
 
% We define the sectioning command to use when starting the bibliography.
8172
 
%
8173
 
%    \begin{macrocode}
8174
 
 \def\bibsection{%
8175
 
  \expandafter\section\expandafter*\expandafter{\refname}%
8176
 
  \@nobreaktrue
8177
 
 }%
8178
 
 \let\bibpreamble\@empty
8179
 
 \def\newblock{\ }%
8180
 
 \bibhang10\p@
8181
 
 \bibsep\z@
8182
 
%    \end{macrocode}
8183
 
%
8184
 
% Per Mark Doyle, \cmd\cite\ is mapped to \cmd\citep\ in RMP.
8185
 
% \changes{4.1i}{2009/10/23}{(AO, 541) Defer assignment of \cs{cite} until after natbib loads}
8186
 
%    \begin{macrocode}
8187
 
 \let\cite\citep
8188
 
%    \end{macrocode}
8189
 
%
8190
 
% End of code to be delayed until after \classname{natbib} loads.
8191
 
%    \begin{macrocode}
8192
 
}%
8193
 
%    \end{macrocode}
8194
 
% \end{macro}
8195
 
% \end{macro}
8196
 
% \end{macro}
8197
 
% \end{macro}
8198
 
% \end{macro}
8199
 
% \end{macro}
8200
 
% \end{macro}
8201
 
%
8202
 
% \begin{macro}{\footinbib@sw}
8203
 
% Footnotes in bibliography are consistent only with numbered citations,
8204
 
% and are particularly nasty under \classname{natbib}:
8205
 
% the packcage will automatically change to numbered references if
8206
 
% any \cmd\bibitem\ commands lack the optional argument.
8207
 
% Therefore, we must uninvoke it now, even if invoked by the document.
8208
 
% The same is quietly done with 
8209
 
% \classname{natbib}'s \classoption{mcite} and \classoption{compress} options. 
8210
 
8211
 
% \changes{4.1f}{2009/07/15}{(AO, 523) Add class option nomerge, to turn off new natbib 8.3 syntax}
8212
 
% (AO 523) I changed the code that alters \cmd\NAT@merge\ so that it will not override
8213
 
% when \cmd\NAT@merge\ has been set to \cmd\z@.
8214
 
%    \begin{macrocode}
8215
 
\@booleanfalse\footinbib@sw
8216
 
\appdef\setup@hook{%
8217
 
 \footinbib@sw{%
8218
 
  \class@warn{%
8219
 
   Footnotes in bibliography are incompatible with RMP.^^J%
8220
 
   Undoing the footinbib option.
8221
 
  }%
8222
 
  \@booleanfalse\footinbib@sw
8223
 
 }{}%
8224
 
 \@ifnum{\NAT@merge>\@ne}{\let\NAT@merge\@ne}{}%
8225
 
 \def\NAT@cmprs{\z@}%
8226
 
}%
8227
 
%    \end{macrocode}
8228
 
% \end{macro}
8229
 
%
8230
 
% \begin{macro}{\eprint}
8231
 
% RMP requires the \cmd\eprint\ field in the bib entry to be set off with the word ``eprint''.
8232
 
%    \begin{macrocode}
8233
 
\def\eprint#1{eprint #1}%
8234
 
%    \end{macrocode}
8235
 
% \end{macro}
8236
 
%
8237
 
% \subsection{Table of Contents}
8238
 
%
8239
 
% We set up for auto-sizing of certain TOC elements.
8240
 
8241
 
% To do this, we override the definitions for 
8242
 
% the default TOC font (\cmd\toc@@font),
8243
 
% and define
8244
 
% formatting for the needed elements (\cmd\l@\dots).
8245
 
% Finally, we activate the autosizing by 
8246
 
% assigning \cmd\toc@pre\ and \cmd\toc@post.
8247
 
%
8248
 
% \begin{macro}{\toc@@font}
8249
 
% \changes{4.1a}{2008/01/19}{(AO, 461) Change the csname revtex uses from @dotsep to ltxu@dotsep. The former is understood in mu. (What we wanted was a dimension.)}%
8250
 
% Set the formatting characteristics of the auto-indenting part
8251
 
%  of the TOC.
8252
 
%    \begin{macrocode}
8253
 
\def\toc@@font{%
8254
 
 \footnotesize\rmfamily
8255
 
 \def\\{\space\ignorespaces}%
8256
 
}%
8257
 
\def\ltxu@dotsep{5.5pt}%
8258
 
%    \end{macrocode}
8259
 
% \end{macro}
8260
 
%
8261
 
% \begin{macro}{\l@section}
8262
 
% Determine which TOC elements are automatically indented.
8263
 
%    \begin{macrocode}
8264
 
\def\tocleft@{\z@}%
8265
 
\def\tocdim@min{5\p@}%
8266
 
\def\l@section{%
8267
 
 \l@@sections{}{section}% Implicit #3#4
8268
 
}%
8269
 
\def\l@subsection{%
8270
 
 \l@@sections{section}{subsection}% Implicit #3#4
8271
 
}%
8272
 
\def\l@subsubsection{%
8273
 
 \l@@sections{subsection}{subsubsection}% Implicit #3#4
8274
 
}%
8275
 
%\def\l@subsubsection#1#2{}%
8276
 
\def\l@paragraph#1#2{}%
8277
 
\def\l@subparagraph#1#2{}%
8278
 
%    \end{macrocode}
8279
 
% \end{macro}
8280
 
%
8281
 
% Activate the TOC processing.
8282
 
%    \begin{macrocode}
8283
 
\let\toc@pre\toc@pre@auto
8284
 
\let\toc@post\toc@post@auto
8285
 
%    \end{macrocode}
8286
 
%
8287
 
%
8288
 
%    \begin{macrocode}
8289
 
%</rmp>
8290
 
%    \end{macrocode}
8291
 
%
8292
 
%
8293
 
% \Finale
8294
 
% %Here ends the programmer's documentation.
8295
 
% \endinput
8296
 
%
8297
 
\endinput