我已经花了一段时间来让布局符合我的要求,但仍然有两件事似乎无法解决。我想让章节开始前的空白页的页码显示在左侧而不是右侧。此外,我想让内容页从奇数页开始,并再次让左侧内容页之前的空白页的页码显示在左侧。到目前为止,我已经:
\documentclass[10pt,twoside]{book}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{etoolbox}
\usepackage{amssymb}
\usepackage{bbold}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{fancyhdr}
\usepackage[PetersLenny]{fncychap}
\usepackage{courier}
\usepackage[a4paper,inner=4cm,outer=1.5cm]{geometry}
\usepackage[nottoc]{tocbibind}
\usepackage[font=small,format=plain,labelfont=bf,up,]{caption}
\usepackage{flafter}
\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{%
\clearpage
{\pagestyle{plain}\origdoublepage}%
}
\newcommand{\tstamp}{\today}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\lhead[\fancyplain{}{\thepage}] {\fancyplain{}{\rightmark}}
\chead[\fancyplain{}{}] {\fancyplain{}{}}
\rhead[\fancyplain{}{\rightmark}] {\fancyplain{}{\thepage}}
\lfoot[\fancyplain{}{}] {\fancyplain{\tstamp}{\tstamp}}
\cfoot[\fancyplain{\thepage}{}] {\fancyplain{\thepage}{}}
\rfoot[\fancyplain{\tstamp} {\tstamp}] {\fancyplain{}{}}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyhead[RO,RE]{\thepage} %RO=right odd, RE=right even
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\let\cleardoublepage\clearemptydoublepage
\begin{document}
blabla
\end{document}
说实话,我不知道这些代码是什么意思(主要是用 Google、这个论坛和反复试验才知道的)。但我想知道是否有人知道我遇到的两个问题的答案?
这是一次编辑,旨在澄清我的规格:
好的,我想在所有偶数页上,将页码放在左上角,在所有奇数页上,将页码放在右侧。此外,我想将章节名称放在所有偶数页的\textit{after}
第一章开头的右侧(即命令之后),\mainmatter
并将章节标题放在奇数页的左侧。因此,澄清一下,所有带有罗马数字的页面都应该只有页码,但是一旦目录之后的第一章开始,我希望将章节名称放在偶数页上,将章节名称放在奇数页上。
答案1
可能只是改变这一行:
\fancyhead[RO,RE]{\thepage} %RO=right odd, RE=right even
到
\fancyhead[RO,LE]{\thepage} %RO=right odd, LE=left even
这就是你需要的一切吗?
答案2
这是获得您想要的东西的设置;对其进行微调,我可能没有捕捉到隐藏在那些老式命令中的所有规范;带有和的“fancyhdr
现代”语法更加灵活。\fancyheader
\fancyfoot
\fancypagestyle
关键是要numberleft
为空白页定义一种特定的页面样式,该样式可以通过直接定义来激活\cleardoublepage
。
\documentclass[10pt,twoside]{book}
\usepackage{fancyhdr}
\usepackage[nottoc]{tocbibind}
\usepackage{lipsum}
\makeatletter
\renewcommand\cleardoublepage{%
\clearpage
\if@twoside
\ifodd\c@page
% do nothing
\else
\hbox{}\thispagestyle{numberleft}\newpage % changed line
\if@twocolumn
\hbox{}\newpage
\fi
\fi
\fi}
\makeatother
\newcommand{\tstamp}{\today}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyhead[LO]{\rightmark}
\fancyhead[RO,LE]{\thepage}
\fancyhead[RE]{\leftmark}
\fancyfoot[L]{\tstamp}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyhead[LO,RE]{\thepage} %RO=right odd, RE=right even
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\fancypagestyle{numberleft}{%
\fancyhf{} % clear all header and footer fields
\fancyhead[L]{\thepage} %RO=right odd, RE=right even
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{A chapter}
\section{A section}
\lipsum[1-20]
\chapter{B chapter}
\section{B section}
\lipsum[1-20]
\end{document}
阅读完整的规范后,这里有一个新版本;我建议对您的规范进行的唯一更改是,如果前言的最后一页是空的,则不要打印页码;您可以通过从页面样式的定义中删除\if@mainmatter
和来恢复它。\fi
numberleft
\documentclass[10pt,twoside]{book}
\usepackage{fancyhdr}
\usepackage[nottoc]{tocbibind}
\usepackage{lipsum}
\makeatletter
\renewcommand\cleardoublepage{%
\clearpage
\if@twoside
\ifodd\c@page
% do nothing
\else
\hbox{}\thispagestyle{numberleft}\newpage % changed line
\if@twocolumn
\hbox{}\newpage
\fi
\fi
\fi}
\makeatother
\newcommand{\tstamp}{\today}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\makeatletter
\fancyhead[RO]{\if@mainmatter\rightmark\fi}
\fancyhead[L]{\thepage}
\fancyhead[RE]{\if@mainmatter\leftmark\fi}
\fancyfoot[L]{\tstamp}
\fancypagestyle{plain}{% for chapter start pages
\fancyhf{} % clear all header and footer fields
\fancyhead[L]{\thepage} %RO=right odd, RE=right even
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\fancypagestyle{numberleft}{% for otherwise blank pages
\fancyhf{} % clear all header and footer fields
\fancyhead[L]{\if@mainmatter\thepage\fi} %RO=right odd, RE=right even
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\makeatletter
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{A chapter}
\section{A section}
\lipsum[1-20]
\chapter{B chapter}
\section{B section}
\lipsum[1-20]
\end{document}