현재 PDF에서는 다음과 같습니다("Ndr."은 "reprint"의 독일어 약어입니다).
크리스티안 크라흐트: Faserland. 1995년, Ndr. 뮌헨: Deutscher Taschenbuch Verlag 2012.
= author: title. origdate, address: publisher date.
나는 이것을 다음과 같이 보고 싶다:
크리스티안 크라흐트: Faserland. 뮌헨: Deutscher Taschenbuch Verlag 2012 [1995].
= author: title. address: publisher date [origdate].
내 .bib 파일의 모든 종류의 항목에 대해 동일한 방식으로 변경하고 싶습니다. 원본 날짜는 항상 날짜 뒤의 괄호 안에 있어야 합니다.
authortitle-dw
나는 아래 코드가 출력을 정의하는 bbx 파일(기반)의 섹션이라는 것을 알아냈습니다 . 위의 예처럼 origdate를 표시하도록 어떻게 변경해야 합니까?
\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}
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}
답변1
아마도 가장 우아한 솔루션은 아니지만 나에게는 효과적입니다. 일부 구두점 명령을 변경하고 요소의 순서를 변경해야 합니다.
\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}