0

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}

1 Answer 1

0

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

7
  • I just accepted the answer as a solutuion. I managed to change the arrow to a vertical too, I changed the code to: '(blockbody.north) -- (blockbody.south)' Second question: Is there a possibility to let the arrow make a left turn whith the same column/block method as you explained perfectly? <_|
    – brainsalad
    Mar 25, 2016 at 15:11
  • You could try to use (blockbody.west) -- (blockbody.center) -- (blockbody.south). Perhaps you need to reduce linewidth then
    – JMP
    Mar 25, 2016 at 15:25
  • Additionally it is a good idea to set the fill of the arrowblock to fill=backgroundcolor
    – JMP
    Mar 25, 2016 at 15:43
  • I have changed the code and the -- (blockbody.center) -- did the trick. The only problem is the arrow makes a sharp left turn, so far so good. But on the innerside of the turn the arrow is creating a fillet shape and not a sharp 90 degrees corner :-/
    – brainsalad
    Mar 25, 2016 at 15:58
  • See my comment above. You need to change the fill of the arrowblock
    – JMP
    Mar 25, 2016 at 15:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .