Issues with punctuation sometimes crop up in the biblatex-mla style. This is mostly due to the fact that it hasn't been updated since the time of biblatex 1.0.
Your particular problem isn't present with biblatex 1.0. With biblatex 1.7 it seems biblatex-mla's definition of \bibnamedash
sets too much punctuation. Here's an excerpt from mla.bbx
:
\renewcommand*{\bibnamedash}{%
\mbox{%
\mlanamedash%
\iffieldundef{nameaddon}%
{\unspace\newunitpunct}%
{\unspace\addspace}%
}%
}
The collection
entry types are handled with the book
bibliography driver. It expects maintitle
to be used only in addition to title
. If the nameaddon
and title
fields are missing, the driver will output too many dots.
So you have three options:
- Use biblatex 1.0 until biblatex-mla gets updated. This will spare you from resolving other incompatibilities the style has with newer biblatex versions. Any remaining punctuation issues can likely be resolved by loading the hyperref package (after biblatex).
- Use the
maintitle
(mainsubtitle
) field only when you're already using title
(subtitle
). Same goes for booktitle
and booksubtitle
. Note that your collection
entries appear different in other styles. The biblatex-examples.bib
demonstrate conventional use of collection
and incollection
. Details on these entry types and crossref
inheritance can be found in the biblatex manual.
- Edit the
\bibnamedash
command.
For (3), the following should give you no dots (like the standard biblatex styles).
\renewcommand*{\bibnamedash}{\mlanamedash\nopunct}
This should give you exactly one dot:
\renewcommand*{\bibnamedash}{%
\mlanamedash%
\iffieldundef{nameaddon}{\adddot}{\nopunct}}
We don't need to worry about the space delimiting the dash and the nameaddon
field because biblatex-mla's author
bibliography macro issues \setunit{\addspace}
before printing nameaddon
.
\documentclass{scrartcl}
\usepackage{csquotes}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,style=mla]{biblatex}
%\renewcommand*{\bibnamedash}{\mlanamedash\nopunct}
\renewcommand*{\bibnamedash}{%
\mlanamedash%
\iffieldundef{nameaddon}{\adddot}{\nopunct}}
% biblatex-mla has no localization module for German
\DefineBibliographyStrings{german}{%
print = {print}}
\begin{filecontents}{\jobname.bib}
@INCOLLECTION{gaonkar:in,
author = {Gaonkar, Dilip Parameshwar},
title = {On Alternative Modernities},
pages = {1--23},
nameaddon = {Name add-on},
editor = {Gaonkar, Dilip Parameshwar},
booktitle = {Alternative Modernities},
publisher = {Duke University Press},
location = {Durham and London},
date = {2001},
isbn = {0-822-32714-7}}
@COLLECTION{adorno-gs2,
editor = {Rolf Tiedemann},
year = {2003},
maintitle = {Gesammelte Schriften Bd. 10.2},
mainsubtitle = {Kulturkritik und Gesellschaft II. Eingriffe. Stichworte},
publisher = {Suhrkamp},
location = {Frankfurt am Main},
author = {Theodor W. Adorno},
howpublished = {Print},
options = {useeditor=false},
shortauthor = {{In: GS 10.2}}}
@COLLECTION{adorno-gs8,
editor = {Rolf Tiedemann},
year = {2003},
maintitle = {Gesammelte Schriften Bd. 8},
mainsubtitle = {Soziologische Schriften I},
publisher = {Suhrkamp},
location = {Frankfurt am Main},
author = {Theodor W. Adorno},
howpublished = {Print},
options = {useeditor=false},
shortauthor = {{In: GS 8}}}
@INCOLLECTION{adorno-spaet,
author = {Theodor W. Adorno},
title = {Sp\"{o}tkapitalismus oder Industriegesellschaft?},
year = {1968},
subtitle = {Einleitungsvortrag zum 1. Deutschen Soziologentag},
pages = {354-370},
crossref = {adorno-gs8}}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{adorno-spaet,adorno-gs2,adorno-gs8}
\nocite{gaonkar,gaonkar:in,knuth:ct,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}
Here's the output without dots:

And with dots:
