我已经完成了我的工作,只是进行了视觉调整:我想从目录中删除任何页眉/页脚,但不是从每一章的开头删除。我\frontmatter
发现\mainmatter
可以解决问题,但这只能从第 2 页删除任何页眉/页脚(这很棒)。
我\documentclass[a4paper,12p,twoside]{book}
想要实现:
i) 仅含页脚的标题页
ii) 完全空白
iii)目录 - 无页眉/页脚
iv) 目录续 - 无页眉/页脚
第 1 页)前言 - 仅页脚
第 2 页)页眉/页脚
ETC。
以下是代码:
\documentclass[a4paper,12p,twoside]{book}
\usepackage[table]{xcolor} %% allow colour
\definecolor{Tmaroon}{RGB}{119,36,50}
\definecolor{Lblue}{RGB}{0,65,101}
\definecolor{Cgray}{RGB}{169,178,177}
\definecolor{Hyellow}{RGB}{242,223,116}
\usepackage[textwidth=450pt, textheight=680pt,top=3cm, left=2.5cm]{geometry} %margins
%
\setcounter{tocdepth}{1}
\usepackage{setspace}
\usepackage{soul}
\usepackage{titletoc}% http://ctan.org/pkg/titletoc
\titlecontents{chapter}% <section-type>
[0pt]% <left>
{}% <above-code>
{\bfseries\chaptername\ \thecontentslabel\quad}% <numbered-entry-format>
{}% <numberless-entry-format>
{\bfseries\hfill\contentspage}% <filler-page-format>
% dots for chapters
\usepackage{tocloft}
\renewcommand{\cftsecfont}{\scshape}
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % for chapters
\setlength\cftparskip{0pt}
\setlength\cftbeforechapskip{5pt}
\usepackage{fancyhdr} %% allow header, footer
\setlength{\headheight}{15.2pt}
\pagestyle{fancy}
\fancyhf{} % clear header and footer fields
\fancyheadoffset{1 cm}
\fancyfootoffset{1 cm}
\lhead[\bfseries \textcolor{Lblue} {ST Handbook}]{}
\rhead[]{\textcolor{Tmaroon} {\leftmark}}
\lfoot[\textcolor{Cgray} {page \thepage}]{\textcolor{Cgray} {Chartered XXX}}
\rfoot[]{\textcolor{Cgray} {page \thepage}}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancypagestyle{pchap}{ % pchap
\fancyhf{}
\fancyheadoffset{1 cm}
\fancyfootoffset{1 cm}
\lhead[]{}
\rhead[]{}
\lfoot[\textcolor{Cgray} {page \thepage}]{\textcolor{Cgray} {Chartered XXX}}
\rfoot[]{\textcolor{Cgray} {page \thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.4pt}
} % pchap
\makeatletter
\let\ps@plain\ps@pchap
\makeatother
\fancypagestyle{firstpage}{% first page different
\lhead{}
\chead{}
\rhead{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\textcolor{Cgray} {Chartered XXX}}
\rfoot{\bfseries \textcolor{Lblue} {ST}}
\renewcommand{\footrulewidth}{0.4pt}
}% first page different
\usepackage{datetime} % dates - my altered dates below
\newdateformat{monthyeardate}{%
\monthname[\THEMONTH] \THEYEAR} %just month written and Year
\newdateformat{normal}{%
\longdate \ordinaldate{\THEDAY} \monthname[\THEMONTH] \THEYEAR} %normal date
\newcommand\twodigits[1] {\ifnum#1<10 0#1\else #1\fi}
\newdateformat{quoteNo}{%
\THEYEAR--\twodigits{\THEMONTH}--\twodigits{\THEDAY}} % digit date for quote no.
\setlength{\parindent}{0pt} % never indent first line
\usepackage{etoc}
\begin{document}
\frontmatter
\pagestyle{empty}
\pagenumbering{gobble}
\thispagestyle{firstpage}
\begin{center}
\vspace{0.9cm}
{ \bfseries \textcolor{Lblue} {\Huge{ST HANDBOOK}}}
\vspace{15cm}
{\footnotesize
\hfill revised \normal \today \\
}
\end{center}
\cleardoublepage
%\thispagestyle{empty}
\doublespacing
\thispagestyle{firstpage}
\tableofcontents
\onehalfspacing
\thispagestyle{empty}
\cleardoublepage
\pagenumbering{arabic}
\mainmatter
\pagestyle{fancy}
\chapter{ONE}
\section {A}
\chapter{TW0}
\section {B}
\newcount\cntas
\loop
\section{\the\cntas}
soeoco \vspace{5cm}
\ifnum\cntas<20
\advance\cntas 1
\repeat
\newcount\cnta
\loop
\chapter{\the\cnta}
soeoco \vspace{5cm}
\ifnum\cnta<15
\advance\cnta 1
\repeat
\end{document}
我能区分\frontmatter
和\mainmatter
吗?
答案1
目录的问题在于它使用的内容\thispagestyle{plain}
与所有章节开头的页面一样。
添加\thispagestyle{empty}
不会有帮助:如果你把它放在前面,\tableofcontents
它将被嵌入的覆盖\thispagestyle{plain}
,如果你把它放在后面,它将应用于最后一页。
诀窍是将\thispagestyle{empty}
作为目录的第一个元素潜入其中,这将在第一页执行,但在标题(及其\thispagestyle{plain}
)设置之后。
\newpage
\pagestyle{empty}
\addtocontents{toc}{\protect\thispagestyle{empty}}
\tableofcontents
\newpage
答案2
我发现了一个可能的解决方法(不确定是否有效,但它对我的工作有用):
代替
\makeatletter
\let\ps@plain\ps@pchap
\makeatother
和
\makeatletter
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\if@mainmatter
\thispagestyle{pchap}% plain page style in mainmatter
\else
\thispagestyle{empty}% empty page style outside of mainmatter
\fi%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
我很想知道是否有更好的解决方案/结构适合我的工作。