如何在 fancyhdr 包中垂直对齐页眉/页脚?

如何在 fancyhdr 包中垂直对齐页眉/页脚?

我正在使用fancyhdr标题和页脚包。我已将左标题定义为大图像,并且我想垂直对齐(向顶部或向中心对齐,默认为向底部对齐)右标题的文本。我该怎么做?

\usepackage{fancyhdr}
\pagestyle{fancy}

\lhead{\includegraphics[height=21mm]{some_fancy_logo.pdf}}
\chead{}
\rhead{I want to vertically align THIS text}

答案1

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}

\lhead{\raisebox{-0.5\height}{\includegraphics[height=21mm]{some_fancy_logo.pdf}}}

\chead{}

\rhead{I want to vertically align THIS text}

\begin{document}
abc
\end{document}

不要忽视以下警告fancyhdr

Package Fancyhdr Warning: \headheight is too small (12.0pt): 
 Make it at least 59.75078pt.

使用 \headheight=22mm或类似的东西。

答案2

我找到了解决方案。这是一个非常丑陋的黑客攻击,但它对我的情况有效(因为我事先知道了标题的高度)。

\rhead{\parbox[b][21mm][t]{0.5\textwidth}{\raggedleft I want to vertically align THIS text}}

我接受更好的解决方案。:)

答案3

我认为问题在于fancyhdr没有简单的方法将左标题中框的宽度传达给右标题。您可以分配一个 dimen 寄存器,将左标题中框的宽度放入其中,然后在右标题中使用它,但我认为更简单的解决方案是将所有内容放入同一个标题中:

\lhead{\hbox to \hsize{%
       \hbox{\vtop{\vskip 0pt \hbox{\includegraphics[height=21mm]{some-fancy-logo.pdf}}}}%
       \hfill\hbox{\vtop{\vskip 0pt \hbox{I want to vertically align THIS text}}}}}
\chead{}
\rhead{}

您可能甚至不需要fancyhdr

相关内容