如何动态调整 \cftchapnumwidth?

如何动态调整 \cftchapnumwidth?

我正在使用tocloft包来格式化目录。

以下最小工作示例中重现了该问题。附录 A 的缩进级别不正确。但该命令\setlength{\cftchapnumwidth}{30mm}第二次不起作用。

以下是该图片的文字版本:


 Contents

 Chapter 1. My chapter name bla bla bla bla bla bla bla bla bla
            bla bla bla bla bla bla bla bla bla bla bla bla         2

 Appendix A:  My appendix name bla bla bla bla bla bla bla bla 
            bla bla bla bla bla bla bla bla bla bla bla bla         3
            ^ $

 ^ - incorrect indentation level (25 mm)
 $ - correct indentation level (30 mm)

该图片是由以下代码生成的。

\documentclass[12pt,openany,oneside,a4paper]{book}
\usepackage[titles]{tocloft}

\begin{document}

\setlength{\cftchapnumwidth}{25mm} %25mm have been chosen manually

\tableofcontents

\chapter*{Chapter 1. My chapter name bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}
\addcontentsline{toc}{chapter}{Chapter 1. My chapter name bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}

Chapter text.

\appendix

\setlength{\cftchapnumwidth}{30mm}  %This command doesn't work!

\chapter*{Appendix A: My appendix name bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}
\addcontentsline{toc}{chapter}{Appendix A: My appendix name bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}

Appendix Text.

\end{document}

我不知道如何修补代码。

答案1

\appendix将后面的行改为

\addtocontents{toc}{\protect\setlength{\cftchapnumwidth}{30mm}}

之后\appendix,以便在排版目录时,该指令能够在正确的时间发出。

相关内容