我正在尝试在定制的论文模板中使用页眉和页脚包fancyhdr
。TeX.SE 上有很多查询帮助fancyhdr
,但我找不到以下解决方案。
对于oneside
文档类,我需要文档的标题如下所示:
对于偶数页:
page no. Chapter.x ChapterTitle
(left corner) (right corner)
-----------------------------------------------------------------
对于奇数页
Section.x (just number) SectionTitle page no.
(left corner) (right corner)
-----------------------------------------------------------------
这是我的论文的一个最小例子:
\documentclass[a4paper,12pt,oneside]{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyfoot{}
\fancyhead[RO,LO]{\thepage}
\fancyhead[LO]{\leftmark}
\fancyhead[RO]{\rightmark}
\renewcommand{\chaptermark}[1]{%
\btypeout{\chaptername \ \thechapter.\ \space #1}\markboth{\@chapapp\ \thechapter.\ #1}{%
\@chapapp\ \thechapter.\ #1}}
\lhead[]{\fancyplain{}{\nouppercase{\rightmark}}}
\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{Introduction}
\lipsum
\section{Milky Way}
\lipsum
\section{Andromeda}
\lipsum
\chapter{Spectroscopy}
\section{Hubble}
\lipsum
\section{SALT}
\lipsum
\end{document}
答案1
为什么您认为您想要单面布局?
有几种可能性。
你确实打算打印单面。如果是这样,那么你的布局就毫无意义了,但这毕竟是你的事。告诉 LaTeX 你将打印双面并不意味着你承诺任何事情。继续撒谎吧!
您不希望有不同大小的边距。
当你开始新的篇章时,你不希望看到空白页。
所有这些都与告诉 LaTeX 完全兼容twoside
。2 和 3 甚至不需要你撒谎。
另一方面,如果您说,oneside
那么所有页面的格式都相同。当然,您可以破解输出例程来检查页码并相应地设置页眉和页脚,但这就是它的作用twoside
,所以您最好尽快使用它。
以下满足 2 和 3。要满足 1,只需告诉您的打印机打印单面即可。(骗子!)如果您的打印机无法打印双面(通常即使可以),它也会这样做。告诉twoside
LaTeX 并不意味着告诉您的打印机任何内容。它只会影响默认布局。
openany
防止章节前出现空白页。我们加载geometry
以hmarginration=1:1
确保边距对称。headheight=15pt
需要容纳标题。(检查控制台输出以了解值fancyhdr
需求 - 如果设置太小,它会警告您。)
就是这样。当然,这是一个twoside
布局 - 这就是我们为奇数页和偶数页获取不同页眉的方法。在其他所有方面,它都像oneside
。
也就是说,你应该想要这个,即使你认为你想要别的东西,因为别的东西需要做更多的工作,而且更脆弱,而且在外观和功能上没有什么不同。最好撒谎!
\documentclass[a4paper,12pt,openany]{book}
\usepackage[headheight=15pt,hmarginratio=1:1]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhf[roh,leh]{\thepage}
\fancyhf[reh]{\nouppercase{\leftmark}}
\fancyhf[loh]{\nouppercase{\rightmark}}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{Introduction}
\lipsum
\section{Milky Way}
\lipsum
\section{Andromeda}
\lipsum
\chapter{Spectroscopy}
\section{Hubble}
\lipsum
\section{SALT}
\lipsum
\end{document}
答案2
我有一个,但使用书籍 documentclass,如下所示。它解释了 fancyhdr 文档的第 10 页。但 MWE 将提供您的 documentclass 的详细信息。
\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]%
{\markboth{\MakeUppercase{\thechapter.\ #1}}{}}
\renewcommand{\sectionmark}[1]%
{\markright{\MakeUppercase{\thesection.\ #1}}}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhf{}
\renewcommand{\chaptermark}[1]{%
\markboth{\chaptername
\ \thechapter.\ #1}{}}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO]{\nouppercase \rightmark}
\fancyhead[RE]{\nouppercase \leftmark}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{First}
\section{First within First}
\lipsum
\section{Second within First}
\lipsum
\chapter{Second}
\section{First within Second}
\lipsum
\section{Second within Second}
\lipsum
\end{document}