我想重新定义特定条目类型 (bookinbook) 的参考书目驱动程序,以便包含译者的名称,其中译者可能因父书中的不同作品而异(不从父条目继承)。因此,我希望我的条目看起来如下所示:
柏拉图:梅农。关于我们。冯·弗里德里希·施莱尔马赫。在:沃克II 室,第 509--599 页。
--普罗泰戈拉。关于我们。冯迪特里希·库尔茨。在:沃克第二室,第 83-217 页。
我使用以下驱动程序实现了除“Übers. von”(编辑)部分之外的所有内容:
\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}}
请注意,从技术上讲,对于biblatex
,translator
对于@in...
条目 (以及@bookinbook
)指的是整体作品的翻译者(父级@book
),因此我们在这里所做的有点牵强。