apacite:如何获取参考文献的编号列表?

apacite:如何获取参考文献的编号列表?

我对参考文献列表有疑问。我找不到任何答案。我使用apacite选项natbibapa和 BibTeX(.bib 文件)。我的大学要求参考文献按以下方式编号:

  1. 参考文献1
  2. 参考文献2
  3. 参考文献3

不过,我仍然希望文中的引用是作者年份:

Doe(2020)认为……

知道如何到达那里吗?请注意,apacite如果可能的话,我更愿意坚持使用。

(我尝试了各种解决这个问题的办法,但都没有奏效。除了 之外,我还尝试了不同的选项apacite,比如natbibapalike但风格并不完全正确。我还读到apacite最适合 APA 风格参考文献。)

答案1

apacite实现了 APA 出版手册第 6 版中的引用和参考书目样式。

据我所知,APA 格式是作者-年份格式,不涉及参考书目中的编号条目。事实上,编号参考书目与作者-年份引用格式不相称。

现在您已经得到充分警告,这不符合 APA 标准并且总体来说是一个坏主意,让我们尝试获取编号的参考书目。

由于将对natbibapa apacite参考书目环境的控制权委托thebibliography给了natbib,所以我们必须摆弄 的natbib内部命令,使其生成编号的参考书目。

这里有一个问题:apacite的书目样式无法计算正确格式化列表所需的最长数字标签。因为我很懒,所以我只是硬编码了一个看似合理的值(1em,但如果数字变长,则可能需要更高的值)。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[natbibapa]{apacite}

\makeatletter
\renewcommand\@biblabel[1]{[#1]}%

\renewcommand\NAT@bibsetnum[1]{%
   \setlength{\labelwidth}{1em}%
   \setlength{\labelsep}{2\labelsep}%
   \setlength{\leftmargin}{\labelwidth}
   \addtolength{\leftmargin}{\labelsep}%
   \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}%
   \ifNAT@openbib
     \addtolength{\leftmargin}{\bibindent}%
     \setlength{\itemindent}{-\bibindent}%
     \setlength{\listparindent}{\itemindent}%
     \setlength{\parsep}{0pt}%
   \fi
}

\newcommand*{\numbibliography}{%
  \let\@bibsetup\NAT@bibsetnum
  \let\@biblabel\NAT@biblabelnum
  \bibliography}
\makeatother


\begin{document}
\citet{apa6:ch7-ex38}

\bibliographystyle{apacite}
\numbibliography{apa5ex}
\end{document}

编号的 APA 参考书目。


需要注意的是,APA 出版手册的当前版本是第 7 版。我所知道的唯一第 7 版 APA 格式实现是biblatex-apa

biblatex-apa可以使用以下定义来获得编号的参考书目(请参阅使用 bibstyle=numeric 但在参考书目中显示作者、年份而不带括号

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=apa, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\defbibenvironment{bibliography}
  {\setlength{\leftmargin}{\bibhang}%
   \setlength{\itemindent}{-\leftmargin}%
   \setlength{\labelsep}{\biblabelsep}%
   \setlength{\itemsep}{\bibitemsep}%
   \setlength{\parsep}{\bibparsep}%
   \begin{enumerate}}
  {\end{enumerate}}
  {\item}

\begin{document}
\autocite{sigfridsson}
\printbibliography
\end{document}

请注意,使用此设置后,以后无法访问这些标签编号。如果您想要这样做,则需要激活该选项labelnumber

\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}
\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
        \printfield{labelprefix}%
        \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

相关内容