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.
With etoolbox
you can patch the command natbib
uses to set all non-numeric citation labels: \NAT@citex
. The postnote is passed to \NAT@citex
as the second argument (#2
). For \citet
and its variants \ifNAT@swa
will expand <false>
, \ifNAT@par
expands <true>
and \NAT@date
is defined.
\documentclass{article}
\usepackage{natbib}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\NAT@citex}
{\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
\if\relax\NAT@date\relax\else\NAT@@close\fi\fi}
{\ifNAT@swa\else\if*#2*\else\ifNAT@par\else\NAT@cmt#2\fi\fi
\if\relax\NAT@date\relax\else\NAT@@close%
\if*#2*\else\ifNAT@par\NAT@cmt#2\fi\fi\fi\fi}{}{}
\makeatother
\begin{filecontents}{\jobname.bib}
@Book{companion,
author = {Goossens, Michel and Mittelbach, Frank and Samarin, Alexander},
title = {The LaTeX Companion},
edition = {1},
publisher = {Addison-Wesley},
location = {Reading, Mass.},
year = {1994}}
@Book{adams,
title = {The Restaurant at the End of the Universe},
author = {Douglas Adams},
series = {The Hitchhiker's Guide to the Galaxy},
publisher = {Pan Macmillan},
year = {1980}}
\end{filecontents}
\newcommand{\cmd}[1]{\textbackslash\texttt{#1}}
\begin{document}
\noindent
\cmd{citet}: \citet[e.g.][100]{adams}, \citet[pp. 1--10]{companion,adams} \\
\cmd{Citet}: \Citet[pp. 1--10]{adams}, \Citet[pp. 1--10]{companion} \\
\cmd{citet*}: \citet*[pp. 1--10]{companion,adams} \\
\cmd{Citet*}: \Citet*[p. 10]{companion} \\
\cmd{cite}: \cite[e.g.][100]{adams}, \cite{companion} \\
\cmd{citep}: \citep[e.g.][p. 20]{adams}, \citep[1--10]{companion,adams} \\
\cmd{citetext}, \cmd{citealp}:
\citetext{see \citealp{companion}, or even better \citealp{adams}} \\
\cmd{citeauthor}: \citeauthor{adams}, \citeauthor{companion} \\
\cmd{citeyear}: \citeyear{adams}, \citeyear{companion} \\
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
Best Answer
The simplest solution is to write (\citeauthor{xxx}, this volume) as recommended by @mico.
Another solution would be to follow the approach described in: Show more than four digits in year citation
To copy apalike.bst and change the entry
year field.or.null purify$ #-1 #4 substring$
in the copy to: