我有类似的问题这个,只是我用的是tikz-cd
而不是tikz
。
这是一个简单的例子:
\begin{frame}
\begin{tikzcd}[ampersand replacement=\&]
1{\uncover<2->{\arrow{r}}}\&2
\end{tikzcd}
\end{frame}
这将有两张幻灯片,均带有箭头。删除将{...}
导致错误:
Giving up on this path. Did you forget a semicolon?
使用\only
Instead of\uncover
确实有效,但是会在更大的图表中移动事物,而这是我不想要的。
有没有一种解决方法,不需要将我所有的tikz-cd
图表都转换成tikzpicture
s?
答案1
使用visible on
样式:
\documentclass{beamer}
\usepackage{tikz-cd}
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt={#1{}{invisible}}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
}
}
\begin{document}
\begin{frame}
\begin{tikzcd}[ampersand replacement=\&]
1 \arrow[visible on=<2->,r]\arrow[visible on=<3>,d] \& 2\arrow[visible on=<2->,d] \\
3 \arrow[visible on=<3>,r] \& 4
\end{tikzcd}
\end{frame}
\end{document}