数式の行をアニメーション化して、紙に手で手書きで書いているように見せたいです。
要件
- 数式は、煩雑になるアニメーション デコレータを最小限の数で装飾する必要があります。
- 各フレームでは、方程式の最初の部分が左に留まり、方程式の以降の部分は右に流れます。(最初の部分が中央から始まり、以降の部分が来ると左に押し出されるのではなく)。
また、分数、積分、極限などをアニメーション化することもできます。たとえば、
\frac{a}{b}
はアニメーション化されて が生成されa
、その後に水平線が続き、 が続きますb
。別の例として、\int_a^b
は積分記号としてアニメーション化され、その後に が続き、b
が続きますa
。より移植性を高めるには、使用しないこと
beamer
をお勧めします。
質問
このような要件をどのように達成するのでしょうか? 満足のいくコードを提供してくれた方には 2000 の報奨金を差し上げます。あなたの創造性から生まれた追加機能も歓迎します!
ムウェ
警告: 次のコードは不定に回転します。
\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}
答え1
これは完全な回答ではありませんが、あなたのコメントに対するより長い返信です。あなたのアプローチには理解できない点が数多くありますが、ここではそれを修正する方法を提案します。私の意見では、主なポイントは、Beamer がすでに持っているものを 車輪の再発明\foo
しようとするあなたの試みであるということです。
\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}
編集: 不足していた を追加しました\mathrlap
。神の発明者 (あるいは車輪の再発明者? ;-) に感謝します。
前にも言ったように、これは拡張されたコメントであり、完全な回答ではありません。完全な回答には、これらのマクロをネストできるようにする必要があると思います。上記のツールを使用すると、最初に表示され、次に最後に完全なものが表示される\frac{a\,b}{c}
ような方法で記述できます。しかし、それは面倒です。a
b
想像するループを使ってもっと自動化されたバージョンを作ることもできますが、これはおそらく脆弱です。そこでここで止めておきます。