3

By default the \cite command ignores a semicolon if it follows a dot. How can I force biblatex to print the semicolon regardless if there is a dot before?

\documentclass{article}

\usepackage[
    style=authortitle,
    backend=biber,
]{biblatex}

\begin{filecontents*}{\jobname.bib}
@book{test,
author = {Foo, Bar},
title = {Foobar},
year = {2016},
location = {Baz}
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}

\footnote{\cite[12]{test}; \cite[12~f.]{test}; \cite[12~ff.]{test}}

\end{document}

enter image description here

(And yes, I know that in general I should use \cites. But for technical reasons I cannot in this case.)

Tom
  • 157

2 Answers2

7
\documentclass[ngerman,english]{article}

\usepackage{babel}
\usepackage[
    style=authortitle,
    backend=biber,
]{biblatex}

\addbibresource{biblatex-examples.bib}

\setlength{\textheight}{9cm}
\begin{document}

Sugar, spice and everything
nice\footcites[12]{aristotle:physics}[12\psq]{aksin}[12\psqq]{companion}
\selectlanguage{ngerman}
Der Leguan liegt auf der
Lauer\footcites[42]{nietzsche:historie}[84\psq]{knuth:ct:a}[96\psqq]{vangennep}
\selectlanguage{english}
Please don't do it like that\footnote{\cite[12]{companion};
\cite[12\psq]{aksin}; \cite[12\psqq]{ctan}}

\end{document}

tomFootcites

Johannes_B
  • 24,235
  • 10
  • 93
  • 248
  • Not citing a cooking book with recipes concerning liver? ;-) –  Feb 28 '16 at 15:53
  • Thank you for your answer but as mentioned in my question I cannot change the syntax for technical reasons which means that I have to use \footnote and \cite. – Tom Feb 28 '16 at 16:34
  • @Tom Test my answer, look at the output, compare your input. – Johannes_B Feb 28 '16 at 16:36
5

Johannes_B has already given the best answer for this situation. But people might find that they have to write a postnote with a . in it for which biblatex does not already provide a convenient command (as it does for the "sq."/"f." and "sqq."/"ff.": \psq and \psqq).

The problem arises because biblatex tries very hard to avoid double punctuation and even scans ahead for punctuation after its \cite commands. It finds that the postnote 12~f. ends with a period and doesn't want that to crash with the semicolon afterwards, so the semicolon is swallowed.

You can tell biblatex that the . in 12~f. is not a sentence end period (which would clash with a semicolon), but an abbreviation dot (which is fine before a semicolon) with \isdot

\cite[etc.\isdot]{sigfridsson};
moewe
  • 175,683