4

Biblatex has a mechanism that prevents spurious punctuation. Generally, it works fine but fails with xetex and some languages. The MWE below compiles fine with pdflatex but with xelatex yields double points after capital (!) letters in Greek and Russian. What could be the problem?

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@PUNCT{pat1,
  location = {W.},
  publisher = {U.},
  usere={w.},
  userf={u.},
  language = {english},
  hyphenation = {english},
}
@PUNCT{pat2,
  location = {Ψ.},
  publisher = {Ω.},
  usere={ψ.},
  userf={ω.},
  language = {greek},
  hyphenation = {greek},
}
@PUNCT{pat3,
  location = {Ш.},
  publisher = {Ж.},
  usere={ш.},
  userf={ж.},
  language = {russian},
  hyphenation = {russian},
}
\end{filecontents}
\documentclass{article}
\usepackage{ifxetex}
\ifxetex
%------------ XeTeX -------------------------------------
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\newfontfamily\greekfont{CMU Serif}
\newfontfamily\cyrillicfont{CMU Serif}
\usepackage{polyglossia}
\setdefaultlanguage{greek}
\setotherlanguages{english,russian}
\else
%------------ pdftex ---------------------------------
\usepackage[T1,T2A,LGR]{fontenc}
\usepackage[utf8]{inputenx}
\usepackage[english,russian,greek]{babel}
\fi
\usepackage[autolang=other]{biblatex}
\addbibresource{\jobname.bib}

\DeclareBibliographyDriver{punct}{%
  \printfield{usere}\addperiod
  \printfield{userf}\addperiod
  \printlist{location}\addperiod
  \printlist{publisher}\finentry}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

xelatex punctuation

2
  • 1
    There has just been added a bug report about this at the biblatex bug tracker: #368 – moewe Feb 23 '16 at 7:31
  • 5
    I'm voting to close this question as off-topic because it is a bug report – egreg Apr 13 '16 at 10:38
0

The issue was fixed in the current DEV versions of biblatex 3.4 and biber 2.5. See https://github.com/plk/biblatex/issues/368 .

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