如何在智能图表(描述图)中添加箭头

如何在智能图表(描述图)中添加箭头

我有一张智能图表:

\begin{frame}
    \begin{center}
      \smartdiagramanimated[descriptive diagram]{
      {Style},
  {Style,{Define shapes, colors, shading,
          and line styles for nodes and arrows}},
  {Position, {Place nodes using a matrix,
              relative or absolute positioning}},
  {Relation, Insert edges or arrows
             between selected nodes},
  {Label, Add labels on edges or arrows}}
    \end{center}
\end{frame}

生成下图: 在此处输入图片描述

但我的问题是我想要两样东西:

1-我希望第一个“样式”项是像下面的矩形,而不是像那样的圆形并位于中心。

2- 是否有可能在这个特定的描述图中添加箭头,将每个圆圈和矩形与下一个圆圈和矩形链接起来,也许这样的内容会有所帮助: 在此处输入图片描述

答案1

如果使用其中指示的名称,leandris 链接中的方法确实有效。让我先介绍一个版本,在这个版本中,我们通过覆盖它来摆脱不需要的节点。(下面有一个替代方案,可以说它更优雅,但也更“黑客化”,如果软件包作者将计数器从更改为\xi其他可能不是希腊字母的东西,它将停止以当前形式工作。)

\documentclass{beamer}
\usepackage{smartdiagram}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}[plain]
\centering\tikzset{every picture/.append style={remember picture}}
\smartdiagramanimated[descriptive diagram]{
      {{},blub},
  {Style,{Define shapes, colors, shading,
          and line styles for nodes and arrows}},
  {Position, {Place nodes using a matrix,
              relative or absolute positioning}},
  {Relation, Insert edges or arrows
             between selected nodes},
  {Label, Add labels on edges or arrows}}
\begin{tikzpicture}[overlay,remember picture]
\only<1>{\fill[white] ([xshift=2mm]module1.west|-module-title1.north)
rectangle ++ (-1.8cm,-1.63cm);}
\fill[white] (module1.west|-module-title1.north)
rectangle ++ (-1.6cm,-1.63cm);
\foreach \X [count=\Y,evaluate=\Y as \Z using {int(2+2*\Y)}] in {2,...,5}
{\draw[line width=1mm,-latex,visible on=<\Z->] (module\Y.south) -- (module\X.north);}
\end{tikzpicture}
\end{frame}
\end{document}

与往常一样remember picture,您需要编译两次。

附录:只是为了好玩:这试图解决这个问题

smartdiagram除了一个小细节之外,当软件包完全按照我们的要求运行的时候,我们怎样才能“破解”它们呢?

实现这一目标的一个可行方法是本地重新定义样式。在下面的代码中,第一个圆形节点被删除没有被覆盖。这是通过查找smartdiagram手册中的计数器来实现的(手册写得非常好)。截至目前,此计数器被称为\xi(如果某些用户想$\xi$在他们的代码中使用希腊字母,这最终可能会导致问题,他们可能会有点惊讶,所以 Claudio,如果你读到这个,请告诉我你是否重命名了计数器,以便我可以相应地修改答案 ;-)。所以我们需要做的就是说

description title/.append style={/utils/exec={\ifnum\xi=1
\pgfkeysalso{opacity=0,every shadow/.append style={opacity=0}}
\fi}}

这样第一个项目就不可见了。这是完整的代码。

\documentclass{beamer}
\usepackage{smartdiagram}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}[plain]
\centering\begingroup% we want to keep these hacks local
\tikzset{every picture/.append style={remember picture},
description title/.append style={/utils/exec={\ifnum\xi=1
\pgfkeysalso{opacity=0,every shadow/.append style={opacity=0}}
\fi}}}
\smartdiagramanimated[descriptive diagram]{
      {{},blub},
  {Style,{Define shapes, colors, shading,
          and line styles for nodes and arrows}},
  {Position, {Place nodes using a matrix,
              relative or absolute positioning}},
  {Relation, Insert edges or arrows
             between selected nodes},
  {Label, Add labels on edges or arrows}}
\begin{tikzpicture}[overlay,remember picture]
 \foreach \X [count=\Y,evaluate=\Y as \Z using {int(2+2*\Y)}] in {2,...,5}
  {\draw[line width=1mm,-latex,visible on=<\Z->] (module\Y.south) -- (module\X.north);}
\end{tikzpicture}\endgroup
\end{frame}
\end{document}

相关内容