如果我使用\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}
然后,生成的目录是
并且生成的章节标题正如期望的那样居中: