I am quite new to using the TikZposter package. One thing I currently find hard to understand is how to make block positioning more flexible.
More specifically: For my poster, I have the following design in mind (see sketch)
Not too many unusual bits, the thing I struggle with is the flow chart/block combination in the middle. Essentially I have a flow chart (which I intend to make in TikZ, but inserting pngs might work too) consisting of FIG 1
, Arrow
and FIG 2
. The arrow needs an explanation next to it, which is in form of a 3rd figure FIG 3
.
This flow chart illustrates the central scientific idea presented in the poster. FIG 1
and FIG 2
than need some background and explanation, so I thought it would be nice to have them sit in the corner of two blocks (Block 1
, Block 2
).
So I know how to make the flow chart in the middle, I have done that in TikZ before. But how to add the blocks Block 1
, Block 2
. Their lower right (lower left) corners have to be fixed (set by the flow chart figures). The rest of the block should adjust to the title etc. in the usual block-manner.
How can you do something like that in TikZposter? Is it possible to get blocks to do that? Or am I asking too much of the package?
Minimal working example
\documentclass[a0paper]{tikzposter}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usetheme{Desert}
\title{AWESOME POSTER HERE!!!}
\author{MyName}
\institute{MyUniversity}
\usepackage{url,lipsum}
\definetitlestyle{sampletitle}{
width=\paperwidth, roundedcorners=10, linewidth=2pt, innersep=5pt,
titletotopverticalspace=0mm, titletoblockverticalspace=30mm
}{
\begin{scope}[line width=\titlelinewidth, rounded corners=\titleroundedcorners]
\draw[color=blocktitlebgcolor, fill=titlebgcolor]
(\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop);
\end{scope}
}
%%% Added for avoding small caps in the title
\usepackage{etoolbox}
\makeatletter
\patchcmd{\TP@maketitle}
{\bfseries \Huge \sc}
{\bfseries\Huge}
{}{}
\makeatother
%%%
%%% Added to change title font
\makeatletter
\settitle{ \hspace{10mm} \vbox{
\vspace*{1em}
\@titlegraphic \\[\TP@titlegraphictotitledistance] \raggedright
\color{titlefgcolor} {\Huge \@title \par}
\vspace*{1em}
{\huge \@author \par} \vspace*{0em} {\Large \@institute}
}}
\makeatother
%%%
\usetitlestyle{sampletitle}
\newcommand{\ini}{\textsuperscript{1}}
\newcommand{\inii}{\textsuperscript{2}}
\newcommand{\inS}{\textsuperscript{*}}
%%% Grid to help positioning
\makeatletter
\def\grd@save@target#1{%
\def\grd@target{#1}}
\def\grd@save@start#1{%
\def\grd@start{#1}}
\tikzset{
grid with coordinates/.style={
to path={%
\pgfextra{%
\edef\grd@@target{(\tikztotarget)}%
\tikz@scan@one@point\grd@save@target\grd@@target\relax
\edef\grd@@start{(\tikztostart)}%
\tikz@scan@one@point\grd@save@start\grd@@start\relax
\draw[minor help lines] (\tikztostart) grid (\tikztotarget);
\draw[major help lines] (\tikztostart) grid (\tikztotarget);
\grd@start
\pgfmathsetmacro{\grd@xa}{\the\pgf@x/1cm}
\pgfmathsetmacro{\grd@ya}{\the\pgf@y/1cm}
\grd@target
\pgfmathsetmacro{\grd@xb}{\the\pgf@x/1cm}
\pgfmathsetmacro{\grd@yb}{\the\pgf@y/1cm}
\pgfmathsetmacro{\grd@xc}{\grd@xa + \pgfkeysvalueof{/tikz/grid with coordinates/major step}}
\pgfmathsetmacro{\grd@yc}{\grd@ya + \pgfkeysvalueof{/tikz/grid with coordinates/major step}}
\foreach \x in {\grd@xa,\grd@xc,...,\grd@xb}
\node[anchor=north] at (\x,\grd@ya) {\Huge \pgfmathprintnumber{\x}};
\foreach \y in {\grd@ya,\grd@yc,...,\grd@yb}
\node[anchor=east] at (\grd@xa,\y) {\Huge \pgfmathprintnumber{\y}};
}
}
},
minor help lines/.style={
help lines,
step=\pgfkeysvalueof{/tikz/grid with coordinates/minor step}
},
major help lines/.style={
help lines,
line width=\pgfkeysvalueof{/tikz/grid with coordinates/major line width},
step=\pgfkeysvalueof{/tikz/grid with coordinates/major step}
},
grid with coordinates/.cd,
minor step/.initial=1.0,
major step/.initial=10.0,
major line width/.initial=20pt,
}
\makeatother
%%%
\begin{document}
\maketitle
\draw[draw=black,fill=orange] (-20,20) rectangle (-10,30);
\draw[draw=red,fill=red] (10,20) rectangle (20,30);
\draw[blue,->,line width=1cm] (-10,25) -- (10,25);
\draw[fill=green,draw=green] (0,33) circle (8);
\draw[dashed] (-10,20) rectangle (-40,50);
\draw[dashed] (10,20) rectangle (40,50);
\node[align=left] at (25,43) {\huge I want to be a block,\\ \huge wrap text around the red square\\ \huge and nicely adjust my size\\ \huge while keeping my lower left corner\\ \huge around the red square \\ \huge :( };
\node[align=left] at (-25,43) {\huge I want to be a block,\\ \huge wrap text around the orange square\\ \huge and nicely adjust my size\\ \huge while keeping my lower left corner\\ \huge around the orange square \\ \huge :( };
%\draw (-40,-50) to[grid with coordinates] (40,50); %%% Uncommenting this shows a grid; convenient for TikZ positioning
\end{document}
A lot of the preamble is just there to define a grid that is nice to work out where to put TikZ figures. You can cut that out if you want. The command to show the grid is commented out. In the current form it gives: