4

My text is in German yet I'm using the style alpha and not alphadin because I don't like the capitalization and the word order in the latter. The only problem I have with alpha is that it separates the names by "and":

[AZ10] Martin Aigner and Günter M. Ziegler. Das Buch der Beweise. Springer, Berlin, Heidelberg, 2010.

And I'd like it to be separated by a comma.

My code, in case it might be relevant:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{natbib}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@BOOK{Aigner2010,
    AUTHOR = {Martin Aigner and G{\"u}nter M. Ziegler},
    YEAR = {2010},
    TITLE = {Das Buch der Beweise},
    ISBN = {978-3-642-02259-3},
    PUBLISHER = {Springer},
    ADDRESS = {Berlin, Heidelberg},
}

\end{filecontents}

\begin{document}

\nocite{*}
\bibliographystyle{alpha}
\bibliography{\jobname} 

\end{document}

2 Answers 2

6

If you want to stick with BibTeX, it turns out not to be too difficult to create a modified form of the file alpha.bst that achieves your objective.

  • Find the file alpha.bst in your TeX distribution. Make a copy of this file and call it, say, alphacomma.bst. (Don't edit a file from the TeX distribution directly.)

  • Open the file alphacomma.bst in a text editor.

  • Find the two instances of the string " and ". One instance is (most likely) on line 203 in the function format.names, the other on line 482 in the function format.crossref.editor.

  • Replace both instances of " and " with ", ". Notice the space after the comma.

  • In the function format.names, on line 198 (or so), locate the line

                    { "," * }
    

    (This line immediately follows the line that contains the code { numnames #2 >.)

    Change this line to

                    { "" * }
    

    In case you're curious: In the original version of alpha.bst, if an entry has three or more authors, a comma is inserted before the final author. Since we're now using , as the generic delimiter between all authors, it's no longer necessary to insert a comma before the final author.

  • Save the file alphacomma.bst either in the directory/folder where your main .tex file is located or in a directory/folder that's searched by BibTeX. If you choose the latter option, be sure to update the filename database of your TeX distribution appropriately.

  • Start using the new bibliography file by using the instruction \bibliographystyle{alphacomma}. Run LaTeX, BibTeX, and LaTeX twice more to propagate all changes.

Happy BibTeXing!

enter image description here

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

%%\usepackage[alpha]{natbib}  % 'natbib' not really useful with alpha style

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOK{Aigner2010,
    AUTHOR = {Martin Aigner and G{\"u}nter M. Ziegler},
    YEAR = {2010},
    TITLE = {Das Buch der Beweise},
    ISBN = {978-3-642-02259-3},
    PUBLISHER = {Springer},
    ADDRESS = {Berlin, Heidelberg},
}
\end{filecontents*}

\begin{document}
\cite{Aigner2010}
\bibliographystyle{alphacomma}
\bibliography{\jobname} 
\end{document}
2

Here is a solution using biblatex. (If you don't want the ISBN to be printed, load biblatex with the option isbn=false.)

\begin{filecontents*}{\jobname.bib}
@book{Aigner2010,
  author = {Martin Aigner and G{\"u}nter M. Ziegler},
  year = {2010},
  title = {Das Buch der Beweise},
  isbn = {978-3-642-02259-3},
  publisher = {Springer},
  address = {Berlin, Heidelberg},
}
\end{filecontents*}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[
backend=biber,
style=alphabetic,
%natbib=true, % not needed here but FYI
]{biblatex}
\renewcommand*{\finalnamedelim}{\addcomma\addspace}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

enter image description here

1
  • FWIW, the biblatex option style=alphabetic seems to typeset the contents of the publisher and address fields in the opposite ordering of that produced by the BibTeX style alpha.
    – Mico
    Commented Jul 26, 2014 at 18:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .