我开始使用相当大的基于 Beamer 的模板。除了标题垂直对齐之外,一切都很好 - 对于默认字体大小,它看起来还不错:
但是当我将字体大小更改为例如9pt
这样时:
\documentclass[lualatex,hyperref={pdfencoding=auto},9pt]{beamer}
向上移动
据我所知,垂直对齐是使用以下代码设置的:
\setbeamertemplate{frametitle}
{
\nointerlineskip
\begin{beamercolorbox}[sep=0.3cm,ht=1.8em,wd=\paperwidth]{frametitle}
\vbox{}\vskip-2ex
\strut\insertframetitle\strut
\hfill
\raisebox{-0.25\height}{\includegraphics[height=1.35em]{\proj@TightSignFileName}}
\vskip-0.8ex%
\end{beamercolorbox}
}
有什么方法可以“动态”地进行垂直对齐,以便无论字体大小如何,整个标题都位于中间?
我已经尝试valign
过adjustbox
如何将文本和图像垂直居中放置在表格的同一行中,但在这种情况下似乎效果不太好:
\setbeamertemplate{frametitle}
{
\nointerlineskip
\begin{beamercolorbox}[sep=0.3cm,ht=1.8em,wd=\paperwidth]{frametitle}
\vbox{}\vskip-2ex
\strut\insertframetitle\strut
\hfill
\includegraphics[valign=m,height=1.35em]{\vsb@TightSignFileName}
\vskip-0.8ex%
\end{beamercolorbox}
}
下载链接
由于需要的文件和图像数量众多,我将完整的 MWE 上传到此链接:
答案1
你可以将代码括在:
\vspace*{\fill}
% Your stuff here
\vspace*{\fill}
这将\vspace
无条件地 ( ) 添加垂直空间 ( *
),要添加的空间“只要能容纳”( \fill
)。 双方\fill
争夺空间,每人获得一半。 如果您想要顶部/底部空间不均匀,请使用\stretch{n}
:
\vspace*{\stretch{2}}
% Your stuff here
\vspace*{\stretch{3}}
这将提供上面 2/5 的空间。顺便说一句,水平方向也可以使用相同的想法。