使用 classicthesis 将目录中的 chapter* 大写

使用 classicthesis 将目录中的 chapter* 大写

在目录中添加章节条目时,我想将其作为其他章节,即大写……例如,添加此行

\addcontentsline{toc}{chapter}{Test}

在 ClassicThesis.tex 的这两行之间(在我的版本中大约是第 213 行):

\cleardoublepage\part{Some Kind of Manual}
\include{Chapters/Chapter01}

它尝试修改 classicthesis.sty,但没有成功,方法是更改​​(大约 570 行

\newcommand\ChapS[1]{\oldchap*{#1}}%

\newcommand\ChapS[1]{%
  \ifpdf\oldchap*{\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}}%
  \else\oldchap*{\spacedlowsmallcaps{#1}}%
  \fi%
}

任何帮助都将不胜感激...谢谢!:)

答案1

classicthesis软件包使用titlesec来处理其标题格式。titlesec强烈反对使用带星号的版本。相反(如文档中所述titlesec),它建议为未编号的章节或章节创建环境。以下是一个解决您的问题的示例。

\documentclass[oneside,letterpaper]{scrbook}
\usepackage{classicthesis}
\usepackage{lipsum} % for dummy text
\newenvironment{unnumbered}%
{\setcounter{secnumdepth}{-1}}
{\setcounter{secnumdepth}{2}}
\begin{document}
\tableofcontents
\chapter{A  regular chapter}
\lipsum
\begin{unnumbered}
\chapter{An unnumbered chapter}
\lipsum
\end{unnumbered}
\end{document}

答案2

请勿修改classicthesis.sty:如果软件包更新,您将丢失对软件包的修改或改进。

您可以在文档的序言中写入以下内容,从而自动插入未编号的章节

\makeatletter
\g@addto@macro\tableofcontents{
  \renewcommand{\ChapS}[1]{\cleardoublepage
    \phantomsection\oldchap*{#1}
    \addcontentsline{toc}{chapter}
      {\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}}}
}
\makeatother

和不是必需的,\makeatletter如果加载了 babel 则可以用 代替。\makeatother\g@addto@macro\addto

但是这也会将表格列表和图片列表放入目录中;如果你不想要这样,只需将代码

\renewcommand{\ChapS}[1]{\cleardoublepage
  \phantomsection\oldchap*{#1}
  \addcontentsline{toc}{chapter}
    {\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}}}

\listof...命令之后。

人们也可以避免在目录中自动插入未编号的章节,而是手动执行该操作,例如介绍:

\cleardoublepage\phantomsection
\chapter*{Introduction}
\addcontentsline{toc}{chapter}{%
  \texorpdfstring{\spacedlowsmallcaps{Introduction}}{Introduction}%
}

相关内容