如何在 Beamer 中将标题(包括图形)垂直居中?

如何在 Beamer 中将标题(包括图形)垂直居中?

我开始使用相当大的基于 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}
    }  

有什么方法可以“动态”地进行垂直对齐,以便无论字体大小如何,整个标题都位于中间?

我已经尝试valignadjustbox如何将文本和图像垂直居中放置在表格的同一行中,但在这种情况下似乎效果不太好:

在此处输入图片描述

    \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 上传到此链接:

https://gofile.io/?c=2d0D8O

答案1

你可以将代码括在:

\vspace*{\fill}
  % Your stuff here
\vspace*{\fill}

这将\vspace无条件地 ( ) 添加垂直空间 ( *),要添加的空间“只要能容纳”( \fill)。 双方\fill争夺空间,每人获得一半。 如果您想要顶部/底部空间不均匀,请使用\stretch{n}

\vspace*{\stretch{2}}
  % Your stuff here
\vspace*{\stretch{3}}

这将提供上面 2/5 的空间。顺便说一句,水平方向也可以使用相同的想法。

相关内容