\centerline 弄乱了目录

\centerline 弄乱了目录

如果我使用\centerline将章节标题居中,目录中的相应条目也会居中。有什么办法可以解决这个问题吗?

\documentclass{report}
\usepackage[top=1.0in,bottom=0.75in,left=1.25in,right=1in]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage{titlesec}

\titleformat{\chapter}[block]
  {\normalfont\LARGE\bfseries}{\chaptertitlename\ \thechapter}{1em}{}
\titlespacing*{\chapter}
  {0pt}{-3.5ex plus -1ex minus -.2ex}{2.3ex plus.2ex}

\\hypersetup{linkcolor=black}
\rfoot{}
\tableofcontents
\addtocontents{toc}{\par\textbf{Name of the Chapter}}
\addtocontents{toc}{~\hfill\textbf{Pg.No}\par}
\addtocontents{toc}{\protect\afterpage{~\hfill\textbf{Pg.No}\par\medskip}}

\begin{document}

\chapter{\centerline{Title}}
Some text.

\end{document}

这就是我得到的:


我明白了


这就是我要的:


我要这个

答案1

您的代码存在许多问题,其中一些问题导致其无法编译:

  • 你使用\hypersetup由包定义的hyperref,但你不加载hyperref
  • 你使用\rfoot由包定义的fancyhdr,但你不加载fancyhdr
  • 你使用\afterpage由包定义的afterpage,但你不加载afterpage
  • 在你的代码中发现了一个额外的\内容(在前面\hypersetup);
  • \tableofcontents在序言中呼唤朋友。

现在,让我们来解决您的问题。\centerline用于将一行“普通文本”居中,不应将其用于格式化标题。相反,请在代码中\centering的第一个强制参数中插入一个声明,如下所示:\titleformat

\documentclass{report}
\usepackage[top=1.0in,bottom=0.75in,left=1.25in,right=1in]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{afterpage}
\usepackage{hyperref}

\titleformat{\chapter}[block]
  {\normalfont\LARGE\bfseries\centering}{\chaptertitlename\ \thechapter}{1em}{}
\titlespacing*{\chapter}
  {0pt}{-3.5ex plus -1ex minus -.2ex}{2.3ex plus.2ex}

\hypersetup{linkcolor=black}
\rfoot{}

\begin{document}

\tableofcontents
%\addtocontents{toc}{\par\textbf{Name of the Chapter}}
%\addtocontents{toc}{~\hfill\textbf{Pg.No}\par}
%\addtocontents{toc}{\protect\afterpage{~\hfill\textbf{Pg.No}\par\medskip}}

\chapter{Title}
Some text.

\end{document}

然后,生成的目录是

在此处输入图片描述

并且生成的章节标题正如期望的那样居中:

在此处输入图片描述

相关内容