我有以下代码
\documentclass{scrreprt}
%\usepackage[titles]{tocloft}
%\renewcommand{\cftchappresnum}{\thepart.}
\begin{document}
\tableofcontents
\part{First Part}
\chapter{First Chapter}
\end{document}
其结果为下表内容:
我怎样才能将部分的编号纳入章节条目中,即获取I.1. First Chapter
?
正如您所看到的,我尝试使用该tocloft
包但没有成功。
答案1
除了计数器表示之外,您还必须调整数字的长度。这是一个最小示例,其中对部分级别进行了一些调整:
\documentclass{scrreprt}
\renewcommand{\thechapter}{\thepart.\arabic{chapter}}% Prefix chapter with part number
\usepackage{etoolbox}
\makeatletter
\patchcmd{\l@chapter}{1.5em}{2em}{}{}% Increase number width for chapter
\renewcommand{\l@section}{\bprot@dottedtocline{1}{2em}{2.7em}}% Increase number width and
% indent for section
\makeatother
\begin{document}
\tableofcontents
\part{First Part}
\chapter{First Chapter}
\section{A section}
\end{document}
将零件编号添加到章节编号前面是使用
\renewcommand{\thechapter}{\thepart.\arabic{chapter}}
这将是一次全局替换,使其\thepart.
出现在文本中的章节编号、目录和章节引用(以及较低的章节单位,因为它们继承了层次结构)之前。
其次,我们修补\l@chapter
(使用etoolbox
) 以允许数字周围有更宽的间距。由于目录构成了文档结构的层次结构,因此一个缩进级别的更改通常也应该在较低级别上进行调整。因此,由于从 1.5em 增加到 2em,我们还需要调整<indent>
(\l@section
可能还有\l@subsection
……):
\renewcommand{\l@section}{\bprot@dottedtocline{1}{2em}{2.7em}}% Increase number width and
% indent for section
的参数结构\bprot@dottedtocline{<level>}{<indent>}{<numwidth>}
将一个分段单位在水平<level>
方向上缩进一个长度<indent>
,并将数字放在一个宽度为的框中<numwidth>
。在 下scrreprt
,以下定义适用于较低的分段单位(如果您也希望调整它们):
\newcommand*\l@subsection{\bprot@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{7.0em}{4.1em}}
\newcommand*\l@paragraph{\bprot@dottedtocline{4}{10em}{5em}}
\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{12em}{6em}}