这是第一帧的代码
\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile, t]{My slides}
\begin{equation*}
\begin{tikzcd}
\text{The starting point}
\arrow{d} \\
\text{first node} \arrow{r} & \text{second node} \arrow{r} & \text{third node}
\end{tikzcd}
\end{equation*}
\end{frame}
\end{document}
请注意,第二个水平箭头比第一个箭头略短。没关系。
现在我再添加一张幻灯片。
\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile, t]{My slides}
\begin{equation*}
\begin{tikzcd}
\text{The starting point}
\arrow{d} \\
\text{first node} \arrow{r} & \text{second node} \arrow{r} & \text{third node}
\end{tikzcd}
\end{equation*}
\end{frame}
\begin{frame}[fragile, t]{My slides}
\begin{equation*}
\begin{tikzcd}
\text{The starting point}
\arrow{d} \\
\text{first node} \arrow{r} & \text{second node} \arrow{r} & \text{third node} \arrow{d} \\
& & \text{our destination}
\end{tikzcd}
\end{equation*}
\end{frame}
\end{document}
突然间,第二个水平箭头的长度变得更长
本质上造成了视觉不一致。
如何确保两个水平箭头的长度相同?(请注意,我不需要使用两个框架显示,我可以使用一个框架显示并使用 \only<1>)
答案1
有一个库可以实现这一点:overlay-beamer-styles
。使用它,您可以避免重复,并且箭头长度不会改变。您需要做的就是添加visible on=<2>
那些只应出现在幻灯片 2 上的元素。
\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}[fragile, t]{My slides}
\begin{equation*}
\begin{tikzcd}
\text{The starting point}
\arrow{d} \\
\text{first node} \arrow{r} & \text{second node} \arrow{r} & \text{third node}
\arrow[visible on=<2->]{d} \\
& & |[visible on=<2->]| \text{our destination}
\end{tikzcd}
\end{equation*}
\end{frame}
\end{document}
答案2
这是一个可能的解决方案。
\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile, t]{My slides}
\begin{equation*}
\begin{tikzcd}
\text{The starting point} \arrow{d} \\
\text{first node} \arrow{r} & \text{second node} \arrow{r} & \text{third node} \only<2>{\arrow{d}} \\
&&%
\only<1>{\text{\color{white}our destination}}%
\only<2>{\text{our destination}}%
\end{tikzcd}
\end{equation*}
\end{frame}
\end{document}