如何在 tikzposter 中画线连接块?

如何在 tikzposter 中画线连接块?

我正在使用 tikzposter,我想用线/箭头连接块以指示应读取框的顺序。我想知道 tikzposter 是否为块定义了名称,以及这些名称是否可以在路径中使用......(或者任何其他解决我的问题的方法)

我想人们可以通过反复试验在页面上绘图,但我希望有更好的方法。

以下是 MWE:

\documentclass[colspace=5cm]{tikzposter}

\title{How do I draw lines connecting blocks 1--2--3--4?}
\author{Stefano Ghirlanda}

\begin{document}

\maketitle

\begin{columns}

\column{0.5}

\block{Block 1}{ Block 1 text }

\block{Block 4}{ Block 4 text }

\column{0.5}

\block{Block 2}{ Block 2 text }

\block{Block 3}{ Block 3 text }

\end{columns}

\end{document}

答案1

查看tikzposter.cls,的定义\block在第 355-444 行。

块的标题和主体被赋予单独的名称blocktitleblockbody。但始终使用相同的名称,它们不是唯一的。

但是,你可以使用该fit库来创建新节点。例如,如果你这样做

\block{foo}{bar}
\node [fit=(blockbody),inner sep=0pt,draw,line width=2mm,yellow,dashed] (a) {};
\node [fit=(blocktitle),inner sep=0pt,draw,line width=2mm,red,loosely dashed] (b) {};

输出如下:

在此处输入图片描述

这样你就可以看到这些节点的轮廓在哪里。

为了方便起见,您可以创建一个新命令,用于创建和命名适合块标题和主体的节点。当然,它必须在块之后立即使用。

下面的代码输出

\documentclass[a2paper]{tikzposter}
\usetikzlibrary{fit}
\newcommand\NameBlock[1]{\node[fit=(blockbody)(blocktitle),inner sep=5pt] (#1) {};}
\begin{document}
\begin{columns}
\column{0.5}
\block{foo}{bar}
\NameBlock{a}
\column{0.5}
\block{bar}{baz}
\NameBlock{b}
\end{columns}

\draw [-stealth, line width=2mm] (a.south) to[bend right=40] (b.south);
\end{document}

相关内容