Beamer boxt eine Formel nach einer Pause

Beamer boxt eine Formel nach einer Pause

Ich mache eine Präsentation mit Beamer und brauche Hilfe bei der Verwendung von \only<.> und \boxed{}.

Ich möchte folgenden Effekt erzielen:

  1. a = b + c

  2. a = b + c

    c=d

  3. a = b + d

    c=d

  4. a = b + \ boxed {d}

    c=d

Ich habe den folgenden Code verwendet, aber mir gefällt der Effekt nicht, denn wenn ich die Box um d platziere, bewegt sie sich auch „c=d“. Kann mir jemand helfen, einen anderen Code zu finden?

\begin{align*}
a=b+\only<1-2>c
\only<3>{d}
\only<4>{\boxed{d}}
\end{align*}
\pause
c=d

Ich möchte also das „d eingerahmt“ erhalten, nachdem „a=b+d“ erscheint, ohne dass „c=d“ verschoben wird.

Kann mir jemand helfen?

Antwort1

Erste:Sie verwenden es nicht alignrichtig. Sie müssen "c=d" in die Umgebung schreiben alignund die beiden Gleichungen mit einem "zusammenkleben" &.

Zweite:Sie müssen „d“ entsprechend den Unterschieden zwischen der Breite von dund genau ausrichten \boxed{d}.

Es gibt zwei Lösungen (vorausgesetzt, der Rahmen ist zentriert); beide sollten funktionieren, aber irgendwie ist die zweite besser.

\documentclass{beamer}

% For both solutions
\usepackage{calc}

% Just for the second solution
\newlength{\firslength}
\settowidth{\firslength}{\boxed{d}}
\newlength{\secondlength}
\settowidth{\secondlength}{d}

\begin{document}

\begin{frame}

% First solution
\begin{align*}
a=&b+\only<1-2>{\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}c\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}}%
\only<3>{\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}d\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}}%
\only<4>{\boxed{d}}\\%
\uncover<2->{c=&d}%
\end{align*}

% Second solution
\begin{align*}
a=&b+\only<1-2>{\hspace*{\dimexpr(\firslength-\secondlength)/2}c\hspace{\dimexpr(\firslength-\secondlength)/2}}%
\only<3>{\hspace*{\dimexpr(\firslength-\secondlength)/2}d\hspace{\dimexpr(\firslength-\secondlength)/2}}%
\only<4>{\boxed{d}}\\%
\uncover<2->{c=&d}%
\end{align*}

\end{frame}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Das Problem hierbei ist, dass \boxed{d}eine andere Breite als hat d. Die Lösung von Tom Solid sieht mit dem eingefügten zusätzlichen Abstand leider seltsam aus.

Ich bin nicht sicher, woher Sie das haben \boxed(ich vermute, es wird indirekt von Beamer geladen), aber ich habe es in mehreren Paketen wie folgt definiert gefunden:

\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}

(oder das Äquivalent). Wenn wir uns die Definitionen ansehen, \fboxgibt es zusätzlichen Platz um \fboxsepden Inhalt der Box herum innerhalb der Box plus die Breite der Linien, die ist \fboxrule. Wir können dies verwenden, um einen neuen Befehl zu erstellen \bxed(oder wie auch immer Sie ihn nennen möchten), der den hinzugefügten Platz entfernt, sodass die Box dbeim Drucken in den vorhandenen weißen Raum hineinragt.

\newcommand{\bxed}[1]{\mbox{\kern-\fboxsep\kern-fboxrule\boxed{#1}\kern-\fboxsep\kern-fboxrule}}

Dies sollte das gewünschte Ergebnis liefern.

Auch die &in der alignUmwelt kommen sollteVordas =und nicht danach. Sie werden in Toms Beispiel feststellen, dass der Abstand zwischenAund = ist größer als der Abstand zwischen = undB. Das Verschieben des Et-Zeichens behebt dieses Problem.

verwandte Informationen