如何将某些选定的文本(或当前页码)直接移动到命令创建的水平规则/线的上方\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}