[Tex/LaTex] Only author’s initials in BibTeX natbib using named style

bibtexnatbib

I have a BibTeX file with a mix of entries, some with full author's names and some with just initials. I would like my typeset bibliography to only use initials. Is there a way to do this?

I have the following BibTeX commands currently in my file:

\usepackage[super,comma,sort&compress]{natbib} 
\bibliography{thesis}
\bibliographystyle{named}

I have found documentation on how to do this with biblatex, but not with natbib.

Best Answer

  1. 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.

  2. Find in this file the line

    FUNCTION {format.names}
    

    and inside the function the line

      { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    
  3. 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.