使用 Biblatex 自訂書目驅動程式

使用 Biblatex 自訂書目驅動程式

我想為特定條目類型(bookinbook)重新定義書目驅動程序,以便包含翻譯者的姓名,其中翻譯者可能因父書中的各種作品(不是從父條目繼承)而有所不同。因此,我希望我的條目如下所示:

柏拉圖:梅農。尤伯斯。馮·弗里德里希·施萊爾馬赫。在:沃克BD。 II,S.509--599。

--普羅泰戈拉。尤伯斯。馮·迪特里希·庫爾茲.在:沃克BD。 II,S.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}}

請注意,從技術上講, for biblatextranslatorfor@in...條目(以及也@bookinbook)指的是整個作品的翻譯者(父親@book),因此我們在這裡所做的有點牽強。

相關內容