
私の理解では、biblatex-fields は1 つの文字列/キーのみを受け入れますが、2 つ以上の項目/アドレスを参照するようにしたいeprint
と考えています。related
私の言いたいことを明確にする例を挙げます (この例では、latex --> biber --> latex の 3 回の実行が必要です)。
\begin{filecontents}{MyBib.bib}
@Article{Barney:Notes,
author = {Rachel Barney},
title = {Notes on Plato on the \mkbibemph{Kalon} and the Good},
journaltitle = {Classical Philology},
year = 2010,
commentator = {Paula Gottlieb},
eprint = {10.1086/657026, 10.1086/659326}, %the first number is
% the article, the second one the
% comment, which I want to appear in one entry
eprinttype = {jstor},
volume = 105,
number = 4,
pages = {363-77, 378-80} % the same as with eprint
}
@Article{Derrida:Pharmacie1-1,
author = {Jacques Derrida},
title = {La pharmacie de Platon},
journaltitle = {Tel Quel},
year = 1968,
volume = 32,
pages = {3-48}
}
@Article{Derrida:Pharmacie1-2,
author = {Jacques Derrida},
title = {La pharmacie de Platon},
journaltitle = {Tel Quel},
year = 1968,
volume = 33,
pages = {18-59}
}
@InBook{Derrida:Pharmacie2,
title = {La pharmacie de Platon},
year = 1993,
bookauthor = {Jacques Derrida},
author = {Jacques Derrida},
gender = {sm},
booktitle = {La Diss{\'e}mination},
bookauthor = {Jacques Derrida},
publisher = {{\'E}dition Points},
location = {Paris},
pages = {77-213}, % perhaps: {77-148, 149-213}
related = {Derrida:Pharmacie1-1}, % both articles are reprinted in one book,
% the unity of the deconstructed separation, which might duly be called
% the voice of the separated unification as voiced deconstruction
% of no-pposites
related = {Derrida:Pharmacie1-2},
relatedstring ={Nachdruck von}
}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\input{ix-utf8enc.dfu}
\usepackage[english]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage[style=philosophy-modern, sorting=nyvt,
backend=biber, citetracker=constrict,
opcittracker=constrict,
idemtracker=constrict, relatedformat=parens,
autolang=hyphen, clearlang=true]{biblatex}
\addbibresource{MyBib.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Derrida の場合、2 つのキーをコンマで区切ると、改行で区切られた 2 回の参照が得られます。
答え1
2つのcrossref
sを正しく入力するには、同じcrossref
フィールドに入力するだけです。上記のコメントを引用すると
関連するエントリの両方を 1 つのフィールドに入力する必要があります
related
(もちろん、カンマで区切ってください)。そうしないと、Biber はフィールドの最後の出現のみを取得し、それ以前のすべてを無視します (Biber による警告が出ると思っていましたが、何もありませんでした。エントリに 2 番目の (異なる) フィールドを追加すると、この動作が非常に明確にわかりますauthor
)。
@InBook{Derrida:Pharmacie2,
title = {La pharmacie de Platon},
year = 1993,
bookauthor = {Jacques Derrida},
author = {Jacques Derrida},
gender = {sm},
booktitle = {La Diss{\'e}mination},
bookauthor = {Jacques Derrida},
publisher = {{\'E}dition Points},
location = {Paris},
pages = {77-213}, % perhaps: {77-148, 149-213}
related = {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
relatedtype = {reprintof},
%relatedstring = {Nachdruck von}
}
あなたが と書いたのでrelatedstring ={Nachdruck von}
、relatedtype = {reprintof}
ここでは適切と思われます。
ただし、default
関連するマクロがbiblatex-philosophy
少しおかしくなって、壊れてしまうようなので、代わりにどうするかをreprintof
指定する必要があります。biblatex
\newbibmacro*{related:reprintof}[1]{%
\entrydata*{#1}{%
\usedriver
{\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
この基準をさらに再定義するrelated:default
と
\renewbibmacro*{related:default}[1]{%
\entrydata*{#1}{%
\usedriver
{\renewcommand*{\labelnamepunct}{\addcolon\space}%
\renewbibmacro*{author/translator+others}{\printnames{author}}%
\iffieldsequal{savedjournaltitle}{journaltitle}%
{\renewbibmacro*{journal}{\bibstring{ibidem}}%
\ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
{\renewbibmacro*{volume+number+eid}{}}
{}%
}
{}
\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
アップデート related:default
ibidem
関連エントリのジャーナルが親エントリのジャーナルと同じである場合、通知が印刷されるようになりました。
Barney:Notes
を次のように扱う。Gottlieb:response
は でありdataonly
、のrelated
フィールドはBarney:Notes
を参照する。Gottlieb:response
@Article{Barney:Notes,
author = {Rachel Barney},
title = {Notes on Plato on the \mkbibemph{Kalon} and the Good},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/657026},
volume = 105,
number = 4,
pages = {363-377},
related={Gottlieb:response},
relatedstring = {Commentary:},
}
@Article{Gottlieb:response,
author = {Paula Gottlieb},
title = {Response to Barney},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/659326},
volume = 105,
number = 4,
pages = {378-380},
options = {dataonly},
}
かなり望ましい出力が得られると思います。
ムウェ
\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[style=philosophy-modern, sorting=nyvt,
backend=biber, citetracker=constrict,
opcittracker=constrict,
idemtracker=constrict, relatedformat=parens,
autolang=hyphen, clearlang=true]{biblatex}
\begin{filecontents*}{\jobname.bib}
@Article{Barney:Notes,
author = {Rachel Barney},
title = {Notes on Plato on the \mkbibemph{Kalon} and the Good},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/657026},
volume = 105,
number = 4,
pages = {363-377},
related={Gottlieb:response},
relatedstring = {Commentary:},
}
@Article{Gottlieb:response,
author = {Paula Gottlieb},
title = {Response to Barney},
journaltitle = {Classical Philology},
year = 2010,
doi = {10.1086/659326},
volume = 105,
number = 4,
pages = {378-380},
options = {dataonly},
}
@Article{Derrida:Pharmacie1-1,
author = {Jacques Derrida},
title = {La pharmacie de Platon},
journaltitle = {Tel Quel},
year = 1968,
volume = 32,
pages = {3-48}
}
@Article{Derrida:Pharmacie1-2,
author = {Jacques Derrida},
title = {La pharmacie de Platon},
journaltitle = {Tel Quel},
year = 1968,
volume = 33,
pages = {18-59}
}
@InBook{Derrida:Pharmacie2,
title = {La pharmacie de Platon},
year = 1993,
bookauthor = {Jacques Derrida},
author = {Jacques Derrida},
gender = {sm},
booktitle = {La Diss{\'e}mination},
bookauthor = {Jacques Derrida},
publisher = {{\'E}dition Points},
location = {Paris},
pages = {77-213}, % perhaps: {77-148, 149-213}
related = {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
relatedtype = {reprintof},
%relatedstring ={Nachdruck von}
}
\end{filecontents*}
\newbibmacro*{related:reprintof}[1]{%
\entrydata*{#1}{%
\usedriver
{\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
\renewcommand*{\relateddelim}{\adddot\space}
%\renewbibmacro*{related:clearauthors}{}
\renewbibmacro*{related:default}[1]{%
\entrydata*{#1}{%
\usedriver
{\renewcommand*{\labelnamepunct}{\addcolon\space}%
\renewbibmacro*{author/translator+others}{\printnames{author}}%
\iffieldsequal{savedjournaltitle}{journaltitle}%
{\renewbibmacro*{journal}{\bibstring{ibidem}}%
\ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
{\renewbibmacro*{volume+number+eid}{}}
{}%
}
{}
\ifnameundef{savedauthor}
{\ifnameundef{savededitor}
{}
{\ifnamesequal{editor}{savededitor}
{\clearname{editor}}
{}}}
{\ifnamesequal{author}{savedauthor}
{\clearname{author}}
{}}%
\renewbibmacro*{related:init}{}%
\DeclareNameAlias{sortname}{default}%
\ifbibmacroundef{date+extrayear}
{}
{\renewbibmacro*{date+extrayear}{}%
\renewbibmacro*{date}{\printdate}}%
\renewbibmacro*{pageref}{}}
{\thefield{entrytype}}}}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
ここでの解決策は多少脆弱で、他の使用例では機能しない可能性があります。ただし、関連エントリのデフォルトの処理には、philosophy-modern
対処しなければならないバグや巧妙な再定義が含まれているようです。