假设你正在使用标准类

假设你正在使用标准类

我正在使用 添加参考书目参考部分,\addcontentsline以便添加指向目录的链接。不幸的是,目录中的链接链接到了错误的页面,位于参考书目页面的前面。

如何才能立即为目录中的新部分放置锚点?

\printbibliography[heading=offline,filter=offline]
\addcontentsline{toc}{section}{\bibname}
\printbibliography[heading=online,filter=online]

答案1

\printbibliography命令表明您正在使用biblatex。要使用 向目录添加参考书目biblatex(不对其进行编号),通常应添加 选项heading=bibintoc。有关详细信息\printbibliography,请参阅手册第 3.6.7 节biblatex

由于您似乎已经定义了一个自定义online标题,您可能必须更改其定义,使其类似于bibintoc(它针对文档类量身定制,可以在中找到biblatex.def)。

答案2

以下评论可以更普遍地使用。

主要最小示例

以下示例是后续步骤的基础。

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibfilter{online}{ type=online }
\defbibfilter{offline}{ not type=online }
\begin{document}
\tableofcontents

\noindent\hrulefill

\section{foo}
\cite{companion} \& \cite{ctan}

\noindent\hrulefill

\printbibliography[filter=offline]

\noindent\hrulefill

\printbibliography[filter=online]

\end{document}

下图显示了结果。

在此处输入图片描述

我们提到,参考书目的标题是相同的,并且不会显示在目录(toc)中。

假设你正在使用标准类

第一种方法——使用“biblatex”选项

biblatex第一种方法基于我们仅使用包为命令提供的选项的想法\printbibliograpy

首先,我们要为你的标题起一个特别的名字。这可以通过选项来完成title。所以我们简单设置一下:

\printbibliography[filter=offline,title=Offline,]

\printbibliography[filter=online,title=Online,]

经过此修改,我们在目录中没有条目。要提供目录中的条目,我们可以使用选项headingbiblatex为此选项提供不同的值。这里有一个小范围:

  • bibliography
    • 未编号 -- 目录中无条目 -- 章节级别(文章部分)
  • subbibliography
    • 未编号 -- 目录中无条目 -- 章节级别(文章的子章节)
  • bibintoc
    • 未编号 -- 目录中的条目 -- 章节级别(文章部分)
  • subbibintoc
    • 未编号 -- 目录中的条目 -- 章节级别(文章的子章节)
  • bibnumbered
    • 编号 -- 目录中的条目 -- 章节级别(文章部分)
  • subbibnumbered
    • 编号 -- 目录中的条目 -- 章节级别(文章的子章节)

根据这些信息,我们可以扩展您的示例如下:

\printbibliography[filter=offline,title=Offline,heading=subbibintoc]

\printbibliography[filter=online,title=Online,subbibintoc]

该示例演示了第一种方法:

\documentclass[varwidth]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibfilter{online}{ type=online }
\defbibfilter{offline}{ not type=online }
\begin{document}
\tableofcontents

\noindent\hrulefill

\section{foo}
\cite{companion} \& \cite{ctan}

\noindent\hrulefill
\section{References}

\printbibliography[filter=online,title=Offline,heading=subbibintoc]

\noindent\hrulefill

\printbibliography[filter=online,title=Online,heading=subbibintoc]


\end{document}

在此处输入图片描述

第二种方法 - 定义自己的标题

在正常情况下,标准选项应该足够了。但是,您可以使用命令定义自己的特殊标题\defbibheading。标准语法是

\defbibheading{⟨name⟩}[⟨title⟩]{⟨code⟩}

定义的标题可由可选参数使用heading(参见上文)。

我们举个例子。标题应该没有编号,但在目录中有一个条目:

\defbibheading{myheading}[\bibname]{%
 \begin{center}
  \hrulefill#1\markboth{#1}{#1}\hrulefill%
  \addcontentsline{toc}{subsection}{#1}%
 \end{center}%
}

根据这些标题与选项的组合,title我们可以创建以下示例:

\documentclass[varwidth]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibfilter{online}{ type=online }
\defbibfilter{offline}{ not type=online }
\defbibheading{myheading}[\bibname]{%
 \begin{center}
  \hrulefill#1\markboth{#1}{#1}\hrulefill%
  \addcontentsline{toc}{subsection}{#1}%
 \end{center}%
}
\begin{document}
\tableofcontents

\noindent\hrulefill

\section{foo}
\cite{companion} \& \cite{ctan}

\noindent\hrulefill
\section{References}

\printbibliography[filter=offline,title=Offline,heading=myheading]

\printbibliography[filter=online,title=Online,heading=myheading]


\end{document}

在此处输入图片描述

假设你正在使用 KOMA 类

KOMA提供额外的文档类选项来操作参考书目的标题。此方法的好处是您可以将选项设置为全局。提供的所有选项都KOMA与兼容biblatex。文档类的键是bibliography。下面列出了一系列可能性。当然,上一节中列出的所有方法都可以与结合使用KOMA

  • notoc
    • 未编号 -- 目录中无条目 -- 章节级别(文章部分)
  • totoc
    • 未编号 -- 目录中的条目 -- 章节级别(文章部分)
  • totocnumbered
    • 编号 -- 目录中的条目 -- 章节级别(文章部分)

根据您主要的 MWE,此处进行修改:

\documentclass[bibliography=totoc]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibfilter{online}{ type=online }
\defbibfilter{offline}{ not type=online }

\begin{document}
\tableofcontents

\noindent\hrulefill

\section{foo}
\cite{companion} \& \cite{ctan}

\noindent\hrulefill

\printbibliography[filter=offline,title=Offline]

\printbibliography[filter=online,title=Online]


\end{document}

在此处输入图片描述

假设你正在使用回忆录

这真的很简单。memoir默认在目录中创建一个条目。

相关内容