我正在使用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
。