带有 raisebox 的 frametitle 的行为

带有 raisebox 的 frametitle 的行为

请参阅下面的更新。当我尝试更改 beamer 中的框架标题时,出现了以下问题。(实际上,我想要标题栏中的图片。我改用了规则。)

\documentclass{beamer}
\usetheme{AnnArbor}  

\setbeamercolor*{frametitle in title}{fg=red, bg=black}

\setbeamertemplate{frametitle}{%
    \vspace{-0.165ex}
    \mbox{%
        \begin{beamercolorbox}[wd=\paperwidth, dp=1ex, ht=4.5ex, sep=1ex, colsep*=0pt]{frametitle in title}%
        \usebeamerfont{frametitle}
        \insertframetitle 
        \hfill
        \raisebox{-1.75ex}[\ht\strutbox][-\ht\strutbox]{\rule{5ex}{5ex}}
        \end{beamercolorbox}%
        }%
    }

\begin{document}

\begin{frame}
\frametitle{Hello}
Everythings fine here
\end{frame}

\begin{frame}%[fragile]
\frametitle{Can you see?} 
DO
\end{frame}

\end{document}

因此,您可以轻松看到代表图片的红色方块(我希望它在那里)在易碎框架上向上移动。我不知道易碎是如何工作的(我也不知道 beamer,但我到目前为止能够处理它。)因此,我想到了一个 if 结构来弄清楚何时开启了易碎,但是... 在用户空间中没有这样的结构可用...

谢谢评论!

更新:我刚刚发现,问题与易碎框架无关。它来自带有降部的字母。所以事实上,我很难\raisebox正确使用。

答案1

你说得对,问题出在“Can you see”中“y”的下行部分。(你很自然地感到困惑,并首先认为fragile这是罪魁祸首;我有一个相关问题我也不知道发生了什么。Juan A. Navarro 称之为“可怕的宝马垂直对齐问题”...)

解决方案:向您的框架标题添加一个\strut,如下所示:

\frametitle{Hello\strut}
\frametitle{Can you see?\strut}

然后你会看到图片不再移动了。现在图片太高了,但这可以通过调整\raisebox{-1.75ex}图片的 轻松解决。

相关内容