Using the 'aps' option for a revtex4-1 documentclass, the following solution allows to keep all other particularities of the aps bibliographic style unchanged. Notably, it is possible to use a modified version of apsrev4-1.bst but this will probably affect the other behaviours. Here we will simply overwrite the parameters passed to apsrev4-1.bst style file.
Originally, the output of the RevTex package without 'longbibliography' will be
Now when you add the 'longbibliography' option you get this
with the awful mix of initials and full first names.
Actually the parameters for building the bibliography are stored in an extension of the .bib file called [Your file]Notes.bib of your document folder. To overwrite its output, add into your preamble, after the calls to packages,
\AtBeginDocument{%
\newwrite\bibnotes
\def\bibnotesext{Notes.bib}
\immediate\openout\bibnotes=\jobname\bibnotesext
\immediate\write\bibnotes{@CONTROL{REVTEX41Control}}
\immediate\write\bibnotes{@CONTROL{%
apsrev41Control,author="08",editor="1",pages="1",title="0",year="1"}}
\if@filesw
\immediate\write\@auxout{\string\citation{apsrev41Control}}%
\fi
}%
This will replace the text generated at the time of building the file. You can set manually all parameters in these lines of code. Here author="08" stands for "initials for authors". The integer value used for authors is actually encoded in a sum of powers of two, each one corresponding to a different parameter. title="0" allows the production of the article titles. Your output now looks like this
Note that the use of 'longbibliography' option is now ineffective but replaced by the manual values.
Beyond just initials, here is the list of all authors parameters as found in apsrev4-1.bst
'control.author.jnrlst swap$ duplicate$ #64 control.decode
'control.author.dotless swap$ duplicate$ #32 control.decode
'control.author.nospace swap$ duplicate$ #16 control.decode
'control.author.initials swap$ duplicate$ #8 control.decode
'control.author.nocomma swap$ duplicate$ #4 control.decode
'control.author.first swap$ duplicate$ #2 control.decode
'control.author.reversed swap$ duplicate$ #1 control.decode
so for example use 16+8+1=25 to reverse order without spaces and use of initials. You need to set editor="0" to allow full control over author format. The parameter entered for author="HH" is actually an hexdecimal value. This means that for the previous example you have to set author="19"
The longbibliography
option works by writing some commands to a .bib
file that is read by bibtex
. In a standard revtex4-1
document the name of this file is XXXNotes.bib
where XXX.tex
is the name of your tex file.
For a different documentclass you can get titles to appear by adding
@CONTROL{REVTEX41Control}
@CONTROL{apsrev41Control,author="00",editor="1",pages="1",title="0",year="0"}
to the top of your own bibliography file and adding \nocite{apsrev41Control}
to your .tex
file. To switch titles off, write title=""
instead in the second line.
.tex
file:
\documentclass{article}
\usepackage[authoryear]{natbib}
\begin{document}
\cite{art}
\nocite{apsrev41Control}
\bibliographystyle{apsrev4-1}
\bibliography{\jobname}
\end{document}
.bib
file
@CONTROL{REVTEX41Control}
@CONTROL{apsrev41Control,author="00",editor="1",pages="1",title="0",year="0"}
@Article{art,
author = {Author, A.},
title = {Title is here},
journal = {Jour.},
year = 2000,
volume = 2,
number = 1,
pages = {1--23}
}
If you want to avoid modifying your own .bib
file, create a new .bib
file, say mycontrol.bib
with the above two lines and pass it to bibtex
by adding it as an argument to the \bibliography
command, e.g.
\bibliography{mycontrol,mymainbibfile}
You can get some explanation of the other options by looking in a .bbl
generated by a revtex4-1
document which includes comments such as
%Control: key (0)
%Control: author (0) dotless jnrlst
%Control: editor formatted (1) identically to author
%Control: production of article title (0) allowed
%Control: page (1) range
%Control: year (0) verbatim
%Control: production of eprint (0) enabled
Best Answer
longbibliography
is an option to the class: