Ich möchte Gleichungsreihen so animieren, dass sie aussehen, als wären sie mit der Hand auf ein Blatt Papier geschrieben.
Anforderungen
- Die Gleichungen müssen mit einer minimalen Anzahl an animierenden Dekoratoren dekoriert werden.
- In jedem Frame bleibt der erste Teil einer Gleichung links und die nachfolgenden Teile der Gleichungen fließen nach rechts. (Anstatt dass der erste Teil in der Mitte beginnt und nach links geschoben wird, wenn die nachfolgenden Teile kommen).
wir können auch Brüche, Integrale, Grenzwerte usw. animieren. Beispielsweise
\frac{a}{b}
wird animiert, um zu erzeugen,a
gefolgt von einer horizontalen Linie und gefolgt vonb
. Ein anderes Beispiel\int_a^b
wird als Integralzeichen animiert, gefolgt von ,b
worauf folgta
.Um es portabler zu machen,
beamer
ist es besser, es nicht zu verwenden.
Frage
Wie kann man solche Anforderungen erfüllen? Ich werde eine Belohnung von 2000 für diejenigen ausloben, die mir einen zufriedenstellenden Code liefern können. Alle zusätzlichen Funktionen aus Ihrer Kreativität sind ebenfalls willkommen!
MWE
Warnung: Der folgende Code wird endlos wiederholt.
\documentclass[12pt]{beamer}
\usepackage{amsmath}
\usepackage[active,tightpage]{preview}
\PreviewBorder=12pt\relax
\PreviewEnvironment{align*}
\newcounter{counter}
\newcommand{\foo}[1]{\stepcounter{counter}\only<\thecounter->{#1}}
\begin{document}
\begin{frame}
\begin{align*}
\foo{a}\foo{+b}&\foo{=1}\\
\foo{\frac{1}{2}}\foo{+\frac{3}{2}}\foo{&=2}% I don't know whether "&" should be outside or inside "\foo".
\end{align*}
\end{frame}
\end{document}
Antwort1
Dies ist keine vollständige Antwort, sondern eine längere Erwiderung auf Ihren Kommentar. Es gibt viele Dinge an Ihrem Ansatz, die ich nicht verstehe, und hier ist ein Vorschlag, wie man sie beheben kann. Der Hauptpunkt ist meiner Meinung nach, dass Sie versuchen, das Rad\foo
neu zu erfinden , was Beamer bereits getan hat.
\documentclass[12pt,beamer,preview,multi={gather*}]{standalone}
\usepackage{amsmath,mathtools}
\newcommand{\foo}[1]{\visible<+->{#1}}
\newcommand{\foop}[1]{\only<+>{#1}}
\newcommand{\foopp}[1]{\only<+->{#1}}
\newcommand{\fooint}[2]{\foop{\mathrlap{\int\limits_{\phantom{#1}}^{\phantom{#2}}}}%
\foop{\mathrlap{\int\limits_{#1}^{\phantom{#2}}}}%
\foo{\int\limits_{#1}^{#2}}}
\newcommand{\foofrac}[2]{\foop{\mathrlap{\genfrac{}{}{0pt}{0}{#1}{\phantom{#2}}}}%
\foop{\mathrlap{\frac{#1}{\phantom{#2}}}}%
\foo{\frac{#1}{#2}}}
\begin{document}
\begin{standaloneframe}%\show\genfrac
\begin{gather*}
\foo{a}\foo{+}\foo{b}\foo{=}\foo{1}\\
\fooint{a}{b}\foo{f}\foo{(}\foo{x}\foo{)}
\foo{\,\mathsf{d}}\foo{x}\foo{=}\foo{2}\\
\foofrac{a}{b}
\foo{=}
\foofrac{c}{d}\\[1cm]
\end{gather*}
\end{standaloneframe}
\end{document}
BEARBEITEN: Ein fehlendes hinzugefügt \mathrlap
, Dank an den Erfinder Gottes (oder Neuerfinder des Rades? ;-)!
Wie gesagt, dies ist ein ausführlicher Kommentar, keine vollständige Antwort. Ich denke, eine vollständige Antwort muss es ermöglichen, diese Makros zu verschachteln. Mit den oben genannten Tools könnte man so etwas schreiben, \frac{a\,b}{c}
dass zuerst a
, dann und schließlich das Ganze erscheint b
. Aber das wäre umständlich. Ich könntevorstelleneine stärker automatisierte Version mit Schleifen zu entwickeln, aber diese wird höchstwahrscheinlich instabil sein. Also höre ich hier auf.