您好!在图片中,您可以看到我找到的一份文档的第 2-7 页的底部。我想在我的文档中应用相同的格式,希望您能帮帮我。正如您所见,该文档由三张不同的图像组成 - 不同位置的涡轮机 - (第 3、5、7 页),并且一直重复到最后。
一般来说,我如何才能像本文档一样将图像放置在页面底部?
答案1
用于定义页面样式的两个主要包是fancyhdr
和titleps
;前者被认为是页脚/页眉的经典包;前者较新,但功能同样强大。
这些包中的每一个都有自己的界面来生成页眉/页脚(下面的示例说明了一些可用的命令);请参阅包文档以获取更多信息。
在下面的例子中,我展示了如何使用每个包生成所需的页脚;在这两种情况下,TikZ
用于绘制移动的风车;风车根据\thepage
mod 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}