Smartdiagram:块间距离相等(优先描述图)

Smartdiagram:块间距离相等(优先描述图)

我正在尝试使优先级描述图中的块之间实现相等的距离。

问题是并非所有节点都具有相同数量的线,但显然块的中心是等距的,与块大小无关。

我在文档中找到的唯一相关选项是descriptive items y sep,但这只是一个比例因子,没有偏移。

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{smartdiagram}
\begin{document}
\smartdiagramset{
    uniform color list=blue!10 for all items,
    % descriptive items y sep=2.5 -> only a factor, no absolute value :(
}
\smartdiagram[priority descriptive diagram]{
    \textbf{Small node},
    \textbf{Small node},
    \textbf{Big node}\\Here\\are\\multiple\\lines,
    \textbf{Small node}
}
\end{document}

在此处输入图片描述

答案1

是的,看起来这些节点的 y 坐标只是设置为某个给定长度的倍数,因此没有设置可以自动执行此操作。不过,手动创建类似的图表并不是一项艰巨的工作。在下面的代码中,我重用了 中的一些样式smartdiagram

以下代码的输出

\documentclass[tikz,border=5mm]{standalone}
\usepackage{tikz}
\usepackage{smartdiagram}
\usetikzlibrary{chains, backgrounds}
\begin{document}

\begin{tikzpicture}
% \col is used in the description style so needs to be defined
\newcommand{\col}{blue!10}

\begin{scope}[
   % when naming the chain "c", the nodes in the chain are named c-1, c-2 etc.
   start chain=c going above,
   % set distance between nodes
   node distance=2mm,
   local bounding box=a
   ]

\foreach \t in {
    \textbf{Small node},
    \textbf{Small node},
    \textbf{Big node}\\Here\\are\\multiple\\lines,
    \textbf{Small node}}
  \node [description, drop shadow, on chain, align=center] {\t};

\end{scope}

% \distancemodules is used in the priority arrow style, so needs to be defined
% sets length of big arrow
\newcommand{\distancemodules}{7cm}

% draw big arrow on side
\node [priority arrow, left=7mm, anchor=before tail] (f) at (a.south west) {};

% draw ticks on big arrow
\foreach \i in {1,...,4}
   \draw [\col, line width=5pt]  (c-\i -| f.south) -- (c-\i -| f.north);

\end{tikzpicture}
\end{document}

相关内容