梅威瑟:

梅威瑟:

使用,当有多个条目指向同一本书时biblatex-chicago,我希望@bookinbook表现得类似于@incollection使用 ,shorttitle并且只使用编辑者的姓氏。@bookcrossref

梅威瑟:

\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}

电流输出:

在此处输入图片描述

期望输出:

大马士革的约翰。约翰·冯·达马斯科斯的著作。Bonifaz Kotter 编辑。共 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}

大马士革的约翰。约翰内斯·冯·大马士革的著作。博尼法兹·科特编辑。共 7 卷。柏林:de Gruyter,1969–2013 年。//---。信仰阐释。收录于《著作》,第 2 卷。//---。基本原理。哲学理论(辩证法)。收录于《著作》,第 1 卷。


输出并不完全符合您的想象,但希望它足够接近。

当主要与其 相关时,在@bookinbook条目中找到有关editor该作品的简短引用对我来说似乎特别具有挑战性。@book@bookauthor

其他问题可以通过保存和恢复字段值来解决。内部的简短内容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}

大马士革的约翰。约翰内斯·冯·大马士革的著作。博尼法兹·科特编辑。共 7 卷。柏林:de Gruyter,1969-2013 年。//。信仰阐释。在著作中,2:2-200。柏林:de Gruyter,1973 年。//。基本原理。哲学理论(辩证法)。在著作中,1:1-100。柏林:de Gruyter,1969 年。

相关内容