
Estoy haciendo una presentación con Beamer y necesito ayuda con el uso de \only<.> y \boxed{}.
Me gustaría obtener el siguiente efecto:
a=b+c
a=b+c
c=d
a=b+d
c=d
a=b+\encuadrado{d}
c=d
Utilicé el siguiente código pero no me gusta el efecto porque cuando coloca el cuadro alrededor de d también se mueve "c=d". ¿Alguien podría ayudarme a encontrar un código diferente?
\begin{align*}
a=b+\only<1-2>c
\only<3>{d}
\only<4>{\boxed{d}}
\end{align*}
\pause
c=d
Así que me gustaría tener el "d encuadrado" después de que aparezca "a=b+d" sin mover "c=d".
¿Alguien podría ayudarme?
Respuesta1
Primero:no lo usas align
correctamente. Tienes que escribir "c=d" dentro del entorno align
y "pegar" las dos ecuaciones con un &
.
Segundo:debe alinear con precisión "d" correspondiente a las diferencias entre el ancho de d
y \boxed{d}
.
Hay dos soluciones (suponiendo que el marco esté alineado en el centro); Ambos deberían funcionar, pero muestra cómo el segundo es mejor.
\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}
Respuesta2
El problema aquí es que \boxed{d}
tiene un ancho diferente al d
. Desafortunadamente, la solución de Tom Solid parece incómoda con el espacio adicional insertado.
No estoy seguro de dónde viene \boxed
(supongo que el proyector lo carga indirectamente) pero lo encontré definido en varios paquetes como:
\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
(o su equivalente). Al profundizar en las definiciones de, \fbox
hay espacio adicional para \fboxsep
rodear el contenido de la caja dentro de la caja más el ancho de las líneas, que es \fboxrule
. Podemos usar esto para crear un nuevo comando \bxed
(o como prefiera llamarlo) que eliminará el espacio que se ha agregado para que el cuadro se derrame en el espacio en blanco existente d
cuando se imprima.
\newcommand{\bxed}[1]{\mbox{\kern-\fboxsep\kern-fboxrule\boxed{#1}\kern-\fboxsep\kern-fboxrule}}
Esto debería dar el resultado deseado.
Además, el &
entorno align
debería venir.antesel =
y no después de él. Notarás en el ejemplo de Tom que el espacio entreay = es mayor que el espacio entre = yb. Mover el signo comercial soluciona ese problema.