Tema Beamer misterioso \hbox overfull

Tema Beamer misterioso \hbox overfull

Estoy intentando escribir un tema de proyector personalizado. Me quedé atascado en el título del fotograma, intentando centrar verticalmente tanto el Título como el Título+Subtítulo en un beamercolorbox de tamaño fijo. Combinando un par de soluciones de otras personas, llegué a la combinación de \ifx\insertframesubtitle\@emptyy \vbox to 6ex{ \vfil. Se ve exactamente como quiero ahora, pero produce \hbox overfullpara cada fotograma. Otro pequeño problema es que tuve que poner manualmente 6ex para la versión Título y 6.05 para la versión Título+Subtítulo para que tuvieran exactamente el mismo tamaño (no tengo idea de por qué). Me gustaría una solución más elegante.

¡Apreciaría cualquier ayuda!

Archivo principal:

\documentclass{beamer}

\usetheme{TEST}

\begin{document}

\begin{frame}{Frame}
\end{frame}

\begin{frame}{Frame Title}{Subtitle}
\end{frame}

\end{document}

beamerthemeTEST.sty:

\mode<presentation>

\definecolor{salmon}{RGB}{240, 145, 145}
\setbeamercolor{frametitle}{fg=white, bg=salmon}
\setbeamerfont{frametitle}{size=\LARGE}
\setbeamerfont{framesubtitle}{size=\normalsize}

\defbeamertemplate*{frametitle}{}[1][]
{
    \nointerlineskip%
    \ifx\insertframesubtitle\@empty%
        \begin{beamercolorbox}[wd=\paperwidth, left, leftskip = 1ex]{frametitle}%
           \vbox to 6ex{%
            \vfil%
            \usebeamerfont{frametitle}\strut\insertframetitle%
            \vfil}%
        \end{beamercolorbox}%
    \else%
        \begin{beamercolorbox}[wd=\paperwidth, left, leftskip=1ex, rightskip=4ex]{frametitle}%
            \vbox to 6.05ex{%
            \vfil%
            \usebeamerfont{frametitle}\strut\insertframetitle\\%
            \usebeamerfont{framesubtitle}\strut\insertframesubtitle%
            \vfil}%
        \end{beamercolorbox}%
    \fi%
}
\mode<all>

EDITAR: Si defino el título del marco dentro del archivo principal, el título en el marco de Sólo título se mueve hacia arriba (no está centrado).

EDITAR2: Encontré la siguiente solución para el hbox demasiado lleno (no está claro en cuanto a la mecánica, algo que tiene que ver con \vbox to):

\begin{beamercolorbox}[wd=\paperwidth, left]{frametitle}%
    \vbox to 40pt{\vfil%     
    \usebeamerfont{frametitle}\hspace{10pt}\strut\insertframetitle%
    \vfil}%
\end{beamercolorbox}%

Todavía estoy tratando de encontrar una mejor manera de obtener diferentes valores condicionales para \vbox to.

Respuesta1

Podrías inspirarte en la plantilla de título de marco predeterminada sobre cómo crear un título de marco que abarque todo el ancho del papel sin causar que los cuadros se llenen demasiado:

\documentclass[11pt]{beamer}

\makeatletter
\setbeamertemplate{frametitle}{%
  \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
  \@tempdima=\textwidth%
  \advance\@tempdima by\beamer@leftmargin%
  \advance\@tempdima by\beamer@rightmargin%
  % changed code from here
  \begin{beamercolorbox}[sep=0cm,left,wd=\the\@tempdima,leftskip=0.5cm,rightskip=0.5cm]{frametitle}
    \begin{minipage}[c][2cm][c]{\textwidth}
      \usebeamerfont{frametitle}%
      \strut\insertframetitle\strut\par
      \ifx\insertframesubtitle\@empty%
      \else
        {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\insertframesubtitle\strut\par}%
      \fi
    \end{minipage}
  \end{beamercolorbox}%
}
\makeatother

\setbeamerfont{frametitle}{size=\LARGE}
\setbeamerfont{framesubtitle}{size=\normalsize}

\definecolor{salmon}{RGB}{240, 145, 145}
\setbeamercolor{frametitle}{fg=white, bg=salmon}

\begin{document}

\begin{frame}
\frametitle{Frame}
test
\end{frame}

\begin{frame}
\frametitle{Frame Title}
\framesubtitle{Subtitle}  
test
\end{frame}

\begin{frame}
content...
\end{frame}

\end{document}

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

información relacionada