\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile, t]{My slides}
\only<1>{
\begin{equation*}
\begin{tikzcd}
a
\end{tikzcd}
\end{equation*}}
\only<2>{
\begin{equation*}
\begin{tikzcd}
a \arrow{r} & b
\end{tikzcd}
\end{equation*}}
\end{frame}
\end{document}
我想要的只是先显示“a”,然后显示指向 b 的 a,就像这样“a->b”(而且必须使用 Tikz-cd!)。但是 Tikzcd 使这变得不可能,因为我收到以下错误:
包 pgf 错误:单个 & 符号与错误的 catcode 一起使用。
请参阅 pgf 包文档以了解解释。键入 H 可立即获得帮助。...
l.13 \end{equation*}} 此错误消息由 \errmessage 命令生成,因此我无法提供任何明确帮助。假设您是 Hercule Poirot:检查所有线索,并按顺序和方法推断真相。
有什么方法可以解决这个问题?当 & 位于其自己的框架中时,它工作正常。但是当我将它放入 \only 块中时,事情就变得疯狂了。
我以为[脆弱]应该可以防止这些事情发生!
答案1
普通的 & 符号 ( &
) 与 不能很好地配合使用beamer
,因此您必须更改它。我将其更改为\&
。
\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile, t]{My slides}
\only<1>{
\begin{equation*}
\begin{tikzcd}
a
\end{tikzcd}
\end{equation*}}
\only<2>{
\begin{equation*}
\begin{tikzcd}[ampersand replacement=\&]
a \arrow{r} \& b
\end{tikzcd}
\end{equation*}}
\end{frame}
\end{document}