Beamer encajona una fórmula después de una pausa

Beamer encajona una fórmula después de una pausa

Estoy haciendo una presentación con Beamer y necesito ayuda con el uso de \only<.> y \boxed{}.

Me gustaría obtener el siguiente efecto:

  1. a=b+c

  2. a=b+c

    c=d

  3. a=b+d

    c=d

  4. 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 aligncorrectamente. Tienes que escribir "c=d" dentro del entorno aligny "pegar" las dos ecuaciones con un &.

Segundo:debe alinear con precisión "d" correspondiente a las diferencias entre el ancho de dy \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}

ingrese la descripción de la imagen aquí

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, \fboxhay espacio adicional para \fboxseprodear 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 dcuando 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 aligndeberí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.

información relacionada