As the comments have mentioned, I would recommend against maintaining a bibliography with the abbreviations done by hand. This is exactly the sort of automatic thing that bibtex should be doing for you. That said, I don't know how to control this sort of thing with bibtex. I seem to remember that natbib
did automatically truncate author lists, but I can't remember how much control it gave you. (indeed, this could well have been one of the things that made me move to biblatex...)
The biblatex
solution would simply be to set maxnames=4
as a package option. Incidentally, biblatex is no longer in beta: v1.0 was uploaded to CTAN yesterday.
This should be what you want. Traditional elsart-num
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bli74,
author = {Blinder, Alan S.},
year = {1974},
title = {The economics of brushing teeth},
journal = {Journal of Political Economy},
volume = {82},
number = {4},
pages = {887--891},
}
@book{Kop04,
author = {Kopka, Helmut and Daly, Patrick W.},
year = {2004},
title = {Guide to \LaTeX},
edition = {4},
address = {Boston},
publisher = {Addison-Wesley},
}
\end{filecontents}
\begin{document}
\nocite{*}
\bibliographystyle{elsart-num}
\bibliography{\jobname}
\end{document}
biblatex
emulation:
\documentclass{article}
\usepackage[firstinits=true,abbreviate=false]{biblatex}
\renewcommand*{\multinamedelim}{\addcomma\space}
\renewcommand*{\finalnamedelim}{\addcomma\space}
\renewcommand*{\newunitpunct}{\addcomma\space}
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat{journaltitle}{#1}
\renewbibmacro{in:}{%
\ifentrytype{article}{%
}{%
\printtext{\bibstring{in}\intitlepunct}%
}%
}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\addnbspace}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\renewcommand*{\bibpagespunct}{\addspace}
\DeclareFieldFormat{pages}{#1}
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bli74,
author = {Blinder, Alan S.},
year = {1974},
title = {The economics of brushing teeth},
journaltitle = {Journal of Political Economy},
volume = {82},
number = {4},
pages = {887--891},
}
@book{Kop04,
author = {Kopka, Helmut and Daly, Patrick W.},
year = {2004},
title = {Guide to \LaTeX},
edition = {4},
location = {Boston},
publisher = {Addison-Wesley},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
\printbibliography
\end{document}
For further information see Guidelines for customizing biblatex styles.
Best Answer
Before studying how to customize bibliography styles either by creating own .bst files or changing to BibLaTex+biber I recommend looking through these bibliography styles here:
Surely, there is something that suits you - at least more than writing your own .bst-file.