如何将自定义页面样式(使用 titlesec 包)应用于文档的一部分

如何将自定义页面样式(使用 titlesec 包)应用于文档的一部分

我使用 titlesec 包定义了个人页面样式。定义的样式为:

\newpagestyle{myStylePage}[\large\sffamily]{\headrule
\sethead{\thechapter . \chaptertitle}{}{\thesection . \sectiontitle}
\setfoot{}{\usepage}{}
}

我希望此样式仅应用于我的所有章节。但我不希望将此样式应用于\tableofcontents。为了解决这个问题,我尝试定义另一种样式:

\newpagestyle{myEmptyPage}{
\sethead{}{}{}
\setfoot{}{\usepage}{}
}

我的文件如下:

\pagestyle{myEmptyPage}

\pagenumbering{roman}

\tableofcontents
\pagenumbering{arabic}
\pagestyle{myStylePage}
\include{tex/introduction}
... etc.

我的问题是目录的第二页以与 中定义的相同样式出现myStylePage。我做错了什么?

答案1

您不需要定义新的样式,因为“空页眉、页码位于页脚中心”是plain页面样式,它也用于章节起始页。

因此我相信以下内容应该可以满足您的需求。

\documentclass{book}
\usepackage{titleps} % or titlesec with appropriate option

\newpagestyle{myStylePage}[\large\sffamily]{%
  \headrule
  \sethead{\thechapter. \chaptertitle}{}{\thesection. \sectiontitle}
  \setfoot{}{\usepage}{}%
}

\begin{document}
\frontmatter
\pagestyle{plain}

\tableofcontents

\mainmatter
\pagestyle{myStylePage}

My beautiful document

\end{document}

如果您使用该类report进行单面打印,请不要。:)但如果您需要这样做,只需向该类添加一个选项:

\documentclass[oneside]{book}

也许您正在使用scrreprt;然后使用scrbook相同的命令。

如果你不相信我,想继续使用report(或任何没有的类\frontmatter\mainmatterscrreprt),将\frontmatter命令更改为

\clearpage\pagenumbering{roman}

\mainmatter进入

\clearpage\pagenumbering{arabic}

忘记\clearpage

答案2

\pagenumbering\pagestyle应用于使用它们的整个页面,即,就像在页面开头使用它们一样。当目录末尾没有分页符时,\pagenumbering{arabic} \pagestyle{myStylePage}应用于目录的最后一页以及目录下面的文本(如果同一页上有文本)。\newpage目录后面的 负责处理此问题。\clearpage(或\cleardoublepage)将开始一个新页面,并强制打印所有浮动对象,但目录中可能没有浮动对象。

相关内容