昨天我問了如何以「由...翻譯為...」的形式將作品的翻譯納入參考書目中。我被告知要使用字段related={<key>}
和relatedtype={bytranslator}
。起初,這對我的目的非常有效。但後來我意識到它只適用於@book
,而不適用於@article
或@incollection
。例如,以下內容@incollection
及其翻譯為@article
:
雅克‧德希達(2001)。 「在可怕的事件中,有一種可能是不可能的」。在:可怕的事情,可能嗎?巴黎:L'Harmattan,第 79-112 頁。
雅克‧德希達(2007)。 「說出事件的某種不可能的可能性」。吉拉沃克翻譯。在:批判性詢問33.2,第 441-461 頁。
將兩者結合起來relatedtype={bytranslator}
會產生以下不完整的條目:
雅克‧德希達(2001)。 「在可怕的事件中,有一種可能是不可能的」。在:可怕的事情,可能嗎?巴黎:L'Harmattan,第 79-112 頁。吉拉沃克(Gila Walker)將其翻譯為「說出事件的某種不可能的可能性」(2007)。
缺少有關翻譯出現的期刊和編號的資訊。也就是說,該條目應該是(我認為):
雅克‧德希達(2001)。 「在可怕的事件中,有一種可能是不可能的」。在:可怕的事情,可能嗎?巴黎:L'Harmattan,第 79-112 頁。吉拉沃克(Gila Walker)將其翻譯為「說出事件的某種不可能的可能性」。在:批判性詢問 33.2 (2007),第 441-461 頁。
這是一個最小的例子:
\documentclass[12pt]{article}
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@incollection{Derrida2001,
author = {Derrida, Jacques},
title = {Une certaine possibilit\'{e} impossible de dire l'\'{e}v\'{e}nement},
location = {Paris},
publisher = {L'Harmattan},
year = {2001},
pages = {79-112},
booktitle = {Dire l'\'{e}v\'{e}nement, est-ce possible?},
related = {Derrida2007},
relatedtype = {bytranslator},
}
@article{Derrida2007,
author = {Derrida, Jacques},
translator = {Walker, Gila},
title = {A certain impossible possibility of saying the event},
journaltitle = {Critical Inquiry},
volume = {33},
number = {2},
year = {2007},
pages = {441-461},
}
\end{filecontents}
\usepackage[style=authoryear,abbreviate=false]{biblatex}
\addbibresource{biblio.bib}
\begin{document}
Citing a text by \textcite{Derrida2001}.
\printbibliography
\end{document}
當我切換translator
、related
和relatedtype
字段(錯誤地)進行@incollection
的翻譯時@article
,會發生類似的截斷。代替
雅克‧德希達(2007)。 「說出事件的某種不可能的可能性」。在:批判性詢問33.2,第 441-461 頁。吉拉沃克 (Gila Walker) 將其翻譯為“Une certaine possibilité irresible de dire l'événement”。在:可怕的事情,可能嗎?(巴黎:L'Harmattan,2001)。
我明白了
雅克‧德希達(2007)。 「說出事件的某種不可能的可能性」。在:批判性詢問33.2,第 441-461 頁。吉拉沃克 (Gila Walker) 將其翻譯為「Une certaine possibilité Impossible de dire l'événement」(巴黎:L'Harmattan,2001)。
也就是說,出現的書名@incollection
遺失了。
這是一個錯誤嗎?如果是這樣,有辦法解決嗎?
在此先感謝您的幫忙!
答案1
預設related:bytranslator
巨集僅適用於@book
s 和類似的條目類型(我認為)。為了使其適用於@in...
類型,我們需要對巨集進行一些修改。
對於每個需要更多輸出的條目類型,我們檢查該類型並列印所需的資訊(其代碼取自standard.bbx
)。
\makeatletter
\newbibmacro*{related:bytranslator}[1]{%
\entrydata{#1}{%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}
{\begingroup
\mkrelatedstring%
\lbx@initnamehook{#1}%
\endgroup}
{}}%
\printnames[bytranslator]{translator}%
\clearname{translator}%
\setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
\usebibmacro{title}%
\ifentrytype{article}
{\usebibmacro{in:}%
\usebibmacro{journal+issuetitle}}
{}
\ifentrytype{inbook}
{\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}}
{}
\ifentrytype{incollection}
{\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}}
{}
\ifentrytype{inproceedings}
{\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{event+venue+date}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}}
{}
\setunit{\addspace}%
\printtext[parens]{%
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printdate}
\newunit\newblock
\printfield{note}%
\newunit\newblock
\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{pages}}}
\makeatother
微量元素
\documentclass[12pt]{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{Derrida2001,
author = {Derrida, Jacques},
title = {Une certaine possibilit\'{e} impossible de dire l'\'{e}v\'{e}nement},
location = {Paris},
publisher = {L'Harmattan},
year = {2001},
pages = {79-112},
booktitle = {Dire l'\'{e}v\'{e}nement, est-ce possible?},
related = {Derrida2007},
relatedtype = {bytranslator},
}
@article{Derrida2007,
author = {Derrida, Jacques},
title = {A certain impossible possibility of saying the event},
journaltitle = {Critical Inquiry},
translator = {Walker, Gila},
volume = {33},
number = {2},
year = {2007},
pages = {441-461},
}
\end{filecontents}
\usepackage[style=authoryear,abbreviate=false]{biblatex}
\addbibresource{\jobname.bib}
\makeatletter
\newbibmacro*{related:bytranslator}[1]{%
\entrydata{#1}{%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}
{\begingroup
\mkrelatedstring%
\lbx@initnamehook{#1}%
\endgroup}
{}}%
\printnames[bytranslator]{translator}%
\clearname{translator}%
\setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
\usebibmacro{title}%
\ifentrytype{article}
{\usebibmacro{in:}%
\usebibmacro{journal+issuetitle}}
{}
\ifentrytype{inbook}
{\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}}
{}
\ifentrytype{incollection}
{\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}}
{}
\ifentrytype{inproceedings}
{\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{event+venue+date}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}}
{}
\setunit{\addspace}%
\printtext[parens]{%
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printdate}
\newunit\newblock
\printfield{note}%
\newunit\newblock
\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{pages}}}
\makeatother
\begin{document}
Citing a text by \textcite{Derrida2001}.
\printbibliography
\end{document}
這可能不適用於所有情況,因此可能需要針對極端情況進行一些修改。