我有一个复杂的文档,需要使用多层文档结构。具体来说,前两个层级 \part 和 \chapter 是为元信息保留的,而 \section 在普通文档中充当 \chapter 的角色。但是,fncychap 等包似乎只能装饰 \chapter。那么问题来了:我该如何将 fncychap 的 chapter 样式用于 \section?
(如果相关的话,我正在使用 koma-script 的 scrreprt 类。)
梅威瑟:
\documentclass[fontsize=22pt]{scrreprt}
\usepackage[Sonny]{fncychap}
\renewcommand*{\DOCH}{}
\ChTitleVar{\large\sffamily}
\newcommand*{\mypart}[1]{
\refstepcounter{part}
\addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}
}
\newcommand*{\mychap}[1]{
\refstepcounter{chapter}
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}
}
\begin{document}
\tableofcontents
\mypart{big picture level 1}
\mychap{big picture level 2}
% \mypart and \mychap are used for adding meta-information
\section{real chapter here}
% \section is used like \chapter in ordinary documents
% I want the section title etc. to show up using fncychap's style
\end{document}
答案1
您不必滥用现有的chapter
和part
计数器来获取元数据,而是可以使用 的现有功能创建新项目并添加到目录中tocloft
。然后,您就可以fncychap
正常使用章节格式了。
作为创建新内容列表功能的一部分, tocloft
它提供了一个命令\newlistentry
,允许您使用目录条目填充现有列表。它会为您创建计数器,然后您可以使用常规tocloft
方法为条目分配格式。下面是一个可以让您入门的示例:
\documentclass[fontsize=22pt]{scrreprt}
\usepackage[Sonny]{fncychap}
\renewcommand*{\DOCH}{}
\ChTitleVar{\large\sffamily}
\usepackage{tocloft}
\newlistentry{mypart}{toc}{0}
\newlistentry{mychap}{toc}{0}
\renewcommand{\cftmypartfont}{\itshape}
\renewcommand{\cftmychapfont}{\sffamily}
\newcommand*{\mypart}[1]{
\refstepcounter{mypart}
\addcontentsline{toc}{mypart}{\protect\numberline{\themypart}#1}
}
\newcommand*{\mychap}[1]{
\refstepcounter{mychap}
\addcontentsline{toc}{mychap}{\protect\numberline{\themychap}#1}
}
\begin{document}
\tableofcontents
\mypart{big picture level 1}
\mychap{big picture level 2}
% \mypart and \mychap are used for adding meta-information
\chapter{real chapter here}
% \section is used like \chapter in ordinary documents
% I want the section title etc. to show up using fncychap's style
\end{document}