[Tex/LaTex] How to move the second block of a column of three down

positioningtikzpostervertical alignment

My question is related to Tikzposter and blocks within columns.

Begin situation:

The code is describing three colums with each a block within Tikzposter. The second column block has no text.

Desired situation:

My goal is to have the block at the middle (second) column act as an horizontal 'arrow' or visual route from the first block in the column of three to the third block in the column of three. So readers of the poster will follow a predetermined information route on the poster to make my message as clear as possible.

How I want to do it:

I want to 'squeeze' the height of the title and body of the second block and position it on the horizontal center line of the first and third column blocks. (Vertical 'arrows' in the poster I managed by altering the 'bodywidthscale')

Question:

How do I change the shape a block to a horizontally flat rectangle and shift the y-position of the block so that it will allign to the horizontal center line of the first and third block of the three parted columns?

Best,

A Tikzposter user

code:

\documentclass{tikzposter}

\begin{document}    
\maketitle  
\begin{columns}     
    \column{0.5}
    \block{First read this}{
    \begin{itemize}
        \item A message
        \item Follow the horizontal arrow
    \end{itemize}
    }       
    \column{0.2}
    \block{}{\vspace{3.5ex}}        
    \column{0.3}
    \block{Than read this}{
    \begin{itemize}
        \item Second message.
        \item Follow the next 'arrow'.
    \end{itemize}
    }       
\end{columns}
\end{document}

Best Answer

You can make use of \defineblockstyle as mentioned in section 5.5 of the tikzposter manual:

\documentclass{tikzposter}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document} 
    \defineblockstyle{sampleblockstyle}{}{
    \draw[->, line width=2cm, -{stealth[length=10mm]},color=framecolor, fill=backgroundcolor] (blockbody.west) -- (blockbody.east);
    }

\maketitle  
\begin{columns}     
    \column{0.5}
    \block{First read this}{
    \begin{itemize}
        \item A message
        \item Follow the horizontal arrow
    \end{itemize}
    }       
    \column{0.2}
    \useblockstyle{sampleblockstyle}
    \block[bodyverticalshift=5cm]{}{\vspace{3.5ex}}
    \useblockstyle{Default}
    \column{0.3}
    \block{Than read this}{
    \begin{itemize}
        \item Second message.
        \item Follow the next 'arrow'.
    \end{itemize}
    }       
\end{columns}
\end{document}

You can define a block, which basically draws an arrow. Adjustments can be made by changing the line width and the arrow tip (see section 16.3 of the pgf manual). To make use of you defined arrow block, just change your block style to \useblockstyle{sampleblockstyle}. Don't forget to change it back afterwards to your desired layout, i.e. by using \useblockstyle{Default}. The vertical alignment of the arrow can be done by passing the bodyverticalshift option to your arrow block.

enter image description here