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

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.