![将标题添加到目录表,\tableofcontents 错误](https://linux22.com/image/443695/%E5%B0%86%E6%A0%87%E9%A2%98%E6%B7%BB%E5%8A%A0%E5%88%B0%E7%9B%AE%E5%BD%95%E8%A1%A8%EF%BC%8C%5Ctableofcontents%20%E9%94%99%E8%AF%AF.png)
我遇到了一个奇怪的问题。
我一直在尝试将标题添加到目录页中。由于在序言中使用 \thispagestyle{fancy} 和 \usepackage{fancyhdr} 无法“识别”目录的第一页。不仅缺少标题,而且目录中的页码从第 IV 页开始,而目录页从 III 开始。您知道我可能做错了什么吗?请在下面找到我的代码:
%% Language and font encodings
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{titlesec}
\titleformat{\chapter}[hang]
{\centering\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{0.5em}{}
\titlespacing*{\chapter}{0pt}{0pt}{20pt}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage{bm}
%% Sets page size and margins
\usepackage[usegeometry]{typearea}
\usepackage[a4paper,top=3cm,bottom=3cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}
%% Useful packages
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage[colorlinks=true, allcolors=black]{hyperref}
% For Tables:
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{lscape}
\usepackage{scrlayer}
\usepackage{array, makecell}
\usepackage{longtable}
%Chinese Language packets
\usepackage{xeCJK}
\usepackage{zhnumber}
\usepackage{rotating}
\usepackage{afterpage}
\usepackage{arydshln}
\usepackage{geometry}
\usepackage{siunitx}
\title{some title}
\author{name}
% Update supervisor and other title stuff in title/title.tex
\begin{document}
\input{title/title_chinese.tex}
\input{title/title_english.tex}
\input{title/Supervisors.tex}
\pagestyle{fancy}
\fancyhf{}
\chead{\leftmark}
\fancyfoot[C]{\textbf{\thepage}}
\pagenumbering{Roman}
\input{Abstract/abstract}\thispagestyle{fancy}
\tableofcontents{\protect\thispagestyle{fancy}}\addcontentsline{toc}{chapter}{Contents\dotfill}
\listoftables\thispagestyle{fancy}
\addcontentsline{toc}{chapter}{List Of Tables\dotfill}
\listoffigures\thispagestyle{fancy}
\addcontentsline{toc}{chapter}{List of Figures\dotfill}
\input{title/Nomenclature}
´´´
答案1
问题出在这一行:
\tableofcontents{\protect\thispagestyle{fancy}}\addcontentsline{toc}{chapter}{Contents\dotfill}
您\thispagestyle{fancy}
在目录之后执行此操作,因此它只会影响目录的最后一页。然后您将“Contents\dotfill”添加到目录中,但此时它已经位于最后一页,因此您将获得该页码。
将该行替换为以下内容:
\newpage
\addcontentsline{toc}{chapter}{Contents\dotfill}
\addtocontents{toc}{\protect\thispagestyle{fancy}}
\tableofcontents