Bearbeiten

Bearbeiten

Ich erstelle mit der beamerKlasse eine Präsentation. Angenommen, ich möchte Folgendes schreiben:

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

Ich habe ein Problem, weil die Gleichung auf Folie 2 länger ist und sich deshalb verschiebt. Wenn ich onlydurch ersetze uncover, entsteht auf Folie 2 ein Leerraum.

Ich habe das gleiche Problem mit der alignUmwelt

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

Wie kann ich einen Teil einer Gleichung durch etwas anderes ersetzen, ohne die Platzierung des anderen Teils der Gleichung zu ändern?

Bearbeiten

Ich werde genauer sein. Ich möchte einen effizienten Weg finden, die rechte Seite einer Gleichheit (für equationoder align) zu ersetzen, ohne zusätzliche Leerzeichen hinzuzufügen und so, dass das Gleichheitszeichen an derselben Stelle bleibt.

Zum Beispiel :

\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}
  • Wenn dies der \somecommandFall ist \only, wird die gesamte Gleichheit von Folie 1 auf Folie 2 verschoben.
  • Wenn dies \somecommandder Fall ist \uncover, entsteht auf Folie 2 ein Leerzeichen zwischen dem Gleichheitszeichen und der Taylor-Erweiterung.
  • Die Verwendung von \hphantom„mit“ \altoder „ mit“ \temporalkönnte eine Lösung sein, aber es scheint sehr kompliziert, es für mehr als zwei Folien zu verwenden.

Antwort1

Es gibt mehrere Möglichkeiten, dies zu tun. Hier ist eine, mit der Sie die fehlenden Werte in der kürzeren Gleichung \phantom{<stuff>}auffüllen können:<stuff>

Bildbeschreibung hier eingeben

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

Die Platzierung \phantom{<stuff>}hängt davon ab, wie Sie den Inhalt untersuchen möchten. Sie können beispielsweise auch versuchen

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

Bildbeschreibung hier eingeben

Siehe auch \temporalimbeamer Dokumentation.


Bei größeren Konstruktionen ist das beste Angebot, das ich machen kann, das größte (horizontal und vertikal) Element im Gleichungssystem zu ermitteln, dieses in einem Makro zu speichern und ein weiteres Makro zur Platzanpassung zu verwenden:

Bildbeschreibung hier eingeben

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

Wenn Sie zwei separate Gleichungen haben, die das „größte“ ergeben, verwenden Sie eine Kombination aus \vphantom(für das höchste/tiefste) und \hphantom(für das breiteste/längste). Hier ist ein solches Beispiel:

Bildbeschreibung hier eingeben

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

Antwort2

Obwohl Werners Lösung eindeutig sauberer ist, finde ich, dass es manchmal eine schnelle und einfache Lösung ist, einfach etwas mehr Abstand in eines der alternativen Overlays einzufügen. Ich habe beispielsweise diesen Code verwendet:

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

}

um Folie 7 von zu erstellendiese Beamer-Präsentation.

Antwort3

Ich habe mein Problem schließlich mit dieser Lösung gelöst (ich weiß, dass sie nicht mit meiner Frage übereinstimmt, weil ich equationoder verwenden wollte 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}

Ich hoffe, das kann jemand anderem helfen ...

verwandte Informationen