![apacite:如何获取参考文献的编号列表?](https://linux22.com/image/411381/apacite%EF%BC%9A%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E7%9A%84%E7%BC%96%E5%8F%B7%E5%88%97%E8%A1%A8%EF%BC%9F.png)
我对参考文献列表有疑问。我找不到任何答案。我使用apacite
选项natbibapa
和 BibTeX(.bib 文件)。我的大学要求参考文献按以下方式编号:
- 参考文献1
- 参考文献2
- 参考文献3
不过,我仍然希望文中的引用是作者年份:
Doe(2020)认为……
知道如何到达那里吗?请注意,apacite
如果可能的话,我更愿意坚持使用。
(我尝试了各种解决这个问题的办法,但都没有奏效。除了 之外,我还尝试了不同的选项apacite
,比如natbib
,apalike
但风格并不完全正确。我还读到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 出版手册的当前版本是第 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}