当我增加页眉高度时,页脚消失了

当我增加页眉高度时,页脚消失了

我使用该包创建了一个自定义简单布局fancyhdr。由于我必须使用的页眉有点大,LaTeX 指示我将 增加到headheight至少最小值。问题是,页脚会向下移动,直到最终消失。

以下是 MWE,其中页脚仍可在底部看到:

\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[landscape,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}
\usepackage{fancyhdr}

\setlength{\headheight}{60pt}
\pagestyle{fancy}

\lhead{This is header \\ This is header \\ This is header \\ This is header \\ This is header}
\chead{}
\rhead{}
\lfoot{}
\cfoot{This is the footer}
\rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}

First line of the document.

Second line of the document.

\end{document}

现在更改60pt80pt并再次编译。再见,页脚!

有什么方法可以解决这个问题?我无法更改页眉,而且必须同时拥有页眉和页脚。

编辑:支持的数量令人难以置信,一小时内有 3 个答案和评论!为你们点赞,并选择最简单、最傻瓜的解决方案作为正确解决方案。谢谢!

答案1

您可能需要摆弄软件包includeheadfoot中附带的选项geometry(并geometry根据您的需要调整设置):

\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[includeheadfoot,landscape,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}
\usepackage{fancyhdr}

\setlength{\headheight}{80pt}
\pagestyle{fancy}

\lhead{This is header \\ This is header \\ This is header \\ This is header \\ This is header}
\chead{}
\rhead{}
\lfoot{}
\cfoot{This is the footer}
\rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}

First line of the document.

Second line of the document.

\end{document}

在此处输入图片描述

答案2

首先,您应该保留geometry有关页面尺寸的所有设置;设置\headheight 事后将破坏 所做的所有计算geometry

其次,你设置的\headheight80pt 与你想要的顶部边距不兼容,因为默认的头部间距是 25pt,而

80pt + 25pt = 105pt = 3.69厘米

实际上,您的标题计算为fancyhdr接近 71pt;如果您想要适合标题并且顶部边距为 3cm,只需对 headsep 进行精确计算:

headheight=72pt, % give a bit more room
headsep=\dimexpr3cm-72pt\relax,

所以最后你会得到

\usepackage[a4paper,landscape,
  left=3cm,right=3cm,top=3cm,bottom=3cm,
  headsep=\dimexpr3cm-72pt\relax,
  headheight=72pt]{geometry}
\usepackage{fancyhdr}

这是一张图片,我使用了稍大的纸张尺寸,以便准确显示发生的情况:

\usepackage[paperwidth=31.7cm,paperheight=23cm, % larger paper
  layoutwidth=29.7cm,layoutheight=21cm, % A4 landscape
  layouthoffset=1cm,layoutvoffset=1cm, % 1cm to crop on all sides
  left=3cm,right=3cm,top=3cm,bottom=3cm,
  headsep=\dimexpr3cm-72pt\relax,
  headheight=72pt,showframe,showcrop]{geometry}
\usepackage{fancyhdr}

裁切标记显示“真实”纸张尺寸,即 A4 横向。

在此处输入图片描述

答案3

这是一个精确的解决方案,无需费力寻找正确的尺寸。

你必须计算totalheight页面的物理纸张高度在 DIN A4 上21cm,减去上边距,在你的例子中3cm,减去头部高度80pt在你的例子中,减去下边距,即3cm减去headsep然后最后加上footskip

默认情况下,headsepfootskip相同,因此在此示例中它们相互抵消。

80pt对应于2.8169014084507cm,根据 维基百科

所以你的totalheadheight应该是12.1830985915493cm,说12.183cm哪个应该足够精确。

现在使用geometry以下选项:

\usepackage[landscape,left=3cm,right=3cm,top=3cm,includeheadfoot,totalheight=12.183cm,showframe]{geometry}

不要直接用 设置底部边距bottom=...,它包含在计算中。

\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[landscape,left=3cm,right=3cm,top=3cm,includeheadfoot,totalheight=12.183cm,showframe]{geometry}
\usepackage{fancyhdr}

\setlength{\headheight}{80pt}
\pagestyle{fancy}

\lhead{This is header \\ This is header \\ This is header \\ This is header \\ This is header}
\chead{}
\rhead{}
\lfoot{}
\cfoot{This is the footer}
\rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}

First line of the document.

Second line of the document.

\end{document}

截屏

编辑 footskipheadsep计算中添加

相关内容