单面文档的精美页眉

单面文档的精美页眉

我正在尝试在定制的论文模板中使用页眉和页脚包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

为什么您认为您想要单面布局?

有几种可能性。

  1. 你确实打算打印单面。如果是这样,那么你的布局就毫无意义了,但这毕竟是你的事。告诉 LaTeX 你将打印双面并不意味着你承诺任何事情。继续撒谎吧!

  2. 您不希望有不同大小的边距。

  3. 当你开始新的篇章时,你不希望看到空白页。

所有这些都与告诉 LaTeX 完全兼容twoside。2 和 3 甚至不需要你撒谎。

另一方面,如果您说,oneside那么所有页面的格式都相同。当然,您可以破解输出例程来检查页码并相应地设置页眉和页脚,但这就是它的作用twoside,所以您最好尽快使用它。

以下满足 2 和 3。要满足 1,只需告诉您的打印机打印单面即可。(骗子!)如果您的打印机无法打印双面(通常即使可以),它也会这样做。告诉twosideLaTeX 并不意味着告诉您的打印机任何内容。它只会影响默认布局。

openany防止章节前出现空白页。我们加载geometryhmarginration=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}

相关内容