Бимер боксирует формулу после паузы

Бимер боксирует формулу после паузы

Я делаю презентацию с помощью Beamer и мне нужна помощь с использованием \only<.> и \boxed{}.

Я хотел бы получить следующий эффект:

  1. а=б+в

  2. а=б+в

    с=д

  3. а=б+д

    с=д

  4. а=b+\boxed{d}

    с=д

Я использовал следующий код, но мне не нравится эффект, потому что когда он помещает рамку вокруг d, она также перемещается "c=d". Может ли кто-нибудь помочь мне найти другой код?

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

Поэтому я хотел бы поместить «d» в рамку после того, как появится «a=b+d», не перемещая «c=d».

Может ли кто-нибудь мне помочь?

решение1

Первый:вы не используете alignправильно. Вам нужно написать "c=d" внутри окружения alignи "склеить" два уравнения с помощью &.

Второй:вам необходимо точно выровнять «d» в соответствии с разницей между шириной dи \boxed{d}.

Есть два решения (при условии, что рамка выровнена по центру); оба должны работать, но почему-то второе лучше.

\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}

введите описание изображения здесь

решение2

Проблема здесь в том, что \boxed{d}имеет другую ширину, чем d. К сожалению, решение Тома Солида выглядит неуклюже из-за вставленного дополнительного интервала.

Я не уверен, откуда вы это взяли \boxed(думаю, он загружается косвенно с помощью beamer), но я обнаружил, что он определен в нескольких пакетах как:

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

(или его эквивалент). Покопавшись в определениях, \fboxесть дополнительное пространство, \fboxsepокружающее содержимое блока внутри блока плюс ширина линий, которая составляет \fboxrule. Мы можем использовать это, чтобы создать новую команду \bxed(или как вы предпочитаете ее называть), которая удалит добавленное пространство, так что блок перейдет в существующее белое пространство вокруг dпри печати.

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

Это должно дать желаемый результат.

Также &в alignокружающую среду следует входитьдои не после него =. Вы заметите в примере Тома, что интервал междуаи = больше, чем интервал между = иб. Перемещение амперсанда решает эту проблему.

Связанный контент