
Ich habe ein Makro vondiese Fragedas ein Logo auf alle folgenden Frames \placelogotrue
und auf keinen folgenden Frame platziert \placelogofalse
. Es funktioniert weitgehend wie beabsichtigt, aber es verursacht Überschrift und Fußzeile der FramesmitDas Logo soll leicht nach links verschoben werden, sodass ein paar unerwünschte Leerräume entstehen (vergleichen Sie die Fußzeile des oberen Bilds mit der Überschrift des unteren Bilds in den folgenden Bildern):
Hier ist der Code zum Reproduzieren:
% !TeX program = lualatex
\documentclass{beamer}
\usetheme{Malmoe}
% graphics
\DeclareGraphicsExtensions{.jpg,.jpeg,.png,.pdf}
% TikZ/PGF
\usepackage{pgf}
% customization of beamer style
\setbeamertemplate{bibliography item}{}
\setbeamertemplate{navigation symbols}{}
% define logo
\newif\ifplacelogo
\placelogotrue
\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\pgfbox[right,base]{%
\includegraphics[height=7mm]{example-image-a}
}}\fi}%
% define custom headline
\setbeamertemplate{headline}
{%
\leavevmode%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}%
\hbox to .5\paperwidth{\hfil\insertsectionhead\hfil}
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{subsection in head/foot}%
\hbox to .5\paperwidth{\hfil\insertsubsectionhead\hfil}
\end{beamercolorbox}%
}
\begin{document}
\begin{frame}
\end{frame}
\placelogofalse
\begin{frame}
\end{frame}
\end{document}
Warum ist das so? Ich hätte erwartet, \pgfputat
dass der Abstand am Rahmen überhaupt nicht geändert wird ...
Ich kompiliere mit LuaLaTeX Version 1.12.0 (TeX Live 2020) auf Arch Linux.
Antwort1
Lassen Sie es uns durch Ausprobieren untersuchen (leider konnte ich das Problem nicht finden). Wenn wir zuerst das \pgfbox[right,base]{\includegraphics[height=7mm]{example-image-a}}
durch ein Leerzeichen ersetzen , tritt dasselbe Problem auf, aber ohne dieses Leerzeichen
ist es in Ordnung:
\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{ }\fi}%
Auch die Ausgabe des folgenden Codes ( \pgfputat{ }
) ähnelt der obigen Abbildung:
\logo{\ifplacelogo\pgfputat{ }{}\fi}%
Wenn wir das Logo direkt einfügen, \includegraphic
wird die Situation schlimmer:
\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\includegraphics[height=7mm]{example-image-a}}\fi}%
Man kann dieses Leerzeichen auch beheben, indem man \hspace{-0.5mm}
vor \pgfbox
oder einfügt \pgfxy
:
\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\hspace{-0.5mm}\pgfbox[right,base]{%
\includegraphics[height=7mm]{example-image-a}
}}\fi}%
oder \makebox[0pt][r]{}
statt\pgfbox
\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\makebox[0pt][r]
{\includegraphics[height=7mm]{example-image-a}}}\fi}%
Siehe auchdieser Beitragfür \llap
und \rlap
unddieser (nicht ganz verwandte) Beitrag.