I mean, if I use e.g. \blockwidth for setting a width of tikzfigure environment, I get a undefined control sequence error. In that case one workaround is using \linewidth, but I need to subtract the separation distance from the edge of the box, and I could not access that separation as well.
Obviously, when one defines custom styles for elements, dimensions are well defined, as one can read in the documentation.
But, is there any way to access them inside the body of the poster?
I think it is difficult and not relevant in this case to give a MWE. Nevertheless, I give it.
\documentclass{tikzposter}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\title{Title} \institute{Inst}
\author{Auth} \titlegraphic{Logo}
\usetheme{Basic}
\begin{document}
\maketitle
\block{BlocktitleA}{Blocktext}
\begin{columns}
\column{0.3}
\block{BlocktitleB}{
\newlength{\figw}
\setlength{\figw}{\blockwidth}
\begin{tikzpicture}
\pgfplotsset{
height=0.5*\figw,
width=0.5*\figw,
}
\begin{axis}[
xmin=1.5,
xmax=5
]
\addplot[
solid,
line width=0.8mm,
samples=100,
domain=1.5:5,
restrict y to domain=0.6:2.2
] {0.7+(2.22/x)};
\end{axis}
\end{tikzpicture}
}
\column{0.7}
\block{BlocktitleC}{Blocktext}
\note{Notetext}
\end{columns}
\end{document}
This gives an undefined control sequence error and a zero length warning.



pgfplotsaxis, the problem is that when you set the width to X,pgfplotssets the width of the axis box alone to X-45pt, and then it adds ticklabels/axis labels afterwards. The 45pt is fixed,pgfplotsdoesn't measure the width of ticklabels etc. In your case, the labels are wider than 45pt because of the font size, so the total width of the diagram becomes wider than the specified size. This is a general problem ofpgfplots. But going back to your question, I think you can access those lengths, will likely add an answer in a bit. – Torbjørn T. Oct 31 '17 at 18:10\blockmacro, note that for example that if you're in a\column, then the\TP@blockbodywidthis set to\colwidth. And later, the text in the block is put in a\parboxof width\TP@blockbodywidth-2\TP@blockbodyinnersep-\TP@blockbodyoffsetx. (By the way, the class defines atikzfigureenvironment, but the width of that cannot be set -- it will be\linewidth-- and you're not using it in your example.) I wont have time to write an answer right now, maybe later if I figure things out. But don't hesitate to add an answer yourself. – Torbjørn T. Oct 31 '17 at 18:33