Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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}
share|improve this question

2 Answers 2

up vote 7 down vote accepted

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}
share|improve this answer

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

share|improve this answer
    
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 Jul 26 at 18:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.