最后一页的页脚

最后一页的页脚

我先从 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\AfterLastShipoutatveryend
  • 标签可以在包的宏内部使用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

这是一个最简单的例子,展示如何定义和使用个人页眉/页脚。

因为我不知道您是否在类上使用onesidetwoside选项,所以最好同时定义奇数和偶数。

\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}}}

相关内容