通过比较 if 语句中的 citeauthor 来创建自定义引用

通过比较 if 语句中的 citeauthor 来创建自定义引用

我正在尝试\cite使用自定义引用格式为多个作者重现此行为。本质上,我希望作者姓名为黑色文本,而年份为彩色超链接。有人知道如何实现吗?

我目前的尝试是通过输入最后一位作者(#1in addcite)和要引用的剩余作品列表(#2,#3)来递归构建引文。从剩余列表( )中弹出要引用的第一部作品,\citeauthor{#2}并将其与报告的最后一位作者(#1)进行比较,然后根据是否是同一作者来决定行为。但是,我无法使比较起作用(我认为这与比较不比较文字有关,但可能有所不同,因为它们具有不同的超链接,是同一作者但不同的作品)。并且由于某种原因,第一部作品总是丢失(但给出单个引文时可以正常工作)。

\newcommand{\mycite}[1]{(\addcite(,#1,))}

\def\addcite(#1,#2,#3){%
\def\temp{\citeauthor{#2}}%
\ifx\temp#1%
\citeyear{#2}%
\else{\hypersetup{citecolor=black}\citeauthor{#2}}~\citeyear{#2}%
\fi%
\def\tempA{\citeauthor{#2}}%
\ifx\relax#3%
\relax%
\else; \addcite(\tempA,#3)%
\fi
}

理想的工作解决方案是

\mycite{AuthorA_Year1,AuthorA_Year2,AuthorB_Year1,AuthorB_Year3}

并返回(标点符号不重要):

作者 A (年份 1; 年份 2);作者 B (年份 1; 年份 3)

其中AuthorAAuthorB为黑色,年份则以citecolor从开始定义的数字表示hyperref

相关内容