1

I'm using the biblatex-dw package for my bibliography and have almost finished configuring it for my needs (or the university's needs, that is).

However, I still need to perform some small changes to adhere to the university guidelines. Specifically, I need to change the layout of the @incollection type.

What it currently looks like: current status

What it should look like: enter image description here

So, to summarize:

  • , in: should be changed to . In:
  • the positions of the fields editor and title need to be swapped
  • instead of (Hgg.) (in case of multiple editors) or (Hg.) (in case of a single editor) after the editors name I want it to always read hg. von <Editors name(s)>

I already figured out how to achieve the first point by using \renewbibmacro{in:}{. In:}. However, I'm not sure if this is the "right" way to do this in biblatex.

Here's the MWE:

\documentclass[oneside]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{filecontents}

\usepackage[style=authortitle-dw,
            namefont=bold,
            firstnamefont=bold,
            firstfull=true,
            citeauthor=normalfont,
            editorstringfont=namefont,
            autocite=footnote,
            addyear=true]{biblatex}

% String modifications
\DefineBibliographyStrings{ngerman}{phdthesis = {phil. Diss.}}
\DefineBibliographyStrings{ngerman}{editors = {Hgg.}}
\DefineBibliographyStrings{german}{urlseen = {Datum des Zugriffs:}}

% Sort bibliography by last name
\DeclareNameAlias{sortname}{last-first}

\AtBeginBibliography{% change name delimiter from "," to "/" in bibliography
  \renewcommand*{\multinamedelim}{/}%
  \renewcommand*{\finalnamedelim}{/}%
}

\begin{filecontents}{literatur.bib}
@incollection{Metzler-Boheme,
    Title = {Bohème},
    Author = {Boerner, Maria-Christina},
    Booktitle = {Metzler Lexikon Literatur. Begriffe und Definitionen},
    Edition = {3., völlig neu bearb. Aufl.},
    Editor = {Burdorf, Dieter and Fasbender, Christoph and Moennighoff, Burkhard},
    Pages = {95},
    Publisher = {Metzler},
    Address = {Stuttgart},
    Year = {2007}}
\end{filecontents}
\addbibresource[]{literatur.bib}

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

Many thanks in advance for your help!

1 Answer 1

1

I'm afraid this is essentially a rather dull question: it's just a question of hacking the incollection driver, and a related macro. In this case, I'm afraid, hacking is the word -- I've adopted essentially ad hoc solutions to deal with an essentially ad hoc problem.

The only things I'd point out is that (1) I don't speak German so I hope I've got the relevant string right; (2) your example had the editors' names in ordinary type not bold, but your comment didn't draw attention to it as an issue. If you would rather have them in bold, remove the two \renewcommands (and you can then get rid of the `\makeatletter ... \makeatother\ "guard" too; (3) any time you fiddle with a driver like this you may discover some corner case (no editor, just a translator or something) where it blows up, and you have to refine the driver.

\documentclass[oneside]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{filecontents}

\usepackage[style=authortitle-dw,
            namefont=bold,
            firstnamefont=bold,
            firstfull=true,
            citeauthor=normalfont,
            editorstringfont=namefont,
            autocite=footnote,
            addyear=true]{biblatex}

% String modifications -- we add also a modification for "by editor"
\DefineBibliographyStrings{ngerman}{phdthesis = {phil. Diss.}}
\DefineBibliographyStrings{ngerman}{editors = {Hgg.}}
\DefineBibliographyStrings{german}{urlseen = {Datum des Zugriffs:}}
\DefineBibliographyStrings{german}{byeditor = {hg\adddot\ von}}

% The only modification to this is to substitute one piece of punctuation
% and use our new bibmacro
\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \ifbool{cbx:idemfull}
    {}
    {\usebibmacro{author/translator+others}%
     \ifnameundef{labelname}
       {}
       {\setunit{\labelnamepunct}\newblock}}%
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \setunit{\addperiod\space}%
  \usebibmacro{in:}%
  \usebibmacro{authedxrefcheck}%
  \ifbool{cbx:authedxref}
    {\booltrue{xrefidem}}
    {\boolfalse{xrefidem}}%
  \ifbool{bbx:xref}
    {\iffieldundef{xref}
      {% Code, wenn kein xref vorhanden
       \usebibmacro{noxref:incollection}}
      {\printtext{\bbx@xref{\thefield{xref}}}% xref
       \usebibmacro{xrefvolume}%
       \usebibmacro{pages}}}%
    {\usebibmacro{noxref:incollection}}% bei xref=false
    \usebibmacro{finentry}}

 % Here we simply eliminate the original call to print editors, and
 % substitute one later -- but we hackily redefine the name font within
 % a group to prevent the names being bold
\makeatletter
\renewbibmacro{noxref:incollection}{%
  \usebibmacro{maintitle+booktitle}%
  \newunit
  {\renewcommand\bbx@namefont{}%
   \renewcommand\bbx@firstnamefont{}%
  \usebibmacro{byeditor+others}}%
  \ifbool{bbx:seriesbeforeedition}
    {\setunit{\addspace}%
     \usebibmacro{series+number}}
    {}%
  \newunit\newblock
  \usebibmacro{edition}%
  \usebibmacro{volumes+volume+part}%
  \ifbool{bbx:seriesstandard}
    {\setunit{\addspace}%
     \usebibmacro{series+number}}
    {}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \ifbool{bbx:seriesafteryear}
    {\setunit{\addspace}%
     \usebibmacro{series+number}}
    {}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}}
\makeatother

% Sort bibliography by last name
\DeclareNameAlias{sortname}{last-first}

\AtBeginBibliography{% change name delimiter from "," to "/" in bibliography
  \renewcommand*{\multinamedelim}{/}%
  \renewcommand*{\finalnamedelim}{/}%
}

\begin{filecontents}{literatur.bib}
@incollection{Metzler-Boheme,
    Title = {Bohème},
    Author = {Boerner, Maria-Christina},
    Booktitle = {Metzler Lexikon Literatur. Begriffe und Definitionen},
    Edition = {3., völlig neu bearb. Aufl.},
    Editor = {Burdorf, Dieter and Fasbender, Christoph and Moennighoff, Burkhard},
    Pages = {95},
    Publisher = {Metzler},
    Address = {Stuttgart},
    Year = {2007}}
\end{filecontents}
\addbibresource[]{literatur.bib}

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

A bibliography entry

4
  • 1
    You could use the standard in: macro if you put a \setunit{\addperiod\space}% in front of it and not an \adddot. \adddot will typeset an 'abbreviation dot', while \addperiod sets a full stop. The punctuation tracker continuous in midsentence mode after the former, but changes to beginsentence after the latter.
    – moewe
    Mar 16, 2017 at 8:05
  • So I could! I'd forgotten addperiod. It's been so long since I last wrote one of these things. Mar 16, 2017 at 22:57
  • Yet still you came up with a great answer quickly.
    – moewe
    Mar 17, 2017 at 8:14
  • Thank you so much, this is exactly what I was looking for! Much appreciated :-)
    – Alex
    Mar 19, 2017 at 16:41

You must log in to answer this question.

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