列出同姓氏作者的参考文献

列出同姓氏作者的参考文献

我正在尝试列出两个姓氏相同的不同人的参考资料:

\newcommand*{\generateauthorcategory}[3]{%
 \DeclareBibliographyCategory{by#1}%
 \DeclareIndexNameFormat{cat#1}{%
    \ifboolexpr{test {\ifdefstring{\namepartfamily}{#2}}
                and test {\ifdefstring{\namepartgiven}{#3}}}
      {\addtocategory{by#1}{\thefield{entrykey}}}
      {}}%
  \AtDataInput{\indexnames[cat#1][1-999]{author}}}


\generateauthorcategory{foo}{Foo}{Andrew}
\generateauthorcategory{foo}{Foo}{Fernand}

\begin{document}
\printbibliography[heading=none, category=byfoo, check=yr2018,]
\printbibliography[heading=none, category=byfoo, check=yr2017,]
\printbibliography[heading=none, category=byfoo, check=yr2016,]

\printbibliography[heading=none, category=byfoo, check=yr2018,]
\printbibliography[heading=none, category=byfoo, check=yr2017,]
\printbibliography[heading=none, category=byfoo, check=yr2016,]
\nocite{*}
\end{document}

它告诉我我已经有一个 foo 类别,所以我不能有两个。

答案1

<catname>的第一个参数\generateauthorcategory定义为向 \declaresourcemap 添加参数是用于标识书目类别的“内部”名称by<catname>。该名称在所有\generateauthorcategorys 中必须是唯一的,这样不同人员的类别之间就不会发生冲突(在您的示例中你希望看到category=byfoo 安德鲁或者费尔南德?)。由于<catname>用于内部目的,因此它应该只包含 ASCII 字符,而且我更喜欢将字符保持小写。标识符<catname>不需要与其他两个参数有关系,但如果有关系当然会有所帮助。

您需要在这里选择两个不同的名称,例如fooafoof

\generateauthorcategory{fooa}{Foo}{Andrew}
\generateauthorcategory{foof}{Foo}{Fernand}

进而

\printbibliography[heading=none, category=byfooa]
\printbibliography[heading=none, category=byfoof]

相关内容