自动嵌套 biblatex 书目

自动嵌套 biblatex 书目

我正在使用 biblatex 维护人员数据库。使用 biblatex 的\printbibliography命令,我可以打印这些人员的列表并利用 biblatex 的排序机制。下面的示例按出生日期对人员进行了排序。

这些人也与书目参考文献相关联(他们是作者)。参考文献在书目条目中使用该字段指示usera。通过\DeclareBibliographyDriver命令,我能够以列表形式在人员姓名下打印这些参考文献。

我想要实现的是避免被迫手动列出usera字段中的链接条目并让 biblatex 自动打印它们。

这意味着让 biblatex 在 bib 文件中搜索具有相应作者的条目,并usera用结果填充字段。理想情况下,我需要能够使用排序机制确定如何打印这些条目(例如:按日期排序打印此作者的所有条目)。

我不知道该怎么做,也不知道是否可行,任何帮助我都会非常感激。在我看来,这种“嵌套书目”将是一种非常强大的工具。

在此处输入图片描述

MWE,非自动化

\documentclass{article}
\usepackage{biblatex} 
\usepackage{filecontents}
\begin{filecontents}{sources.bib}
@article{testart1,
    author          = {Author, Albert},
    title           = {First Article Title},
    journaltitle    = {Something Times},
    date            = {1964-02-01},
    }

@article{testart2,
    author          = {Buthor, Billy},
    title           = {Second Article Title},
    journaltitle    = {Another Times},
    date            = {1975-05-10},
    }

@article{testart3,
    author          = {Author, Albert},
    title           = {Third Article Title},
    journaltitle    = {Something Else Times},
    date            = {1970-04-21},
    }

@person{author_albert,
    namea           = {Author, Albert},
    date            = {1920/1975},
    usera           = {testart1,testart3},
    }

@person{buthor_billy,
    namea           = {Buthor, Billy},
    date            = {1930/1990},
    usera           = {testart2},
    }

@person{cuthor_charly,
    namea           = {Cuthor, Charly},
    date            = {1900/1950},
    }
\end{filecontents}

\addbibresource{sources.bib}

\newcommand*{\itemcite}[1]{\item \fullcite{#1}\finentry}% goes with below

\DeclareBibliographyDriver{person}{% custom person driver
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \mkbibbold{\printnames{namea}%
  \addspace%
  \mkbibparens{\printdate}%
  \addspace%
  \iffieldundef{usera}{}% if nothing in usera, print nothing
    {\vskip\bibitemsep\scriptsize% otherwise print list of publications
    \begin{itemize}%
    \forcsvfield{\itemcite}{usera}%
    \end{itemize}}}%
  %\usebibmacro{finentry}%
}%

\begin{document} 

Lorem.

\nocite{*}%

\printbibliography[type=person,title=Persons,sorting=ynt]%

\end{document}

相关内容