书籍 biblatex-dw 书目格式 - 地址前用点代替逗号

书籍 biblatex-dw 书目格式 - 地址前用点代替逗号

我希望在参考书目条目的地址字段之前使用点代替逗号。参见下图,我已标记应使用点替换的逗号。

在此处输入图片描述

梅威瑟:

\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}

答案1

有几种选择。

  1. 重新定义\newunitpunct。这可能会影响更多地方,而不仅仅是发布者块之前的标点符号。这可能是或可能不是所希望的。在示例条目中,其他地方不受影响。

    \renewcommand*{\newunitpunct}{\addperiod\space}
    
  2. 重新定义publisher+location+date在开头添加句点。

    \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. 使用xpatch添加(\setunit{\addperiod\space}致谢publisher+location+date@gusbrs 提出这个建议

    \usepackage{xpatch}
    \xpretobibmacro{publisher+location+date}
      {\setunit{\addperiod\space}}
      {}{}
    

相关内容