This is a well known design flaw of the BibTeX database format:
inproceedings
entries have to provide both, the title
field – which defines the title of the respective paper and the booktitle
field, which gives the title of, well, the proceedings book.
When you crossref
to another entry in BibTex, all fields that have not been set so far are taken from the referred entry. Hence, referring from inproceedings
to proceedings
imports all fields, but title
, which has already been used for the paper title. Afterwards, BibTeX complaints if booktitle
is (still) missing.
proceedings
entries, however, need their title (like other books) to be given by the title
field. It is taken if you refer directly to a proceedings book (like \cite{stackexchange/tex/23122}
) or the style does it automatically (to shorten your inproceedings
entries).
So the general (but ugly) recommendation (e.g., given by WikiPedia) to be able to use proceedings
entries stand-alone as well as crossref
ed by inproceedings
entries is to state the title twice: once as title
and once as booktitle
.
Edit:
A less ugly solution to this problem is provided by switching from traditional BibTex to biblatex with the biber backend, as explained in the answer by lockstep.
Most of the needed changes to the numeric
style of biblatex
are easy -- the somewhat tricky part (I hope I got it right) is switching the location of the pages field. Traditional unsrt
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{Dudarev1998,
author = {Dudarev, S. L. and Botton, G. A. and Savrasov, S. Y. and Humphreys,
C. J. and Sutton, A. P.},
title = {Electron-energy-loss spectra and the structural stability of nickel
oxide: An LSDA+U study},
journal = {Phys. Rev. B},
year = {1998},
volume = {57},
pages = {1505--1509},
month = {Jan},
doi = {10.1103/PhysRevB.57.1505},
number = {3},
publisher = {American Physical Society},
url = {http://link.aps.org/doi/10.1103/PhysRevB.57.1505}
}
\end{filecontents}
\begin{document}
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{\jobname}
\end{document}
biblatex
emulation:
\documentclass{article}
\usepackage[sorting=none,maxnames=99,firstinits=true,doi=false,url=false]{biblatex}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1}
\renewbibmacro{in:}{%
\ifentrytype{article}{%
}{%
\printtext{\bibstring{in}\intitlepunct}%
}%
}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
\setunit{\addcomma\space}%
\printfield{volume}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}%
\setunit{\addcolon}%
\printfield{pages}}
\renewbibmacro*{issue+date}{%
\setunit{\addcomma\space}%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}
\renewbibmacro*{note+pages}{%
\printfield{note}%
\newunit}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{Dudarev1998,
author = {Dudarev, S. L. and Botton, G. A. and Savrasov, S. Y. and Humphreys,
C. J. and Sutton, A. P.},
title = {Electron-energy-loss spectra and the structural stability of nickel
oxide: An LSDA+U study},
journal = {Phys. Rev. B},
year = {1998},
volume = {57},
pages = {1505--1509},
month = {Jan},
doi = {10.1103/PhysRevB.57.1505},
number = {3},
publisher = {American Physical Society},
url = {http://link.aps.org/doi/10.1103/PhysRevB.57.1505}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
\printbibliography
\end{document}
Note: I assumed that you used the issue
field by mistake and that the number
field is the correct one (both for traditional BibTeX and biblatex
).
Best Answer
May be the style cj.bst do the job (only for bibtex). You can download the
cj.bst
from the link provided and put it in the same folder as your.tex
file. An example file follows: