使用 fancyhdr 创建基于图像的页眉和页脚

使用 fancyhdr 创建基于图像的页眉和页脚

我正在尝试生成一份乳胶报告(通过 Sweave 和 R),其中文档的页眉是一个覆盖所有内容(包括顶部/左侧/右侧页边距)的图像,页脚覆盖所有内容(包括底部/左侧/右侧页边距),使得页眉和页脚的图形与页面边缘齐平。

有点像这样:

在此处输入图片描述

我一直在尝试,fancyhdr但似乎无法让它做任何事情,只能让它出现在页面中间。此外,我似乎无法让页眉/页脚显示在所有页面上。

如能得到帮助将不胜感激,以下是我目前的情况:

\documentclass[a4paper]{letter}
\usepackage{fancyhdr} 
\usepackage{lastpage}
\usepackage{float} 
\usepackage{graphicx}
\floatstyle{boxed} 
\restylefloat{figure} 
\pagestyle{fancy}

\begin{document}
\lhead{\includegraphics{documenthead.jpg}}
\lfoot{{\includegraphics{footer.jpg}}}
\rfoot{\thepage}
\title{Example Document}
\author{Author Name}
\date {\today}
\maketitle
\section{This is a good example}
Example text goes here \\
Repeat me to force a new page \\ 
\end{document}

答案1

我找到了一个更好的解决方案wallpaper包裹,替换 foo 和 bar 会产生所需的结果。

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{wallpaper}

\begin{document}
\ULCornerWallPaper{1}{foo}
\LLCornerWallPaper{1}{bar}
\lipsum[1-3]
\end{document}

答案2

如果你不坚持使用fancyhdr,你可以采用来自的解决方案如何使用 TikZ 和 graphicx 在左上角添加图像 它使用包裹background

在此处输入图片描述

笔记:

  • 至少需要运行两次才能看到图像。

代码:

\documentclass[12pt]{article}
\usepackage[demo]{graphicx}
\usepackage[all]{background}

\usepackage{lipsum}
\usepackage{showframe}
\usepackage{tikz}

\newcommand{\MyGraphicLogo}{% For imported graphic logo
\begin{tikzpicture}[remember picture,overlay]
  \node at (current page.north) {\includegraphics[width=\paperwidth,height=4cm]{foo}};
  \node at (current page.south) {\includegraphics[width=\paperwidth,height=4cm]{bar}};
 \end{tikzpicture}
}

\SetBgContents{\MyGraphicLogo}% Select included image

\SetBgPosition{current page.north west}% Select location
\SetBgOpacity{1.0}% Select opacity
\SetBgAngle{0.0}% Select roation of logo
\SetBgScale{1.0}% Select scale factor of logo

\begin{document}
\section*{Lorem Ipsum}
\lipsum[1-16]
\end{document}

答案3

我认为您要查找的命令是\fancyhfoffset。左侧似乎需要增加\oddsidemargin + \hoffset + 1in,而右侧需要增加\evensidemargin + \marginparwidth - \marginparsep(这让我很惊讶,我以为应该是加\marginparsep)。

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{calc}

\fancypagestyle{plain}{%
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}
    \fancyhf{}
    \fancyhead[L]{\hrulefill{}}%
    \fancyhead[R]{\hrulefill{}}%
    \fancyfoot[L]{\hrulefill{}}%
    \fancyfoot[R]{\thepage}%
}

\fancyhfoffset[L]{\oddsidemargin + \hoffset + 1in}
\fancyhfoffset[R]{\evensidemargin + \marginparwidth - \marginparsep}

\pagestyle{plain}
\begin{document}
First page

\clearpage

Second page
\end{document}

相关内容