我对出现在目录第一页上的页码有问题(当然,我并不需要它),但只有当我有最后两页目录时才会出现这种情况。当目录只占一页时,页脚和页眉是清晰的,但当我将其扩展到另一页时,页码会出现在页脚中。这是我的 MWE:
\documentclass{book}
\usepackage[
centering,
%showframe,
top=14mm,
headheight=11pt,
headsep=12pt,
includeheadfoot,
papersize={148mm,210mm},
text={90mm,150mm},
dvips=false,
pdftex=false,
vtex=false
]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{} % clear all header fields
\newcommand{\TheAuthor}{}
\newcommand{\Author}[1]{\renewcommand{\TheAuthor}{#1}}
\rhead{\small\TheAuthor}
\newcommand{\TheTitle}{}
\newcommand{\Title}[1]{\renewcommand{\TheTitle}{#1}}
\lhead{\small\scshape\TheTitle}
\fancyfoot{} % clear all footer fields
\fancyhead[RO,LE]{\thepage}
\usepackage{titlesec}
\titleformat{\chapter}{\normalfont\Large\scshape}{\thechapter}{1em}{}[\vspace{6pt}]
\usepackage{lipsum}
\renewcommand{\contentsname}{whatever}
%-------------------------------------------------------------------------
\begin{document}
\newpage
\thispagestyle{empty}
\tableofcontents
\thispagestyle{empty}
\newpage
\thispagestyle{empty}
\setcounter{footnote} {0}\chapter*{{\fontsize{11}{14}\selectfont \normalfont{Author1} \\
{\scshape\Large Title}}}
\addcontentsline{toc}{chapter}{\normalsize\normalfont{Author1} \\ \normalfont\scshape{Title}}
\thispagestyle{empty}
\Author{Author1}
\Title{Title}
\lipsum
\newpage
\thispagestyle{empty}
\end{document}
请复制此部分几次
\setcounter{footnote} {0}\chapter*{{\fontsize{11}{14}\selectfont \normalfont{Author1} \\
{\scshape\Large Title}}}
\addcontentsline{toc}{chapter}{\normalsize\normalfont{Author1} \\ \normalfont\scshape{Title}}
\thispagestyle{empty}
\Author{Author1}
\Title{Title}
\lipsum
\newpage
\thispagestyle{empty}
答案1
代替
\pagestyle{fancy}
...<settings>...
\fancyhead[RO,LE]{\thepage}
我将定义一种新的页面样式:将这些行更改为
\newcommand{\TheAuthor}{}
\newcommand{\Author}[1]{\renewcommand{\TheAuthor}{#1}}
\newcommand{\TheTitle}{}
\newcommand{\Title}[1]{\renewcommand{\TheTitle}{#1}}
\usepackage{fancyhdr}
\fancypagestyle{fancymain}{%
\fancyhead{}%
\rhead{\small\TheAuthor}%
\lhead{\small\scshape\TheTitle}%
\fancyfoot{}%
\fancyhead[RO,LE]{\thepage}}
然后你的文档的开头可以是
\begin{document}
\pagestyle{empty}
\tableofcontents
\cleardoublepage
\pagestyle{fancymain}
<all the rest>
更少的代码。我建议你也重新考虑为每一章编写所有复杂的代码,并为其定义一个个人命令。
但是,这仍然会将页码保留在目录的第一页中。这里有一个窍门:临时重新定义页面样式。因此,不要使用简单的命令\tableofcontents
,而是写入
\begingroup
\makeatletter \let\ps@plain\ps@empty \makeatother
\tableofcontents
\endgroup
还有另一种方法可以解决这个问题,如果你不想在章节开头显示页码的话。
把\usepackage{fancyhdr}
两行
\fancypagestyle{plain}{\fancyhf{}%
\renewcommand{\headrulewidth}{0pt}}
那么简单的\tableofcontents
就可以了(没有涉及@
字符的魔法代码)。