번역자의 이름을 포함하기 위해 특정 항목 유형(bookinbook)에 대한 참고문헌 드라이버를 재정의하고 싶습니다. 여기서 번역자는 상위 도서 내의 다양한 작업에 대해 다를 수 있습니다(상위 항목에서 상속되지 않음). 따라서 내 항목이 다음과 같이 보이도록 하고 싶습니다.
플라톤:메논. 우버. 폰 프리드리히 슐라이어마허. 안에:베르케Bd. II, S. 509--599.
--프로타고라스. 우버. 폰 디트리히 쿠르츠. 안에:베르케Bd. II, S. 83--217.
다음 드라이버를 사용하여 "Übers. von"(ed. by) 부분을 제외한 모든 것을 달성합니다.
\DeclareBibliographyDriver{bookinbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\iffieldundef{crossref}
{\usebibmacro{crossref:full}}
{\usebibmacro{crossref:labelbookinbook}}
\newunit\newblock
\usebibmacro{chapter+pages}%
\iffieldundef{crossref}
{\usebibmacro{crossref:extrainfo}}
{}
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
이 \newbibmacro와 함께:
\newbibmacro{crossref:labelbookinbook}{%
\entrydata{\strfield{crossref}}
{\printfield[title]{labeltitle}}
\setunit*{\addspace}
\printfield{volume}}
하지만 제목 바로 뒤에 "번역자"를 얻으려면 무엇을 어디에 삽입해야 할지 알 수 없습니다. 그래서 어떤 도움이라도 주시면 감사하겠습니다!
답변1
\usebibmacro{bytranslator+others}
뒤에 매크로를 추가하세요 \usebibmacro{byauthor}
.
\DeclareBibliographyDriver{bookinbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bytranslator+others}%
\newunit\newblock
\usebibmacro{in:}%
\iffieldundef{crossref}
{\usebibmacro{crossref:full}}
{\usebibmacro{crossref:labelbookinbook}}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\iffieldundef{crossref}
{\usebibmacro{crossref:extrainfo}}
{}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
기술적으로 for biblatex
, translator
for @in...
항목(및 @bookinbook
)은 전체 작업의 번역자(상위 @book
)를 참조하므로 여기서 수행하는 작업은 약간 확장됩니다.