Я спросил, как добавить отступ в строку оглавления для приложения.здесь.
В свою настоящую структуру я включаю приложения:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{tocloft}
\usepackage[title,toc,page]{appendix}
\begin{document}
\tableofcontents
\chapter{MyChapter}
\begin{appendices}
\addtocontents{toc}{\protect\setlength{\cftchapindent}{3em}}
\include{appendix_a}
\include{appendix_b}
\end{appendices}
\end{document}
Но это заканчивается на:
Contents
1 My Chapter 3
Appendices 5
A One appendix header 7
B Another appendix header 9
Отступ не работает для первого включения. Есть ли решение?
решение1
Вы можете это исправить, одолжив книгу Мартина Шаррера\immaddtocontents
макрос:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{tocloft}
\usepackage[title,toc,page]{appendix}
\makeatletter
\newcommand\immaddtocontents[1]{{%
\let\protect\@unexpandable@protect
\immediate\write\@auxout{\noexpand\@writefile{toc}{#1}}%
}}
\makeatother
\begin{document}
\tableofcontents
\chapter{MyChapter}
\begin{appendices}
\immaddtocontents{\protect\setlength{\cftchapindent}{3em}}
\include{appendix_a}
\include{appendix_b}
\end{appendices}
\end{document}