
Ich mache eine Präsentation mit Beamer und brauche Hilfe bei der Verwendung von \only<.> und \boxed{}.
Ich möchte folgenden Effekt erzielen:
a = b + c
a = b + c
c=d
a = b + d
c=d
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 align
richtig. Sie müssen "c=d" in die Umgebung schreiben align
und die beiden Gleichungen mit einem "zusammenkleben" &
.
Zweite:Sie müssen „d“ entsprechend den Unterschieden zwischen der Breite von d
und 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}
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, \fbox
gibt es zusätzlichen Platz um \fboxsep
den 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 d
beim 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 align
Umwelt 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.