投影机中带有暂停的交换图

投影机中带有暂停的交换图

我有两个问题:

  • 是否可以\pause在交换图上添加命令,我想在说话时显示每个箭头。

  • 我怎样才能改变箭头方向,例如我想要的$A \leftarrow B$

\documentclass{beamer}

\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile]
\begin{center}
\begin{tikzcd}
A\arrow{r}{e}\arrow{d}[swap]{f} & B\arrow{d}{g} \\
C\arrow{r}[swap]{h} & D \\
\end{tikzcd}
\end{center}
\end{frame}

\end{document}

答案1

正如解释的那样这个答案fragile,使用框架的选项不允许使用覆盖,作为您可以用来ampersand replacement=\&克服错误的替代方案。

visible onps:我在这里某处看到了这个技巧。

以下代码在切换箭头位置后保留箭头标签的位置,切换是逐步完成的(一次一个箭头),并且出现的顺序相同。

\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=\&]
A \arrow[visible on=<2-5>]{r}{e} \arrow[visible on=<5-8>]{d}[swap]{f} \&
  \arrow[visible on=<6->]{l}[swap]{e} B \arrow[visible on=<3-6>]{d}{g} \\ 
\arrow[visible on=<9->]{u}{f} C \arrow[visible on=<4-7>]{r}[swap]{h} \& 
\arrow[visible on=<8->]{l}[swap]{h} D \arrow[visible on=<7->]{u}[swap]{g}
\end{tikzcd}
\end{frame}
\end{document}

命令的顺序很重要,以确保问题的第二部分(关于改变箭头方向)没有错误。

如果您也想切换标签位置,请用以下代码片段替换:

\begin{tikzcd}[ampersand replacement=\&]
A \arrow[visible on=<2-5>]{r}{e} \arrow[visible on=<5-8>]{d}[swap]{f} \&
  \arrow[visible on=<6->]{l}{e} B \arrow[visible on=<3-6>]{d}{g} \\ 
\arrow[visible on=<9->]{u}[swap]{f} C \arrow[visible on=<4-7>]{r}[swap]{h} \& 
\arrow[visible on=<8->]{l}[swap]{h} D \arrow[visible on=<7->]{u}{g}
\end{tikzcd}
  • 同时切换箭头方向,并将标签位置保持在外面(如果您也想反转它们,请[swap]根据箭头位置使用/删除)。

代码:

\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=\&]
A \arrow[visible on=<2-5>]{r}{e} \arrow[visible on=<5>]{d}[swap]{f} \&
  \arrow[visible on=<6->]{l}[swap]{e} B \arrow[visible on=<3-5>]{d}{g} \\ 
\arrow[visible on=<6->]{u}{f} C \arrow[visible on=<4-5>]{r}[swap]{h} \& 
\arrow[visible on=<6->]{l}{h} D \arrow[visible on=<6->]{u}[swap]{g}
\end{tikzcd}
\end{frame}

\end{document}

这里也是一样,如果您想切换标签位置,请用这个 ocde 片段替换:

\begin{tikzcd}[ampersand replacement=\&]
A \arrow[visible on=<2-5>]{r}{e} \arrow[visible on=<5>]{d}[swap]{f} \&
  \arrow[visible on=<6->]{l}{e} B \arrow[visible on=<3-5>]{d}{g} \\ 
\arrow[visible on=<6->]{u}[swap]{f} C \arrow[visible on=<4-5>]{r}[swap]{h} \& 
\arrow[visible on=<6->]{l}[swap]{h} D \arrow[visible on=<6->]{u}{g}
\end{tikzcd}

相关内容