我正在使用scrbook
文档类来发布出版物。为了正确格式化目录中的部分条目,我想编写一个条目,例如
\contentsline {part}{\numberline{I}Introduction}{9}{part.1}
代替
\contentsline {part}{I\hspace {1em}Introduction}{9}{part.1}
我不知道如何实现这一点,但我提到过,这对于所有其他级别(章节、部分、小节等)都是正确的。
编辑:
这是一个最小的工作示例:
\documentclass[10pt,listof=totoc,numbers=noenddot,a4paper]{scrbook}
\usepackage{mathspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\setmainlanguage{english}
\setkomafont{part}{\Huge}
\setkomafont{chapter}{\huge}
\usepackage{titlesec}
\titleformat{\part}[hang]{\thispagestyle{empty}\centering\sffamily\bfseries\huge}{}{0mm}{{\fontsize{36pt}{0pt}\selectfont Part \thepart\\\vspace{3mm}}}[]
\usepackage{titletoc}
\titlecontents{part}[3pc]{\addvspace{3pc}\filcenter}{\sffamily\bfseries PART \thecontentslabel\\*[.2pc]\large}{\sffamily\bfseries\large}{}[\addvspace{.5pc}]
\begin{document}
\tableofcontents
\part{First Testpart}
\section{Just a sample section}
\end{document}
编辑2:
问题似乎出在这条\titleformat
线上。我无法在 titlesec 的文档中找到有关此行为的任何提示。
\documentclass[10pt,listof=totoc,numbers=noenddot,a4paper]{scrbook}
\usepackage{titlesec}
% comment the following line out and check *.toc-file
\titleformat{\part}[display]{\centering\huge}{}{0mm}{{Part \thepart\\\vspace{3mm}}}[]
\begin{document}
\tableofcontents
\part{First Testpart}
\section{Just a sample section}
\end{document}
答案1
根据titlesec
文档(第 8 页,第3.7. 其他软件包选项),需要指定包选项newparttoc
:
newparttoc
oldparttoc
(套餐选项)标准部分以非标准方式写入目录条目编号。您可以使用 更改它,
newparttoc
以便 titletoc 或类似的包可以操作条目。(这仅在\part
已重新定义时才有效。)
\documentclass[10pt,listof=totoc,numbers=noenddot,a4paper]{scrbook}
\usepackage[newparttoc]{titlesec}% http://ctan.org/pkg/titlesec
% comment the following line out and check *.toc-file
\titleformat{\part}[display]{\centering\huge}{}{0mm}{{Part \thepart\\\vspace{3mm}}}[]
\begin{document}
\tableofcontents
\part{First Testpart}
\section{Just a sample section}
\end{document}
这将为您留下.toc
类似以下内容的条目:
\contentsline {part}{\numberline {I}First Testpart}{3}
\contentsline {section}{\numberline {0.1}Just a sample section}{5}