1

I'd like to remove the space between the edition and the year but I don't know how.

To explain: I put the edition before the year by changing the bibmacro publisher+location+date and removing \printfield{edition} from the bibliography driver. I did the same for in collection but I didn't put it up here. I don't know if that's the best solution but it works

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle,german=guillemets]{csquotes}
\usepackage[backend=biber, style=authortitle-ibid, pagetracker=false]{biblatex}

\renewcommand*{\mkbibcompletename}[1]{\textsc{#1}} \DeclareDelimFormat[bib]{nametitledelim}{\addcolon\space} \DeclareFieldFormat{title}{#1\isdot}

\DeclareFieldFormat{edition}{\textsuperscript{#1}} %Auflage hochgestellt

\renewbibmacro{publisher+location+date}{%kein Komma nach Verlag und Auflage vor Datum \printlist{location}% \setunit{\addcolon\space}% \printlist{publisher}% \setunit*{\space}% \printfield{edition} \usebibmacro{date}% \newunit}

\DeclareBibliographyDriver{book}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{maintitle+title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock %\printfield{edition}%Edition ausblenden %\newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit \printfield{pagetotal}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{isbn}} {}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{finentry}}

\begin{filecontents}{literatur.bib} @book{ZimmerlingCharismatisch, author = {Zimmerling, Peter}, title = {Charismatische Bewegungen}, publisher = {Vandenhoeck & Ruprecht}, location = {Göttingen}, year = {2018}, Edition = {2} }

\end{filecontents} \addbibresource{literatur.bib}

\begin{document} Text \footcite{ZimmerlingCharismatisch} \printbibliography \end{document}

moewe
  • 175,683

1 Answers1

2

Your code almost does what you want. You just need a % after \printfield{edition}. In LaTeX the end of a line behaves like a space and may therefore cause a space to appear in the output unless it is commented out with %. See What is the use of percent signs (%) at the end of lines? (Why is my macro creating extra space?) for a more thorough discussion.

So

\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \setunit*{\addcolon\space}%
  \printlist{publisher}%
  \setunit*{\space}%
  \printfield{edition}%
  \usebibmacro{date}%
  \newunit}

will work as intended.


In the biblatex-ext documentation (§5.4 Selected bibliography macros, p. 33 in v0.14) I suggest the following shorter solution.

It only requires a switch from style=authortitle-ibid, to style=ext-authortitle-ibid,. (This change will otherwise have no effect on the output. ext-authortitle-ibid is a drop-in replacement for authortitle-ibid.)

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle,german=guillemets]{csquotes}
\usepackage[backend=biber, style=ext-authortitle-ibid, pagetracker=false]{biblatex}

\renewcommand*{\mkbibcompletename}[1]{\textsc{#1}} \DeclareDelimFormat[bib]{nametitledelim}{\addcolon\space} \DeclareFieldFormat{title}{#1\isdot}

\renewbibmacro*{edition}{}

\DeclareFieldFormat{superedition}{\textsuperscript{#1}} \newbibmacro*{superedition}{% \iffieldnums{edition} {\printfield[superedition]{edition}} {\printfield{edition}% \setunit{\addspace}}}

\renewcommand{\pubdatedelim}{\addspace} \renewcommand{\locdatedelim}{\pubdatedelim} \renewbibmacro{pubinstorg+location+date}[1]{% \printlist{location}% \iflistundef{#1} {\setunit{\locdatedelim}} {\setunit{\locpubdelim}}% \printlist{#1}% \setunit{\pubdatedelim}% \usebibmacro{superedition}% \usebibmacro{date}% \newunit}

\begin{filecontents}{\jobname.bib} @book{ZimmerlingCharismatisch, author = {Zimmerling, Peter}, title = {Charismatische Bewegungen}, publisher = {Vandenhoeck & Ruprecht}, location = {Göttingen}, year = {2018}, Edition = {2}, } \end{filecontents} \addbibresource{\jobname.bib}

\begin{document} Text\autocite{ZimmerlingCharismatisch} \printbibliography \end{document}

Zimmerling, Peter: Charismatische Bewegungen. Göttingen: Vandenhoeck & Ruprecht
22018.

The idea here is to avoid having to modify the bibliography driver, which would need lots of code, by using the new edition bibmacro from biblatex-ext to disable the "usual" edition printing.

Then we just need to add the edition to the date. This is done in the meta macro pubinstorg+location+date, which ultimately ends up defining publisher+location+date as in your example.

See also Print the edition as an apex/superscript after the year in (or https://golatex.de/viewtopic.php?p=107206#p107206 in the German goLaTeX forum).

moewe
  • 175,683