0

Right now it looks like this in the PDF („Ndr.“ is the German abbreviation for „reprint“):

Christian Kracht: Faserland. 1995, Ndr. München: Deutscher Taschenbuch Verlag 2012.

= author: title. origdate, address: publisher date.

I want to look it like this:

Christian Kracht: Faserland. München: Deutscher Taschenbuch Verlag 2012 [1995].

= author: title. address: publisher date [origdate].

I want to change it in the same way for all kinds of entries in my .bib-file. Origdate should always be in brackets after the date.

I figured out that the code below is the section of the bbx-file (it is based on authortitle-dw) that defines the output. How do I have to change it to show origdate like in the above example?

  \renewbibmacro*{publisher+location+date}{%
\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}}}

\newbibmacro{loc+pub+year}{%
  \ifbool{bbx:nolocation}
    {}
    {\printlist{location}%
     \ifbool{bbx:nopublisher}
       {\setunit*{\locationdatepunct}}%
       {\iflistundef{publisher}
         {\setunit*{\locationdatepunct}}
         {\setunit*{\locationpublisherpunct}%
          \printlist{publisher}%
          \setunit*{\publisherdatepunct}}}}%
  \ifbool{bbx:edsuper}
    {\printfield[edition:super]{edition}}
    {}%
  \usebibmacro{date}%
  \newunit}

\newbibmacro{origloc+origpub+origyear}{%
  \ifbool{bbx:nolocation}
    {}
    {\printlist{origlocation}%
     \ifbool{bbx:nopublisher}
       {\setunit*{\locationdatepunct}}%
       {\iflistundef{origpublisher}
         {\setunit*{\locationdatepunct}}
         {\setunit*{\locationpublisherpunct}%
          \printlist{origpublisher}%
          \setunit*{\publisherdatepunct}}}}%
  \ifbool{bbx:edsuper}
    {\printfield[edition:super]{edition}}
    {}%
  \usebibmacro{origdate}%
  \ifdefstring{\bbx@origfieldsformat}{punct}
    {\setunit*{\origfieldspunct}%
     \usebibmacro{origfields:loc+pub+year}}
    {\ifdefstring{\bbx@origfieldsformat}{parens}
      {\setunit*{\addspace}%
       \printtext[parens]{%
         \usebibmacro{origfields:loc+pub+year}}}
      {\ifdefstring{\bbx@origfieldsformat}{brackets}
        {\setunit*{\addspace}%
         \printtext[brackets]{%
           \usebibmacro{origfields:loc+pub+year}}}
        {\setunit*{\origfieldspunct}%
         \usebibmacro{origfields:loc+pub+year}}}}
  \newunit}

\newbibmacro{origfields:loc+pub+year}{%
  \bibstring{reprint}%
  \setunit{\addspace}%
  \ifbool{bbx:nolocation}
    {}
    {\printlist{location}%
     \ifbool{bbx:nopublisher}
       {\setunit*{\locationdatepunct}}%
       {\iflistundef{publisher}
         {\setunit*{\locationdatepunct}}
         {\setunit*{\locationpublisherpunct}%
          \printlist{publisher}%
          \setunit*{\publisherdatepunct}}}}%
  \usebibmacro{date}}

  \newbibmacro*{origdate}{\printorigdate}

And here's the MWE:

\begin{filecontents*}{literature.bib}
    @book{kracht_faserland_2012,
        address = {München},
        title = {Faserland},
        publisher = {Deutscher Taschenbuch Verlag},
        author = {Kracht, Christian},
        date = {2012},
        origdate = {1995}
    }

\end{filecontents*}

\documentclass[twoside=false,fontsize=12pt,toc=bibliography,toc=listof]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=guillemets]{csquotes}
\usepackage[backend=biber,style=authortitle-dw,series=afteryear,firstfull,nopublisher=false,sorting=nyt]{biblatex}
              \addbibresource{literature.bib}

\begin{document}

Dies ist ein Beispielsatz.\footnote{Vgl. \cite[76]{kracht_faserland_2012}.}

\backmatter
\printbibliography

\end{document}
  • 3
    Where does vauthorstyle-dw come from? I can't find it on CTAN. And it will make your question easier to answer if you provide a full MWEB. – David Purton Feb 14 '18 at 11:08
  • My fault, mispelled it for some reason. Now there is the correct name: It's authortitle-dw. You should find it at CTAN. Also added a MWEB. – Nain Feb 14 '18 at 12:20
1

It's probably not the most elegant of solutions but it works for me. You have to change some punctuaction commands and change the order of the elements:

    \newbibmacro*{origdate}{\printorigdate}

\renewbibmacro*{publisher+location+date}{%
  \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}}}

\newbibmacro{loc+pub+year}{%
  \ifbool{bbx:nolocation}
    {}
    {\printlist{location}%
   \ifbool{bbx:nopublisher}
       {\setunit*{\locationdatepunct}}%
       {\iflistundef{publisher}
         {\setunit*{\locationdatepunct}}
         {\setunit*{\locationpublisherpunct}%
          \printlist{publisher}%
           \setunit*{\addspace}}}}%
  \ifbool{bbx:edsuper}
    {\printfield[edition:super]{edition}}
    {}%
  \usebibmacro{date}%
  }

\newbibmacro{origloc+origpub+origyear}{%
  \ifbool{bbx:nolocation}
    {}
    {\printlist{origlocation}%
  \ifbool{bbx:nopublisher}
       {\setunit*{\locationdatepunct}}%
       {\iflistundef{origpublisher}
         {\setunit*{\locationdatepunct}}
         {\setunit*{\locationpublisherpunct}%
          \printlist{origpublisher}%
          \setunit*{\addspace}}}}%
  \ifdefstring{\bbx@origfieldsformat}{punct}
    {\setunit*{\origfieldspunct}%
     \usebibmacro{loc+pub+year}}
    {\ifdefstring{\bbx@origfieldsformat}{parens}
      {\setunit*{\addspace}%
       \printtext[parens]{%
         \usebibmacro{loc+pub+year}}}
      {\ifdefstring{\bbx@origfieldsformat}{brackets}
        {\setunit*{\addspace}%
         \printtext[brackets]{%
           \usebibmacro{loc+pub+year}}}
        {\setunit*{\origfieldspunct}%
         \usebibmacro{loc+pub+year}}}}
         \usebibmacro{origdate}%
  \newunit}

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.