編集

編集

クラスでプレゼンテーションを作成していますbeamer。次のように書きたいとします。

\begin{equation}
    f(x) 
    \only<1>{= \cos(x)}
    \only<2>{= 2\cos(x)}
\end{equation}

スライド 2 では、方程式が長く、そのため方程式が移動してしまうという問題があります。onlyを に置き換えるとuncover、スライド 2 に空白ができてしまいます。

align環境に関しても私は同じ問題を抱えている

\begin{align}
    f(x) &= \exp(x)\\
    \only<2>{&= \cos(x)}
    \only<3>{&= 2\cos(x)}
\end{align}

方程式の他の部分の配置を変更せずに、方程式の一部を他のものに置き換えるにはどうすればよいですか?

編集

もっと正確に言うと、余分な空白を追加せずに等号の右側 (equationまたは) を置き換え、等号を同じ場所に保つ効率的な方法を見つけたいと思います。align

例えば ​​:

\begin{equation}
    \cos(x) = 
    \somecommand<1>{\dfrac{\exp{ix}+\exp{-ix}}{2}}
    \somecommand<2>{\sum_{n=0}^{\infty}\dfrac{(-1)^{n}}{2n+1}x^{2n+1}}
    ...
    \somecommand<n>{some other equality with a given lenght}
\end{equation}
  • \somecommandの場合\only、等式全体がスライド 1 から 2 に移動します。
  • \somecommandの場合\uncover、スライド 2 の等号とテイラー展開の間に空白ができます。
  • または\hphantomを使用することは解決策になるかもしれませんが、2つ以上のスライドで使用するのは非常に複雑に思えます。\alt\temporal

答え1

これを行う方法はいくつかあります。以下は、短い方程式の\phantom{<stuff>}欠落部分を補うために使用する方法の 1 つです。<stuff>

ここに画像の説明を入力してください

\documentclass{beamer}
\usepackage{amsmath}
\begin{document}

\begin{frame}
  \frametitle{A frame}

  \begin{equation}
    f(x) =
      \only<1>{\cos(x)\phantom{2}}
      \only<2>{2\cos(x)}
  \end{equation}

\end{frame}

\end{document}

の配置は、\phantom{<stuff>}コンテンツをどのように調べるかによって異なります。たとえば、次のようにすることもできます。

f(x) = \alt<2>{2}{\phantom{2}}\cos(x)

ここに画像の説明を入力してください

以下も\temporal参照beamer ドキュメンテーション


より大きな構造の場合、私ができる最善の提案は、方程式セット内の最大の要素 (水平方向と垂直方向) を識別し、これをマクロに保存し、別のマクロをスペース調整として使用することです。

ここに画像の説明を入力してください

\documentclass{beamer}
\usepackage{amsmath}
\newcommand{\inserteqstrut}[1]{%
  \rlap{$\displaystyle#1$}%
  \phantom{\biggesteq}}
\begin{document}

% Store biggest equation in set
\newcommand{\biggesteq}{\sum_{n=0}^{\infty}\dfrac{(-1)^{n}}{2n+1}x^{2n+1}}

\begin{frame}
  \frametitle{A frame}

  \begin{equation}
    \cos(x) = 
    \only<1>{\inserteqstrut{\dfrac{\exp{ix}+\exp{-ix}}{2}}}
    \only<2>{\inserteqstrut{\biggesteq}}
    \only<3>{\inserteqstrut{\text{some equality}}}
  \end{equation}

\end{frame}

\end{document}

「最大」を構成する 2 つの別々の方程式がある場合は、\vphantom(最も高い/最も深い) と\hphantom(最も広い/最も長い) の組み合わせを使用します。次に例を示します。

ここに画像の説明を入力してください

\documentclass{beamer}
\usepackage{amsmath}
\newcommand{\inserteqstrut}[1]{%
  \rlap{$\displaystyle#1$}%
  \phantom{\biggesteq}}
\begin{document}

% Store biggest equation in set
\newcommand{\biggesteq}{%
  \vphantom{\sum_{n=0}^{\infty}n}% tallest/deepest
  \hphantom{\text{some other equality}}}% longest/widest

\begin{frame}
  \frametitle{A frame}

  \begin{equation}
    \cos(x) = 
    \only<1>{\inserteqstrut{\tfrac{\exp{ix}+\exp{-ix}}{2}}}
    \only<2>{\inserteqstrut{\sum_{n=0}^{\infty}n}}
    \only<3>{\inserteqstrut{\text{some other equality}}}
  \end{equation}

\end{frame}

\end{document}

答え2

Werner のソリューションの方が明らかにすっきりしていますが、代替オーバーレイの 1 つに余分なスペースを挿入するだけで、手っ取り早く簡単に解決できる場合もあると思います。たとえば、次のコードを使用しました。

\frame{
  \frametitle{What: the Perron method}

  We split coordinates $x = (x_+, x_-)$%
\uncover<2->{, change the initial time $t_0$ in the unstable part}
\uncover<3->{and let $t_0 \to \infty$}
  \begin{alignat*}{2}
    x_+(t) &\mapsto
              \only<1  |handout:0>{e^{t\,A_+} \cdot x_+(0)\hspace{0.86cm}}
              \only<2-3|handout:0>{e^{(t-\alert{t_0})\,A_+} \cdot x_+(\alert{t_0})}
              \only<4-           >{\qquad\alert{\ldots}\hspace{1.59cm}}
           && \only< -3|handout:0>{+}
              \only<4-           >{-\,}
              \int_{\only<1  |handout:0>{0}
                    \only<2-3|handout:0>{\alert{\smash{t_0}}\!\!}
                    \only<4-           >{t}}
                  ^{\only<1-3|handout:0>{\smash{t}}
                    \only<4-           >{\alert{\smash{\infty}}}\!\!\!\!}
                  e^{(t-\tau)\,A_+} \cdot r_+((x_+,x_-)(\tau)) \d\tau,\\
    x_-(t) &\mapsto
              e^{t\,A_-} \cdot x_-(0)
           &&+\int_{0\,}^t e^{(t-\tau)\,A_-} \cdot r_-((x_+,x_-)(\tau)) \d\tau.
  \end{alignat*}
  \uncover<3->{%
    We consider this rewritten map $T$ for bounded curves
    $x \in B(\R;\R^n)$ only.
  }

}

スライド7を作成するこのビーマープレゼンテーション

答え3

equation私は最終的にこの解決策を使用して問題を解決しました(またはを使用したかったため、私の質問と一致していないことはわかっていますalign

\documentclass{beamer}
\usepackage{amsmath,amssymb}
\renewcommand*{\a}[1]{\hat a_{#1}^{\vphantom{\dagger}}}
\newcommand*{\ad}[1]{\hat a_{#1}^{\dagger}}
\renewcommand*{\c}[1]{\hat{c}_{#1}^{\vphantom{\dagger}}}
\newcommand*{\cd}[1]{\hat{c}_{#1}^{\dagger}}
\renewcommand*{\H}{\hat{H}}
\newcommand*{\T}{\hat{T}}
\newcommand*{\dsum}[1]{\displaystyle\sum_{#1}}
\newcommand*{\dsumd}[3]{\displaystyle\sum_{#1=#2}^{#3}}
\newcommand*{\dprod}[1]{\displaystyle\prod_{#1}}
\newcommand*{\dprodd}[3]{\displaystyle\prod_{#1=#2}^{#3}}
\newcommand*{\dbigotimesd}[3]{\displaystyle\bigotimes_{#1=#2}^{#3}}
\newcommand*{\dbigoplusd}[3]{\displaystyle\bigoplus_{#1=#2}^{#3}}
\newcommand*{\ket}[1]{\left|#1\right>}
\newcommand*{\ep}[1]{\left(#1\right)}
\renewcommand*{\vec}[1]{\mathbf{#1}}
\renewcommand*{\det}[1]{\mathrm{det}\ep{#1}}

\begin{document}
\begin{frame}
    \begin{minipage}[h]{0.4\linewidth}
    $
    \T
    \only<1>{= \dbigoplusd{\alpha}{1}{N}\hat{T}_{\alpha}}
    \only<2-3>{= \dbigoplusd{\alpha}{1}{N}\hat{\vec{a}}^{\dagger}_{\alpha}T\hat{\vec{a}}^{\vphantom{\dagger}}_{\alpha}}
    \only<4->{= \dbigoplusd{\alpha}{1}{N}\dsumd{i}{1}{n}\omega_{i\alpha}\cd{i\alpha}\c{i\alpha}}
    $
    \end{minipage}
    \hfill
    \begin{minipage}[h]{0.5\linewidth}
        \uncover<3->{
        \begin{align*}
            \cd{i\alpha} &= \dsumd{j}{1}{n}U_{ji}^{\alpha}\ad{j\alpha} &
            \omega_{i\alpha} &< \omega_{i+1\alpha}
        \end{align*}
        }
    \end{minipage}
    \uncover<5->{
    $
    \uncover<6->{\ket{\Psi_{G}}= }
    \only<5->{\uncover<6->{\hat{P}_{G}^{m}}\ket{\Psi}}
    \uncover<5->{=\uncover<6->{\hat{P}_{G}^{m}}\dbigotimesd{\alpha}{1}{N}\dprodd{i}{1}{mn/N}\alt<5-6>{\c{i\alpha}}{\dsumd{j}{1}{n}U_{ji}^{\alpha}\ad{j\alpha}}\ket{0}}
    \only<10->{\equiv \dsum{\mathcal{C}}\det{U_{\mathcal{C}}}\ket{\mathcal{C}}}
    $
    }
    \begin{center}
    \uncover<8->{
    $
    \ket{\mathcal{C}} \equiv \dbigotimesd{\alpha}{1}{N}\dprodd{i}{1}{mn/N}\ad{i_{\alpha}\alpha}\ket{0}
    $
    }
    \uncover<9->{
    $
    \dsumd{\alpha}{1}{N}\ad{i\alpha}\a{i\alpha}\ket{\mathcal{C}} = m 
    \qquad
    \dsumd{i}{1}{n}\ad{i\alpha}\a{i\alpha}\ket{\mathcal{C}} = \dsumd{i}{1}{n}\ad{i\beta}\a{i\beta}\ket{\mathcal{C}} 
    $
    }
    \end{center}
\end{frame}
\end{document}

これが他の誰かの役に立つことを願っています...

関連情報