使用 fancyhdr 定位页脚时出现的问题

使用 fancyhdr 定位页脚时出现的问题

我在文档上放置页脚时遇到了问题。第一页显示正常,但下一页根本不显示。经过一番思考,我意识到页脚确实出现了,但超出了页面边界,所以不可见。所以问题是,我如何修复页脚预期出现的高度?我的代码(部分)如下:

\documentclass[10pt,letterpaper]{article}
.......
\usepackage[margin=4.5cm,headheight=28pt]{geometry}
\usepackage{fancyhdr}
.......
\hoffset-2.8cm
\voffset-2.3cm
\setlength{\textwidth}{18cm}
\setlength{\textheight}{22.5cm}
\renewcommand{\baselinestretch}{1.2} 
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
%\renewcommand{\footrulewidth}{0.3pt}
\fancyhead[C]{
    \hspace*{-1cm}\begin{tabular}{>{\centering\arraybackslash}p{3cm}b{12cm}>{\centering\arraybackslash}p{3cm}}
        % & \\[0.05ex]
        \hspace*{0.5cm}\includegraphics[width=2.5cm]{logo.png} & \hspace*{-2.5cm} Some random text I need... & \includegraphics[width=3cm]{LogoONAC.png} \\
    \end{tabular}   
}
\fancyfoot[C]{ - Some text I need to appear as footer on every page - }

提前致谢!

编辑:

好的,我按照 Werner 的建议重现了我的问题。代码如下:

\documentclass{article}

\usepackage[margin=1.5cm,headheight=10pt]{geometry}
\usepackage{fancyhdr,graphicx}
\usepackage{lipsum}
\usepackage{array}

\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\fancyhead[C]{
    \hspace*{-1cm}\begin{tabular}{>{\centering\arraybackslash}p{3cm}b{12cm}>{\centering\arraybackslash}p{3cm}}
        % & \\[0.05ex]
        \hspace*{0.5cm}\includegraphics[width=2.5cm]{logo.png} & \hspace*{-2.5cm}\begin{tabular}{>{\centering\arraybackslash}b{17cm}} \\[5ex] \textbf{XXXXXXXXXXXXXXXX}\\ \textbf{XXXXXXXXXXXXXXXXXXXXXXX}\\ \textbf{\footnotesize XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}\\ \end{tabular} & \includegraphics[width=3cm]{LogoONAC.png} \\
    \end{tabular}   
}

\fancyfoot[C]{ - OPERADOR - }

\begin{document}

\lipsum[1-20]

\end{document}

答案1

您的代码中有几处需要更改:

  • 不要使用geometry然后手动添加其他页面布局设置。选择其中一个即可。

    我建议仅使用并坚持使用geometry并省略如下设置:

    \hoffset-2.8cm
    \voffset-2.3cm
    \setlength{\textwidth}{18cm}
    \setlength{\textheight}{22.5cm}
    
  • 您可能试图在页面布局方面创建一种有点矛盾的情况。设置margin=4.5cm并设置\textwidth22.5cm不会使其适合某个letterpaper尺寸。

  • 听听fancyhdr

    Package Fancyhdr Warning: \headheight is too small (28.0pt): 
     Make it at least 116.60004pt.
     We now make it that large for the rest of the document.
     This may cause the page layout to be inconsistent, however.
    

    “至少设置为 ...”后面的值可能会因您添加的实际图像大小而异。这可能是问题的根本原因,因为第一页之后的所有页面都会进行调整。

这是示例代码的简化版本,我已删除了页面布局的任何手动设置:

在此处输入图片描述

\documentclass{article}

\usepackage[margin=4.5cm,headheight=68pt]{geometry}
\usepackage{fancyhdr,graphicx}
\usepackage{lipsum}

\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\fancyhead[L]{\includegraphics[width=2.5cm]{example-image-a}\ Some random text I need...}
\fancyhead[R]{\includegraphics[width=3cm]{example-image-b}}
\fancyfoot[C]{ - Some text I need to appear as footer on every page - }

\begin{document}

\lipsum[1-20]

\end{document}

相关内容