目录中的 LOF+LOT+BIB,带编号章节

目录中的 LOF+LOT+BIB,带编号章节

我希望图表列表(LOF)、表格列表(LOT)和参考书目(BIB)全部出现编号在我的目录 (TOC) 中使用 report documentclass。我知道可以使用托比宾包来实现这一点,但我还使用格特查普包以获取更多精美的章节标题。

为了获得正确的外观,我需要 LOF、LOT 和 BIB 都像 \chapter 命令一样工作,而默认情况下它们使用 \chapter*(因此没有编号)。这会产生一个大章节编号和下面的章节标题,正如您在下面的最小工作示例 (MWE) 中的标准章节中看到的那样。

使用电子工具箱包,我可以使用 \patchcmd 命令修改 LOF 和 LOT 命令,使它们确实使用编号章节

\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}  %force list of figures to have numbered chapter appearance
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}   %force list of tables to have numbered chapter appearance

但这不适用于 BIB 命令。

\patchcmd{\bibliography}{\chapter*}{\chapter}{}{}  %does NOT work

使用托比宾我可以通过以下方式实现 BIB 的正确行为

\usepackage[numbib,chapter]{tocbibind}   %manipulate bib appearance

而 numbib 参数强制 BIB 进行编号并像普通章节一样工作。因此,它具有正确的章节样式并按要求出现在目录中。但这会抵消 LOF 和 LOT 的成就,它们不再被标记,但仍出现在目录中(未标记)。

有人知道如何同时实现 LOF、LOT 和 BIB 的这一功能吗?

这是一个最小工作示例(MWE)

\documentclass[a4paper,twoside,11pt,titlepage]{report}

\usepackage[grey]{quotchap}              %custom chapter appearance
\usepackage{etoolbox}                    %change commands with patchcmd
\usepackage[numbib,chapter]{tocbibind}   %manipulate bib appearance

\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}  %force list of figures to have normal chapter appearance
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}   %force list of tables to have normal chapter appearance

\begin{document}

\tableofcontents

\chapter{A normal chapter}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

\appendix

\listoffigures
\listoftables

\bibliography{bibl}{}
\bibliographystyle{plain}

\end{document}

答案1

\bibliography只是一个通过输入语句使用环境的宏,因此里面\begin{thebibliography}...\end{thebibliography}没有调用,而是在环境启动代码中。chapter*\bibliography\thebibliography

这就是它失败的原因。

\patchcmd{\thebibliography}{\chapter*}{\chapter}{\typeout{success}}{\typeout{failed}}

但可以。

\documentclass[a4paper,twoside,11pt,titlepage]{report}

\usepackage[grey]{quotchap}              %custom chapter appearance
\usepackage{etoolbox}                    %change commands with patchcmd
%\usepackage[numbib,chapter]{tocbibind}   %manipulate bib appearance

\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}  %force list of figures to have normal chapter appearance
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}   %force list of tables to have normal chapter appearance
\patchcmd{\thebibliography}{\chapter*}{\chapter}{\typeout{success}}{\typeout{failed}}   %force list of tables to have normal chapter appearance

\begin{document}

\tableofcontents

\chapter{A normal chapter}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

\appendix


\listoffigures
\listoftables

\bibliography{bibl}{}
\bibliographystyle{plain}


\end{document}

在此处输入图片描述

编辑补充解释。

该类report没有定义\bibliography自身,而是使用公共的latex.ltx。它的定义如下

\def\bibliography#1{%
  \if@filesw
    \immediate\write\@auxout{\string\bibdata{#1}}%
  \fi
  \@input@{\jobname.bbl}}

命令通过或\begin{thebibliography}...\end{thebibliography}写入文件,但通过 输入此环境。.bblbibtexbiber\bibliography@input

相关内容