我正在写论文,需要将附录包含在目录 (TOC) 中。因此,我在 latex 中编写了一些代码,得到了以下结果:
问题是我不想让附录标题缩进。我需要它们与附录标题 (ANEXOS) 和其他章节对齐,如上图所示。有什么建议吗?谢谢!
这是我的 MWE:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[toc,page]{appendix}
\begin{document}
%
\tableofcontents
%
\chapter{Introduction}
\section{Objectives}
\chapter{Chapter 1}
\section{Theory}
%
% Appendix
\renewcommand{\appendixpagename}{Anexos}
\renewcommand{\appendixtocname}{\textbf{ANEXOS}}
\renewcommand{\appendixname}{Anexo}
%
\begin{appendices}
%
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
\makeatletter
\addtocontents{toc}{
\begingroup
\let\protect\l@chapter\protect\l@section
\let\protect\l@section\protect\l@subsection
}
%
\chapter{Algorithms 1}
\section{RMA}
\chapter{Algorithms 2}
\section{FDBP}
%
\addtocontents{toc}{\endgroup}
\end{appendices}
%
\end{document}
答案1
不要仅仅将章节/小节的目录处理复制到章节/部分的目录中,而是使用正确的间距/缩进适当地重新定义它们:
\documentclass{book}
\usepackage[toc,page]{appendix}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{Objectives}
\chapter{Chapter 1}
\section{Theory}
% Appendix
\renewcommand{\appendixpagename}{Anexos}
\renewcommand{\appendixtocname}{\textbf{ANEXOS}}
\renewcommand{\appendixname}{Anexo}
\begin{appendices}
%\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
\makeatletter
\addtocontents{toc}{%
\begingroup
% Default definitions of \l@section and \l@subsection in book.cls
% https://www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/base/book.cls?view=co
% \newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
% \newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\protect\renewcommand{\protect\l@chapter}{\protect\@dottedtocline{1}{0pt}{2.3em}}%
\protect\renewcommand{\protect\l@section}{\protect\@dottedtocline{2}{2.3em}{3.2em}}%
}
\chapter{Algorithms 1}
\section{Special algorithms}
\chapter{Algorithms 2}
\addtocontents{toc}{\endgroup}
\end{appendices}
\end{document}
答案2
titletoc
只需在加载appendix
和删除代码时添加选项即可\begin{appendix}
:
\documentclass{book}
\usepackage[toc, page]{appendix}%
\begin{document}
%
\tableofcontents
%
\chapter{Introduction}
\section{Objectives}
\chapter{Chapter 1}
\section{Theory}
%
% Appendix
\renewcommand{\appendixpagename}{Anexos}
\renewcommand{\appendixtocname}{\textbf{ANEXOS}}
\renewcommand{\appendixname}{Anexo}
%
\begin{appendices}
\chapter{Algorithms 1}
\chapter{Algorithms 2}
\end{appendices}
%
\end{document}
答案3
这将实现您想要的效果,仅包括目录中的附录章节(没有任何章节)。
% appendixprob.tex SE 572664
\documentclass{book}
\usepackage[toc,page]{appendix}%
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{Objectives}
\chapter{Chapter 1}
\section{Theory}
% Change the Appendix name
\renewcommand{\appendixpagename}{Anexos}
\renewcommand{\appendixtocname}{\textbf{ANEXOS}}
\renewcommand{\appendixname}{Anexo}
\begin{appendices}
%%%% only appendix chapters in the ToC
\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
\chapter{Algorithms 1}
\section{First section}
\chapter{Algorithms 2}
\end{appendices}
\end{document}