将页码或文本移动到水平页脚行上方

将页码或文本移动到水平页脚行上方

如何将某些选定的文本(或当前页码)直接移动到命令创建的水平规则/线的上方\renewcommand{\footrulewidth}

我正在使用 fancyhdr 包。

编辑:更具体地说——我怎样才能将页码保留在规则之下,但在线上方添加一些文本(例如 URL)?

答案1

在评论中,要求将页码置于页脚下方的中央,并将 URL 也置于中央,但位于页脚上方。以下是一种可能性:

\documentclass{article}
\usepackage[a5paper]{geometry}% just for the example
\usepackage{fancyhdr}
\usepackage{url}
\usepackage{lipsum}% just to generate text for the example

\addtolength\footskip{10pt}
\newcommand\myurl{\url{www.ctan.org}}
\makeatletter
\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset
    \@fancyvbox\footskip{\hbox{\parbox[t]{\headwidth}{\centering\myurl}}\vskip.2\footskip\footrule
      \hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2}}\hfill
        \parbox[t]{\headwidth}{\centering#3}\hfill
        \llap{\parbox[t]{\headwidth}{\raggedleft#4}}}}}#5}
\makeatother

\fancyhf{}
\renewcommand\footrulewidth{0.4pt}
\renewcommand\headrulewidth{0pt}
\fancyfoot[C]{\thepage}
\pagestyle{fancy}

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

在此处输入图片描述

在该包的帮助下etoolbox,可以修补该\@fancyfoot命令并简化代码:

\documentclass{article}
\usepackage[a5paper]{geometry}% just for the example
\usepackage{fancyhdr}
\usepackage{url}
\usepackage{etoolbox}
\usepackage{lipsum}% just to generate text for the example

\addtolength\footskip{10pt}
\newcommand\myurl{\url{www.ctan.org}}

\makeatletter
\patchcmd{\@fancyfoot}{\footrule}{\hbox{\parbox[t]{\headwidth}{\centering\myurl}}\vskip.2\footskip\footrule}{}{}
\makeatother

\fancyhf{}
\renewcommand\footrulewidth{0.4pt}
\renewcommand\headrulewidth{0pt}
\fancyfoot[C]{\thepage}
\pagestyle{fancy}

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

相关内容