
Betrachten Sie den folgenden Code eines Beamer-Frames:
\begin{frame}{Test}
\begin{block}{Single column}
\justifying
This is a block.
\end{block}
\begin{columns}[onlytextwidth]
\begin{column}{0.45\textwidth}
\begin{exampleblock}{Left}
\justifying
This is the first column.
\end{exampleblock}
\end{column}
\begin{column}[right]{0.45\textwidth}
\begin{exampleblock}{Right}
\justifying
This is the second column.
\end{exampleblock}
\end{column}
\end{columns}
\end{frame}
Das Ergebnis ist wie folgt:
Das Problem besteht darin, dass der rechte Block nicht rechtsbündig mit der vollen Textbreite ausgerichtet ist.
Wie richtet man es richtig aus?
BEARBEITEN:
Ich lade folgende Pakete:
\usepackage{marvosym} %
\usepackage{ragged2e} % define justifying
\usepackage{hyperref} %
\usepackage{transparent} %
Antwort1
\strut
Wie @barbarabeeton in einem Kommentar bemerkt hat, erweist es sich als notwendig, etwas wie -- \mathstrut
geht auch -- in die linke Umgebung einzufügen exampleblock
, also in die Umgebung, die das Wort enthält Left
, das keine Buchstaben mit Unterlängen enthält -- wohingegen Right
dies der Fall ist.
Im LaTeX-Kernel \strut
ist als Nullbreite definiert und somit eine unsichtbare vertikale Linie mit Höhe 0.7\baselineskip
und Tiefe 0.3\baselineskip
; seine Gesamthöhe ist daher gleich \baselineskip
. Im Gegensatz dazu \mathstrut
ist die Gesamthöhe von a die des )
Zeichens. A \strut
ist daher etwas höher als a \mathstrut
. So oder so verleihen sowohl \strut
als auch \mathstrut
dem linken Block genügend Tiefe.
Generell kann es notwendig sein, Streben vorzusehen inbeidedie linken und rechten Beispielblockumgebungen, insbesondere wenn ein Block Wörter mit Oberlängen, aber ohne Unterlängen enthält (z. B. left
, black
) und der andere Wörter mit Unterlängen, aber ohne Oberlängen enthält (z. B. green
, uvwxyz
).
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{marvosym} %
\usepackage{ragged2e} % define justifying
\usepackage{transparent} %
\usepackage{hyperref} %
\begin{document}
\begin{frame}{Test}
\begin{block}{Single column}
\justifying
This is a block.
\end{block}
\begin{columns}[onlytextwidth]
\begin{column}{0.45\textwidth}
\begin{exampleblock}{Left\strut}
\justifying
This is the first column.
\end{exampleblock}
\end{column}
\begin{column}{0.45\textwidth}
\begin{exampleblock}{Right}
\justifying
This is the second column.
\end{exampleblock}
\end{column}
\end{columns}
\end{frame}
\end{document}
Antwort2
\documentclass{beamer}
\usetheme{Boadilla}
\newsavebox{\squaredblocktext}
\setbeamertemplate{block begin}{
\par\vskip\medskipamount%
\makebox[\dimexpr\textwidth-1.5ex\relax][l]{%
\begin{beamercolorbox}[colsep*=.75ex]{block title}
\usebeamerfont*{block title}\insertblocktitle%
\end{beamercolorbox}}%
\begin{lrbox}{\squaredblocktext}%
\begin{minipage}[t]{\textwidth}%
\ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\setbeamertemplate{block end}{
\end{minipage}%
\end{lrbox}%
{\parskip0pt\par}%
\ifbeamercolorempty[bg]{block title}{}
{\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}%
\usebeamerfont{block body}%
\makebox[\dimexpr\textwidth-1.5ex\relax][l]{%
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
\usebox{\squaredblocktext}
\end{beamercolorbox}%
}\vskip\smallskipamount%
}
\setbeamertemplate{block example begin}{
\par\vskip\medskipamount%
\makebox[\dimexpr\textwidth-1.5ex\relax][l]{%
\begin{beamercolorbox}[colsep*=.75ex]{block title example}
\usebeamerfont*{block titleexample}\insertblocktitle%
\end{beamercolorbox}}%
\begin{lrbox}{\squaredblocktext}%
\begin{minipage}[t]{\textwidth}%
\ifbeamercolorempty[bg]{block body example}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\setbeamertemplate{block example end}{
\end{minipage}%
\end{lrbox}%
{\parskip0pt\par}%
\ifbeamercolorempty[bg]{block title example}{}
{\ifbeamercolorempty[bg]{block body example}{}{\nointerlineskip\vskip-0.5pt}}%
\usebeamerfont{block body example}%
\makebox[\dimexpr\textwidth-1.5ex\relax][l]{%
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body example}%
\usebox{\squaredblocktext}
\end{beamercolorbox}%
}\vskip\smallskipamount%
}
\begin{document}
\begin{frame}{Test}
\begin{block}{Single column}
This is a block.
\end{block}
\begin{columns}[onlytextwidth]
\begin{column}{0.45\textwidth}
\begin{exampleblock}{Left}
This is the first column.
\end{exampleblock}
\end{column}
\begin{column}{0.45\textwidth}
\begin{exampleblock}{Right}
This is the second column.
\end{exampleblock}
\end{column}
\end{columns}
\end{frame}
\end{document}