目录中前言章节的不同样式

目录中前言章节的不同样式

我正在寻找一种方法来更改目录中属于前言的章节的样式。下面我发布了一个最小的示例代码来说明我的目标:

\documentclass{scrbook}
\begin{document}
\frontmatter
\chapter{Preface}
\chapter{Acknowledgements}
\tableofcontents
\mainmatter
\chapter{First Chapter}
\chapter{Second Chapter}
\end{document}

在这里,我希望将前言和致谢两章前言部分以非粗体斜体形式写在目录中,包括页码。我设法以所需的样式写出它们的名称,只需使用例如

\chapter[\itshape\textmd{Preface}]{Preface}

但这不会改变页码的格式。

答案1

我定义了一个新的 cs\matter@switch并将其附加到chapterentryKOMA 字体。然后我添加了宏\frontmatter和,\mainmatter将的重新定义\matter@switch写入 toc 文件。(我确信下面的代码可以优化)

\documentclass{scrbook}
\makeatletter
\newcommand\matter@switch{}
\addtokomafont{chapterentry}{\matter@switch}
\g@addto@macro\frontmatter{%
  \addtocontents{toc}{%
    \protect\renewcommand\protect\matter@switch{\normalfont\itshape}%
  }%
}
\g@addto@macro\mainmatter{%
  \addtocontents{toc}{%
    \protect\renewcommand\protect\matter@switch{}%
  }%
}
\begin{document}
\frontmatter
\tableofcontents
\chapter{Preface}
\chapter{Acknowledgements}
\mainmatter
\chapter{First Chapter}
\chapter{Second Chapter}
\end{document}

在此处输入图片描述

答案2

tocloft这可以通过使用包及其各种命令和来更改章节标题字体/页面字体来实现。\cftchapterfont但是\cftchapterpagefont,这些命令会一直存在,直到在处理目录时明确更改。因此,有必要使用 将切换回命令直接写入目录\addtocontents

\documentclass{book}
\usepackage{tocloft}%
\begin{document}
\let\cftchapfontorig\cftchapfont
\let\cftchappagefontorig\cftchappagefont
\renewcommand{\cftchapfont}{\itshape}
\renewcommand{\cftchappagefont}{\itshape}%
\frontmatter
\chapter{Preface}
\chapter{Acknowledgements}
\tableofcontents
\addtocontents{toc}{\protect\renewcommand{\cftchapfont}{\cftchapfontorig}}
\addtocontents{toc}{\protect\renewcommand{\cftchappagefont}{\cftchappagefontorig}}
\mainmatter
\chapter{First Chapter}
\chapter{Second Chapter}
\end{document}

在此处输入图片描述

相关内容