Apacite - 为多个作者输出不同的引文

Apacite - 为多个作者输出不同的引文

我有一个问题,尽管我查阅了文档、网页和代码(虽然我对这些东西还很陌生),但还是无法解决。apacite.bst问题如下:

使用apacite引用样式包,我想

\citeA{ref} argued that the value of ... 

被渲染为

博尔赫斯 (Borges) 及其合作者 (2006) 认为......的价值

同时,如果引用不是文本,则代码

was proved \cite{ref}.

应呈现为

已得到证实(Borges 等,2006)。

总之,当引用导致“et al.”时,我希望它有不同的输出,无论是文本引用(和合作者)还是普通引用(et al.)。

已经测试过renewcommand \BOthers但它会影响两种类型的引用。

你能帮助我吗?

答案1

在 的定义中\BOthers,我们可以测试我们是否在\citeA引用命令中,并排版相应的字符串。查看apacite.sty,内部\@BAY宏(“after year”字符串)是一个很好的测试候选——它的定义\BBCP在“citeA”引用中,否则为空。为了方便起见,我使用etoolbox包及其\ifdefstring宏来修改的定义\BOthers

\documentclass{article}

\usepackage{apacite}

\usepackage{etoolbox}

\makeatletter
\AtBeginDocument{%
  \renewcommand{\BOthers}[1]{%
    \ifdefstring{\@BAY}{\BBCP}{%
      and collaborators\hbox{}%
    }{%
      et al.\hbox{}%
    }%
  }%
}
\makeatother

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A. and B and C and D and E and F},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\begin{document}

\citeA{A01} argued~\dots

\dots\ was proved \cite{A01}.

\bibliographystyle{apacite}
\bibliography{\jobname}

\end{document}

在此处输入图片描述

相关内容