大写章节标题 Tocstyle?

大写章节标题 Tocstyle?

我想在 Tocstyle (标准包) 中制作目录。这是我的代码。

        \documentclass[fontsize=12pt]{scrreprt}
\usepackage{tocstyle}
\usetocstyle{standard}


\addtokomafont{disposition}{\rmfamily}

\usepackage{titlesec}
\usepackage{setspace}
\usepackage{tocloft}

  \renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand \thesection{\arabic{chapter}.\arabic{section}}
\renewcommand \thesubsection{\arabic{chapter}.\arabic{section}.\arabic{subsection}}

\titleformat{\chapter}[display] {\singlespacing\rmfamily\fontsize{16pt}{19pt}\bfseries}
{\MakeUppercase{\chaptertitlename\ \thechapter}\filcenter}{10pt}{\centering\uppercase}
{\fontsize{14pt}{16pt}\filcenter}   



\begin{document}
\tableofcontents
\newpage
\chapter{Test}
\section{Test}
\chapter{Test}
\section{Test}
\chapter{Test}
\section{Test}

\end{document}

我无法将以下代码与 Tocstyle 一起使用。

\renewcommand{\cftchapfont}{\bfseries\uppercase}

我想制作一个全部用大写字母组成的内容标题,例如“TEST”。在此处输入图片描述

答案1

您可以定义一种uppercase样式,类似于标准使用的定义,但包括\MakeUppercase\uppercase如果hyperref已加载):

\documentclass[fontsize=12pt]{scrreprt}
\usepackage{tocstyle}

\makeatletter
\newtocstyle{uppercase}{%
  \settocfeature{dothook}{\normalfont}%
  \settocfeature[0]{entryhook}{\bfseries\MakeUppercase}
  \settocfeature[1]{entryhook}{\MakeUppercase}%
  \settocfeature[2]{entryhook}{\MakeUppercase}%
  \settocfeature[-1]{entryvskip}{2.25em plus 1pt}%
  \settocfeature[-1]{leaders}{\hfill}%
  \settocfeature[0]{entryvskip}{1em plus 1pt}%
  \settocfeature[0]{leaders}{\hfill}%
  \iftochaschapter\else
    \settocfeature[1]{entryvskip}{1em plus 1pt}%
    \settocfeature[1]{leaders}{\hfill}%
    \settocfeature[1]{entryhook}{%
      \begingroup
        \edef\@tempa{toc}%
        \ifx\tocstyleAliasTOC\@tempa\aftergroup\bfseries\fi
      \endgroup
    }%
  \fi
}
\makeatother
\usetocstyle{uppercase}

\addtokomafont{disposition}{\rmfamily}

\usepackage{titlesec}
\usepackage{setspace}

\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand \thesection{\arabic{chapter}.\arabic{section}}
\renewcommand \thesubsection{\arabic{chapter}.\arabic{section}.\arabic{subsection}}

\titleformat{\chapter}[display] {\singlespacing\rmfamily\fontsize{16pt}{19pt}\bfseries}
{\MakeUppercase{\chaptertitlename\ \thechapter}\filcenter}{10pt}{\centering\uppercase}
{\fontsize{14pt}{16pt}\filcenter}   

\begin{document}
\tableofcontents
\newpage
\chapter{Test}
\section{Test}
\subsection{Test}
\chapter{Test}
\section{Test}
\chapter{Test}
\section{Test}

\end{document}

在此处输入图片描述

顺便说一句,titlesec与 KOMA 课程一起使用可能不是最好的选择;请参阅KOMA-Script 与 titlesec 之间的不兼容性

我知道也许您正在处理论文的学院要求,但将标题和目录条目大写并不是最好的印刷选择;在这方面,KOMA 文档说(指的是标题,但同样可以应用于其他元素):

不幸的是,LaTeX 的大写字母排版命令 \MakeUppercase会导致非常不充分的排版,因为它既不使用字母间距,也不进行空间平衡。这种行为的一个原因可能是需要进行字形分析,以在进行空间平衡的同时整合字母形状及其组合。因此,KOMA-Script 作者建议不要对页眉进行大写字母排版。

相关内容