如何将 fncychap 的样式用于 \section?

如何将 fncychap 的样式用于 \section?

我有一个复杂的文档,需要使用多层文档结构。具体来说,前两个层级 \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

您不必滥用现有的chapterpart计数器来获取元数据,而是可以使用 的现有功能创建新项目并添加到目录中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}

目录图像

相关内容