
を使用すると、同じ本を指すエントリが複数ある場合に、でを使用し、 の に編集者の姓だけを使用するのと同様に動作したいとbiblatex-chicago
思います。@bookinbook
@incollection
shorttitle
@book
crossref
MWE:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\begin{filecontents*}{\jobname.bib}
@book{kotter:schriften.jdam,
Address = {Berlin},
Author = {{John of Damascus}},
Date = {1969/2013},
Editor = {Kotter, Bonifaz},
Publisher = {de Gruyter},
Shorttitle = {Schriften},
Title = {Die Schriften des Johannes von Damaskos},
Volumes = {7}}
@bookinbook{jdam:expositio.fidei:kotter1973,
Crossref = {kotter:schriften.jdam},
Entrysubtype = {primary},
Title = {Expositio fidei},
Volume = {2},
Year = {1973}}
@bookinbook{jdam:instit.element:dialectica:kotter1969,
Crossref = {kotter:schriften.jdam},
Entrysubtype = {primary},
Title = {Institutio elementaris. Capita philosophica (Dialectica)},
Volume = {1},
Year = {1969}}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{kotter:schriften.jdam,jdam:instit.element:dialectica:kotter1969,jdam:expositio.fidei:kotter1973}
\printbibliography
\end{document}
現在の出力:
望ましい出力:
ダマスカスのヨハネ。ヨハネス・フォン・ダマスコスの書ボニファス・コッター編。全7巻。ベルリン:de Gruyter、1969年~2013年。
——。信仰の表明コッターでは、シュリフテン、第2巻。ベルリン:de Gruyter、1973年。
——。小学校教育機関。哲学の首都(弁証法)コッターでは、シュリフテン、第1巻。ベルリン:de Gruyter、1969年。
答え1
biblatex-chicago
と呼ばれるオプションがありbooklongxref
、これを使用すると、ここで参考文献のエントリを短縮できます。
\documentclass{article}
\usepackage[notes,booklongxref=false]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{kotter:schriften.jdam,
Address = {Berlin},
Author = {{John of Damascus}},
Date = {1969/2013},
Editor = {Kotter, Bonifaz},
Publisher = {de Gruyter},
Shorttitle = {Schriften},
Title = {Die Schriften des Johannes von Damaskos},
Volumes = {7}}
@bookinbook{jdam:expositio.fidei:kotter1973,
Crossref = {kotter:schriften.jdam},
Entrysubtype = {primary},
Title = {Expositio fidei},
Volume = {2},
Year = {1973}}
@bookinbook{jdam:instit.element:dialectica:kotter1969,
Crossref = {kotter:schriften.jdam},
Entrysubtype = {primary},
Title = {Institutio elementaris. Capita philosophica (Dialectica)},
Volume = {1},
Year = {1969}}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{kotter:schriften.jdam,jdam:instit.element:dialectica:kotter1969,jdam:expositio.fidei:kotter1973}
\printbibliography
\end{document}
出力はまさにあなたが考えていたものとは違いますが、十分近いものになっていると思います。
が主にその に関連付けられている場合、エントリ内の短い参照で作品の@bookinbook
を参照することは、私にとって特に難しいように思われます。editor
@book
@book
author
その他の問題は、フィールド値の保存と復元によって回避できます。内部的には、ショートはcrossref
引用コマンドによって生成されます。マクロにフィールドを保存し、後でマクロを復元することで、追加情報をその引用コマンドに渡すことができます。
\documentclass{article}
\usepackage[notes,booklongxref=false]{biblatex-chicago}
\usepackage{xpatch}
\xapptobibmacro{crossref:volume+postnote}{%
\newunit\newblock
\usebibmacro{saved:publ+loc+year}%
}{}{}
\makeatletter
\xapptobibmacro{xrefprenote}{%
\iflistundef{publisher}
{\undef\cbx@incollpublisher}
{\savelist{publisher}{\cbx@incollpublisher}}%
\iflistundef{location}
{\undef\cbx@incolllocation}
{\savelist{location}{\cbx@incolllocation}}%
\iffieldundef{year}
{\undef\cbx@incollyear}
{\savefield{year}{\cbx@incollyear}}%
\iffieldundef{endyear}
{\undef\cbx@incollendyear}
{\savefield{endyear}{\cbx@incollendyear}}%
}{}{}
\newbibmacro*{saved:publ+loc+year}{%
\ifboolexpr{
not test {\iflistequals{publisher}{\cbx@incollpublisher}}
or
not test {\iflistequals{location}{\cbx@incolllocation}}
or
not test {\iffieldequals{year}{\cbx@incollyear}}
or
not test {\iffieldequals{endyear}{\cbx@incollendyear}}
}
{\restorelist{publisher}{\cbx@incollpublisher}%
\restorelist{location}{\cbx@incolllocation}%
\restorefield{year}{\cbx@incollyear}%
\restorefield{endyear}{\cbx@incollendyear}%
\printlist{location}%
\iflistundef{publisher}%
{\setunit*{\addcomma\addspace}}%
{\setunit*{\addcolon\addspace}}%
\printlist{publisher}%
\setunit*{\addcomma\addspace}%
\usebibmacro{date}}
{}}%
\makeatother
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{kotter:schriften.jdam,
Address = {Berlin},
Author = {{John of Damascus}},
Date = {1969/2013},
Editor = {Kotter, Bonifaz},
Publisher = {de Gruyter},
Shorttitle = {Schriften},
Title = {Die Schriften des Johannes von Damaskos},
Volumes = {7}}
@bookinbook{jdam:expositio.fidei:kotter1973,
Crossref = {kotter:schriften.jdam},
Entrysubtype = {primary},
Title = {Expositio fidei},
Volume = {2},
pages = {2-200},
Year = {1973}}
@bookinbook{jdam:instit.element:dialectica:kotter1969,
Crossref = {kotter:schriften.jdam},
Entrysubtype = {primary},
Title = {Institutio elementaris. Capita philosophica (Dialectica)},
Volume = {1},
pages = {1-100},
Year = {1969}}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{kotter:schriften.jdam,jdam:instit.element:dialectica:kotter1969,jdam:expositio.fidei:kotter1973}
\printbibliography
\end{document}