引用多个参考文献并附加附加信息

引用多个参考文献并附加附加信息

我想制作一个类似这样的引文:

(哺乳动物:Ginsberg 和 Huck 1989;鸟类:Griffith 等人 2002;鱼类:Avise 等人 2002)

如果我有一个参考我知道我可以这样做:

\citep[mammals:][]{Ginsburg1989}

有没有办法为每个参考添加附加信息?

答案1

我可以提出一个\multicitep命令:

\begin{filecontents*}{\jobname.bib}
@article{ginsburg1989,
  author={Ginsburg, X. and Huck, Y.},
  title={Title},
  journal={Journal},
  year=1989,
}
@article{griffith2002,
  author={Griffith, X. and Abc, Y. and Def, Z.},
  title={Title},
  journal={Journal},
  year=2002,
}
@article{avise2002,
  author={Avise, X. and Abc, Y. and Def, Z.},
  title={Title},
  journal={Journal},
  year=2002,
}
\end{filecontents*}

\documentclass{article}
\usepackage[authoryear]{natbib}
\usepackage{xparse}

\ExplSyntaxOn

\seq_new:N \l__lara_ccitep_seq

\NewDocumentCommand{\multicitep}{m}
 {
  \seq_clear:N \l__lara_ccitep_seq
  (
  \clist_map_inline:nn { #1 }
   {
    \seq_put_right:Nn \l__lara_ccitep_seq { \citenop ##1 }
   }
  \seq_use:Nn \l__lara_ccitep_seq { ;~ }
  )
}

\NewDocumentCommand{\citenop}{om}
 {
  \IfValueT{#1}{#1~}
  \citeauthor{#2},\nobreakspace\citeyear{#2}
 }

\ExplSyntaxOff

\begin{document}

\multicitep{[mammals:]{ginsburg1989},[birds:]{griffith2002},[fish:]{avise2002}}

\bibliographystyle{plainnat}
\bibliography{\jobname}

\end{document}

filecontents*环境仅用于使示例自成一体。请使用您自己的数据库。

在此处输入图片描述

相关内容