我先从 LaTeX 开始,然后使用fancyhdr
。所以我的所有页面都有一个漂亮的页脚,但是...我想创建一个仅在最后一页上活动的页脚。这个页脚将包含我的信息,也许还包括我文档的一些版权。
它将与我的页面宽度一样宽,就像这几页的页脚一样:
可以轻松修改的彩色带...这可能吗?你能帮助我吗?
答案1
这可以很容易地用background
包;该包使用选项加载pages=some
,然后\BgThispage
用于声明材料应该出现的页面:
\documentclass[a4paper]{book}
\usepackage[pages=some]{background}
\usepackage{tikzpagenodes}
\usepackage{lipsum}
\backgroundsetup{
scale=1,angle=0,color=black,
contents={%
\tikz[remember picture,overlay]{
\draw[fill=gray!10,ultra thick,draw=gray,rounded corners]
([yshift=120pt,xshift=5pt]current page.south west)
rectangle
([yshift=5pt,xshift=-5pt]current page.south east);
\node[anchor=north west,inner sep=0pt,text width=.3\paperwidth,align=left] at ([yshift=-20pt,xshift=10pt]current page.south west|-current page text area.south west) {Some information \\ Additional information \\ Some articles};
\node[anchor=north,inner sep=0pt,text width=.3\paperwidth,align=left] at ([yshift=-20pt,xshift=-25pt]current page text area.south) {Some information \\ Additional information \\ Some articles};
\node[anchor=north east,inner sep=0pt,text width=.3\paperwidth,align=left] at ([yshift=-20pt,xshift=-10pt]current page.south east|-current page text area.south east) {Some information \\ Additional information \\ Some articles};
}
}
}
\begin{document}
\lipsum[1-4]% regular pages
\clearpage\thispagestyle{empty}\BgThispage
\lipsum[1-4]
\end{document}
由于涉及一些计算,代码需要运行两到三次才能稳定下来。
另一个变体:
\documentclass[a4paper]{book}
\usepackage[pages=some]{background}
\usepackage{tikzpagenodes}
\usepackage{lipsum}
\backgroundsetup{
scale=1,angle=0,color=black,
contents={%
\tikz[remember picture,overlay]{
\fill[gray!70,ultra thick]
([yshift=120pt]current page.south west)
rectangle
(current page.south east);
\node[anchor=north west,inner sep=0pt,text width=.3\paperwidth,align=left] at ([yshift=-20pt,xshift=10pt]current page.south west|-current page text area.south west) {Some information \\ Additional information \\ Some articles};
\node[anchor=north,inner sep=0pt,text width=.3\paperwidth,align=left] at ([yshift=-20pt,xshift=-25pt]current page text area.south) {Some information \\ Additional information \\ Some articles};
\node[anchor=north east,inner sep=0pt,text width=.3\paperwidth,align=left] at ([yshift=-20pt,xshift=-10pt]current page.south east|-current page text area.south east) {Some information \\ Additional information \\ Some articles};
}
}
}
\begin{document}
\lipsum[1-4]% regular pages
\clearpage\thispagestyle{empty}\BgThispage
\lipsum[1-4]
\end{document}
答案2
您应该将此类“文档结束”内容作为\AtEndDocument
钩子的一部分,无论是设置页面样式,还是添加包含内容的框。以下是示例:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\fancypagestyle{default}{
\fancyhf{}% No header/footer
\fancyfoot[R]{\thepage}% Right footer
\renewcommand{\headrulewidth}{0pt}% No header rule
\renewcommand{\footrulewidth}{0.4pt}% A footer rule
}
\fancypagestyle{last-page}{
\fancyhf{}% No header/footer
\fancyfoot[C]{\fbox{\makebox[\dimexpr\linewidth-2\fboxsep-2\fboxrule]{Hello world}}}% Centre footer
\renewcommand{\headrulewidth}{0pt}% No header rule
\renewcommand{\footrulewidth}{0.4pt}% A footer rule
}
\pagestyle{default}% Default page style
\AtEndDocument{\thispagestyle{last-page}}% Page style at \end{document}
\begin{document}
\section{A section}\lipsum[1-50]
\end{document}
请注意,文档末尾未处理的浮点数(如果有)可能会导致样式的放置出现问题last-page
。
类似地,你可以使用
\AtEndDocument{\vfill%
% Your end-of-document content
}
插入垂直填充并自动放置文档末尾内容(无论它是什么)。未处理的文档末尾浮动也存在同样的情况。如果这仍然是一个问题,请调查atveryend
包裹。
答案3
使用很危险。如果达到of \AtEndDocument
,可能会输出很多页。或者最后一页已经输出,\clearpage
\end{document}
前 \end{document}
叫做。
更安全的方法是使用标签:
- 包
zref-abspage
为参考系统提供了绝对页码zref
。 - 包定义使用包的钩子放入文件中的
zref-lastpage
标签。LastPage
.aux
\AfterLastShipout
atveryend
- 标签可以在包的宏内部使用
fancyhdr
,定义头行和脚行。 - 宏
\iffancylastpage
隐藏了内部内容(询问标签LastPage
,当前页面是否为最后一页)。在 2013/02/09 v3.0 版本zref-abspage
(尚未发布)中,界面以兼容性为代价进行了简化。因此,\iffancylastpage
在 的旧版本和新版本中都定义了zref-abspage
。
示例文件:
\documentclass{article}
\usepackage[a6paper,landscape]{geometry}
\usepackage{zref-abspage,zref-lastpage}
\makeatletter
\@ifpackagelater{zref-abspage}{2013/02/09}{%
\newcommand*{\iffancylastpage}{%
\ifnum\zref@extractdefault{LastPage}{abspage}{-1}=\value{zabspage}%
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}%
}{%
\newcommand*{\iffancylastpage}{%
\ifnum\zref@extractdefault{LastPage}{abspage}{-1}%
=\numexpr\value{abspage}+1\relax
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}%
}
\makeatother
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\renewcommand*{\headrulewidth}{0pt}
\renewcommand*{\footrulewidth}{.4pt}
\fancyfoot[R]{\thepage}
\fancyfoot[C]{%
\iffancylastpage{\textbf{LAST PAGE}}{NORMAL PAGE}%
}
\usepackage{lipsum}
\begin{document}
\lipsum[1-4]
\end{document}
答案4
这是一个最简单的例子,展示如何定义和使用个人页眉/页脚。
因为我不知道您是否在类上使用oneside
或twoside
选项,所以最好同时定义奇数和偶数。
\documentclass{article}
\usepackage{lipsum}
\usepackage[showframe,a5paper]{geometry}
\makeatletter
\def\ps@myinfo{
\def\@oddhead{left \hfill center\hfill right}
\def\@oddfoot{left \hfill center\hfill right}
\def\@evenhead{left \hfill center\hfill right}
\def\@evenfoot{left \hfill center\hfill right}
}
\makeatother
\begin{document}
\lipsum[1]
\newpage
\pagestyle{myinfo}
\lipsum[2]
\end{document}
输出如下:
要使用带有矩形的页脚,请加载包calc
并使用
\def\@oddfoot{\fbox{\parbox{\textwidth-2\fboxsep}{left\hfill center \hfill right}}}