2

I would like to have a dot instead of a comma before the rendering of the address field of bibliography entries. See image below, where I have marked the commas that should be replaced by dots.

enter image description here

MWE:

\documentclass{book}
\usepackage{a4wide}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{polyglossia}
\setmainlanguage[spelling=new,babelshorthands=true]{german}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@book{b2,
    year = {2014},
    title = {Redefreiheit: Öffentliche Debatten der Bevölkerung im Herbst 1989},
    address = {Leipzig},
    edition = {1},
    publisher = {Leipziger Uni-Vlg},
    isbn = {386583888X},
    editor = {Ahbe, Thomas and Stiehler, Volker and Hofmann, Michael},
    shorttitle = {Redefreiheit}
}
@Book{geyer2004,
    Title                    = {Religion und Nation, Nation und Religion: Beiträge zu einer unbewältigten Geschichte},
    Address                  = {Göttingen},
    Editor                   = {Geyer, Michael and Lehmann, Hartmut},
    Gender                   = {pm},
    ISBN                     = {3892446687},
    Number                   = {3},
    Series                   = {Bausteine zu einer Europäischen Religionsgeschichte im Zeitalter der Säkularisierung},
    Shorttitle               = {Religion},
    Year                     = {2004}
}
@Book{beiderwiedenhelge1995,
    Title                    = {VHKM},
    Address                  = {Rostock},
    Editor                   = {{Bei der Wieden, Helge}},
    Gender                   = {sm},
    Number                   = {8},
    Shorttitle               = {Veröffentlichungen},
    Year                     = {1995}
}

\end{filecontents}
\usepackage[style=authortitle-dw,
edsuper=true,
namefont=smallcaps,
useprefix=true,
ibidemfont=smallcaps,
idemfont=smallcaps,
idembibformat=dash,
shorthandibid=true,
backref=false,
backrefstyle=none,
hyperref=true,
isbn=false,
backend=biber,
citereset=chapter,
bibencoding=utf8]{biblatex}
\addbibresource{\jobname.bib}

\renewcommand*{\mkbibnameprefix}{\mkbibnamegiven}
%
% all authors should be separated by slashes in bib and cites
\renewcommand*{\bibmultinamedelim}{\addnbspace\slash\space}
\renewcommand*{\bibfinalnamedelim}{\bibmultinamedelim}
\renewcommand*{\citemultinamedelim}{\bibmultinamedelim}
\renewcommand*{\citefinalnamedelim}{\citemultinamedelim}

\usepackage{csquotes}
\renewcommand{\labelnamepunct}{\addspace}
\renewbibmacro{in:}{}
\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon\addspace
        {\addcomma\addspace}}}
\DeclareFieldFormat[article,incollection]{pages}{#1}
\renewbibmacro*{volume+number+eid}{%
    \printfield{volume}%
    \setunit*{\addnbspace}%
    \printfield{number}%
    \setunit{\addcomma\space}%
    \printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}

\begin{document}
    \nocite{*}
    \printbibliography
\end{document}
2

There are several options.

  1. Redefine \newunitpunct. This can potentially affect more places than just the punctuation before the publisher block. This might or might not be desired. In the example entries no other places are affected.

    \renewcommand*{\newunitpunct}{\addperiod\space}
    
  2. Redefine publisher+location+date to add a period at the beginning.

    \makeatletter
    \renewbibmacro*{publisher+location+date}{%
      \setunit{\addperiod\space}%
      \ifbool{bbx:origfields}
        {\ifbool{bbx:nolocation}
          {\iffieldundef{origyear}
            {\usebibmacro{loc+pub+year}}
            {\usebibmacro{origloc+origpub+origyear}}}
          {\iflistundef{origlocation}
            {\iffieldundef{origyear}
              {\usebibmacro{loc+pub+year}}
              {\usebibmacro{origloc+origpub+origyear}}}
            {\iffieldundef{origyear}
              {\blxdw@warning{%
                 Field 'origlocation' is set, but 'origdate' is 
                 \MessageBreak%
                 empty at entry '\abx@field@entrykey'.
                 The 'orig' fields \MessageBreak are omitted
                 for this entry}%
               \usebibmacro{loc+pub+year}}
              {\usebibmacro{origloc+origpub+origyear}}}}}
        {\usebibmacro{loc+pub+year}}}
    \makeatother
    
  3. Use xpatch to add \setunit{\addperiod\space} to publisher+location+date (credits go to @gusbrs for suggesting this)

    \usepackage{xpatch}
    \xpretobibmacro{publisher+location+date}
      {\setunit{\addperiod\space}}
      {}{}
    
  • +1 I'd go for 2, though. Btw, wouldn't this be a nice example of the convenience of \xpretobibmacro? – gusbrs Jun 22 '18 at 16:18
  • Thanks @moewe, where do I find these template definitions usually, and how do you determine which one to edit? – Philipp Jun 22 '18 at 16:23
  • 1
    @gusbrs You know I usually don't use xpatch unless i have to modify drivers. But it makes good sense here. Thank you for the suggestion. – moewe Jun 22 '18 at 16:24
  • 1
    @Philipp This one lives in authortitle-dw.bbx, but standard-dw.bbx is also relevant. Additionally biblatex.def, standard.bbx and a few other files can also contain some definitions. Usually I just follow the definitions starting from the bibliography drivers. – moewe Jun 22 '18 at 16:26

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.