4

I have a question concerning biblatex, specifically the publisher field.
I want to replace the comma between the publisher and the year with a semicolon.

This:

publisher, year

should become this:

publisher; year

After researching the documentation of biblatex, I found some possible delimiter options, but they don't work.
Which option is the right one? I included the ones I already tried in the minimal example.

This is the obligatory minimal example:

minimal.tex:

\documentclass[a4paper, 11pt, twoside, chapteratlists=0pt]{scrreprt}

\usepackage[babel]{csquotes}%

\usepackage[
style=alphabetic-verb,%
backend=bibtex8,%
bibstyle=alphabetic,
block=ragged,%
isbn=true,%
firstinits=true,%
%dashed=false,%
maxbibnames=99,%
sorting=nty,%
language=german,%
backrefstyle=three+,%
]{biblatex}

%Already tried:
%\renewcommand*{\multilistdelim}{\addsemicolon\space}
%\renewcommand*{\finallistdelim}{\addsemicolon\space}
%\DeclareFieldFormat{publisher}{#1\addsemicolon}%
%\DeclareFieldFormat{location}{#1\addsemicolon}%
%\DeclareFieldFormat{year}{\nopunct#1\addsemicolon}

\addbibresource{minimal.bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

The bib file minimal.bib:

@BOOK{BossOstendorf.2010,
  title = {title},
  year = {1990},
  author = {author},
  volume = {123},
  publisher = {publisher}
}
1
  • Thanks alot to moewe. It works now. I will research the commands, so i can do it myself next time. Oct 26, 2013 at 21:41

1 Answer 1

5

You need to edit the bibmacro publisher+location+date; put this into your preamble

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

The MWE

\documentclass[ngerman,a4paper, 11pt, twoside, chapteratlists=0pt]{scrreprt}
\usepackage{babel}
\usepackage[babel]{csquotes}%

\usepackage[
  style=alphabetic-verb,
  backend=bibtex8,
  bibstyle=alphabetic,
  block=ragged,
  isbn=true,
  firstinits=true,
  maxbibnames=99,
  sorting=nty,
  backrefstyle=three+]{biblatex}


\addbibresource{biblatex-examples.bib}

\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\addsemicolon\space}%
  \usebibmacro{date}%
  \newunit}

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

yields

enter image description here

3
  • @schwarz1603 This solution will print "place, year" if there is no publisher provided. Do you want "place; year" instead?
    – moewe
    Oct 26, 2013 at 21:55
  • yes, that would be great. I need the semicolon as a separator between every unit for all types of literature. Thanks. Oct 26, 2013 at 22:18
  • 1
    @schwarz1603 I have updated the answer to add a semicolon between "place; year" if need be.
    – moewe
    Oct 27, 2013 at 12:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .