1

I am trying to change the separator between the title of a journal article and the following element (In this case the name of the journal). however, I cannot find the proper delimiter in the §4.10 of the biblatex manual.

For example \renewcommand{\labelnamepunct}{\newline} inserts a newline after the last author. I tried something similar with \subtitlepunct, but it seems to be the wrong delimiter.

Which is the right one? Is there even one?

edit: Some further tests reveal strange behaviour. If I use \AtEveryCitekey{\renewcommand{\newunitpunct}{\newline}}, then the newline gets added, but before the closing quotation mark of the title If I try something else, and replace the in:, which definitely comes after the closing quotation with a newline by \renewbibmacro{in:}{\newline} the result is even worse, this time both the punctuation and the closing quotation marks come after the newline.

a MWE that illustrates my problem

\documentclass{article}
\usepackage{csquotes}
\usepackage{hyphenat} 
\usepackage[american]{babel}
\usepackage[style=alphabetic, backend=biber]{biblatex}
\bibliography{biblatex-examples}
%\AtEveryCitekey{\renewcommand{\newunitpunct}{\newline}}
%\renewbibmacro{in:}{\newline}
\begin{document}

\fullcite{aksin}

\end{document}
  • 1
    There are quite some special punctuation commands, but of course not for all kinds of punctuation in drivers (see §3.9.1 Generic Commands and Hooks of the biblatex manual for an overview). The punctuation after the title field is not handled significantly different from "normal" ones, that is you have \newunit (w/ \newunitpunct) and if you have no language field (people rarely have these days) also \newblock (w/ \newblockpunct). ... – moewe Mar 20 '15 at 11:18
  • ... You would have to change these to do anything, but this will have knock-on effects on the entire document as \newunit and \newblock are used extensively throughout biblatex's drivers. Your best bet is probably to change the punctuation after the title (maybe even with \printunit*{<yourpuncthere>}) with xpatch. – moewe Mar 20 '15 at 11:22
  • You definitely do not want to make \newunitpuntc a \newline that will really wreak havoc on your document. – moewe Mar 20 '15 at 11:25
  • 2
    The trouble is that punctuation is not actually printed and remains in a buffer until it is needed (this buffer can also be overwritten). Also with american the punctuation has to go inside the quotation mark, since technically the \newline is a punctuation it appears before the closing quotation mark. You could use \stdpunct instead disabling this behaviour as in \AtEveryCitekey{\stdpunctuation\renewcommand{\newunitpunct}{\addperiod\newline}} or \AtEveryCitekey{\stdpunctuation\renewcommand{\newunitpunct}{\newline}}. – moewe Mar 20 '15 at 11:31
  • So [american] caused that unexpected behaviour. either your solution, or a change of languages works as expected, thank you – Bernhard Mar 20 '15 at 11:36
2

I do that with the xpatch package:

\documentclass{article}
\usepackage{csquotes}
\usepackage{hyphenat}
\usepackage[american]{babel}
\usepackage[style=alphabetic, backend=biber]{biblatex}
\usepackage{xpatch}
\xpatchbibdriver{article}{%
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{in:}%
 }%
 {%
  \printfield{version}%
  \setunit{\addcomma\space}\newblock
  \usebibmacro{in:}%
}{}{}
\bibliography{biblatex-examples}

\begin{document}

\fullcite{aksin}

\end{document} 

enter image description here

1

If I am not very mistaken this is controlled by \newunitpunct (or maybe \newblockpunct), but redefining those will also change this punctuation at some other places in the entries.

  • Thanks for your suggestion. It does work in a way, but not correctly. See my edit of the original question. – Bernhard Mar 20 '15 at 11:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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