如何使用 BibLaTeX 与 Biber 后端和 APA 样式创建作者索引

如何使用 BibLaTeX 与 Biber 后端和 APA 样式创建作者索引

我正在制作一篇论文的模板,尽管我对 LaTeX 还不太熟悉,但我几乎能够将其完全做到我想要的程度。我使用的是 Overleaf,我从干净的论文样式开始,然后我成功地对其进行了几次更改和添加。

关于参考书目,我想按章节列出它们,并最终列出完整的参考文献列表。我可以使用以下结构来做到这一点:

\begin{filecontents*}{local_ref.bib}
@BOOK{reference1,
  title = {{Some title}},
  publisher = {Publisher},
  year = {2001},
  author = {{Institutional Author}},
  shortauthor = {IA},
  address = {Netherlands},
  edition = {1},
  isbn = {0 7506 5080 X}
  }

  @PHDTHESIS{reference2,
  author = {John Doe},
  title = {Another title},
  school = {{The University of Here}},
  year = {2020},
  type = {PhD {T}hesis}
  }

    @PHDTHESIS{reference3,
  author = {Name Surname},
  title = {A third title},
  school = {{Some University}},
  year = {2019},
  type = {PhD {T}hesis}
  }
\end{filecontents*}

\documentclass{scrreprt}
 \usepackage[style=apa, 
             backend=biber, 
             natbib=true,
             backref=false,
             maxnames=3,
             minnames=1,
             maxbibnames=5,
             minbibnames=3,
             maxcitenames=2,
             mincitenames=1,
             defernumbers=true,
             refsegment = chapter,
             sorting=ynt
                            ]{biblatex}

 \addbibresource{local_ref.bib}

 \begin{document}

 \tableofcontents

 \chapter{First chapter}
 \section{Section Name}
 Some text \cite{reference1}.
 \printbibliography[segment = \therefsegment, heading = subbibintoc]


 \chapter{Second chapter}
 \section{Another Section}
 Some text \cite{reference2}.
 \printbibliography[segment = \therefsegment, heading = subbibintoc]

 \printbibliography

 \end{document}

如您所见,最好在第一章中包含一个参考文献,在第二章中包含另一个参考文献,然后将它们都放在参考文献列表中,同时忽略书目中未引用的参考文献。

但现在我遇到一个似乎无法找到解决方案的问题:我想要一个最终的作者索引,格式如下:


作者索引

安德森 1, 3, 5
阿伯斯曼 2, 3, 4

巴克 3

卡彭特 2, 3
张 4, 5
美国宇航局 3, 4


正如您所看到的,我想要:

  • 仅包含作者姓氏的列表;
  • 机构的简称(NASA,而不是 National Agency...);
  • 它们在整个论文中出现的页码引用;
  • 按字母顺序对姓名进行分组;
  • 页码作为原始页面的链接。

AuthorIndex 包可以做到这一点,而且我已经看到了一些其他替代方案,它们使用 BibTeX 或 BibLaTeX(后端使用 BibTeX)。问题是,由于我的论文中存在所有依赖项,而且我是从现成的模板开始的,如果我甚至从 biber 更改后端,它都会崩溃整个系统(例如,因为我需要使用 APA 样式)。

我发现的另一个问题是我需要禁用 backref,因为我不希望章节引用包含“(引用第 X 页)。这样,我不知道作者索引中的页面引用是否能够链接回引用。(顺便说一下,我正在使用 hyperref)。

非常感谢您给予我的任何帮助。

安德烈·布拉西尔

答案1

biblatex附带一些用于引用/参考书目索引的示例文件:20-indexing-single.tex对于简单指数和21-indexing-multiple.tex22-indexing-subentry.tex适用于更复杂的设置。

如果您只想要单个索引(即作者索引),那么以下内容20-indexing-single.tex应该有效。

  • 加载索引包(这里是标准 LaTeX makeidx)。
  • 激活索引(此处用\makeindex)。
  • 告诉biblatex开始用 索引引用indexing=cite,
  • 重新定义执行索引命令的 bibmacrociteindex以仅索引名称(我们指示它通过告诉它索引名称来索引所有名称,1-999并通过定义新的索引名称格式来仅索引家族名称)。
  • 在您想要建立索引的位置添加索引打印命令(此处带有\printindex)。

在此设置中,索引会自动按字母类别分组,并与hyperref页码链接。biblatex索引引用中使用的简称作者姓名(“IA”而不是“机构作者”)。

\documentclass{scrreprt}
\usepackage[style=apa, 
            backend=biber, 
            natbib=true,
            backref=false,
            maxbibnames=5,
            minbibnames=3,
            maxcitenames=2,
            mincitenames=1,
            defernumbers=true,
            refsegment = chapter,
            indexing=cite,
]{biblatex}

\usepackage{makeidx}
\usepackage{hyperref}

\makeindex

\renewbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames[family][1-999]{labelname}}
    {}}

\DeclareIndexNameFormat{family}{%
  \let\namepartgiven\empty
  \usebibmacro{index:name}
    {\index}
    {\namepartfamily}
    {\namepartgiven}
    {\namepartprefix}
    {\namepartsuffix}}

\begin{filecontents*}{\jobname.bib}
@BOOK{reference1,
  title       = {{Some title}},
  publisher   = {Publisher},
  year        = {2001},
  author      = {{Institutional Author}},
  shortauthor = {IA},
  address     = {Netherlands},
  edition     = {1},
  isbn        = {0 7506 5080 X},
}
@PHDTHESIS{reference2,
  author = {John Doe},
  title  = {Another title},
  school = {{The University of Here}},
  year   = {2020},
  type   = {PhD Thesis},
}
@PHDTHESIS{reference3,
  author = {Name Surname},
  title  = {A third title},
  school = {{Some University}},
  year   = {2019},
  type   = {PhD Thesis},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

\tableofcontents

\chapter{First chapter}
\section{Section Name}
Some text \autocite{reference1}.
\printbibliography[segment = \therefsegment, heading = subbibintoc]

\chapter{Second chapter}
\section{Another Section}
Some text \autocite{reference2}.
\printbibliography[segment = \therefsegment, heading = subbibintoc]

\printbibliography

\printindex
\end{document}

指数

相关内容