\pgfputat を使用してビーマースライドに条件付きでロゴを配置すると、見出しが不自然にシフトする

\pgfputat を使用してビーマースライドに条件付きでロゴを配置すると、見出しが不自然にシフトする

私はマクロを取ったこの質問後続のすべてのフレームにロゴを配置し\placelogotrue、後続のフレームには配置しません\placelogofalse。これはほぼ意図したとおりに機能しますが、フレームの見出しとフードラインが発生します。ロゴがわずかに左にずれ、不要な空白が残ります (下の写真の上部の画像のフッターと下部の画像の見出しを比較してください)。

ロゴ入りフレーム ロゴなしのフレーム

再現するためのコードは次のとおりです。

% !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}

\pgfputatそれはなぜでしょうか?フレームの間隔はまったく変更されないと思っていたのですが...

Arch Linux で LuaLaTeX バージョン 1.12.0 (TeX Live 2020) を使用してコンパイルしています。

答え1

試行錯誤しながら調べてみましょう (残念ながら問題を見つけることができませんでした)。まず、を\pgfbox[right,base]{\includegraphics[height=7mm]{example-image-a}}スペースに置き換えると同じ問題が発生しますが、スペースがなければ問題ありません。

\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{ }\fi}%

ここに画像の説明を入力してください

次のコード ( ) の出力も\pgfputat{ }上記の画像と同様です。

\logo{\ifplacelogo\pgfputat{ }{}\fi}%

ロゴを直接挿入すると、\includegraphic状況はさらに悪化します。

\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\includegraphics[height=7mm]{example-image-a}}\fi}%

ここに画像の説明を入力してください

または\hspace{-0.5mm}の前にを挿入することで、この空白を修正することもできます。\pgfbox\pgfxy

\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\hspace{-0.5mm}\pgfbox[right,base]{%
            \includegraphics[height=7mm]{example-image-a}
    }}\fi}%

または\makebox[0pt][r]{}代わりに使用する\pgfbox

\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\makebox[0pt][r]
{\includegraphics[height=7mm]{example-image-a}}}\fi}%

参照この郵便受けおよび\llapおよび\rlapこの(完全に関連しているわけではない)投稿。

答え2

\logoコマンドを次のように置き換えます

\logo{\ifplacelogo\pgfputat{\pgfxy(-0.1,7.72)}{\llap{\includegraphics[height=7mm]{example-image-a}}}\fi}

問題の原因は確認していませんが、おそらく に関連していると思われます\pgfbox

ここに画像の説明を入力してください

関連情報