我想在我的框架的右上角添加一个徽标,所以我编辑了,frametitle
并\addtobeamertemplate{frametitle}
使用 TikZ 添加徽标\node
(如这个答案), 像这样:
\addtobeamertemplate{frametitle}{}{%
\begin{tikzpicture}[remember picture,overlay]
\node[anchor=north east,yshift=2pt] at (current page.north east) {\includegraphics[height=0.8cm]{example-image}};
\end{tikzpicture}}
问题是,这种修改在frametitle
框架和主体之间增加了额外的空间,从而浪费了非常宝贵的空间。
这是我的框架在添加块之前的样子\addtobeamertemplate{frametitle}
:
添加之后的样子如下(注意间隙变大了):
我怎样才能消除这个差距?
这是我的 MWE:
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{tikz}
\addtobeamertemplate{frametitle}{}{%
\begin{tikzpicture}[remember picture,overlay]
\node[anchor=north east,yshift=2pt] at (current page.north east) {\includegraphics[height=0.8cm]{example-image}};
\end{tikzpicture}}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\includegraphics[height=\textheight]{example-image}
\end{frame}
\end{document}
答案1
覆盖 tikzpicture 不占用空间,但它仍然是一个框,因此必须小心插入它的位置。在垂直模式下(如这里),它将创建一条额外的线。我将使用 footline 模板(及其第二个参数)来注入徽标:
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{tikz}
\addtobeamertemplate{footline}{%
\leavevmode\begin{tikzpicture}[remember picture,overlay]
\node[anchor=north east,yshift=2pt] at (current page.north east) {\includegraphics[height=0.8cm]{example-image}};
\end{tikzpicture}\ignorespaces% \ignorespaces needed because of spurious space in the template
}{}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\includegraphics[height=\textheight]{example-image}
\end{frame}
\end{document}