[Tex/LaTex] biblatex/babel autolang= doesn’t work with idemtracker

babelbiblatex

Although I was glad to discover that biblatex integrates with babel for bibliography formatting, I might have found a bug that prevents it to work with idem (not ibidem) entries. Same goes with biblatex-dw (e.g. footnote-dw style), verbose*, historian and probably with any biblatex style. I keep getting a space before punctuation in citations managed with the idem tracker although the collins* bib entries have langid = {english}. Is there a workaround against this or should it be reported as a bug? Thanks.

I think I am up do date with biblatex version 2.8.

Example with style=historian,

\documentclass[french]{article}

\usepackage{filecontents}
\begin{filecontents}{file.bib}
@BOOK{collinscha,
  title={Changing Order: Replication and Induction in Scientific Practice},
  publisher={University of Chicago Press},
  year={1992 [1985]},
  author={Harry Collins},
  edition={New},
  langid={english}
}

@BOOK{collinsoth,
  title={another book title with same author},
  publisher={na},
  year={9999},
  author={Harry Collins},
  langid={english}
}
\end{filecontents}

\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{verbatim}
\usepackage[english,ngerman,frenchb]{babel}
\usepackage{csquotes}
\usepackage[style=historian,backend=bibtex8,autolang=hyphen]{biblatex}
\DefineBibliographyStrings{french}{namedash={---------}}
\addbibresource{file.bib}

\begin{document}
\cite{collinscha}.

\cite{collinsoth}.

Formating error: see how babel french made-up a space before the colon.

\cite{collinscha}.

\printbibliography
\end{document}

gives,

enter image description here

Example with style=verbose-trad1,

\documentclass[french]{article}

\usepackage{filecontents}
\begin{filecontents}{file.bib}
@BOOK{collinscha,
  title={Changing Order: Replication and Induction in Scientific Practice},
  publisher={University of Chicago Press},
  year={1992 [1985]},
  author={Harry Collins},
  edition={New},
  langid={english}
}

@BOOK{collinsoth,
  title={another book title with same author},
  publisher={na},
  year={9999},
  author={Harry Collins},
  langid={english}
}
\end{filecontents}

\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{verbatim}
\usepackage[english,ngerman,frenchb]{babel}
\usepackage{csquotes}
\usepackage[style=verbose-trad1,backend=bibtex8,autolang=hyphen]{biblatex}
\addbibresource{file.bib}

\begin{document}
\cite{collinscha}.

\cite{collinsoth}.

Formating error: see how babel french made-up a space before the colon.

\cite{collinscha}.

\printbibliography
\end{document}

gives,

enter image description here

Best Answer

This isn't a bug. The issue is that verbose drivers use the bibliography drivers for the citations. The bibliography driver obeys the langid (given suitable autolang and language option settings). However, idem citations don't use the bibliography driver and so don't pick up the langid setting since normal, non-verbose citations can't yet be localised. You'd have to wrap the idem citation in a babel language environment to work around this.

Language switching for citations is implemented in an experimental biblatex branch - I tested it with your example and it fixes the issue. I will see about rolling this feature into biblatex for the 2.9 release.