暫停後,Beamer 對公式進行拳擊

暫停後,Beamer 對公式進行拳擊

我正在使用 Beamer 進行演示,需要使用 \only<.> 和 \boxed{} 的幫助。

我想得到如下效果:

  1. a=b+c

  2. a=b+c

    c=d

  3. a=b+d

    c=d

  4. a=b+\盒裝{d}

    c=d

我使用了下面的程式碼,但我不喜歡這種效果,因為當它把盒子放在 d 周圍時,它也會移動「c=d」。有人可以幫我找不同的程式碼嗎?

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

所以我想在“a=b+d”出現後得到“d boxed”而不移動“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從哪裡得到(我猜它是由投影機間接加載的),但我發現它在多個包中定義為:

\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應該來the=而不是在它之後。您會注意到在湯姆的範例中,之間的間距A和= 大於= 和之間的間距。移動 & 符號可以解決該問題。

相關內容