Machen Sie Frametitle und Block in Beamer gleich breit, Versuch 2

Machen Sie Frametitle und Block in Beamer gleich breit, Versuch 2

In einigen meinerBeamer-ThemenIch habe die Antwort beiFrametitle und Block in Beamer gleich breit machen.

Doch jetztein Problemwurde erhoben, was durch das folgende MWE belegt wird:

\documentclass{beamer}
\setbeamertemplate{block begin}{
    \begin{beamercolorbox}[wd=\textwidth, ht=0.5cm, dp=0.2cm, leftskip=0.2cm]{block title}%
    \usebeamerfont*{block title}%
        {\rule[-0.4ex]{0mm}{2ex}\insertblocktitle}%
            \end{beamercolorbox}%
    {\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}%
    \usebeamerfont{block body}%
    \begin{beamercolorbox}[wd=\textwidth, ht=0.5cm, dp=0.2cm, leftskip=0.2cm]{block body}%
        \ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\setbeamertemplate{block end}{
    \end{beamercolorbox}
    \vspace*{.25cm}
}
\setbeamertemplate{frametitle}{
\vspace*{0.3cm}
\begin{beamercolorbox}[wd=\textwidth, dp=0.3cm, ht=0.9cm, leftskip=0.2cm]{frametitle}
      \usebeamerfont{frametitle}\insertframetitle%
\end{beamercolorbox}
}
\setbeamercolor{block title}{bg=yellow}
\setbeamercolor{frametitle}{bg=yellow}

\begin{document}
\begin{frame}{Block}
This is text before the block.
\begin{block}{blocktitle} some text here 
\begin{itemize} 
\item This is an item in the block.
\end{itemize}
This is text after the itemize.
\end{block}
This is text after the block.
\end{frame}
\end{document}

Bildbeschreibung hier eingeben

Wie Sie sehen, geraten Blocktitel, Blocktext und der umgebende Text durcheinander und überlappen sich. Bitte helfen Sie mir, das zu lösen! Es ist auch sehr wichtig, dass das farbige Feld mit dem Rahmentitel und das farbige Feld mit dem Blocktitel (und das farbige Feld mit dem Blocktext, falls vorhanden) die gleiche Breite behalten.

Antwort1

Ich bin ziemlich überzeugt, dass dieser Code Probleme hat, aber er scheint das unmittelbare Problem zu lösen. Die verlinkte Lösung legt eine feste Höhe für den Block fest, die der für die Block- und Rahmentitel festgelegten Höhe entspricht. Sie benötigen keine Aufschlüsselung, um das Problem aufzuzeigen – nur mehrere Textzeilen.

\documentclass{beamer}
\setbeamertemplate{block begin}{
  \vskip\baselineskip
  \begin{beamercolorbox}[wd=\textwidth, ht=0.5cm, dp=0.2cm, leftskip=0.2cm]{block title}%
    \usebeamerfont*{block title}%
    {\rule[-0.4ex]{0mm}{2ex}\insertblocktitle}%
  \end{beamercolorbox}%
  {\nointerlineskip\vskip-0.5pt}%
  \usebeamerfont{block body}%
  \begin{beamercolorbox}[wd=\textwidth, leftskip=0.2cm]{block body}%
    \vskip-.75ex\vbox{}%
  }
  \setbeamertemplate{block end}{
  \end{beamercolorbox}
  \vspace*{.25cm}
}
\setbeamertemplate{frametitle}{
  \vspace*{0.3cm}
  \begin{beamercolorbox}[wd=\textwidth, dp=0.3cm, ht=0.9cm, leftskip=0.2cm]{frametitle}
    \usebeamerfont{frametitle}\insertframetitle%
  \end{beamercolorbox}
}
\setbeamercolor{block title}{bg=yellow}
\setbeamercolor{frametitle}{bg=yellow}

\begin{document}
  \begin{frame}{Block}
    This is text before the block.

    \begin{block}{blocktitle} some text here
      \begin{itemize}
        \item This is an item in the block.
      \end{itemize}
      This is text after the itemize.
    \end{block}
    This is text after the block.
  \end{frame}
\end{document}

Geben Sie dem Blockinhalt etwas Raum zum Atmen

verwandte Informationen