如何在文档页面底部添加图像

如何在文档页面底部添加图像

在此处输入图片描述

您好!在图片中,您可以看到我找到的一份文档的第 2-7 页的底部。我想在我的文档中应用相同的格式,希望您能帮帮我。正如您所见,该文档由三张不同的图像组成 - 不同位置的涡轮机 - (第 3、5、7 页),并且一直重复到最后。

一般来说,我如何才能像本文档一样将图像放置在页面底部?

答案1

用于定义页面样式的两个主要包是fancyhdrtitleps;前者被认为是页脚/页眉的经典包;前者较新,但功能同样强大。

这些包中的每一个都有自己的界面来生成页眉/页脚(下面的示例说明了一些可用的命令);请参阅包文档以获取更多信息。

在下面的例子中,我展示了如何使用每个包生成所需的页脚;在这两种情况下,TikZ用于绘制移动的风车;风车根据\thepagemod 3 的值自动移动。

当然,您可以使用包\includegraphics中的标准命令来包含现有图像,而不是 TikZ 图片graphicx

一种可能性是使用fancyhdr定义页脚。

\documentclass[twoside]{article}
\usepackage[inner=30pt,outer=6cm,bottom=3.5cm]{geometry}
\usepackage{tikz}
\usepackage{fancyhdr}
\usepackage{lipsum}% just to generate text for the example
\usepackage{intcalc}
\pagestyle{fancy}

\newcommand\WindMill{%
\ifnum\intcalcMod{\value{page}}{3}=1\relax
  \def\Angle{70}
\else
\ifnum\intcalcMod{\value{page}}{3}=2\relax
  \def\Angle{30}
\else
\ifnum\intcalcMod{\value{page}}{3}=0\relax
  \def\Angle{-10}
\fi\fi\fi
\begin{tikzpicture}[remember picture,overlay]
\draw 
  ([xshift=-80pt]current page.south east) --
  ++(3pt,80pt) -- ++(2pt,0pt) coordinate (center) -- ++(3pt,-100pt);
\draw[rotate=\Angle,fill=white] (center.\Angle) rectangle ++(1.7cm,3pt);
\draw[rotate=\Angle-120,fill=white] (center.\Angle-120) rectangle ++(1.7cm,3pt);
\draw[rotate=\Angle+120,fill=white] (center.\Angle+120) rectangle ++(1.7cm,3pt);
\node[draw,fill=white,circle=inner sep=2pt] at ([xshift=-1pt]center) (circle) {}; 
\draw 
  ([xshift=-10pt]circle.west) -- ++(-\paperwidth,0);
\end{tikzpicture}%
}

\fancyhf{}
\renewcommand\headrulewidth{0pt}
\fancyfoot[OR]{\WindMill}
\fancyfoot[EL]{%
  \tikz[remember picture,overlay]{
    \draw ([yshift=80pt]current page.south west) -- ++(\paperwidth,0);
    \node[font=\small\scshape,anchor=north west] at ([yshift=80pt,xshift=30pt]current page.south west) {Wind Energy -- TU Delft};
  }
}
\fancyfoot[C]{\thepage}

\begin{document}
\lipsum[1-50]
\end{document}

第 1 至 6 页页脚的图像:

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

还有一些放大的单幅图像:

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

现在,使用titleps包裹:

\documentclass[twoside]{article}
\usepackage[inner=30pt,outer=6cm,bottom=3.5cm]{geometry}
\usepackage{tikz}
\usepackage{titleps}
\usepackage{lipsum}% just to generate text for the example
\usepackage{intcalc}

\newcommand\WindMill{%
\ifnum\intcalcMod{\value{page}}{3}=1\relax
  \def\Angle{70}
\else
\ifnum\intcalcMod{\value{page}}{3}=2\relax
  \def\Angle{30}
\else
\ifnum\intcalcMod{\value{page}}{3}=0\relax
  \def\Angle{-10}
\fi\fi\fi
\begin{tikzpicture}[remember picture,overlay]
\draw 
  ([xshift=-80pt]current page.south east) --
  ++(3pt,80pt) -- ++(2pt,0pt) coordinate (center) -- ++(3pt,-100pt);
\draw[rotate=\Angle,fill=white] (center.\Angle) rectangle ++(1.7cm,3pt);
\draw[rotate=\Angle-120,fill=white] (center.\Angle-120) rectangle ++(1.7cm,3pt);
\draw[rotate=\Angle+120,fill=white] (center.\Angle+120) rectangle ++(1.7cm,3pt);
\node[draw,fill=white,circle=inner sep=2pt] at ([xshift=-1pt]center) (circle) {}; 
\draw 
  ([xshift=-10pt]circle.west) -- ++(-\paperwidth,0);
\end{tikzpicture}%
}

\newpagestyle{windmill}
{\setfoot[%
  \tikz[remember picture,overlay]{
    \draw ([yshift=80pt]current page.south west) -- ++(\paperwidth,0);
    \node[font=\small\scshape,anchor=north west] at ([yshift=80pt,xshift=30pt]current page.south west) {Wind Energy -- TU Delft};
  }
][\thepage][]{}{\thepage}{\WindMill}
}
\pagestyle{windmill}

\begin{document}
\lipsum[1-50]
\end{document}

评论中要求稍微降低元素数量:

\documentclass[twoside]{article}
\usepackage[inner=30pt,outer=6cm,bottom=3.5cm,footskip=3cm]{geometry}
\usepackage{tikz}
\usepackage{fancyhdr}
\usepackage{lipsum}% just to generate text for the example
\usepackage{intcalc}
\pagestyle{fancy}

\newcommand\WindMill{%
\ifnum\intcalcMod{\value{page}}{3}=1\relax
  \def\Angle{70}
\else
\ifnum\intcalcMod{\value{page}}{3}=2\relax
  \def\Angle{30}
\else
\ifnum\intcalcMod{\value{page}}{3}=0\relax
  \def\Angle{-10}
\fi\fi\fi
\begin{tikzpicture}[remember picture,overlay]
\draw 
  ([xshift=-80pt]current page.south east) --
  ++(3pt,30pt) -- ++(2pt,0pt) coordinate (center) -- ++(3pt,-100pt);
\draw[rotate=\Angle,fill=white] (center.\Angle) rectangle ++(1cm,3pt);
\draw[rotate=\Angle-120,fill=white] (center.\Angle-120) rectangle ++(1cm,3pt);
\draw[rotate=\Angle+120,fill=white] (center.\Angle+120) rectangle ++(1cm,3pt);
\node[draw,fill=white,circle,inner sep=3pt] at ([xshift=-1pt]center) (circle) {}; 
\draw 
  ([xshift=-10pt]circle.west) -- ++(-\paperwidth,0);
\end{tikzpicture}%
}

\fancyhf{}
\renewcommand\headrulewidth{0pt}
\fancyfoot[OR]{\WindMill}
\fancyfoot[EL]{%
  \tikz[remember picture,overlay]{
    \draw ([yshift=30pt]current page.south west) -- ++(\paperwidth,0);
    \node[font=\small\scshape,anchor=north west] at ([yshift=30pt,xshift=30pt]current page.south west) {Wind Energy -- TU Delft};
  }
}
\fancyfoot[C]{\thepage}

\begin{document}
\lipsum[1-50]
\end{document}

答案2

除了套餐之外Gonzalo 在他的回答中提到KOMA-Script 还提供了至少另外两个软件包,但不限于仅用于 KOMA-Script 类:旧版scrpage2(它本身有一个过时的前身scrpage)及其最近的继任者scrlayer-scrpage。如果您不必使用过时的 KOMA-Script(因为您的管理员懒得更新或类似问题),您应该使用scrlayer-scrpage,它向下兼容并且确实提供了更多功能。

下面您可以看到 Gonzalo 开发的代码,但经过了改编scrlayer-scrpage。我故意保留了代码行fancyhdr,这样人们就可以看出,从这个包转移并不难。我想展示的一件事是,默认情况下有一个普通的页面样式伴侣,可以在头部和脚部样式宏的可选参数中更改。我这样做了,并添加了一个具有这种普通样式的页面。这种页面样式对于标题页和带有章节的类很重要。

顺便说一句,当人们另外加载该包时scrextend,更多有用的 KOMA-Script 功能也可以与其他类一起使用。

\documentclass[twoside]{article}
\usepackage[inner=30pt,outer=6cm,bottom=3.5cm,footskip=3cm]{geometry}
\usepackage{tikz}
\usepackage{lipsum}% just to generate text for the example
\usepackage{intcalc}

%\usepackage{fancyhdr}
%\pagestyle{fancy}
%\renewcommand\headrulewidth{0pt}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}

\newcommand\WindMill{%
\ifnum\intcalcMod{\value{page}}{3}=1\relax
  \def\Angle{70}
\else
\ifnum\intcalcMod{\value{page}}{3}=2\relax
  \def\Angle{30}
\else
\ifnum\intcalcMod{\value{page}}{3}=0\relax
  \def\Angle{-10}
\fi\fi\fi
\begin{tikzpicture}[remember picture,overlay]
\draw
  ([xshift=-80pt]current page.south east) --
  ++(3pt,30pt) -- ++(2pt,0pt) coordinate (center) -- ++(3pt,-100pt);
\draw[rotate=\Angle,fill=white] (center.\Angle) rectangle ++(1cm,3pt);
\draw[rotate=\Angle-120,fill=white] (center.\Angle-120) rectangle ++(1cm,3pt);
\draw[rotate=\Angle+120,fill=white] (center.\Angle+120) rectangle ++(1cm,3pt);
\node[draw,fill=white,circle,inner sep=3pt] at ([xshift=-1pt]center) (circle) {}; 
\draw
  ([xshift=-10pt]circle.west) -- ++(-\paperwidth,0);
\end{tikzpicture}%
}

%\fancyhf{}
\clearpairofpagestyles
%\fancyfoot[OR]{\WindMill}
\rofoot[\WindMill]{\WindMill}
%\fancyfoot[EL]{%
\lefoot[% different definition for plain page style
  {\tikz[remember picture,overlay]{
    \node[font=\small\scshape,anchor=north west] at ([yshift=30pt,xshift=30pt]current page.south west) {Wind Energy -- TU Delft};
  }}%
]{%
  \tikz[remember picture,overlay]{
    \draw ([yshift=30pt]current page.south west) -- ++(\paperwidth,0);
    \node[font=\small\scshape,anchor=north west] at ([yshift=30pt,xshift=30pt]current page.south west) {Wind Energy -- TU Delft};
  }
}
%\fancyfoot[C]{\thepage}
\cfoot[\thepage]{\thepage}

\begin{document}
\lipsum[1-35]

\newpage
\thispagestyle{plain.scrheadings}
\mbox{}
% needed to produce an empty page, else one the first "\newpage" command would be swallowed
\newpage

\lipsum[36-50]
\end{document}

相关内容