[Tex/LaTex] How to modify a tikzposter title style

tikzposter

What I want

I would like to use the Wave titlestyle that I found in /usr/share/texlive/texmf-dist/tex/latex/tikzposter/tikzposterTitlestyles.tex on my Kubuntu 14.4. However I'd like to have the top to be smaller in vertical size.

What I tried

I tried

\usetitlestyle[titletotopverticalspace=-100mm,]{Wave}

but this also brought the title text up.

I tried to copy the code from tikzposterTitlestyles.tex and to manipulate it, but

\definetitlestyle{mytitlestyle}{
    width=\paperwidth, roundedcorners=0, linewidth=0pt, innersep=1.5cm,
    titletotopverticalspace=0mm, titletoblockverticalspace=20mm,
    titlegraphictotitledistance=10pt, titletextscale=1
}{
    \coordinate (topleft) at (\titleposleft,\titlepostop);
    \coordinate (topright) at (\titleposright,\titlepostop);
    \coordinate (lefttoright) at (\titlewidth,0);
    \coordinate (head) at (0,\titlepostop-\titleposbottom);
    %
    \draw[draw=none, left color=blocktitlebgcolor!90!black, right color=titlebgcolor!95]%
        (topright) -- (topleft) -- %
        ($(topleft) - (head)-(0,6)$) .. controls %
        ($(topleft) - (head)-(0,6) + 0.25*(lefttoright) + (0,9)$) and %
        ($(topright) - (head) - 0.5*(lefttoright) - (-10,16)$) .. %
        ($(topright) - (head)$) -- cycle;
%     %
    \draw[draw=none, left color=blocktitlebgcolor, right color=white] %
        ($(topleft) - (head)-(0,2)$) .. controls %
        ($(topleft) - (head)-(-6,3) + 0.25*(lefttoright) + (0,10)$) and ($(topright) -
        (head) - 0.25*(lefttoright) - (-6,17)$).. %
        ($(topright) - (head)$) .. controls %
        ($(topright) - (head) - 0.25*(lefttoright)-(-7,19)$) and %
        ($(topleft) - (head)-(-9,5) + 0.25*(lefttoright) + (0,10)$) .. %
        ($(topleft) - (head)-(0,4)$);
    %
    \draw[draw=none, left color=white, right color=blocktitlebgcolor!90!black]%
        ($(topleft) - (head)-(0,2)$) .. controls %
        ($(topleft) - (head)-(-6,3) + 0.25*(lefttoright) + (0,10)$) and ($(topright) -
        (head)+(0,6) - 0.25*(lefttoright) - (-6,20)$)..%
        ($(topright) - (head)+(0,6)$) -- %
        ($(topright) - (head)$) .. controls %
        ($(topright) - (head) - 0.25*(lefttoright) - (-6,17)$) and %
        ($(topleft) - (head)-(-8,4) + 0.25*(lefttoright) + (0,10)$) .. %
        ($(topleft) - (head)-(0,2)$);

    \setlength{\TP@titletoblockverticalspace}{5\TP@titletoblockverticalspace}
}

already threw errors like

! You can't use `the character 0' after \the.
\titlepostop ->0
                .5\paperheight 
l.197 

! Missing number, treated as zero.
<to be read again> 
                   @
l.197 

! Illegal unit of measure (pt inserted).
<to be read again> 
                   @
l.197 


! Package calc Error: `@' invalid at this point.

See the calc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.197 

! Undefined control sequence.
<argument> \TP 

l.197 

! Missing number, treated as zero.
<to be read again> 
                   t
l.197 

! Illegal unit of measure (pt inserted).
<to be read again> 
                   t
l.197 

! Undefined control sequence.
<argument> 5\TP 
                @titletoblockverticalspace
l.197 

! Undefined control sequence.
<recently read> \TP 

l.197 

! Undefined control sequence.
<argument> \TP 
               @titletoblockverticalspace
l.197 

! You can't use `the character @' after \the.
<argument> \TP @
                titletoblockverticalspace
l.197 

and enclosing \setlength{\TP@titletoblockverticalspace}{5\TP@titletoblockverticalspace} with \makeatletter and \makeatother did not help.

What can I do?

Best Answer

This isn't an answer in the sense that the title is modified, but I can tell you what is wrong with the code you've showed us:

  1. The empty line before the \setlength. Paragraph breaks are not allowed there, so you need to either remove the blank line, or add a %, as you can see other places.

  2. The @. To use @ in macro names in the preamble, you need to add \makeatletter before the code and \makeatother after, see What do \makeatletter and \makeatother do?.

\documentclass{tikzposter}
\usetheme{Wave}
\author{A not so frustrated user}
\title{A pretty enough poster I hope}

\makeatletter % added
\definetitlestyle{mytitlestyle}{
    width=\paperwidth, roundedcorners=0, linewidth=0pt, innersep=1.5cm,
    titletotopverticalspace=0mm, titletoblockverticalspace=20mm,
    titlegraphictotitledistance=10pt, titletextscale=1
}{%
    \coordinate (topleft) at (\titleposleft,\titlepostop);
    \coordinate (topright) at (\titleposright,\titlepostop);
    \coordinate (lefttoright) at (\titlewidth,0);
    \coordinate (head) at (0,\titlepostop-\titleposbottom);
    %
    \draw[draw=none, left color=blocktitlebgcolor!90!black, right color=titlebgcolor!95]%
        (topright) -- (topleft) -- %
        ($(topleft) - (head)-(0,6)$) .. controls %
        ($(topleft) - (head)-(0,6) + 0.25*(lefttoright) + (0,9)$) and %
        ($(topright) - (head) - 0.5*(lefttoright) - (-10,16)$) .. %
        ($(topright) - (head)$) -- cycle;
%     %
    \draw[draw=none, left color=blocktitlebgcolor, right color=white] %
        ($(topleft) - (head)-(0,2)$) .. controls %
        ($(topleft) - (head)-(-6,3) + 0.25*(lefttoright) + (0,10)$) and ($(topright) -
        (head) - 0.25*(lefttoright) - (-6,17)$).. %
        ($(topright) - (head)$) .. controls %
        ($(topright) - (head) - 0.25*(lefttoright)-(-7,19)$) and %
        ($(topleft) - (head)-(-9,5) + 0.25*(lefttoright) + (0,10)$) .. %
        ($(topleft) - (head)-(0,4)$);
    %
    \draw[draw=none, left color=white, right color=blocktitlebgcolor!90!black]%
        ($(topleft) - (head)-(0,2)$) .. controls %
        ($(topleft) - (head)-(-6,3) + 0.25*(lefttoright) + (0,10)$) and ($(topright) -
        (head)+(0,6) - 0.25*(lefttoright) - (-6,20)$)..%
        ($(topright) - (head)+(0,6)$) -- %
        ($(topright) - (head)$) .. controls %
        ($(topright) - (head) - 0.25*(lefttoright) - (-6,17)$) and %
        ($(topleft) - (head)-(-8,4) + 0.25*(lefttoright) + (0,10)$) .. %
        ($(topleft) - (head)-(0,2)$);
% added the percent character here
    \setlength{\TP@titletoblockverticalspace}{5\TP@titletoblockverticalspace}
}
\makeatother

% make this style active
\usetitlestyle{mytitlestyle}

\begin{document}
\maketitle
\end{document}