Make a copy of apacite.bst
(perhaps name it bpacite.bst
). If you are using TeXLive it is located in /usr/local/texlive/<year>/texmf-dist/bibtex/bst/apacite/apacite.bst
where <year>
is the current year of your TeX Live distribution. The easiest way to find the exact file on any system is to type kpsewhich apacite.bst
in a terminal window. Save the new copy in your local texmf/bibtex/bst
folder.
In the new file, comment out (or delete) lines 753-775.
I won't quote the whole code here, but the relevant function in the .bst
file begins:
FUNCTION {check.add.initials.aut}
{ %
% Comment out all of the code between the opening brace (above)
% and the final closing brace (below)
%
}
So after you have commented out the code, you should have what is effectively a function that does nothing. (You can't delete the function itself without messing with more parts of the code.)
FUNCTION {check.add.initials.aut}
{
}
This removes the extra check for whether initials are needed; since the default citation is not to have them, they will not appear in any citation.
Here's a test document assuming the modified .bst
file:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{kim2002,
Author = {Kim, J B and Sag, I A},
Journal = {Natural Language \& Linguistic Theory},
Pages = {339-412},
Title = {Negation Without Head-Movement},
Volume = {20},
Year = {2002}}
@article{kim2001,
Author = {S Kim},
Journal = {Natural Language \& Linguistic Theory},
Pages = {67-107},
Title = {Chain Composition and Uniformity},
Volume = {19},
Year = {2001}}
@article{kim1989,
Author = {Y-J Kim and Richard Larson},
Journal = {Linguistic Inquiry},
Pages = {681-688},
Title = {Scope Interpretation and the Syntax of Psych-Verbs},
Volume = {20},
Year = {1989}}
\end{filecontents}
\usepackage{apacite}
\bibliographystyle{bpacite}
\begin{document}
\cite{kim2002,kim2001,kim1989}
\bibliography{\jobname}
\end{document}
Copy the file named.bst
(in TeXLive it is in texmf-dist/bibtex/bst/beebe/named.bst
) to the file abbrvnamed.bst
in your working directory.
Find in this file the line
FUNCTION {format.names}
and inside the function the line
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
Change this line to
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
Now you can put in your document \bibliographystyle{abbrvnamed}
, and get the result you want.
For the curious: in this magic line ff
means Full First names, f.
means abbreviated First names, vv
is "Von part", ll
is for Last names, jj
is for Junior suffix. Yes, BibTeX language is evil.
Best Answer
The BibTeX
format.name$
function interpretsB.D.
as a single name, butB. D.
as two initials. Thus you must have a space between each initial for BibTeX to correctly produce more than one initial in the output. Editing the database is the only way to sort this out.