当其内容被包含嵌套的\visible
所包围时如何使用?multlined
\visible
平均能量损失
以下 MWE 因 而无法编译multlined
。
\documentclass[12pt,beamer,preview,multi={math},border=12pt]{standalone}
\usefonttheme[onlymath]{serif}
\usepackage{mathtools}
\newcommand{\foo}[1]{\visible<+->{#1}}
\begin{document}
\begin{standaloneframe}
\begin{math}
\displaystyle
\begin{aligned}
\foo{\int_a^b}\foo{f(x)}\foo{\, \mathrm{d}x}
\foo{&=}\foo{F(b)}\foo{-F(a)}\\
\foo{&=}\foo{\cos a}\foo{\sin b}\foo{+}\foo{\sin a }\foo{\cos b}\\
\foo{&=}
\foo{\begin{multlined}[t]}
\foo{ax^4}\foo{+bx^3}\\\foo{+cx^2}\foo{+dx}\foo{+e}\\
\foo{\end{multlined}}
\end{aligned}
\end{math}
\end{standaloneframe}
\end{document}
上面的代码是从 Marmot 的想法中窃取的。
编辑
如果我删除foo
和的\begin{multlined}
,\end{multlined}
就会插入空白帧,如下面的动画所示。一些延迟代表空白帧。
\documentclass[12pt,beamer,preview,multi={math},border=12pt]{standalone}
\usefonttheme[onlymath]{serif}
\usepackage{mathtools}
\newcommand{\foo}[1]{\visible<+->{#1}}
\begin{document}
\begin{standaloneframe}
\begin{math}
\displaystyle
\begin{aligned}
\foo{\int_a^b}\foo{f(x)}\foo{\, \mathrm{d}x}
\foo{&=}\foo{F(b)}\foo{-F(a)}\\
\foo{&=}\foo{\cos a}\foo{\sin b}\foo{+}\foo{\sin a }\foo{\cos b}\\
\foo{&=}
\begin{multlined}[t]
\foo{ax^4}\foo{+bx^3}\\\foo{+cx^2}\foo{+dx}\foo{+e}\\
\end{multlined}
\end{aligned}
\end{math}
\end{standaloneframe}
\end{document}
答案1
这是两个问题的结合:
\begin{}
环境的和必须\end{}
位于同一覆盖层上multiline
处理代码两次。如果将此与 结合使用,则会出现问题,<+->
因为创建的覆盖层数量是必要数量的两倍。
我建议采取以下解决方法:
\documentclass[12pt,beamer,preview,multi={math},border=12pt]{standalone}
\usefonttheme[onlymath]{serif}
\usepackage{mathtools}
\newcommand{\foo}[1]{\visible<+->{#1}}
\begin{document}
\begin{standaloneframe}
\begin{math}
\displaystyle
\begin{aligned}
\foo{\int_a^b}\foo{f(x)}\foo{\, \mathrm{d}x}
\foo{=&}\foo{F(b)}\foo{-F(a)}\\
\foo{=&}\foo{\cos a}\foo{\sin b}\foo{+}\foo{\sin a }\foo{\cos b}\\
\foo{=& }
\foo{ ax^4}\foo{+bx^3}\\
\foo{&+cx^2}\foo{+dx}\foo{+e}\\
\end{aligned}
\end{math}
\end{standaloneframe}
\end{document}