基本上,这是我的 MWE,我需要在目录中每个章节标题之前包含“章节”(不做任何其他更改)。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[titles]{tocloft}
\usepackage{titlesec}
\usepackage{titletoc}
\addto\captionsenglish{ \renewcommand*\contentsname{\centerline{TABLE OF CONTENTS}}}
%\renewcommand{\thesection}{CHAPTER}
%\renewcommand{\cftsecpresnum}{Chapter \thesection}
\titleformat{\section}[display]%
{\null\vskip1em\sffamily\bfseries\filcenter}{Chapter \thesection}{0em}{}[]
\titlespacing*{\section}{0em}{1em}{1em}
\titlecontents{section}
[1.5em] % ie, 1.5em (chapter) + 2.3em
{}
{\contentslabel{1em}}
{\hspace*{-1.5em}}
{\titlerule*[0.5pc]{.}\contentspage}
\begin{document}
\newpage
\tableofcontents
\newpage
\section{Section One}
\section{Section Two}
Content
\end{document}
注释掉的代码是我已经尝试过的。第一个只是将数字更改为“CHAPTER”,而不会移动目录中的文本(因此它只是覆盖在部分名称之上),如果我在“CHAPTER”后面包含“\thesection”,则会产生无限循环定义错误。第二个没有造成任何差异,代码仍然编译。
谢谢!
答案1
这是一个解决方案。我没有加载tocloft
,因为我使用titletoc
。我还为应该出现在目录中的未编号部分添加了格式:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[showframe]{geometry}
\usepackage{titlesec}
\usepackage{titletoc}
\addto\captionsenglish{ \renewcommand*\contentsname{\centerline{TABLE OF CONTENTS}}}
\titleformat{\section}[display]%
{\null\vskip1em\sffamily\bfseries\filcenter}{Chapter \thesection}{0em}{}[]
\titleformat{name = \section, numberless}[block]%
{\null\vskip1em\sffamily\bfseries\filcenter}{}{0em}{}
\titlespacing*{\section}{0em}{1em}{1em}
\titlecontents{section}
[7em] % ie, width of contentslabel + 0.5em
{\medskip}
{\contentslabel[\MakeUppercase\chaptername~\thecontentslabel]{6.5em}}%\thecontentslabel
{\hspace*{-6.5em}}
{\titlerule*[0.5pc]{.}\contentspage}
\begin{document}
\tableofcontents
\newpage
\section*{An Unnumbered Section}
\addcontentsline{toc}{section}{An Unnumbered Section}
\section{Section One}
\subsection{A first subsection}
\section{Section Two}
Content
\end{document}
答案2
我正在使用 tstextbook 编辑一本书,其中包括使用 titletoc 包。
本主题中给出的解决方案对我没有帮助。因为 titlesec 包在我的编译中引入了太多错误,导致我试图解决的问题比我试图解决的问题更大。当我尝试测试使用 tocloft 包的解决方案时也遇到了同样的情况。
经过几个小时的研究和测试,我的解决方案很简单:只需修改“章节”的 \titlecontents 命令。
我的原始条目:
{\color{tssteelblue}\contentslabel[\Large\thecontentslabel]{1.25cm}} %ORIGINAL
可行的解决方案:
{\chaptername\ \thecontentslabel:\quad}% <numbered-entry-format> %It compiled within my code without errors!!!
我的最终解决方案解决了我的要求:
{\color{tssteelblue}\Large\chaptername\ \thecontentslabel.\space} %Final solution
*请注意,我的书是西班牙语的。
本章的最终完整代码:
%\titlecontents{ <section> }[ <left> ]
%{ <above-code> }
%{ <numbered-entry-format> }{ <numberless-entry-format> }
%{ <filler-page-format> }[ <below-code> ]
\titlecontents{chapter}[0cm]
{\addvspace{14pt}\large\sffamily\bfseries}
{\color{tssteelblue}\Large\chaptername\ \thecontentslabel.\space} %Final solution
{}
{\color{tssteelblue}\normalsize\sffamily\bfseries\;\titlerule*[.5pc]{.}\;\thecontentspage}