我想在 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 作者建议不要对页眉进行大写字母排版。