Добавить отступ к строке приложения в оглавлении для включенного приложения

Добавить отступ к строке приложения в оглавлении для включенного приложения

Я спросил, как добавить отступ в строку оглавления для приложения.здесь.

В свою настоящую структуру я включаю приложения:

\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}

введите описание изображения здесь

Связанный контент