[Tex/LaTex] How to get APS BibTeX style file to work

bibtexnatbibrevtex

I just started to use BibTeX and have found it amazingly convenient. So far I have tried to use the style file h-physrev.bst from arXiv, and copied the BibTeX information directly from the site of inspire. It works well since it produced the closest reference style that I wanted. However, I still am facing two problems:

  1. The field archiveprefix was not handled correctly, I have to manually add arXiv to the field eprint to have the proper output, eg, arXiv:1001.1001.
  2. In fact, sometimes I don't want to display the eprint field.

Since I knew very little about BibTeX so I was really confused by looking at the content of the the bst file. It seems to take an expert to the modify it in order to achieve what I wanted above.

On the other hand, I understood that RevTeX provides certain BibTeX style files that suit the corresponding journals. So I downloaded the RevTeX package, from it I found several style files and used aipauth4-1.bst in the place of h-physrev.bst. However, I get some really strange results.

I tried to use MiKTeX in windows (and also TeXLive in linux, the later compiles well when I used h-physrev.bst), but it doesn't work as desired, I got some uninterpreted TeX markup in the reference section of the resulting .dvi/.pdf file. To sum up my configurations:

  1. MiKTeX in Windows
  2. BibTeX style file aipauth4-1.bst
  3. BibTeX information are directly from the inspire site
  4. I used the following in my LaTeX file head section:

\documentclass[secnumarabic, graphics,floatfix, nofootinbib,tightenlines,nobibnotes, aps, prl, 12pt]{revtex4}

  1. I use the following to call invoke the BibTeX style file

\bibliographystyle{h-physrev}

I would like to know how to get the style file aipauth4-1.bst to work?

Best Answer

For the aipauth4-1 and related bibliography styles, you should be using the 4-1 version of the documentclass, i.e.. revtex4-1 instead of revtex4. These new bibliography styles are one of the main features of the 4-1 release. See revtex4-1 on ctan.

Here is a minimal working pair of documents:

Sample output

\documentclass[secnumarabic, graphics,floatfix,nofootinbib,
tightenlines,nobibnotes,aps,prl,12pt]{revtex4-1}

\begin{document}

\cite{Kapustin:2013hpk}
\cite{Mishra:2008dm}

\bibliographystyle{aipauth4-1}
\bibliography{bibl}

\end{document}

with bibl.bib containing

@article{Kapustin:2013hpk,
      author         = "Kapustin, Anton and Willett, Brian",
      title          = "{Wilson loops in supersymmetric Chern-Simons-matter
                        theories and duality}",
      year           = "2013",
      eprint         = "1302.2164",
      archivePrefix  = "arXiv",
      primaryClass   = "hep-th",
      SLACcitation   = "%%CITATION = ARXIV:1302.2164;%%",
}

@article{Mishra:2008dm,
      author         = "Mishra, Ananta P. and Mohapatra, Ranjita K. and Saumia,
                        P.S. and Srivastava, Ajit M.",
      title          = "{Using cosmic microwave background radiation analysis
                        tools for flow anisotropies in relativistic heavy-ion
                        collisions}",
      journal        = "Phys.Rev.",
      volume         = "C81",
      pages          = "034903",
      doi            = "10.1103/PhysRevC.81.034903",
      year           = "2010",
      eprint         = "0811.0292",
      archivePrefix  = "arXiv",
      primaryClass   = "hep-ph",
      SLACcitation   = "%%CITATION = ARXIV:0811.0292;%%",
}

Compile via

latex mainfile
bibtex mainfile
latex mainfile
latex mainfile

where you tex file is mainfile.tex.

As the first entry has no journal infomation, it will generate a warning, but this is the data collected from the inspire site you mention. It would be better to change this entry to @misc instead of @article in the bibliography file.

If you don't want the archive information, the simplest thing is to remove the lines eprint, archivePrefix and primaryClass from the bib file, but you had probably better tell the reader where the paper can be found, e.g. via note field if it is not in a journal.

Related Question