我尝试在 fancyhdr 环境中将文本垂直对齐到图像旁边。这是我的 LaTeX 代码:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{graphicx}
\headheight=60pt
\lhead{Foo bar \\
Baz lorem \\
ipsum dolor}
\chead{}
\rhead{This should be vertically aligned (middle) \raisebox{-.5\height}{\includegraphics[scale=0.25]{wappen}}}
\pagestyle{fancy}
\fancypagestyle{titlestyle}
{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\Large \today}
}
\begin{document}
Test
\end{document}
它以某种方式起作用(文本垂直对齐),但左侧的多行文本受到影响:其基线也向上移动。
如何在不修改左标题基线的情况下垂直对齐右侧的文本?
答案1
您可以使用包\Centerstack
中的命令轻松完成此操作stackengine
。
以下是使用我自己的一张图片的方法,因为您没有提供。另外,如果您降低 ,将文本相对于图像居中会更好0.4\height
,以考虑文本行的高度(当然,确切的值取决于图像的高度):
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{stackengine}
\setstackEOL{\\}
\headheight=60pt
\lhead{%
\Centerstack[l]{Foo bar \\
Baz lorem \\
ipsum dolor}}
\chead{}
\rhead{This should be vertically aligned (middle) \raisebox{-.4\height}
{\includegraphics[scale=0.16]{Hedgehog-in-the-Fog}}}
\pagestyle{fancy}
\fancypagestyle{titlestyle}
{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\Large \today}
}
\begin{document}
Test
\end{document}
答案2
将所有内容放在标题左侧的字段中:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{lipsum}
\setlength{\headheight}{60pt}
\fancyhf{}
\fancyhead[L]{%
\begin{tabular}{@{}l@{}}
Foo bar \\
Baz lorem \\
ipsum dolor
\end{tabular}\hfill
\begin{tabular}{@{}l@{}}
\mbox{}\\
This should be vertically aligned (middle) \\
\mbox{}
\end{tabular}\quad
\begin{tabular}{@{}c@{}}
\includegraphics[height=40pt]{duck}
\end{tabular}}
\pagestyle{fancy}
\fancypagestyle{titlestyle}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{0pt}%
\fancyfoot[C]{\Large \today}%
}
\begin{document}
\lipsum[1-15]
\end{document}