apacite 包文档在这里:
http://anorien.csc.warwick.ac.uk/mirrors/CTAN/biblio/bibtex/contrib/apacite/apacite.pdf
规定每当引用两位以上作者(但少于六位)时,第一次引用时将出现完整名称,但此后,再次引用该论文时,第一作者后面将出现 et al 后缀。
有没有办法让 apacite 在引用两位以上的作者时从一开始就使用 et al.?
另外,有没有办法让 apacite 在作者姓名之间使用“and”而不是“&”?
答案1
我认为没有一个通用的标志可以设置来控制是否在第一次使用完整的作者列表。作者列表由\BCA
中的宏控制\@@cite
。一个相对简单的补丁就是所需的一切。我们需要改变
\def\BCA##1##2{{\@BAstyle ##1}}%
进入
\def\BCA##1##2{{\@BAstyle ##2}}%
您可以复制宏并进行更改,但我使用了regexpatch
。
至于用 进行替换&
。这由、和宏and
控制:\BBAA
\BBAB
\BAnd
\newcommand{\BBAA}{\&} % between authors in parenthetical cites and ref. list
\newcommand{\BBAB}{and} % between authors in in-text citation
\newcommand{\BAnd}{\&} % for ``Ed. \& Trans.'' in ref. list
您可以使用 来更改它们renewcommand
,但是您必须在之后进行重新定义,begin{document}
因为该包使用 加载语言设置AtBeginDocument
。
\documentclass{article}
\usepackage{apacite}
\bibliographystyle{apacite}
\usepackage{regexpatch}
\makeatletter
\xpatchcmd{\@@cite}{\def\BCA##1##2{{\@BAstyle ##1}}}{\def\BCA##1##2{{\@BAstyle ##2}}}{}{}
\makeatother
\begin{document}
\renewcommand{\BBAA}{and} % between authors in parenthetical cites and ref. list
\renewcommand{\BBAB}{and} % between authors in in-text citation
\renewcommand{\BAnd}{and} % for ``Ed. \& Trans.'' in ref. list
\cite{inproceedings-full}
\cite{inproceedings-full}
\bibliography{xampl}
\end{document}
答案2
你好你可以\shortcite
用\cite
答案3
biblatex-apa可以解决问题,将其添加到文档的开头:
\usepackage[style=apa]{biblatex}
\addbibresource{sample.bib}
...
\printbibliography
引用 with\parencite
将得到以下结果:
- 1 作者
(Einstein, 1926)
- 2 作者
(Einstein & Newton, 1927)
- 3+ 位作者
(Einstein et al., 1923)