目录:更改特定章节(附录)的格式

目录:更改特定章节(附录)的格式

我希望附录标题能够以与章节相同的格式出现在目录中(我使用的是报告类),而不是像其他章节一样以相同的格式出现。但是,我不能只将其用于\section每个附录,因为我希望它们在除目录之外的所有用途中都被视为章节。

我的 MWE(未指定其他包):

\documentclass[12pt,a4paper,final]{report}

\begin{document}

    \tableofcontents
    \pagebreak

% Chapters  
    \chapter{First Chapter}
    \chapter{Second Chapter}
    \chapter{Third Chapter}
    \chapter{Fourth Chapter}

%Appendices
    \appendix
    \pagebreak % So that \addcontentsline is given the right page number
    \addcontentsline{toc}{chapter}{Appendices}
    \chapter{First Appendix}
    \chapter{Second Appendix}
    \chapter{Third Appendix}

\end{document}

这给了我一个如下所示的目录,其中每个附录(以及附加行“附录”)都被格式化为章节:

目录及附录采用章节格式

但是,我更希望它们以像章节一样的格式出现在目录中。我可以通过编辑目录文件手动生成此文件,例如更改以下行:

\contentsline {chapter}{\numberline {A}First Appendix}{6} 

到:

\contentsline {section}{\numberline {A}First Appendix}{6}

以相同的方式编辑附录的每一行得到:

目录及附录按章节格式排列

...这正是我想要的成品的样子。

显然,手动编辑.toc文件是可行的,但并不理想(因为当我重新编译时它会被覆盖),而且说实话,这种简单的改变让我感觉必须是一种干净、自动地完成此操作的方法。我总是更喜欢“适当”(优雅)的解决方案。如果有人能帮助我“适当”地产生相同的结果,我将不胜感激。

注意:我已经找到了一些类似问题的解决方案,但没有一个能完全解决问题:

  • 显而易见的解决方案是将附录设为章节,但这会改变它们在正文中的显示方式(我希望每个附录在所有情况下都被视为章节)。其他比 ToC。

  • 我尝试使用\chapter*{First Appendix}后跟, \addcontentsline{toc}{section}{First Appendix}但这样会删除正文和目录中的“编号”(或者说字母)。我更希望它仍然显示“附录 A”ETC。

答案1

这是一个解决\let\l@chapter\l@section方案.toc

\documentclass[12pt,a4paper,final]{report}

\begin{document}

    \tableofcontents
    \pagebreak

% Chapters  
    \chapter{First Chapter}
    \chapter{Second Chapter}
    \chapter{Third Chapter}
    \chapter{Fourth Chapter}

%Appendices
    \appendix
    \pagebreak % So that \addcontentsline is given the right page number
    \addcontentsline{toc}{chapter}{Appendices}
    \addtocontents{toc}{\protect\makeatletter}
    \addtocontents{toc}{\string\let\string\l@chapter\string\l@section}
    \addtocontents{toc}{\protect\makeatother}
    \chapter{First Appendix}
    \chapter{Second Appendix}
    \chapter{Third Appendix}

\end{document}

答案2

这使用直接写入,.aux从而依次产生\@writefile{toc}。(这与\addtocontentstouhami 制作的方式类似)

问题是,使用这些section东西时,附录章节会作为的部分出现chapter 4,这可能不是我们真正想要的。

我认为,它也适用\numberline于附录章节。

\documentclass[12pt,a4paper,final]{report}


\makeatletter
\let\origl@chapter\l@chapter

\newcommand{\redefinelchapter}{%
  \@writefile{toc}{\let\l@chapter\l@section}
}

\newcommand{\switchtosectionline}{%
  \immediate\write\@auxout{%
    \string\redefinelchapter%
  }%
}


\makeatother


\begin{document}

    \tableofcontents
    \pagebreak

% Chapters  
    \chapter{First Chapter}
    \section{First section of First Chapter}
    \chapter{Second Chapter}
    \chapter{Third Chapter}
    \chapter{Fourth Chapter}

%Appendices
    \appendix
    \pagebreak % So that \addcontentsline is given the right page number
%    \addcontentsline{toc}{chapter}{Appendices}
    \switchtosectionline

    \chapter{First Appendix}
    \chapter{Second Appendix}
    \chapter{Third Appendix}

\end{document}

编辑一些改进版本

\documentclass[12pt,a4paper,final]{report}

\usepackage{xpatch}

\makeatletter

\xpretocmd{\appendix}{%
  \clearpage%
  \addcontentsline{toc}{chapter}{\appendixname}% Add the appendix to the Toc
  % Replace the chapter stuff with section like toc - entries
  \xpatchcmd{\@chapter}{%
    \addcontentsline{toc}{chapter}%
  }{%
    \addcontentsline{toc}{section}%
  }{\typeout{Patching of @chapter successful}}{}
}{\typeout{Appendix prepended}}{}

\makeatother


\begin{document}
\tableofcontents
\pagebreak

% Chapters  
\chapter{First Chapter}
\section{First section of First Chapter}
\chapter{Second Chapter}
\chapter{Third Chapter}
\chapter{Fourth Chapter}

\appendix

\chapter{First Appendix}
\chapter{Second Appendix}
\chapter{Third Appendix}

\end{document}

相关内容