¿Cómo personalizo origdate en mi archivo bbx?

¿Cómo personalizo origdate en mi archivo bbx?

Ahora mismo se ve así en el PDF ("Ndr." es la abreviatura alemana de "reimprimir"):

Christian Kracht: Faserland. 1995, núm. Múnich: Deutscher Taschenbuch Verlag 2012.

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

Quiero que se vea así:

Christian Kracht: Faserland. Múnich: Deutscher Taschenbuch Verlag 2012 [1995].

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

Quiero cambiarlo de la misma manera para todo tipo de entradas en mi archivo .bib. Origdate siempre debe estar entre paréntesis después de la fecha.

Descubrí que el siguiente código es la sección del archivo bbx (se basa en authortitle-dw) que define la salida. ¿Cómo tengo que cambiarlo para que muestre origdate como en el ejemplo anterior?

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

Y aquí está el 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}

Respuesta1

Probablemente no sea la solución más elegante, pero a mí me funciona. Tienes que cambiar algunos comandos de puntuación y cambiar el orden de los elementos:

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

información relacionada