biblatex:@article 条目:“。在:JOURNAL”而不是“,在:JOURNAL”

biblatex:@article 条目:“。在:JOURNAL”而不是“,在:JOURNAL”

我希望文章条目的格式如下:

姓氏,名字:标题。在:日记

工作示例:

\documentclass{book}
\usepackage{a4wide}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{polyglossia}
\setmainlanguage[spelling=new,babelshorthands=true]{german}
\usepackage[autostyle]{csquotes}
\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}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{page}{#1}
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{byeditor}{last-first}
\DefineBibliographyStrings{german}{
    and={/},
    page={},
    andothers = {{et\,al\adddot}},
    editor = {{ Hg\adddot }} ,
    editors = {{ Hg\adddot }}
}

%% bilbiography driver to display only shorttitle of refernced collection for incollection items
\DeclareBibliographyDriver{incollection}{%
    \usebibmacro{bibindex}%
    \usebibmacro{begentry}%
    \usebibmacro{author/translator+others}%
    \setunit{\labelnamepunct}\newblock
    \usebibmacro{title}%
    \newunit
    \printlist{language}%
    \newunit\newblock
    \usebibmacro{byauthor}%
    \setunit{\addperiod\space}\newblock
    \usebibmacro{in:}%
    \iffieldundef{crossref}
    {\usebibmacro{crossref:full}}
    {\usebibmacro{crossref:label}}
    \newunit\newblock
    \usebibmacro{chapter+pages}%
    \iffieldundef{crossref}
    {\usebibmacro{crossref:extrainfo}}
    {}
    \setunit{\bibpagerefpunct}\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}}

\newbibmacro{crossref:full}{%
    \usebibmacro{maintitle+booktitle}%
    \newunit\newblock
    \usebibmacro{event+venue+date}%
    \newunit\newblock
    \usebibmacro{byeditor+others}%
    \newunit\newblock
    \iffieldundef{maintitle}
    {\printfield{volume}%
        \printfield{part}}
    {}%
    \newunit
    \printfield{volumes}%
    \newunit\newblock
    \usebibmacro{series+number}%
    \newunit\newblock
    \printfield{note}%
    \newunit\newblock
    \printlist{organization}%
    \newunit
    \usebibmacro{publisher+location+date}}

\newbibmacro{crossref:label}{%
    \entrydata{\strfield{crossref}}
    {\DeclareNameAlias{labelname}{given-family}%
        \renewcommand*{\mkbibnamefamily}[1]{##1}%
        \renewcommand*{\mkbibnamegiven}[1]{##1}%
        \renewcommand*{\mkbibnameprefix}[1]{##1}%
        \renewcommand*{\mkbibnamesuffix}[1]{##1}%
        \printnames{labelname}%
        \setunit*{\addcomma\space}%
        \printfield[shorttitle]{labeltitle}}}

\newbibmacro{crossref:extrainfo}{%
    \newunit\newblock
    \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
    \newunit\newblock
    \usebibmacro{doi+eprint+url}%
    \newunit\newblock
    \usebibmacro{addendum+pubstate}}

\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{page}{#1}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{byeditor}{family-given}
\DeclareNameAlias{bytranslator}{family-given}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{urldate}{%
    (aufgerufen am %
    \thefield{urlday}\adddot %\addspace     %  addcomma works !!!
    \thefield{urlmonth}\adddot%\addspace%
    \thefield{urlyear}\isdot)}

% von Maltzahn should be printed von MALTZAHN in the bibliography
\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}

% in fussnoten komma hinter dem autor
\renewcommand*{\citenamepunct}{\addcomma\space}
\renewcommand*{\locationpublisherpunct}{\adddot\space}

% the separator before the location should be a dot, not a comma
\renewbibmacro*{publisher+location+date}{%
    \setunit{\addperiod\space}%
    \printlist{location}%
    \iflistundef{publisher}
    {\setunit*{\space}}
    {\setunit*{\addcolon\space}}%
    \printlist{publisher}%
    \setunit*{\addcomma\space}%
    \usebibmacro{date}%
    \newunit}

\DefineBibliographyStrings{german}{
    andothers = {{et\,al\adddot}},
    editor = {{Hg\adddot}},
    editors = {{Hg\adddot}} 
}

\usepackage{filecontents}
\begin{filecontents}{file.bib}
@book{b2,
    year = {2014},
    title = {Redefreiheit: Öffentliche Debatten der Bevölkerung im Herbst 1989},
    address = {Leipzig},
    edition = {1. Aufl.},
    publisher = {Leipziger Uni-Vlg},
    isbn = {386583888X},
    editor = {Ahbe, Thomas and Stiehler, Volker and Hofmann, Michael},
    shorttitle = {Redefreiheit}
}

@incollection{bauer,
    xref = {schwobel},
    author = {Bauer, Gisa},
    title = {Transformationen des Religiösen: Die historisch-materialistische Geschichtsschreibung in der DDR als Heilsgeschichte},
    volume = {39},
    series = {VWGTh},
    editor = {Schwöbel, Christoph},
    booktitle = {Geschichte und Gott},
    address = {Leipzig},
    shorttitle = {Transformationen}
}

@book{schwobel,
    title = {Geschichte und Gott: XV. Europäischer Kongress für Theologie},
    address = {Leipzig},
    volume = {39},
    series = {VWGTh},
    editor = {Schwöbel, Christoph},
    shorttitle = {Geschichte}
}
@book{bulischop.2006,
    author = {Bulisch, Jens},
    year = {2006},
    title = {Evangelische Presse in der DDR},
    address = {Göttingen},
    volume = {43},
    publisher = {Vandenhoeck und Ruprecht},
    isbn = {3525557442},
    series = {AKZG},
    shorttitle = {Presse}
}
@article{wulf,
    author = {Wulf, Marion},
    year = {1998},
    title = {Wirn},
    pages = {4},
    pagination = {page},
    volume = {53},
    number = {40},
    journal = {MKZ},
    shorttitle = {Umkehr}
}
\end{filecontents}

\addbibresource{file.bib}
\begin{document}
    text \footcite{bulischop.2006} text. \footcite{wulf}
    text \footcite{bauer} haha. 
    \printbibliography
\end{document}

在示例中,@incollection 文章的格式已正确,但@article 条目的格式不正确。

在此处输入图片描述

答案1

您可以执行以下操作:

\renewbibmacro*{in:}{%
    \setunit{\addperiod\space}
    \printtext{\bibstring{in}\intitlepunct}}

在此处输入图片描述

答案2

您可以使用以下方法修补 bibdriver 的相关部分article

\usepackage{xpatch}
\xpatchbibdriver{article}{%
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{in:}%
 }%
 {%
  \printfield{version}%
  \setunit{\addperiod\space}\newblock
  \usebibmacro{in:}%
}{}{}

但这只适用于文章,不适用于其他条目类型。

相关内容