# Combination of polyglossia + biblatex + csquotes ignoring autopunct setting

I’m having trouble to get biblatex respect the autopunct option of the csquotes package when using polyglossia. I want to print my references as

I. N. Proceedings. “Title of the Work.” In: 2019.

not as

I. N. Proceedings. “Title of the Work”. In: 2019.

(Note the placement of the . before ”).

In the following MWE, this is achieved when I use Babel, but not when I use polyglossia.

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{example,
author = {Proceedings, I. N.},
year = {2019},
title = {Title of the Work},
}
\end{filecontents}

\newif\ifusepolyglossia
\usepolyglossiatrue
%\usepolyglossiafalse
\ifusepolyglossia
\usepackage{polyglossia}
\setdefaultlanguage[variant=usmax]{english}
\else
\usepackage[american]{babel}
\fi
\usepackage[autopunct]{csquotes}
\usepackage[backend=biber]{biblatex}

\begin{document}
\cite{example}

\printbibliography
\end{document}


Am I doing something wrong, or did I just encounter a bug in one of these packages? I compile my document using LuaLaTeX.

This is the result of a incompatibility between biblatex and polyglossia's language interface. With polyglossia biblatex can only detect the main language (english in this case) and not the language variant (american). Often this issue will go unnoticed, but it can cause some unwanted effects in certain edge cases like this. That is the reason why the next version of biblatex will issue a warning if it is used with polyglossia again: https://github.com/plk/biblatex/issues/845.

The full American punctuation scheme for quotation is only enabled when biblatex detects American English (american) and not with generic English (english), which is otherwise identical to American English. With polyglossia we only ever detect english, so the US punctuation scheme is not enabled. (Just to be clear: Moving of punctuation around quotation marks produced by biblatex in the bibliography is solely controlled by biblatex and its commands \uspunctuation and \stdpunctuation. csquotes' autopunct option has no say in this.)

The following line will enable US quotation-punctuation rules even with plain english

\DefineBibliographyExtras{english}{\uspunctuation}


Alternatively, you can map english to american with

\DeclareLanguageMapping{english}{american}


but note that this is explicitly discouraged in the biblatex documentation. The advantage of this approach over the specific \DefineBibliographyExtras{english}{\uspunctuation} would be that it would automatically copy over all of americans settings to english and not just the \uspunctuation.

\documentclass{article}

\newif\ifusepolyglossia
\usepolyglossiatrue
%\usepolyglossiafalse
\ifusepolyglossia
\usepackage{polyglossia}
\setdefaultlanguage[variant=usmax]{english}
\else
\usepackage[american]{babel}
\fi
\usepackage[autopunct]{csquotes}
\usepackage[backend=biber]{biblatex}

\DefineBibliographyExtras{english}{\uspunctuation}

\begin{document}
\cite{sigfridsson}

\printbibliography
\end{document}


A related issue is discussed in Biblatex-Chicago and non-US quotation style?. Localized date with biblatex and polyglossia, \DeclareLanguageMappingSuffix, inheritance, and polyglossia in biblatex and How do we get Polyglossia language variants to work with Biblatex bibliographies? deal with the compatibility issues between biblatex and polyglossia.

A while ago I would have unequivocally recommended to abandon polyglossia for babel if at all possible, since babel is developed actively (again) and polyglossia largely seemed dormant. In practice babel works as well as (if not better than) polyglossia for most (Western) European languages, but babel also makes progress in areas where polyglossia was traditionally stronger (Hebrew, Arabic, ...). See Decide between Polyglossia and Babel for LuaLaTeX in 2019. Very recently there has been some development on the polyglossia GitHub page, so maybe the project is gaining momentum again. (As an aside I think that the LaTeX community would benefit if the two projects were merged in some shape or form instead of continue to be developed independently with a similar aim. The ups and downs of the development just confuse people about which package to take.)

• Thank you a lot for your very clear and complete answer. I thought indeed that the csquotes macros would be used for this in biblatex, certainly because biblatex recommends to use csquotes! Aug 5, 2019 at 21:01
• @timothymctim When csquotes is loaded biblatex makes use of its facilities and quotations get a lot smarter than they are if only biblatex's own implementations are used. But the punctuation moving stuff is quite complicated in general and the implementation in csquotes is very sensitive to context so that biblatex has to use its own way of moving punctuation marks. Aug 5, 2019 at 21:07