summaryrefslogtreecommitdiff
path: root/tex/.texmf
diff options
context:
space:
mode:
Diffstat (limited to 'tex/.texmf')
-rw-r--r--tex/.texmf/tex/latex/misc/a0size.sty252
-rw-r--r--tex/.texmf/tex/latex/misc/beton.sty73
-rw-r--r--tex/.texmf/tex/latex/misc/etoolbox.sty1726
-rw-r--r--tex/.texmf/tex/latex/misc/ulem.sty532
-rw-r--r--tex/.texmf/tex/latex/misc/xstring/xstring.sty3
-rw-r--r--tex/.texmf/tex/latex/misc/xstring/xstring.tex1389
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposter-template.tex100
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposter.cls830
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposter.dtx2905
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposter.ins68
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposter.pdfbin0 -> 293772 bytes
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterBackgroundstyles.tex81
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterBlockstyles.tex225
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterColorpalettes.tex66
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterColorstyles.tex268
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterInnerblockstyles.tex274
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterLayoutthemes.tex117
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterNotestyles.tex226
-rw-r--r--tex/.texmf/tex/latex/tikzposter/tikzposterTitlestyles.tex176
19 files changed, 9311 insertions, 0 deletions
diff --git a/tex/.texmf/tex/latex/misc/a0size.sty b/tex/.texmf/tex/latex/misc/a0size.sty
new file mode 100644
index 0000000..b3788c0
--- /dev/null
+++ b/tex/.texmf/tex/latex/misc/a0size.sty
@@ -0,0 +1,252 @@
+%%
+%% This is file `a0size.sty' (v1.22b) included in the a0poster package
+%%
+%% Copyright (C) 1997-2004 Gerlinde Kettl and Matthias Weiser
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% tex@kettl.de
+%%
+
+\ProvidesFile{a0size.sty}[2004/01/31 v1.22b a0poster class (GK, MW)]
+
+\DeclareFontShape{OT1}{cmr}{m}{n}
+ { <5> <6> <7> <8> <9> <10> <12> gen * cmr
+ <10.95> cmr10
+ <14.4> cmr12
+ <17.28><20.74><24.88>cmr17
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmr17}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{sl}
+ {
+ <5><6><7>cmsl8%
+ <8> <9> gen * cmsl
+ <10><10.95>cmsl10%
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsl12}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{it}
+ {
+ <5><6><7>cmti7%
+ <8>cmti8%
+ <9>cmti9%
+ <10><10.95>cmti10%
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmti12}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{sc}
+ {
+ <5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmcsc10}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{ui}
+ {
+ <5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmu10}{}
+
+\DeclareFontShape{OT1}{cmr}{b}{n}
+ {
+ <5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmb10}{}
+
+\DeclareFontShape{OT1}{cmr}{bx}{n}
+ {
+ <5> <6> <7> <8> <9> gen * cmbx
+ <10><10.95> cmbx10
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbx12}{}
+
+\DeclareFontShape{OT1}{cmr}{bx}{sl}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxsl10}{}
+
+\DeclareFontShape{OT1}{cmr}{bx}{it}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxti10}{}
+
+\DeclareFontShape{OT1}{cmss}{m}{n}
+ {
+ <5><6><7><8>cmss8
+ <9>cmss9
+ <10><10.95>cmss10
+ <12><14.4>cmss12
+ <17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmss17}{}
+
+\DeclareFontShape{OT1}{cmss}{m}{sl}
+ {
+ <5><6><7><8>cmssi8 <9> cmssi9
+ <10><10.95>cmssi10
+ <12><14.4>cmssi12
+ <17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmssi17}{}
+
+\DeclareFontShape{OT1}{cmss}{sbc}{n}
+ {
+ <5> <6> <7> <8> <9> cmssdc10
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmssdc10}{}
+
+\DeclareFontShape{OT1}{cmss}{bx}{n}
+ {
+ <5> <6> <7> <8> <9> cmssbx10
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmssbx10}{}
+
+\DeclareFontShape{OT1}{cmtt}{m}{n}
+ {
+ <5><6><7><8>cmtt8 <9> cmtt9
+ <10><10.95>cmtt10
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmtt12}{}
+
+\DeclareFontShape{OT1}{cmtt}{m}{it}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmitt10}{}
+
+\DeclareFontShape{OT1}{cmtt}{m}{sl}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsltt10}{}
+
+\DeclareFontShape{OT1}{cmtt}{m}{sc}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmtcsc10}{}
+
+\DeclareFontShape{OML}{cmm}{m}{it}
+ { <5> <6> <7> <8> <9> gen * cmmi
+ <10><10.95>cmmi10
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmmi12}{}
+
+\DeclareFontShape{OML}{cmm}{b}{it}{%
+ <5> <6> <7> <8> <9> gen * cmmib
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmmib10}{}
+
+
+\DeclareFontShape{OMS}{cmsy}{m}{n}{%
+ <5> <6> <7> <8> <9> <10> gen * cmsy
+ <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsy10}{}
+
+\DeclareFontShape{OMS}{cmsy}{b}{n}{%
+ <5> <6> <7> <8> <9> gen * cmbsy
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbsy10}{}
+
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+ <-8>sfixed * cmex7
+ <8> cmex8
+ <9> cmex9
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmex10}{}
+
+\DeclareFontShape{U}{cmr}{m}{n}
+ { <5> <6> <7> <8> <9> <10> <12> gen * cmr
+ <10.95> cmr10
+ <14.4> cmr12
+ <17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmr17}{}
+
+\DeclareFontShape{U}{cmr}{m}{sl}
+ {
+ <5><6><7>cmsl8%
+ <8> <9> gen * cmsl
+ <10><10.95>cmsl10%
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsl12}{}
+
+\DeclareFontShape{U}{cmr}{m}{it}
+ {
+ <5><6><7>cmti7%
+ <8>cmti8%
+ <9>cmti9%
+ <10><10.95>cmti10%
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmti12}{}
+
+\DeclareFontShape{U}{cmr}{m}{sc}
+ {
+ <5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmcsc10}{}
+
+\DeclareFontShape{U}{cmr}{m}{ui}
+ {
+ <5><6><7><8><9><10><10.95><12>%
+ <14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmu10}{}
+
+\DeclareFontShape{U}{cmr}{b}{n}
+ {
+ <5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmb10}{}
+
+\DeclareFontShape{U}{cmr}{bx}{n}
+ {
+ <5> <6> <7> <8> <9> gen * cmbx
+ <10><10.95> cmbx10
+ <12><14.4><17.28><20.74><24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbx12}{}
+
+\DeclareFontShape{U}{cmr}{bx}{sl}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxsl10}{}
+
+\DeclareFontShape{U}{cmr}{bx}{it}
+ {
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+ <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxti10}{}
+
+%% Copied from exscale.sty
+%% Copyright (C) 1992-1995 Frank Mittelbach and Rainer Sch\"opf,
+%% all rights reserved.
+
+\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
+\newdimen\big@size
+\addto@hook\every@math@size{\setbox\z@\vbox{\hbox{$($}\kern\z@}%
+ \global\big@size 1.2\ht\z@}
+\def\bBigg@#1#2{%
+ {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}}
+\def\big{\bBigg@\@ne}
+\def\Big{\bBigg@{1.5}}
+\def\bigg{\bBigg@\tw@}
+\def\Bigg{\bBigg@{2.5}}
+
+%% End of copy
+
+\DeclareMathSizes{24.88}{24.88}{20.74}{14.4}
+\DeclareMathSizes{29.86}{29.86}{20.74}{14.4}
+\DeclareMathSizes{35.83}{35.83}{24.88}{17.28}
+\DeclareMathSizes{43.00}{43.00}{35.83}{24.88}
+\DeclareMathSizes{51.6}{51.6}{35.83}{24.88}
+\DeclareMathSizes{61.92}{61.92}{43}{29.86}
+\DeclareMathSizes{74.3}{74.3}{51.6}{35.83}
+\DeclareMathSizes{89.16}{89.16}{61.92}{43}
+\DeclareMathSizes{107}{107}{74.3}{51.6}
+
+%% End of a0size.sty
diff --git a/tex/.texmf/tex/latex/misc/beton.sty b/tex/.texmf/tex/latex/misc/beton.sty
new file mode 100644
index 0000000..0007990
--- /dev/null
+++ b/tex/.texmf/tex/latex/misc/beton.sty
@@ -0,0 +1,73 @@
+%%
+%% This is file `beton.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beton.dtx (with options: `package')
+
+%% File `beton.dtx'.
+%% Copyright (C) 1992--1995 Frank Jensen. All rights reserved.
+
+\def\fileversion{v1.3}
+\def\filedate{1995/03/05}
+
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{beton}[\filedate\space\fileversion]
+\typeout{Package: `beton' \fileversion\space <\filedate> (FJ)}
+\def\rmdefault{ccr}
+\def\beton@baselineskip@table
+ {<\@viiipt>10<\@ixpt>11.5<\@xpt>13<\@xipt>14.5<\@xiipt>16}
+\def\beton@new@setfontsize#1#2#3%
+ {\edef\@tempa{\def\noexpand\@tempb####1<#2}%
+ \@tempa>##2<##3\@nil{\def\beton@baselineskip@value{##2}}%
+ \edef\@tempa{\noexpand\@tempb\beton@baselineskip@table<#2}%
+ \@tempa><\@nil
+ \ifx\beton@baselineskip@value\@empty
+ \def\beton@baselineskip@value{#3}%
+ \fi
+ \beton@old@setfontsize{#1}{#2}\beton@baselineskip@value}
+\AtBeginDocument
+ {\let\beton@old@setfontsize=\@setfontsize
+ \let\@setfontsize=\beton@new@setfontsize}
+\DeclareOption{standard-baselineskips}
+ {\AtBeginDocument{\let\@setfontsize=\beton@old@setfontsize}}
+\DeclareOption{oldstyle-equation-numbers}
+ {\@ifundefined{chapter}
+ {\def\theequation{{\beton@oldstyle\arabic{equation}}}}
+ {\def\theequation{{\beton@oldstyle\thechapter}.%
+ {\beton@oldstyle\arabic{equation}}}}}
+\DeclareRobustCommand\beton@oldstyle{\usefont{OML}{ccm}\f@series{it}}
+\DeclareRobustCommand\oldstylenums[1]%
+ {\begingroup
+ \spaceskip\fontdimen\tw@\font
+ \TextOldstyle \MathOldstyle #1%
+ \endgroup}
+\let\TextOldstyle=\beton@oldstyle
+\providecommand\MathOldstyle{\mathgroup\symletters}
+\DeclareOption{concrete-math}
+ {\DeclareSymbolFont{operators}{OT1}{ccr}{m}{n}%
+ \DeclareSymbolFont{letters}{OML}{ccm}{m}{it}}
+\def\dash---{\thinspace---\hskip.16667em\relax}
+\def\qback{\kern-.15em} % between , or . and ''
+\def\t#1{{\edef\next{\the\font}\beton@oldstyle\accent"7F\next#1}}
+\ProcessOptions
+\AtBeginDocument{\normalsize}
+\endinput
+%%
+%% End of file `beton.sty'.
diff --git a/tex/.texmf/tex/latex/misc/etoolbox.sty b/tex/.texmf/tex/latex/misc/etoolbox.sty
new file mode 100644
index 0000000..3554942
--- /dev/null
+++ b/tex/.texmf/tex/latex/misc/etoolbox.sty
@@ -0,0 +1,1726 @@
+% Copyright (c) 2007-2011 Philipp Lehman.
+% (c) 2015 Joseph Wright
+%
+% Permission is granted to copy, distribute and/or modify this
+% software under the terms of the LaTeX Project Public License
+% (LPPL), version 1.3c or any later version.
+%
+% This software is provided 'as is', without warranty of any kind,
+% either expressed or implied, including, but not limited to, the
+% implied warranties of merchantability and fitness for a
+% particular purpose.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{etoolbox}
+ [2015/08/02 v2.2a e-TeX tools for LaTeX (JAW)]
+
+\begingroup
+\@ifundefined{eTeXversion}
+ {\PackageError{etoolbox}
+ {Not running under e-TeX}
+ {This package requires e-TeX. Try compiling the document
+ with\MessageBreak 'elatex' instead of 'latex'. When using
+ pdfTeX, try 'pdfelatex'\MessageBreak instead of 'pdflatex'.
+ This is a fatal error. I'm aborting now.}%
+ \aftergroup\endinput}
+ {}
+\endgroup
+
+\ifdefined\extrafloats
+ \expandafter\@gobble
+\else
+ \expandafter\@firstofone
+\fi
+ {\RequirePackage{etex}}
+
+\def\etb@catcodes{\do\&\do\|\do\:\do\-\do\=\do\<\do\>}
+\def\do#1{\catcode\number`#1=\the\catcode`#1\relax}
+\edef\etb@catcodes{\etb@catcodes}
+\let\do\noexpand
+\AtEndOfPackage{\etb@catcodes\undef\etb@catcodes}
+
+\catcode`\&=3
+\catcode`\|=3
+\@makeother\:
+\@makeother\-
+\@makeother\=
+\@makeother\<
+\@makeother\>
+
+\protected\def\etb@error{\PackageError{etoolbox}}
+\protected\def\etb@warning{\PackageWarning{etoolbox}}
+\protected\def\etb@info{\PackageInfo{etoolbox}}
+\newcount\etb@tempcnta
+
+% {<cstoken>}[<arguments>][<optarg default>]{<definition>}
+
+\newcommand*{\newrobustcmd}{}
+\protected\def\newrobustcmd{\@star@or@long\etb@new@command}
+
+\def\etb@new@command#1{\@testopt{\etb@newcommand#1}0}
+
+\def\etb@newcommand#1[#2]{%
+ \@ifnextchar[%]
+ {\etb@xargdef#1[#2]}
+ {\ifx\l@ngrel@x\relax
+ \let\l@ngrel@x\protected
+ \else
+ \protected\def\l@ngrel@x{\protected\long}%
+ \fi
+ \@argdef#1[#2]}}
+
+\long\def\etb@xargdef#1[#2][#3]#4{%
+ \@ifdefinable#1{%
+ \expandafter\protected
+ \expandafter\def
+ \expandafter#1%
+ \expandafter{%
+ \expandafter\@testopt
+ \csname\string#1\endcsname{#3}}%
+ \expandafter\@yargdef\csname\string#1\endcsname\tw@{#2}{#4}}}
+
+% {<cstoken>}[<arguments>][<optarg default>]{<definition>}
+
+\newrobustcmd*{\renewrobustcmd}{\@star@or@long\etb@renew@command}
+
+\def\etb@renew@command#1{%
+ \ifundef{#1}
+ {\etb@error{\string#1 undefined}\@ehc}
+ {}%
+ \let\@ifdefinable\@rc@ifdefinable
+ \etb@new@command#1}
+
+% {<cstoken>}[<arguments>][<optarg default>]{<definition>}
+
+\newrobustcmd*{\providerobustcmd}{\@star@or@long\etb@provide@command}
+
+\def\etb@provide@command#1{%
+ \ifundef{#1}
+ {\def\reserved@a{\etb@new@command#1}}
+ {\def\reserved@a{\etb@renew@command\reserved@a}}%
+ \reserved@a}
+
+% {<csname>}
+
+\newrobustcmd*{\csshow}[1]{%
+ \begingroup\expandafter\endgroup
+ \expandafter\show\csname#1\endcsname}
+
+% {<csname>}
+
+\newcommand*{\csmeaning}[1]{%
+ \ifcsname #1\endcsname
+ \expandafter\meaning\csname #1\endcsname
+ \else
+ \detokenize{undefined}%
+ \fi}
+
+% {<cstoken>}{<true>}{<false>}
+
+\newcommand{\ifdef}[1]{%
+ \ifdefined#1%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<cstoken>}{<true>}{<false>}
+
+\newcommand{\ifundef}[1]{%
+ \ifdefined#1%
+ \ifx#1\relax
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsdef}[1]{%
+ \ifcsname#1\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsundef}[1]{%
+ \ifcsname#1\endcsname
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdefmacro}{}
+\long\edef\ifdefmacro#1{%
+ \noexpand\expandafter\noexpand\etb@ifdefmacro
+ \noexpand\meaning#1\detokenize{macro}:&}
+\edef\etb@ifdefmacro{%
+ \def\noexpand\etb@ifdefmacro##1\detokenize{macro}:##2&}
+\etb@ifdefmacro{\notblank{#2}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsmacro}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefmacro\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdefprefix}[1]{%
+ \ifdefmacro{#1}
+ {\etb@ifdefprefix{#1}}
+ {\@secondoftwo}}
+\long\edef\etb@ifdefprefix#1{%
+ \noexpand\expandafter\noexpand\etb@ifdefprefix@i
+ \noexpand\meaning#1\detokenize{macro}:&}
+\edef\etb@ifdefprefix@i{%
+ \def\noexpand\etb@ifdefprefix@i##1\detokenize{macro}:##2&}
+\etb@ifdefprefix@i{\notblank{#1}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsprefix}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefprefix\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdefparam}{}
+\long\edef\ifdefparam#1{%
+ \noexpand\expandafter\noexpand\etb@ifdefparam
+ \noexpand\meaning#1\detokenize{macro}:->&}
+\edef\etb@ifdefparam{%
+ \def\noexpand\etb@ifdefparam##1\detokenize{macro}:##2->##3&}
+\etb@ifdefparam{\notblank{#2}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsparam}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefparam\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdefprotected}{}
+\long\edef\ifdefprotected#1{%
+ \noexpand\expandafter\noexpand\etb@ifdefprotected
+ \noexpand\meaning#1\string\protected&}
+\edef\etb@ifdefprotected{%
+ \def\noexpand\etb@ifdefprotected##1\string\protected##2&}
+\etb@ifdefprotected{\notblank{#2}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsprotected}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefprotected\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newrobustcmd{\ifdefltxprotect}[1]{%
+ \begingroup
+ \edef\etb@resrvda{%
+ \noexpand\protect\expandafter\noexpand
+ \csname\expandafter\@gobble\string#1 \endcsname}%
+ \expandafter\endgroup\ifx#1\etb@resrvda
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<csname>}{<true>}{<false>}
+
+\newrobustcmd*{\ifcsltxprotect}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefltxprotect\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true>}{<false>}
+
+\newcommand{\ifdefempty}[1]{%
+ \ifundef{#1}
+ {\@secondoftwo}
+ {\ifdefmacro{#1}
+ {\ifdefparam{#1}
+ {\@secondoftwo}
+ {\etb@ifdefempty{#1}}}
+ {\@secondoftwo}}}
+
+\def\etb@ifdefempty#1{%
+ \expandafter\expandafter
+ \expandafter\ifblank
+ \expandafter\expandafter
+ \expandafter{%
+ \expandafter\strip@prefix\meaning#1}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsempty}[1]{%
+ \ifcsundef{#1}
+ {\@secondoftwo}
+ {\expandafter\ifdefparam\csname#1\endcsname
+ {\@secondoftwo}
+ {\expandafter\etb@ifdefempty\csname#1\endcsname}}}
+
+% {<cstoken>}{<true>}{<false>}
+
+\newcommand{\ifdefvoid}[1]{%
+ \ifundef{#1}
+ {\@firstoftwo}
+ {\ifdefmacro{#1}
+ {\ifdefparam{#1}
+ {\@secondoftwo}
+ {\etb@ifdefempty{#1}}}
+ {\@secondoftwo}}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsvoid}[1]{%
+ \ifcsundef{#1}
+ {\@firstoftwo}
+ {\expandafter\ifdefparam\csname#1\endcsname
+ {\@secondoftwo}
+ {\expandafter\etb@ifdefempty\csname#1\endcsname}}}
+
+% {<cstoken1>}{<cstoken2>}{<true>}{<false>}
+
+\newcommand{\ifdefequal}[2]{%
+ \ifundef{#1}
+ {\@secondoftwo}
+ {\ifundef{#2}
+ {\@secondoftwo}
+ {\ifx#1#2%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<csname1>}{<csname2>}{<true>}{<false>}
+
+\newcommand*{\ifcsequal}[2]{%
+ \ifcsundef{#1}
+ {\@secondoftwo}
+ {\ifcsundef{#2}
+ {\@secondoftwo}
+ {\expandafter\ifx
+ \csname#1\expandafter\endcsname
+ \csname#2\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<cstoken1>}{<cstoken2>}{<true>}{<false>}
+
+\newrobustcmd{\ifdefstrequal}[2]{%
+ \ifdefmacro{#1}
+ {\ifdefmacro{#2}
+ {\begingroup
+ \edef\etb@tempa{\expandafter\strip@prefix\meaning#1}%
+ \edef\etb@tempb{\expandafter\strip@prefix\meaning#2}%
+ \ifx\etb@tempa\etb@tempb
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+% {<csname1>}{<csname2>}{<true>}{<false>}
+
+\newcommand*{\ifcsstrequal}[2]{%
+ \ifcsundef{#1}
+ {\@secondoftwo}
+ {\ifcsundef{#2}
+ {\@secondoftwo}
+ {\expandafter\ifdefstrequal
+ \csname#1\expandafter\endcsname
+ \csname#2\endcsname}}}
+
+% {<cstoken>}{<string>}{<true>}{<false>}
+
+\newrobustcmd{\ifdefstring}[2]{%
+ \ifdefmacro{#1}
+ {\begingroup
+ \edef\etb@tempa{\expandafter\strip@prefix\meaning#1}%
+ \edef\etb@tempb{\detokenize{#2}}%
+ \ifx\etb@tempa\etb@tempb
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+ {\@secondoftwo}}
+
+% {<csname>}{<string>}{<true>}{<false>}
+
+\newrobustcmd{\ifcsstring}[2]{%
+ \ifcsundef{#1}
+ {\@secondoftwo}
+ {\expandafter\ifdefstring\csname#1\endcsname{#2}}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdefcounter}[1]{\etb@ifcounter#1&}
+\long\def\etb@ifcounter#1#2&{%
+ \ifx\count#1%
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\etb@ifcounter@i\meaning#1:%
+ \fi}
+\edef\etb@ifcounter@i#1:#2\fi{\noexpand\fi
+ \noexpand\etb@ifcounter@ii#1\string\count&}
+\edef\etb@ifcounter@ii{%
+ \def\noexpand\etb@ifcounter@ii##1\string\count##2&}
+\etb@ifcounter@ii{\ifblank{#1}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcscounter}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefcounter\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<name>}{<true>}{<false>}
+
+\newcommand*{\ifltxcounter}[1]{%
+ \ifcsdef{c@#1}
+ {\expandafter\ifdefcounter\csname c@#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdeflength}[1]{\etb@iflength#1&}
+\long\def\etb@iflength#1#2&{%
+ \ifx\skip#1%
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\etb@iflength@i\meaning#1:%
+ \fi}
+\edef\etb@iflength@i#1:#2\fi{\noexpand\fi
+ \noexpand\etb@iflength@ii#1\string\skip&}
+\edef\etb@iflength@ii{%
+ \def\noexpand\etb@iflength@ii##1\string\skip##2&}
+\etb@iflength@ii{\ifblank{#1}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcslength}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdeflength\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<cstoken>}{<true}{<false>}
+
+\newcommand{\ifdefdimen}[1]{\etb@ifdimen#1&}
+\long\def\etb@ifdimen#1#2&{%
+ \ifx\dimen#1%
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\etb@ifdimen@i\meaning#1:%
+ \fi}
+\edef\etb@ifdimen@i#1:#2\fi{\noexpand\fi
+ \noexpand\etb@ifdimen@ii#1\string\dimen&}
+\edef\etb@ifdimen@ii{%
+ \def\noexpand\etb@ifdimen@ii##1\string\dimen##2&}
+\etb@ifdimen@ii{\ifblank{#1}}
+
+% {<csname>}{<true>}{<false>}
+
+\newcommand*{\ifcsdimen}[1]{%
+ \ifcsdef{#1}
+ {\expandafter\ifdefdimen\csname#1\endcsname}
+ {\@secondoftwo}}
+
+% {<string1>}{<string2>}{<true>}{<false>}
+
+\newrobustcmd{\ifstrequal}[2]{%
+ \begingroup
+ \edef\etb@tempa{\detokenize{#1}}%
+ \edef\etb@tempb{\detokenize{#2}}%
+ \ifx\etb@tempa\etb@tempb
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+% {<string>}{<true>}{<false>}
+
+\newcommand{\ifstrempty}[1]{%
+ \expandafter\ifx\expandafter&\detokenize{#1}&%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<string>}{<true>}{<false>}
+
+\newcommand{\ifblank}[1]{% from expl3
+ \expandafter\ifx\expandafter\relax\detokenize\expandafter{\@gobble#1?}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand{\notblank}[1]{%
+ \expandafter\ifx\expandafter\relax\detokenize\expandafter{\@gobble#1?}\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+
+% {<numexpr>}{<comp>}{<numexpr>}{<true>}{<false>}
+
+\newcommand*{\ifnumcomp}[3]{%
+ \ifnum\numexpr#1\relax#2\numexpr#3\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<numexpr>}{<numexpr>}{<true>}{<false>}
+
+\newcommand*{\ifnumequal}[1]{%
+ \ifnumcomp{#1}=}
+
+\newcommand*{\ifnumgreater}[1]{%
+ \ifnumcomp{#1}>}
+
+\newcommand*{\ifnumless}[1]{%
+ \ifnumcomp{#1}<}
+
+% {<numexpr>}{<true>}{<false>}
+
+\newcommand*{\ifnumodd}[1]{%
+ \ifodd\numexpr#1\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<dimexpr>}{<comp>}{<dimexpr>}{<true>}{<false>}
+
+\newcommand*{\ifdimcomp}[3]{%
+ \ifdim\dimexpr#1\relax#2\dimexpr#3\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<dimexpr>}{<dimexpr>}{<true>}{<false>}
+
+\newcommand*{\ifdimequal}[1]{%
+ \ifdimcomp{#1}=}
+
+\newcommand*{\ifdimgreater}[1]{%
+ \ifdimcomp{#1}>}
+
+\newcommand*{\ifdimless}[1]{%
+ \ifdimcomp{#1}<}
+
+% {<expr>}{<true>}{<false>}
+
+\newcommand{\ifboolexpe}[1]{%
+ \etb@be@beg\etb@be@bgroup#1(&\etb@be@end}
+
+\let\etb@be@true\@empty
+\def\etb@be@false{-\@ne}
+
+\def\etb@be@beg{%
+ \ifnum\numexpr\z@\ifnum\numexpr\z@}
+
+\def\etb@be@end{%
+ <\z@
+ \expandafter\etb@be@false
+ \fi
+ <\z@
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+
+\long\def\etb@be@bgroup#1(#2&{%
+ \etb@be@egroup#1)&%
+ \ifblank{#2}
+ {}
+ {\etb@be@beg
+ \etb@be@bgroup#2&}}
+
+\long\def\etb@be@egroup#1)#2&{%
+ \etb@be@and#1and&%
+ \ifblank{#2}
+ {}
+ {\etb@be@end\etb@be@true\etb@be@false
+ \etb@be@egroup#2&}}
+
+\long\def\etb@be@and#1and#2&{%
+ \etb@be@or#1or&%
+ \ifblank{#2}
+ {}
+ {<\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {=\z@\fi\ifnum\numexpr\m@ne}%
+ \ifnum\numexpr\z@
+ \etb@be@and#2&}}
+
+\long\def\etb@be@or#1or#2&{%
+ \etb@be@not#1not&%
+ \ifblank{#2}
+ {}
+ {<\z@
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+ {=\z@\fi\ifnum\numexpr\z@
+ \ifnum\numexpr\@ne}
+ {=\z@\fi\ifnum\numexpr\z@
+ \ifnum\numexpr\z@}%
+ \etb@be@or#2&}}
+
+\long\def\etb@be@not#1not#2&{%
+ \etb@be@togl#1togl&%
+ \ifblank{#2}
+ {}
+ {>\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\unless\ifnum\numexpr\m@ne}
+ {\unless\ifnum\numexpr\z@}%
+ \etb@be@not#2&}}
+
+\long\def\etb@be@togl#1togl#2&{%
+ \etb@be@bool#1bool&%
+ \ifblank{#2}
+ {}
+ {\etb@be@togl@i#2&}}
+
+\long\def\etb@be@togl@i#1#2&{%
+ \ifcsdef{etb@tgl@#1}
+ {\csname etb@tgl@#1\endcsname\etb@be@true\etb@be@false}
+ {\etb@be@err{Toggle '#1' undefined}{}}%
+ \etb@be@togl#2&}
+
+\long\def\etb@be@bool#1bool#2&{%
+ \etb@be@test#1test&%
+ \ifblank{#2}
+ {}
+ {\etb@be@bool@i#2&}}
+
+\long\def\etb@be@bool@i#1#2&{%
+ \ifcsundef{if#1}
+ {\etb@be@err{Boolean '#1' undefined}{}}
+ {\csname if#1\endcsname
+ \else
+ \etb@be@false
+ \fi}%
+ \etb@be@bool#2&}
+
+\long\def\etb@be@test#1test#2&{%
+ \ifblank{#1}
+ {}
+ {\etb@be@err{The invalid part is: '\detokenize{#1}'}{}}%
+ \ifblank{#2}
+ {}
+ {\etb@be@test@i#2&}}
+
+\long\def\etb@be@test@i#1#2&{%
+ #1\etb@be@true\etb@be@false
+ \etb@be@test#2&}
+
+\long\def\etb@be@err#1#2{%
+ \expandafter\ifnum\the\numexpr
+ \expandafter\ifnum\the\currentiftype=-3
+ \expandafter\thr@@
+ \else
+ \expandafter\currentiftype
+ \fi
+ =\thr@@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {=\z@\fi
+ \etb@be@err{#1}{#2\ifnum\numexpr\m@ne}}
+ {\etb@err@expr{#1}#2}}
+
+% {<expr>}{<true>}{<false>}
+
+\newrobustcmd{\ifboolexpr}[1]{\etb@boolexpr{#1}}
+
+\long\def\etb@boolexpr#1{%
+ \begingroup
+ \let\etb@br@neg\@firstoftwo
+ \etb@tempcnta\z@
+ \etb@br@beg
+ \etb@br@bgroup#1(&%
+ \etb@br@end
+ \etb@br@eval}
+
+\def\etb@br@beg{%
+ \begingroup
+ \let\etb@br@neg\@firstoftwo
+ \etb@tempcnta\z@}
+
+\def\etb@br@end{%
+ \etb@br@eval\etb@br@true\etb@br@false}
+
+\def\etb@br@eval{%
+ \ifnum\etb@tempcnta<\z@
+ \aftergroup\@secondoftwo
+ \else
+ \aftergroup\@firstoftwo
+ \fi
+ \endgroup}
+
+\def\etb@br@true{%
+ \advance\etb@tempcnta\etb@br@neg\z@\m@ne
+ \let\etb@br@neg\@firstoftwo}
+
+\def\etb@br@false{%
+ \advance\etb@tempcnta\etb@br@neg\m@ne\z@
+ \let\etb@br@neg\@firstoftwo}
+
+\long\def\etb@br@bgroup#1(#2&{%
+ \etb@br@egroup#1)&%
+ \ifblank{#2}
+ {}
+ {\etb@br@beg
+ \etb@br@bgroup#2&}}
+
+\long\def\etb@br@egroup#1)#2&{%
+ \etb@br@and#1and&%
+ \ifblank{#2}
+ {}
+ {\etb@br@end
+ \etb@br@egroup#2&}}
+
+\long\def\etb@br@and#1and#2&{%
+ \etb@br@or#1or&%
+ \ifblank{#2}
+ {}
+ {\ifnum\etb@tempcnta<\z@
+ \etb@tempcnta\m@ne
+ \else
+ \etb@tempcnta\z@
+ \fi
+ \etb@br@and#2&}}
+
+\long\def\etb@br@or#1or#2&{%
+ \etb@br@not#1not&%
+ \ifblank{#2}
+ {}
+ {\ifnum\etb@tempcnta<\z@
+ \etb@tempcnta\z@
+ \else
+ \etb@tempcnta\@ne
+ \fi
+ \etb@br@or#2&}}
+
+\long\def\etb@br@not#1not#2&{%
+ \etb@br@togl#1togl&%
+ \ifblank{#2}
+ {}
+ {\let\etb@br@neg\@secondoftwo
+ \etb@br@not#2&}}
+
+\long\def\etb@br@togl#1togl#2&{%
+ \etb@br@bool#1bool&%
+ \ifblank{#2}
+ {}
+ {\etb@br@togl@i#2&}}
+
+\long\def\etb@br@togl@i#1#2&{%
+ \ifcsdef{etb@tgl@#1}
+ {\csname etb@tgl@#1\endcsname\etb@br@true\etb@br@false}
+ {\etb@err@expr{Toggle '#1' undefined}\etb@br@false}%
+ \etb@br@togl#2&}
+
+\long\def\etb@br@bool#1bool#2&{%
+ \etb@br@test#1test&%
+ \ifblank{#2}
+ {}
+ {\etb@br@bool@i#2&}}
+
+\long\def\etb@br@bool@i#1#2&{%
+ \ifcsundef{if#1}
+ {\etb@err@expr{Boolean '#1' undefined}\etb@br@false}
+ {\csname if#1\endcsname
+ \etb@br@true
+ \else
+ \etb@br@false
+ \fi}%
+ \etb@br@bool#2&}
+
+\long\def\etb@br@test#1test#2&{%
+ \ifblank{#1}
+ {}
+ {\etb@err@expr{The invalid part is: '\detokenize{#1}'}}%
+ \ifblank{#2}
+ {}
+ {\etb@br@test@i#2&}}
+
+\long\def\etb@br@test@i#1#2&{%
+ \ignorespaces#1\etb@br@true\etb@br@false
+ \etb@br@test#2&}
+
+\long\def\etb@err@expr#1{%
+ \etb@error
+ {Invalid boolean expression}
+ {#1.}}
+
+% {<expr>}{<code>}
+
+\newrobustcmd{\whileboolexpr}[2]{%
+ \etb@boolexpr{#1}{#2\whileboolexpr{#1}{#2}}{}}
+
+% {<expr>}{<code>}
+
+\newrobustcmd{\unlessboolexpr}[2]{%
+ \etb@boolexpr{#1}{}{#2\unlessboolexpr{#1}{#2}}}
+
+% {<cstoken>}
+
+\newcommand{\expandonce}[1]{%
+ \unexpanded\expandafter{#1}}
+
+% {<csname>}
+
+\newcommand*{\csexpandonce}[1]{%
+ \expandafter\expandonce\csname#1\endcsname}
+
+% {<code>}
+
+\newcommand*{\protecting}{}
+\def\protecting#{%
+ \ifx\protect\@typeset@protect
+ \etb@protecting\@firstofone
+ \fi
+ \ifx\protect\@unexpandable@protect
+ \etb@protecting\etb@unexpandable
+ \fi
+ \ifx\protect\noexpand
+ \etb@protecting\unexpanded
+ \fi
+ \ifx\protect\string
+ \etb@protecting\detokenize
+ \fi
+ \relax\@firstofone}
+
+\def\etb@protecting#1#2\relax\@firstofone{\fi#1}
+\long\def\etb@unexpandable#1{\unexpanded{\protecting{#1}}}
+
+% {<csname>}
+
+\newrobustcmd*{\csdef}[1]{\expandafter\def\csname#1\endcsname}
+\newrobustcmd*{\csedef}[1]{\expandafter\edef\csname#1\endcsname}
+\newrobustcmd*{\csgdef}[1]{\expandafter\gdef\csname#1\endcsname}
+\newrobustcmd*{\csxdef}[1]{\expandafter\xdef\csname#1\endcsname}
+\newrobustcmd*{\protected@csedef}{\etb@protected\csedef}
+\newrobustcmd*{\protected@csxdef}{\etb@protected\csxdef}
+
+\def\etb@protected{%
+ \let\@@protect\protect
+ \let\protect\@unexpandable@protect
+ \afterassignment\restore@protect}
+
+% {<csname>}{<cstoken>}
+
+\newrobustcmd{\cslet}[2]{%
+ \expandafter\let\csname#1\endcsname#2}
+
+% {<cstoken>}{<csname>}
+
+\newrobustcmd{\letcs}[2]{%
+ \ifcsdef{#2}
+ {\expandafter\let\expandafter#1\csname#2\endcsname}
+ {\undef#1}}
+
+% {<csname>}{<csname>}
+
+\newrobustcmd*{\csletcs}[2]{%
+ \ifcsdef{#2}
+ {\expandafter\let
+ \csname#1\expandafter\endcsname
+ \csname#2\endcsname}
+ {\csundef{#1}}}
+
+% {<csname>}
+
+\newcommand*{\csuse}[1]{%
+ \ifcsname#1\endcsname
+ \csname#1\expandafter\endcsname
+ \fi}
+
+% {<cstoken>}
+
+\newrobustcmd{\undef}[1]{\let#1\etb@undefined}
+
+% {<csname>}
+
+\newrobustcmd*{\csundef}[1]{\cslet{#1}\etb@undefined}
+
+% {<cstoken>}{<code>}
+
+\newrobustcmd{\appto}[2]{%
+ \ifundef{#1}
+ {\edef#1{\unexpanded{#2}}}
+ {\edef#1{\expandonce#1\unexpanded{#2}}}}
+\newrobustcmd{\eappto}[2]{%
+ \ifundef{#1}
+ {\edef#1{#2}}
+ {\edef#1{\expandonce#1#2}}}
+\newrobustcmd{\gappto}[2]{%
+ \ifundef{#1}
+ {\xdef#1{\unexpanded{#2}}}
+ {\xdef#1{\expandonce#1\unexpanded{#2}}}}
+\newrobustcmd{\xappto}[2]{%
+ \ifundef{#1}
+ {\xdef#1{#2}}
+ {\xdef#1{\expandonce#1#2}}}
+
+\newrobustcmd*{\protected@eappto}{\etb@protected\eappto}
+\newrobustcmd*{\protected@xappto}{\etb@protected\xappto}
+
+% {<cstoken>}{<code>}
+
+\newrobustcmd{\preto}[2]{%
+ \ifundef{#1}
+ {\edef#1{\unexpanded{#2}}}
+ {\edef#1{\unexpanded{#2}\expandonce#1}}}
+\newrobustcmd{\epreto}[2]{%
+ \ifundef{#1}
+ {\edef#1{#2}}
+ {\edef#1{#2\expandonce#1}}}
+\newrobustcmd{\gpreto}[2]{%
+ \ifundef{#1}
+ {\xdef#1{\unexpanded{#2}}}
+ {\xdef#1{\unexpanded{#2}\expandonce#1}}}
+\newrobustcmd{\xpreto}[2]{%
+ \ifundef{#1}
+ {\xdef#1{#2}}
+ {\xdef#1{#2\expandonce#1}}}
+
+\newrobustcmd*{\protected@epreto}{\etb@protected\epreto}
+\newrobustcmd*{\protected@xpreto}{\etb@protected\xpreto}
+
+% {<csname>}{<code>}
+
+\newrobustcmd*{\csappto}[1]{\expandafter\appto\csname#1\endcsname}
+\newrobustcmd*{\cseappto}[1]{\expandafter\eappto\csname#1\endcsname}
+\newrobustcmd*{\csgappto}[1]{\expandafter\gappto\csname#1\endcsname}
+\newrobustcmd*{\csxappto}[1]{\expandafter\xappto\csname#1\endcsname}
+\newrobustcmd*{\protected@cseappto}{\etb@protected\cseappto}
+\newrobustcmd*{\protected@csxappto}{\etb@protected\csxappto}
+
+% {<csname>}{<code>}
+
+\newrobustcmd*{\cspreto}[1]{\expandafter\preto\csname#1\endcsname}
+\newrobustcmd*{\csepreto}[1]{\expandafter\epreto\csname#1\endcsname}
+\newrobustcmd*{\csgpreto}[1]{\expandafter\gpreto\csname#1\endcsname}
+\newrobustcmd*{\csxpreto}[1]{\expandafter\xpreto\csname#1\endcsname}
+\newrobustcmd*{\protected@csepreto}{\etb@protected\csepreto}
+\newrobustcmd*{\protected@csxpreto}{\etb@protected\csxpreto}
+
+% {<cstoken>}{<numexpr>}
+
+\newrobustcmd*{\numdef}[2]{%
+ \ifundef#1{\let#1\z@}{}%
+ \edef#1{\the\numexpr#2}}
+\newrobustcmd*{\numgdef}[2]{%
+ \ifundef#1{\let#1\z@}{}%
+ \xdef#1{\the\numexpr#2}}
+
+% {<csname>}{<numexpr>}
+
+\newrobustcmd*{\csnumdef}[1]{%
+ \expandafter\numdef\csname#1\endcsname}
+\newrobustcmd*{\csnumgdef}[1]{%
+ \expandafter\numgdef\csname#1\endcsname}
+
+% {<cstoken>}{<dimexpr>}
+
+\newrobustcmd*{\dimdef}[2]{%
+ \ifundef#1{\let#1\z@}{}%
+ \edef#1{\the\dimexpr#2}}
+\newrobustcmd*{\dimgdef}[2]{%
+ \ifundef#1{\let#1\z@}{}%
+ \xdef#1{\the\dimexpr#2}}
+
+% {<csname>}{<dimexpr>}
+
+\newrobustcmd*{\csdimdef}[1]{%
+ \expandafter\dimdef\csname#1\endcsname}
+\newrobustcmd*{\csdimgdef}[1]{%
+ \expandafter\dimgdef\csname#1\endcsname}
+
+% {<cstoken>}{<glueexpr>}
+
+\newrobustcmd*{\gluedef}[2]{%
+ \ifundef#1{\let#1\z@skip}{}%
+ \edef#1{\the\glueexpr#2}}
+\newrobustcmd*{\gluegdef}[2]{%
+ \ifundef#1{\let#1\z@skip}{}%
+ \xdef#1{\the\glueexpr#2}}
+
+% {<csname>}{<glueexpr>}
+
+\newrobustcmd*{\csgluedef}[1]{%
+ \expandafter\gluedef\csname#1\endcsname}
+\newrobustcmd*{\csgluegdef}[1]{%
+ \expandafter\gluegdef\csname#1\endcsname}
+
+% {<cstoken>}{<muexpr>}
+
+\newrobustcmd*{\mudef}[2]{%
+ \ifundef#1{\def#1{0mu}}{}%
+ \edef#1{\the\muexpr#2}}
+\newrobustcmd*{\mugdef}[2]{%
+ \ifundef#1{\let#1\z@}{}%
+ \xdef#1{\the\muexpr#2}}
+
+% {<csname>}{<muexpr>}
+
+\newrobustcmd*{\csmudef}[1]{%
+ \expandafter\mudef\csname#1\endcsname}
+\newrobustcmd*{\csmugdef}[1]{%
+ \expandafter\mugdef\csname#1\endcsname}
+
+% {<counter>}{<numexpr>}
+
+\newrobustcmd*{\defcounter}[2]{%
+ \ifcsundef{c@#1}
+ {\etb@noglobal\@nocounterr{#1}}%
+ {\csname c@#1\endcsname\numexpr#2\relax}}
+
+% {<length>}{<glueexpr>}
+
+\newrobustcmd*{\deflength}[2]{%
+ \ifundef{#1}
+ {\etb@noglobal\etb@err@nolen{#1}}%
+ {#1\glueexpr#2\relax}}
+
+\protected\def\etb@err@nolen#1{%
+ \etb@error{Length '\string#1' undefined}\@eha}
+
+% {<name>}
+
+\newrobustcmd*{\newbool}[1]{%
+ \expandafter\@ifdefinable\csname if#1\endcsname{%
+ \expandafter\newif\csname if#1\endcsname}}
+
+% {<name>}
+
+\newrobustcmd*{\providebool}[1]{%
+ \ifcsundef{if#1}
+ {\expandafter\newif\csname if#1\endcsname}
+ {\begingroup
+ \edef\@tempa{\expandafter\meaning\csname if#1\endcsname}%
+ \ifx\@tempa\etb@isfalse
+ \else
+ \ifx\@tempa\etb@istrue
+ \else
+ \etb@error{\@backslashchar if#1 not a boolean}\@eha
+ \fi
+ \fi
+ \endgroup}}
+
+% {<name>}{<true>|<false>}
+
+\newrobustcmd*{\setbool}[2]{%
+ \ifcsundef{if#1}
+ {\etb@noglobal\etb@err@nobool{#1}}
+ {\ifcsundef{#1#2}
+ {\etb@noglobal\etb@err@boolval{#2}}
+ {\csname#1#2\endcsname}}}
+
+% {<name>}
+
+\newrobustcmd*{\booltrue}[1]{%
+ \ifcsundef{if#1}
+ {\etb@noglobal\etb@err@nobool{#1}}
+ {\csname#1true\endcsname}}
+
+% {<name>}
+
+\newrobustcmd*{\boolfalse}[1]{%
+ \ifcsundef{if#1}
+ {\etb@noglobal\etb@err@nobool{#1}}
+ {\csname#1false\endcsname}}
+
+\edef\etb@istrue{\meaning\iftrue}
+\edef\etb@isfalse{\meaning\iffalse}
+\protected\def\etb@noglobal{\let\relax\relax}
+
+% {<name>}{<true}{<false>}
+
+\newcommand*{\ifbool}[1]{%
+ \ifcsundef{if#1}
+ {\etb@err@nobool{#1}\@gobbletwo}
+ {\csname if#1\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}
+
+% {<name>}{<not true}{<not false>}
+
+\newcommand*{\notbool}[1]{%
+ \ifcsundef{if#1}
+ {\etb@err@nobool{#1}\@gobbletwo}
+ {\csname if#1\endcsname
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}}
+
+\protected\def\etb@err@nobool#1{%
+ \etb@error{Boolean '\@backslashchar if#1' undefined}\@eha}
+
+\def\etb@err@boolval#1{%
+ \etb@error
+ {Invalid boolean value '#1'}
+ {Valid boolean values are 'true' and 'false'.}}
+
+% {<name>}
+
+\newrobustcmd*{\newtoggle}[1]{%
+ \ifcsdef{etb@tgl@#1}
+ {\etb@error{Toggle '#1' already defined}\@eha}
+ {\cslet{etb@tgl@#1}\@secondoftwo}}
+
+% {<name>}
+
+\newrobustcmd*{\providetoggle}[1]{%
+ \ifcsdef{etb@tgl@#1}
+ {}
+ {\cslet{etb@tgl@#1}\@secondoftwo}}
+
+% {<name>}{<true>|<false>}
+
+\newrobustcmd*{\settoggle}[2]{%
+ \ifcsdef{etb@tgl@#1}
+ {\ifcsdef{etb@toggle#2}
+ {\csletcs{etb@tgl@#1}{etb@toggle#2}}
+ {\etb@noglobal\etb@err@boolval{#2}}}
+ {\etb@noglobal\etb@err@notoggle{#1}}}
+
+% {<name>}
+
+\newrobustcmd*{\toggletrue}[1]{%
+ \ifcsdef{etb@tgl@#1}
+ {\cslet{etb@tgl@#1}\etb@toggletrue}
+ {\etb@noglobal\etb@err@notoggle{#1}}}
+
+% {<name>}
+
+\newrobustcmd*{\togglefalse}[1]{%
+ \ifcsdef{etb@tgl@#1}
+ {\cslet{etb@tgl@#1}\etb@togglefalse}
+ {\etb@noglobal\etb@err@notoggle{#1}}}
+
+\let\etb@toggletrue\@firstoftwo
+\let\etb@togglefalse\@secondoftwo
+
+% {<name>}{<true}{<false>}
+
+\newcommand*{\iftoggle}[1]{%
+ \ifcsdef{etb@tgl@#1}
+ {\csname etb@tgl@#1\endcsname}
+ {\etb@err@notoggle{#1}\@gobbletwo}}
+
+% {<name>}{<not true}{<not false>}
+
+\newcommand*{\nottoggle}[1]{%
+ \ifcsdef{etb@tgl@#1}
+ {\csname etb@tgl@#1\endcsname\@secondoftwo\@firstoftwo}
+ {\etb@err@notoggle{#1}\@gobbletwo}}
+
+\protected\def\etb@err@notoggle#1{%
+ \etb@error{Toggle '#1' undefined}\@eha}
+
+% {<cstoken>}{<true}{<false>}
+
+\protected\def\etb@ifscanable#1{%
+ \begingroup
+ \edef\etb@resrvda{%
+ \def\noexpand\etb@resrvda####1\detokenize{macro}:####2->####3&{%
+ ####1\def\string\etb@resrvda####2{####3}}%
+ \edef\noexpand\etb@resrvda{\noexpand\etb@resrvda\meaning#1&}}%
+ \etb@resrvda
+ \makeatletter
+ \endlinechar\m@ne
+ \scantokens\expandafter{\etb@resrvda}%
+ \expandafter\endgroup\ifx#1\etb@resrvda
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<cstoken>}{<search>}{<true}{<false>}
+
+\protected\long\def\etb@ifpattern#1#2{%
+ \begingroup
+ \edef\etb@resrvda{%
+ \def\noexpand\etb@resrvda####1\detokenize{#2}####2&{%
+ \endgroup\noexpand\noexpand\noexpand\ifblank{####2}}%
+ \edef\noexpand\etb@resrvda{\noexpand\etb@resrvda
+ \expandafter\strip@prefix\meaning#1\detokenize{#2}&}%
+ \noexpand\etb@resrvda}%
+ \etb@resrvda\@secondoftwo\@firstoftwo}
+
+% {<string>}{<true}{<false>}
+
+\protected\long\def\etb@ifhashcheck#1{%
+ \begingroup
+ \edef\etb@resrvda{\detokenize{#1}}%
+ \expandafter\endgroup
+ \expandafter\etb@ifhashcheck@i\meaning\etb@resrvda&}
+
+\edef\etb@ifhashcheck@i#1&{%
+ \noexpand\expandafter
+ \noexpand\etb@ifhashcheck@ii
+ \noexpand\strip@prefix#1\string#\string#&}
+
+\edef\etb@ifhashcheck@ii{%
+ \def\noexpand\etb@ifhashcheck@ii##1\string#\string###2&}
+\etb@ifhashcheck@ii{\ifblank{#2}}
+
+% {<cstoken>}
+
+\newrobustcmd*{\robustify}[1]{%
+ \ifundef{#1}
+ {\etb@error{\string#1 undefined}\@eha}
+ {\ifdefmacro{#1}
+ {\ifdefltxprotect{#1}
+ {\letcs\etb@resrvda{\expandafter\@gobble\string#1 }%
+ \@tempswatrue}
+ {\let\etb@resrvda#1%
+ \@tempswafalse}%
+ \ifdefparam\etb@resrvda
+ {\etb@ifscanable\etb@resrvda
+ {\etb@robustify\etb@resrvda
+ \let#1\etb@resrvda}
+ {\etb@error{Failed to robustify \string#1}
+ {The command is special and cannot be
+ handled by \string\robustify.}%
+ \@tempswafalse}}
+ {\protected\edef#1{\expandonce\etb@resrvda}}%
+ \if@tempswa
+ \ifcsdef{\string#1 }
+ {}
+ {\csundef{\expandafter\@gobble\string#1 }}%
+ \fi
+ \undef\etb@resrvda}
+ {\etb@error{\string#1 not a macro}\@eha}}}
+
+\def\etb@robustify#1{%
+ \begingroup
+ \edef\etb@resrvdb{%
+ \def\noexpand\etb@resrvdb####1\detokenize{macro}:####2->####3&{%
+ \protected####1\def\string#1\space####2{####3}}%
+ \edef\noexpand\etb@resrvdb{%
+ \noexpand\etb@resrvdb\meaning#1&}}%
+ \etb@resrvdb
+ \etb@patchcmd@scantoks\etb@resrvdb}
+
+% {<cstoken>}{<search>}{<true}{<false>}
+% *{<cstoken>}{<true}{<false>}
+
+\newrobustcmd{\ifpatchable}{%
+ \etb@dbg@trce\ifpatchable
+ \begingroup
+ \@makeother\#%
+ \@ifstar\etb@ifpatchable@i\etb@ifpatchable}
+
+\long\def\etb@ifpatchable#1#2{%
+ \endgroup
+ \etb@dbg@init#1%
+ \ifundef{#1}
+ {\etb@dbg@fail{def}\@secondoftwo}
+ {\etb@dbg@info{def}%
+ \ifdefmacro{#1}
+ {\etb@dbg@info{mac}%
+ \etb@ifscanable{#1}
+ {\etb@ifhashcheck{#2}
+ {\etb@dbg@info{tok}%
+ \etb@ifpattern#1{#2}
+ {\etb@dbg@info{pat}%
+ \etb@dbg@info{pos}\@firstoftwo}
+ {\etb@dbg@fail{pat}\@secondoftwo}}
+ {\etb@dbg@fail{hsh}\@secondoftwo}}
+ {\etb@dbg@fail{tok}\@secondoftwo}}
+ {\etb@dbg@fail{mac}\@secondoftwo}}}
+
+\long\def\etb@ifpatchable@i#1{%
+ \endgroup
+ \etb@dbg@init#1%
+ \ifundef{#1}
+ {\etb@dbg@fail{def}\@secondoftwo}
+ {\etb@dbg@info{def}%
+ \ifdefmacro{#1}
+ {\etb@dbg@info{mac}%
+ \ifdefparam{#1}
+ {\etb@dbg@info{prm}%
+ \etb@ifscanable{#1}
+ {\etb@dbg@info{tok}%
+ \etb@dbg@info{pos}\@firstoftwo}
+ {\etb@dbg@fail{tok}\@secondoftwo}}
+ {\etb@dbg@info{prl}%
+ \ifdefprotected{#1}
+ {\etb@dbg@info{pro}}
+ {}%
+ \etb@dbg@info{pos}\@firstoftwo}}
+ {\etb@dbg@fail{mac}\@secondoftwo}}}
+
+% [<prefix>]{<cstoken>}{<search>}{<replace>}{<success>}{<failure>}
+
+\newrobustcmd*{\patchcmd}{%
+ \etb@dbg@trce\patchcmd
+ \begingroup
+ \@makeother\#%
+ \etb@patchcmd}
+
+\newcommand{\etb@patchcmd}[4][########1]{%
+ \etb@ifpatchable#2{#3}
+ {\etb@dbg@succ{ret}%
+ \begingroup
+ \edef\etb@resrvda{%
+ \def\noexpand\etb@resrvda####1\detokenize{macro:}####2->####3&{%
+ #1\def\string\etb@resrvda\space####2{\noexpand\etb@resrvdb####3&}}%
+ \def\noexpand\etb@resrvdb####1\detokenize{#3}####2&{%
+ ####1\detokenize{#4}####2}%
+ \edef\noexpand\etb@resrvda{%
+ \noexpand\etb@resrvda\meaning#2&}}%
+ \etb@resrvda
+ \etb@patchcmd@scantoks\etb@resrvda
+ \let#2\etb@resrvda
+ \undef\etb@resrvda
+ \@firstoftwo}%
+ {\@secondoftwo}}
+
+\def\etb@patchcmd@scantoks#1{%
+ \edef\etb@resrvda{\endgroup
+ \endlinechar\m@ne
+ \unexpanded{\makeatletter\scantokens}{#1}%
+ \endlinechar\the\endlinechar\relax
+ \catcode\number`\@=\the\catcode`\@\relax}%
+ \etb@resrvda}
+
+% {<cstoken>}{<code>}{<success>}{<failure>}
+
+\newrobustcmd*{\apptocmd}{%
+ \etb@dbg@trce\apptocmd
+ \begingroup
+ \@makeother\#%
+ \etb@hooktocmd\etb@append}
+
+\newrobustcmd*{\pretocmd}{%
+ \etb@dbg@trce\pretocmd
+ \begingroup
+ \@makeother\#%
+ \etb@hooktocmd\etb@prepend}
+
+\long\def\etb@hooktocmd#1#2#3{%
+ \endgroup
+ \etb@dbg@init#2%
+ \ifundef{#2}
+ {\etb@dbg@fail{def}\@secondoftwo}
+ {\etb@dbg@info{def}%
+ \ifdefmacro{#2}
+ {\etb@dbg@info{mac}%
+ \ifdefparam{#2}
+ {\etb@dbg@info{prm}%
+ \etb@ifscanable{#2}
+ {\etb@ifhashcheck{#3}
+ {\etb@dbg@info{tok}%
+ \etb@dbg@succ{ret}%
+ \etb@hooktocmd@i#1#2{#3}%
+ \@firstoftwo}
+ {\etb@dbg@fail{hsh}\@secondoftwo}}
+ {\etb@dbg@fail{tok}\@secondoftwo}}
+ {\etb@dbg@info{prl}%
+ \ifdefprotected{#2}
+ {\etb@dbg@info{pro}%
+ \etb@dbg@succ{red}%
+ \protected}
+ {\etb@dbg@succ{red}}%
+ \edef#2{#1{\expandonce#2}{\unexpanded{#3}}}%
+ \@firstoftwo}}
+ {\etb@dbg@fail{mac}\@secondoftwo}}}
+
+\long\def\etb@hooktocmd@i#1#2#3{%
+ \begingroup
+ \edef\etb@resrvda{%
+ \def\noexpand\etb@resrvda####1\detokenize{macro}:####2->####3&{%
+ ####1\def\string\etb@resrvda\space####2{#1{####3}{\detokenize{#3}}}}%
+ \edef\noexpand\etb@resrvda{%
+ \noexpand\etb@resrvda\meaning#2&}}%
+ \etb@resrvda
+ \etb@patchcmd@scantoks\etb@resrvda
+ \let#2\etb@resrvda
+ \undef\etb@resrvda}
+
+\long\def\etb@append#1#2{#1#2}
+\long\def\etb@prepend#1#2{#2#1}
+
+\newrobustcmd*{\tracingpatches}{%
+ \etb@info{Enabling tracing}%
+ \input{etoolbox.def}%
+ \global\let\tracingpatches\relax}
+\@onlypreamble\tracingpatches
+
+\let\etb@dbg@trce\@gobble
+\let\etb@dbg@init\@gobble
+\let\etb@dbg@info\@gobble
+\let\etb@dbg@succ\@gobble
+\let\etb@dbg@fail\@gobble
+
+% {<numeral>}
+
+\newcommand{\rmntonum}[1]{%
+ \ifblank{#1}
+ {}
+ {\expandafter\etb@rti@end\number\numexpr
+ \expandafter\etb@rti@prs\detokenize{#1}&\relax}}
+
+\def\etb@rti@prs#1#2{%
+ \ifx&#1%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1#2}
+ {\ifx&#2%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\etb@rti@chk#1+\etb@rti@num#1#2}
+ {\etb@rti@chk#1\etb@rti@chk#2%
+ \ifnum\etb@rti@num#1<\etb@rti@num#2 %
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {+\etb@rti@num#2-\etb@rti@num#1\etb@rti@prs}
+ {+\etb@rti@num#1\etb@rti@prs#2}}}}
+
+\def\etb@rti@chk#1{%
+ \ifcsname etb@rmn@#1\endcsname
+ \else
+ \expandafter\etb@rti@brk
+ \fi}
+
+\def\etb@rti@brk#1&{+\z@&-1}
+\def\etb@rti@end#1&#2\relax{\ifblank{#2}{#1}{#2}}
+\def\etb@rti@num#1{\csname etb@rmn@#1\endcsname}
+
+\chardef\etb@rmn@i=1
+\chardef\etb@rmn@I=1
+\chardef\etb@rmn@v=5
+\chardef\etb@rmn@V=5
+\chardef\etb@rmn@x=10
+\chardef\etb@rmn@X=10
+\chardef\etb@rmn@l=50
+\chardef\etb@rmn@L=50
+\chardef\etb@rmn@c=100
+\chardef\etb@rmn@C=100
+\mathchardef\etb@rmn@d=500
+\mathchardef\etb@rmn@D=500
+\mathchardef\etb@rmn@m=1000
+\mathchardef\etb@rmn@M=1000
+
+% {<numeral>}{<true>}{<false>}
+
+\newcommand{\ifrmnum}[1]{%
+ \ifblank{#1}
+ {\@secondoftwo}
+ {\expandafter\etb@ifr@prs\detokenize{#1}\relax}}
+
+\def\etb@ifr@prs#1{%
+ \ifx\relax#1%
+ \expandafter\@firstoftwo
+ \else
+ \ifcsname etb@rmn@#1\endcsname
+ \expandafter\expandafter
+ \expandafter\etb@ifr@prs
+ \else
+ \expandafter\expandafter
+ \expandafter\etb@ifr@brk
+ \fi
+ \fi}
+
+\def\etb@ifr@brk#1\relax{\@secondoftwo}
+
+% <*>{<command>}{<separator>}
+
+\newrobustcmd*{\DeclareListParser}{%
+ \@ifstar
+ {\etb@defparser\etb@defparser@arg}
+ {\etb@defparser\etb@defparser@do}}
+
+\def\etb@defparser#1#2#3{%
+ \@ifdefinable#2{#1{#2}{#3}}}
+
+\def\etb@defparser@do#1#2{%
+ \begingroup
+ \edef\@tempa{\endgroup
+ \long\def\noexpand#1####1{%
+ \expandafter\noexpand
+ \csname etb@lst@\expandafter\@gobble\string#1\endcsname
+ \space####1\noexpand#2&}%
+ \long\csdef{etb@lst@\expandafter\@gobble\string#1}####1\noexpand#2####2&{%
+ \noexpand\etb@listitem\noexpand\do{####1}%
+ \noexpand\ifblank{####2}
+ {\noexpand\listbreak}
+ {\expandafter\noexpand
+ \csname etb@lst@\expandafter\@gobble\string#1\endcsname
+ \space####2}&}}%
+ \@tempa}
+
+\def\etb@defparser@arg#1#2{%
+ \begingroup
+ \edef\@tempa{\endgroup
+ \long\def\noexpand#1####1####2{%
+ \expandafter\noexpand
+ \csname etb@lst@\expandafter\@gobble\string#1\endcsname
+ {####1}\space####2\noexpand#2&}%
+ \long\csdef{etb@lst@\expandafter\@gobble\string#1}####1####2\noexpand#2####3&{%
+ \noexpand\etb@listitem{####1}{####2}%
+ \noexpand\ifblank{####3}
+ {\noexpand\listbreak}
+ {\expandafter\noexpand
+ \csname etb@lst@\expandafter\@gobble\string#1\endcsname
+ {####1}\space####3}&}}%
+ \@tempa}
+
+\long\def\etb@listitem#1#2{%
+ \ifblank{#2}
+ {}
+ {\expandafter\etb@listitem@i
+ \expandafter{\@firstofone#2}{#1}}}
+\long\def\etb@listitem@i#1#2{#2{#1}}
+
+\newcommand*{\listbreak}{}
+\long\def\listbreak#1&{}
+
+% {<item1>,<item2>,...} => \do{<item1>}\do{<item2>}...
+
+\DeclareListParser{\docsvlist}{,}
+
+% {<handler>}{<item1>,<item2>,...} => <handler>{<item1>}<handler>{<item2>}...
+
+\DeclareListParser*{\forcsvlist}{,}
+
+% {<listmacro>}{<string>}
+
+\newrobustcmd{\listadd}[2]{%
+ \ifblank{#2}{}{\appto#1{#2|}}}
+\newrobustcmd{\listeadd}[2]{%
+ \begingroup
+ \edef\etb@tempa{\endgroup\noexpand\ifblank{#2}}%
+ \etb@tempa{}{\eappto#1{#2|}}}
+\newrobustcmd{\listgadd}[2]{%
+ \ifblank{#2}{}{\gappto#1{#2|}}}
+\newrobustcmd{\listxadd}[2]{%
+ \begingroup
+ \edef\etb@tempa{\endgroup\noexpand\ifblank{#2}}%
+ \etb@tempa{}{\xappto#1{#2|}}}
+
+% {<listcsname>}{<string>}
+
+\newrobustcmd{\listcsadd}[1]{%
+ \expandafter\listadd\csname#1\endcsname}
+\newrobustcmd{\listcseadd}[1]{%
+ \expandafter\listeadd\csname#1\endcsname}
+\newrobustcmd{\listcsgadd}[1]{%
+ \expandafter\listgadd\csname#1\endcsname}
+\newrobustcmd{\listcsxadd}[1]{%
+ \expandafter\listxadd\csname#1\endcsname}
+
+% {<string>}{<listmacro>}{<true>}{<false>}
+
+\newrobustcmd{\ifinlist}[2]{%
+ \begingroup
+ \def\etb@tempa##1|#1|##2&{\endgroup
+ \ifblank{##2}\@secondoftwo\@firstoftwo}%
+ \expandafter\etb@tempa\expandafter|#2|#1|&}
+
+\newrobustcmd{\xifinlist}[1]{%
+ \begingroup
+ \edef\etb@tempa{\endgroup\ifinlist{#1}}%
+ \etb@tempa}
+
+% {<string>}{<listcsname>}{<true>}{<false>}
+
+\newrobustcmd{\ifinlistcs}[2]{%
+ \expandafter\etb@ifinlistcs@i\csname #2\endcsname{#1}}
+\long\def\etb@ifinlistcs@i#1#2{\ifinlist{#2}{#1}}
+
+\newrobustcmd{\xifinlistcs}[1]{%
+ \begingroup
+ \edef\etb@tempa{\endgroup\ifinlistcs{#1}}%
+ \etb@tempa}
+
+% {<handler>}{<listmacro>} => <handler>{<item1>}<handler>{<item2>}...
+
+\newcommand*{\forlistloop}[2]{%
+ \expandafter\etb@forlistloop\expandafter{#2}{#1}}
+
+\long\def\etb@forlistloop#1#2{\etb@forlistloop@i{#2}#1|&}
+
+\long\def\etb@forlistloop@i#1#2|#3&{%
+ \ifblank{#2}
+ {}
+ {#1{#2}}%
+ \ifblank{#3}
+ {\listbreak}
+ {\etb@forlistloop@i{#1}#3}%
+ &}
+
+% {<handler>}{<listcsname>} => <handler>{<item1>}<handler>{<item2>}...
+
+\newcommand*{\forlistcsloop}[2]{%
+ \expandafter\expandafter\expandafter\etb@forlistloop
+ \expandafter\expandafter\expandafter{\csname#2\endcsname}{#1}}
+
+% {<listmacro>} => \do{<item1>}\do{<item2>}...
+
+\newcommand*{\dolistloop}{\forlistloop\do}
+
+% {<listcsname>} => \do{<item1>}\do{<item2>}...
+
+\newcommand*{\dolistcsloop}{\forlistcsloop\do}
+
+% {<code>}
+
+\newrobustcmd*{\AtEndPreamble}{\gappto\@endpreamblehook}
+\newcommand*{\@endpreamblehook}{}
+
+\preto\document{%
+ \endgroup
+ \let\AtEndPreamble\@firstofone
+ \@endpreamblehook
+ \protected\def\AtEndPreamble{\@notprerr\@gobble}%
+ \undef\@endpreamblehook
+ \begingroup}
+
+% {<code>}
+
+\newrobustcmd*{\AfterPreamble}{\AtBeginDocument}
+\AtEndPreamble{\let\AfterPreamble\@firstofone}
+
+% {<code>}
+
+\newrobustcmd*{\AfterEndPreamble}{\gappto\@afterendpreamblehook}
+\newcommand*{\@afterendpreamblehook}{}
+
+\appto\document{%
+ \let\AfterEndPreamble\@firstofone
+ \@afterendpreamblehook
+ \protected\def\AfterEndPreamble{\@notprerr\@gobble}%
+ \undef\@afterendpreamblehook
+ \ignorespaces}
+
+\AtEndDocument{\let\AfterEndPreamble\@gobble}
+
+% {<code>}
+
+\newrobustcmd*{\AfterEndDocument}{\gappto\@afterenddocumenthook}
+\newcommand*{\@afterenddocumenthook}{}
+
+\patchcmd\enddocument
+ {\deadcycles}
+ {\let\AfterEndDocument\@firstofone
+ \@afterenddocumenthook
+ \deadcycles}
+ {}
+ {\AtEndDocument{%
+ \let\etb@@end\@@end
+ \def\@@end{%
+ \let\AfterEndDocument\@firstofone
+ \@afterenddocumenthook
+ \etb@@end}}}
+
+% {<environment>}{<code>}
+
+\newrobustcmd{\AtBeginEnvironment}[1]{%
+ \csgappto{@begin@#1@hook}}
+
+\patchcmd\begin
+ {\csname #1\endcsname}
+ {\csuse{@begin@#1@hook}%
+ \csname #1\endcsname}
+ {}
+ {\etb@warning{%
+ Patching '\string\begin' failed!\MessageBreak
+ '\string\AtBeginEnvironment' will not work\@gobble}}
+
+% {<environment>}{<code>}
+
+\newrobustcmd{\AtEndEnvironment}[1]{%
+ \csgappto{@end@#1@hook}}
+
+\patchcmd\end
+ {\csname end#1\endcsname}
+ {\csuse{@end@#1@hook}%
+ \csname end#1\endcsname}
+ {}
+ {\etb@warning{%
+ Patching '\string\end' failed!\MessageBreak
+ '\string\AtEndEnvironment' will not work\@gobble}}
+
+% {<environment>}{<code>}
+
+\newrobustcmd{\BeforeBeginEnvironment}[1]{%
+ \csgappto{@beforebegin@#1@hook}}
+
+\pretocmd\begin
+ {\csuse{@beforebegin@#1@hook}}
+ {}
+ {\etb@warning{%
+ Patching '\string\begin' failed!\MessageBreak
+ '\string\BeforeBeginEnvironment' will not work\@gobble}}
+
+% {<environment>}{<code>}
+
+\newrobustcmd{\AfterEndEnvironment}[1]{%
+ \csgappto{@afterend@#1@hook}}
+
+\patchcmd\end
+ {\if@ignore}
+ {\csuse{@afterend@#1@hook}%
+ \if@ignore}
+ {}
+ {\etb@warning{%
+ Patching '\string\end' failed!\MessageBreak
+ '\string\AfterEndEnvironment' will not work\@gobble}}
+
+\endinput
diff --git a/tex/.texmf/tex/latex/misc/ulem.sty b/tex/.texmf/tex/latex/misc/ulem.sty
new file mode 100644
index 0000000..bdad13b
--- /dev/null
+++ b/tex/.texmf/tex/latex/misc/ulem.sty
@@ -0,0 +1,532 @@
+%
+% U L E M . S T Y [2012-05-18]
+%
+% The ulem package provides various types of underlining that can stretch
+% between words and be broken across lines in LaTeX or plain TeX.
+% In LaTeX ulem replaces italics with underlining in \em-phasized text.
+% It is most suitable for simple text such as {\em ibid.} or \emph{\LaTeX:
+% A Document Preparation System} that may need to be underlined in a
+% manuscript submitted for publication. A declaration of \normalem (or
+% the \usepackage option "normalem") restores the normal \em behavior.
+%
+% Full instructions appear in ulem.ltx (ulem.pdf). In summary:
+%
+% \uline{important} underlined text
+% \uuline{urgent} double-underlined text
+% \uwave{boat} wavy underline
+% \sout{wrong} line drawn through word
+% \xout{removed} marked over with //////.
+% \dashuline{dashing} dash underline
+% \dotuline{dotty} dotted underline
+%
+% {\em phasized\/} | In LaTeX, by default, these are underlined; use
+% \emph{asized} | \normalem or [normalem] to restore italics
+% \useunder{\uwave}{\bfseries}{\textbf}
+% use wavy underline in place of bold face
+% Use \markoverwith for defining new types of underlining.
+%
+% Copyright (c) 1989-2011 by Donald Arseneau (Vancouver, Canada; asnd@triumf.ca)
+%
+% This software may be freely transmitted, reproduced, or modified for any
+% purpose provided that this copyright notice is left intact.
+% (Small excerpts may be taken and used without any restriction.)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Defend against multiple loading.
+\expandafter \ifx \csname UL@box\endcsname \relax \else
+ \immediate\write16{ulem.sty refuses to load twice. }\endinput \fi
+
+% Set catcode of @ in case it isn't a "letter" already
+\chardef\ULthickness\catcode\string`\@ % hold catcode temporarily
+\catcode\string`\@=11
+
+\def\uline{\relax \ifmmode\expandafter\underline
+ \else \bgroup\expandafter\ULset\fi}
+
+\newbox\UL@box
+\newbox\UL@hyphenbox
+\newskip\UL@skip
+\newtoks\UL@hook
+
+\newdimen\UL@height
+
+\newcount\UL@pe
+\let\LA@space\ \let\LA@hskip\hskip
+
+\def\UL@end *{\relax\relax}% something harmless unlikely to be found elsewhere
+
+% For regular underlines, set the depth based on the font, or retain
+% the preset value, then start underlining.
+\def\ULset{\UL@setULdepth
+ \def\UL@leadtype{\leaders \hrule \@height\UL@height \@depth\ULdepth}%
+ \ifmmode \ULdepth-4\p@ \fi
+ \UL@height-\ULdepth \advance\UL@height\ULthickness \ULon}
+
+% Automatically set \ULdepth if it is to be automatic (flagged by \maxdimen)
+\def\UL@setULdepth{\relax
+ \ifdim\ULdepth=\maxdimen % Set depth based on font, if not set already
+ \setbox\UL@box\hbox{{(j}}\ULdepth\dp\UL@box\advance\ULdepth.4\p@
+ % use setbox to support plain TeX
+ \fi}
+
+% \ULon simply calls \UL@on (possibly \UL@on=\UL@onin) for text mode, but
+% \UL@onmath if it is math mode.
+\def\ULon{\ifmmode \expandafter\UL@onmath\else \expandafter\UL@on\fi}
+
+% \UL@on sets the engine of underline running, and tells it
+% where to stop.
+\long\def\UL@on#1{\leavevmode\UL@ender \let\UL@on\UL@onin
+ \everymath{\UL@hrest}\everyvbox{\UL@hrest}\let\hskip\UL@hskip
+ \let\\\UL@cr \let\-\UL@dischyp \let\newline\UL@newline \let\ \UL@space
+ \def\hfil{\hskip\z@ plus1fil\relax}\def\hfill{\hskip\z@ plus1fill\relax}%
+ \def\hss{\hskip\z@ plus1filminus1fil\relax}\let\penalty\UL@penalty
+ \the\UL@hook
+ \UL@word\@empty#1\xdef\UL@spfactor{\the\spacefactor} \UL@end * }
+
+% This is what \ULon does when it appears nested in an inner place.
+\def\UL@onin#1{\leavevmode\UL@ender % when nested, do multiple underlining
+ \UL@height\ULthickness \advance\ULdepth\thr@@\UL@height
+ \advance\UL@height-\ULdepth \setbox\UL@box\hbox{{#1}}%
+ \let\UL@start\relax\UL@putbox\egroup}
+% \UL@putbox is disabled in inner mode, so re-enable it by changing \UL@start
+% \UL@hrest is implicit due to \everyhbox. Double braces for \hbox are in
+% lieu of \color@begin(end)group.
+
+% This is what \ULon does in math mode.
+\def\UL@onmath#1{\UL@ender\mathord{\UL@hrest\mathop{\kern\z@#1}\limits\sb
+ {\UL@leadtype\LA@hskip\p@ plus1fill}}\egroup}
+
+\def\UL@unegroup{}
+\gdef\UL@ender{}
+% end-brace matching hack for when command is used as a font declaration:
+\def\UL@swender{\ifnum`{=\z@\fi\aftergroup}\gdef\UL@ender{}}
+
+% must expand to nothing outside the ifs for syntactical spaces to work.
+% the \expandafters get rid of the \@empty inserted at the beg. of word
+\def\UL@word#1 {\expandafter\UL@start#1 %
+ \expandafter\ifx\expandafter\UL@end#1\egroup\egroup
+ \unskip \unskip \unskip % remove extra leader at end
+ \spacefactor\UL@spfactor \let\UL@word\egroup
+ \else % not finished
+ \ifmmode\else \ifdim\lastskip=\z@\else % allow syntactical spaces
+ \global\UL@skip\lastskip \unskip
+ \UL@stop \UL@leaders
+ \fi\fi
+ \fi \UL@word\@empty}% \@empty preserves braces in param
+
+% \UL@start: start of each chunk. It gives two levels of grouping.
+% Each chunk is ended by \UL@stop. Local intermissions go like
+% \UL@stop...\UL@start.
+\def\UL@start{\setbox\UL@box\hbox\bgroup\everyhbox{\UL@hrest}%
+% the following are to cope with stops (\ ,\- etc) within extra braces
+ \let\UL@start\@empty \def\UL@unegroup{\bgroup\bgroup}\let\UL@leadtype\@empty
+ \bgroup \kern-3sp\kern3sp % kerns so I can test for beginning of list
+ \if@ignore \global\@ignorefalse \ignorespaces \fi}
+
+\def\UL@stop{\global\UL@pe\lastpenalty \unpenalty % penalty in \UL@pe
+ \ifnum\lastkern=\thr@@ \egroup\egroup % Nothing in hbox...but make sure:
+ \ifdim\wd\UL@box=\z@ \else \UL@putbox \fi % something in box so print it
+ \else \egroup\egroup \UL@putbox % something in box so print it
+ \fi \ifnum\UL@pe=\z@ \else \LA@penalty\UL@pe \fi % use penalty from inside box
+ \UL@unegroup}
+% notice that a box with only a penalty in it is discarded, but the penalty
+% is still used! This is so a series of discardable glues and penalties
+% behaves properly.
+
+\def\UL@putbox{\ifx\UL@start\@empty \else % not inner
+ \vrule\@width\z@ \LA@penalty\@M
+ {\UL@skip\wd\UL@box \UL@leaders \kern-\UL@skip}%
+ \box\UL@box \fi}
+
+% With interword leaders, give some overlap to avoid gaps caused by
+% round-off errors in the printing program. Needs \unskip \unskip \unskip
+% above. This version overlaps 1/300 inch, which looks good at high
+% resolution, and will still work down to ~150 dpi. Change the value
+% of \UL@pixel if necessary.
+
+\newdimen\UL@pixel \UL@pixel=1in \divide\UL@pixel 300
+
+\def\UL@leaders{{\LA@hskip-\UL@pixel \advance\UL@skip\tw@\UL@pixel
+ \UL@leadtype\LA@hskip\UL@skip \LA@hskip-\UL@pixel}}
+
+% restore some things for inside math or \mbox
+\def\UL@hrest{\let\ \LA@space \let\-\@empty \let\penalty\LA@penalty}
+
+\def\UL@space{\LA@space \global\UL@skip\lastskip \unskip \UL@reskip}% \
+
+% Hyphenation is done by explicit \discretionary. The overlapping melds
+% with the running overlap because it *is* part of the running overlap:
+% The word fragment is extended by the width of the hyphenation which is
+% then overlapped by leaders. The discretionary may occupy this space
+% if a break occurs; otherwise the next syllable gets doubly-overlapped
+% (in registration) for a distance of the hyphen's width.
+\def\UL@dischyp{\global\setbox\UL@hyphenbox\hbox
+ {\ifnum \hyphenchar\font<\z@ \string-\else \char\hyphenchar\font \fi}%
+ \kern\wd\UL@hyphenbox \LA@penalty\@M
+ \UL@stop \kern-\wd\UL@hyphenbox
+ \discretionary{\box\UL@hyphenbox}{}{}\UL@start}
+
+\let\LA@penalty\penalty
+\def\UL@penalty{\relax\ifhmode \afterassignment\UL@@penalty\count@
+ \else\LA@penalty\fi}
+\def\UL@@penalty{\LA@penalty \ifnum\count@=\z@
+ \@ne \else \count@ \fi % zero penalty => no penalty, so use 1 instead.
+ \UL@stop \UL@start}
+
+% The test \ifx\ \LA@space \else means we are neither in math mode nor an
+% \mbox, so it is safe to stop the current \UL@box. \ , \- , and \penalty
+% (= \linebreak or \nolinebreak) are common enough that they are restored
+% directly (by \UL@hrest); \\, \newline, \hskip (= \hspace) are rare enough
+% that the test is incorporated in their UL versions. This adds processing
+% when they're used, but saves processing in \UL@hrest called by \everymath
+% \everyvbox and \everyhbox.
+
+\def\UL@hskip{\ifx\ \LA@space \LA@hskip \else
+ \afterassignment\UL@reskip \global\UL@skip \fi}
+
+\def\UL@reskip{\UL@stop \UL@leaders \UL@start}
+
+% Redefine \\ and \newline so the vertical space from \\[ ] is not lost
+% and so the \hfil is not underlined! \\ and \newline do nothing if inside
+% inner braces.
+
+\def\UL@cr{\unskip \ifx\ \LA@space \let\UL@vad\@gobble
+ \else \UL@stop \unskip\unskip\unskip \let\UL@vad\vadjust \fi
+ \@ifstar{\UL@vad{\LA@penalty\@M}\UL@cra}\UL@cra}
+\def\UL@cra{\@ifnextchar[\UL@crb\UL@newline}
+\def\UL@crb[#1]{\UL@vad{\vskip#1}\UL@newline}
+
+\def\UL@newline{\ifx\UL@start\@empty % (\UL@cr may have \UL@stop-ed already)
+ \unskip \ifx\ \LA@space \else \UL@stop \unskip\unskip\unskip \fi\fi
+ \LA@hskip \z@\@plus.0001fil\LA@penalty -\@M \UL@start}
+
+% That concludes the basic underlining. To put various other objects
+% (characters) under (or over) text we need to define \markoverwith
+% to set the overlay material in a box, and use leaders of that box for
+% overlaying the text. Here, the meaning of \UL@pixel is changed so
+% that `pixel' size = box size. Note that we generally need \leaders
+% (not \cleaders) for text, because an underline will be a patchwork
+% of small \leaders, and the characters must stay in registration.
+% However, we "hook" the leaders command so specific applications can
+% reassign it (\let\ULleaders\xleaders or \let\ULleaders\cleaders).
+%
+\newbox\ULC@box
+\let\ULleaders\leaders
+
+\def\markoverwith#1{\setbox\ULC@box\hbox{{#1}}\UL@pixel.5\wd\ULC@box
+ \ifmmode \setbox\ULC@box\hbox{\raise1.4ex\box\ULC@box}%
+ \dp\ULC@box-1.4ex\ht\ULC@box\z@ \def\UL@leadtype{\cleaders\copy\ULC@box}%
+ \else
+ \def\UL@leadtype{\ULleaders\copy\ULC@box}%
+ \fi}
+
+% Now define various special underlines. All the definitions go like
+% \def \command {\bgroup \markoverwith{something} \ULon}
+
+% For drawing a wavey underline instead of a straight one the command
+% is \uwave (under-wave) which uses the wiggle from 6-pt lasy font:
+
+\def\uwave{\bgroup \markoverwith{\lower3.5\p@\hbox{\sixly \char58}}\ULon}
+\font\sixly=lasy6 % does not re-load if already loaded, so no memory problem.
+
+% To draw a double underline under text, use \uuline{text}
+
+\def\uuline{\bgroup \UL@setULdepth
+ \markoverwith{\lower\ULdepth\hbox
+ {\kern-.03em\vbox{\hrule width.2em\kern1.2\p@\hrule}\kern-.03em}}%
+ \ULon}
+
+% To draw a line through text instead of under it (strike out) do
+% `under'-line with negative depth. Note that this one uses a real
+% line, not characters, so there is no \markoverwith.
+
+\def\sout{\bgroup \ULdepth=-.55ex \ULset}
+
+% To mark //// over text instead of underlining (x-out)
+%
+\def\xout{\bgroup \markoverwith{\hbox to.35em{\hss/\hss}}\ULon}
+
+\def\dotuline{\bgroup
+ \UL@setULdepth
+ \markoverwith{\begingroup
+ \advance\ULdepth0.08ex
+ \lower\ULdepth\hbox{\kern.1em .\kern.04em}%
+ \endgroup}%
+ \ULon}
+
+\def\dashuline{\bgroup
+ \UL@setULdepth
+ \markoverwith{\kern.13em
+ \vtop{\kern\ULdepth \hrule width .3em}%
+ \kern.13em}\ULon}
+
+% A command to declare that an underline command should be used in
+% place of a particular font selection:
+% \useunder {underline_command}{font_declaration}{font_command}
+% e.g.: \useunder{\uuline}{\bfseries}{\textbf}
+% \useunder{\uwave}{\bf}{}
+
+\def\useunder#1#2#3{\relax
+ \ifx\relax#2\relax\else % declaration command given
+ \def#2{\def\@tempa{#1}\global\let\UL@ender\UL@swender
+ \expandafter\@tempa\expandafter{\ifnum\z@=\string`}\fi}%
+ \MakeRobust{#2}\fi
+ \ifx\relax#3\relax\else % argumentative command
+ \def#3{#1}\MakeRobust{#3}\fi}
+
+\expandafter\ifx \csname @ifundefined\endcsname \relax
+
+% Allow plain TeX to use ulem.sty:
+ \def\@height{height}
+ \def\@depth{depth}
+ \def\@width{width}
+ \def\@empty{}
+ \long\def\@gobble#1{}
+ \def\MakeRobust#1{}
+% Do non-outer \newif with no visible \if's or \fi's when skipping
+ \csname newif\expandafter\endcsname \csname if@ignore\endcsname
+
+\else
+
+ \def\MakeRobust#1{\expandafter\let
+ \csname \expandafter\@gobble\string#1 \endcsname= #1%
+ \edef#1{\noexpand\protect \expandafter\noexpand
+ \csname\expandafter\@gobble\string#1 \endcsname}
+ }
+ \MakeRobust\uline
+ \MakeRobust\uuline
+ \MakeRobust\uwave
+ \MakeRobust\sout
+ \MakeRobust\xout
+
+ \let\LA@em\em \let\LA@emph\emph
+ \expandafter\let\expandafter\LA@Pem \csname em \endcsname
+ \expandafter\let\expandafter\LA@Pemph \csname emph \endcsname
+ \def\ULforem{\useunder{\uline}{\em}{\emph}}
+ \def\normalem{\let\em\LA@em \let\emph\LA@emph
+ \expandafter\let\csname em \endcsname\LA@Pem
+ \expandafter\let\csname emph \endcsname\LA@Pemph}
+ \ULforem % default is to use underlining for \em,
+
+\fi
+
+% Process LaTeX \package options; plain TeX skips this section
+
+\expandafter\ifx\csname ProvidesPackage\endcsname \relax \else
+ \ProvidesPackage{ulem}[2012/05/18]
+ \DeclareOption{normalem}{\normalem}
+ \DeclareOption{ULforem}{\ULforem}
+ \DeclareOption{normalbf}{}
+ \DeclareOption{UWforbf}{\useunder{\uwave}{\bf}{\textbf}}
+ \ProcessOptions
+%
+ \AtBeginDocument{\let\UL@marginpar\marginpar}%
+ \newcommand\UL@marpar[2][\gDefault@pt]{\gdef\gDefault@pt{#2}%
+ \ifx\ \LA@space \@latexerr{Marginpar lost}%
+ \else \UL@stop \UL@marginpar[#1]{#2}\UL@start \fi}
+ \addto@hook\UL@hook{\let\marginpar\UL@marpar}
+\fi
+
+\catcode`@=\ULthickness % Scratch meaning: restore catcode of @
+
+\def\ULthickness{.4pt}% can change this with \renewcommand
+\newdimen\ULdepth \ULdepth=\maxdimen
+% "maxdimen" depth causes the depth to be set according to the font. You
+% can change \ULdepth for a permanent setting or a special effect (\sout).
+
+\endinput
+
+%====================== BEGIN INSTRUCTIONS ===========================
+These plain text instructions may disappear soon. The primary instructions
+are in ulem.ltx (ulem.pdf, ulem.dvi).
+
+ULEM is a package for LaTeX or plain TeX which provides various types of
+underlining that can stretch between words and be broken across lines.
+In LaTeX this style replaces italics with underlining in emphasized text
+given by \em or \emph -- but only if the text is delimited by braces. A
+declaration \normalem (or the \usepackage option [normalem]) restores the
+normal \em behavior. For underlining in plain TeX, \input ulem.sty, and
+use the \uline command.
+
+Unlike regular underlining, ulem allows line breaks, and even primitive
+hyphenation, within the underlined text; but it is far from perfect. It is
+most suitable for simple text like {\em \LaTeX: A document preparation
+system\/} that may need to be underlined in a manuscript submitted for
+publication. Again, ulem will only replace \em and \emph when the text is
+delimited by explicit braces.
+
+The thickness of the underline rule is given by \ULthickness; use
+\renewcommand or \def (not \setlength) to change it. The depth of the
+underline is controlled by the length \ULdepth. The default value is a
+special flag which lets the current font control the depth. You can set
+a particular value to \ULdepth (using \setlength) to force a particular
+depth, either locally for a special purpose, or for the document as a
+whole. See the definition of \sout.
+
+Every word is typeset in an underlined box, so automatic hyphenation is
+normally disabled, but explicit discretionary hyphens (\-) will still be
+obeyed. Several text-formatting commands are specially supported within
+the underlining: \-, \ , ~, \\, \newline, \linebreak, \nolinebreak,
+\penalty, \hskip, \hspace, \hfil, \hfill, \hss. Displayed math and \par
+are deliberately not supported to aid in the detection of runaway arguments
+(missing braces). The special commands do have a problem: they end a
+group so any local assignments are lost.
+
+The underlines continue between words, and stretch just like ordinary
+spaces do. Since spaces delimit words, there may be some difficulty
+with syntactical spaces (e.g. "2.3 pt"). Some effort is made to handle
+such cases, but sometimes (such as \let\x= y) the space is interpreted
+incorrectly. You can usually solve the problem by enclosing the offending
+command in braces or in a macro (\newcommand\xeqy{\let\x= y}), but...
+
+One important incompatibility with braces and macro replacement:
+ALL THE TEXT IN BRACES OR COMING FROM A MACRO IS TYPESET IN A BOX.
+That is, braces will suppress stretching and linebreaks in the text they
+enclose. Moreover, the specially-taken-care-of commands \-, \\, \newline
+and \linebreak are usually ignored if they appear inside extra braces.
+They operate only when the braces delimit a command parameter without
+introducing a level of grouping. (Even though braces delimiting command
+parameters do not normally imply grouping, many commands will add their
+own grouping.) Thus, you should try to limit inner braces to short bits of
+text or for delimiting parameters to commands. For emergency repairs, see
+the "Marat/Sade" example below. Syntactical spaces inside braces never
+cause a problem, nor do spaces in math mode.
+
+Text produced by expansion of a command (macro) is boxed too, but \\, \
+and \- still work properly in the expansion text:
+ \newcommand\iff{if and only if} {\em \iff}
+does not allow any stretching or linebreaking between words, but
+ \newcommand\iff{if\ and\ only\ if} {\em \iff}
+allows stretching and linebreaking. There is a problem though: the
+\ between words closes a group and any local assignments will be lost,
+in particular, font changes and color changes.
+
+This loss of local assignments will break some other standard commands,
+(e.g., \cite) which produce multiple `words' using local assignments.
+The way to protect such commands is to bury them in an \mbox:
+ {\em every\-one agrees~\mbox{\cite{you,me}}.}
+
+Nested \em commands produce multiple underlining, but heed the warnings
+about braces above. To get italics without underlining, use \it. Nesting
+of other types of underline is also possible, but the `underlines' may
+overlap.
+
+HERE IS A SIMPLE EXAMPLE.
+
+\noindent 'Twas {\em brillig\/} and the {\em slithy~toves\/}
+did {\em gyre\/} and {\em gim\-ble\/} in the {\em wabe,\\[2pt] }
+All {\em mim\-sey\/} were the {\em boro\-goves\/} and
+the {\em mome raths outgrabe}.
+
+HERE IS A DIFFICULT EXAMPLE.
+
+\usepackage{ulem}
+\setlength\textwidth{3.3in}
+\begin{document}
+% \large
+No, I did {\em not} act in the movie {\em \emph{The} % <<<<<<< Nested
+\emph{Persecu}\-\emph{tion} \emph{and} \emph{Assassination} \emph{of}
+\emph{Jean-Paul} \emph{Marat}, as per\-formed by the Inmates
+of the Asylum of Charenton under the Direc\-tion of the
+Marquis de~Sade!} But I {\em did} see it.
+\end{document}
+
+In the nested emphasis, \emph had to be given for each word separately
+so the spaces between could stretch and break into lines. Even the
+discretionary hyphen (\-) in `Persecution' had to be outside the braces,
+but the hyphen in `Direction' was just fine because it was not in nested
+braces. The same applies to other special commands like \ and ~. Also,
+the spaces are printed with only a single underline because they are
+outside the nested \emph commands. This example really illustrates that
+ulem does not handle nested emphasis very well! Nevertheless, it is fine
+for simple things.
+
+Underlining can also be done according to \uline{this text}. To use this
+type of underlining, but have \em still produce italics, put the command
+\normalem in the preamble of the document or load ulem with
+\usepackage[normalem]{ulem}.
+
+Some variations on underlining are provided, including a wavey underline
+(\uwave{under-wave}), double underlines (\uuline{two lines under this}),
+dashed (\dashuline{dashes underneath}) or dotted (\dotuline{dots below})
+underlines,
+a line through text rather than under it (\sout{strike out}), and text
+crossed-out with /////// (\xout{cross out, X out}). You can define your
+own styles following the examples provided. The definition should be
+something like:
+
+\newcommand\command{\bgroup \markoverwith{something}\ULon}
+
+The "something" can be as simple as a single character, or as complex as
+you can keep track of.
+
+The various underlining commands are essentially textual, and will not
+work quite the same in math mode. But since some font commands, like \bf,
+serve both for text and math, math mode is handled (in an approximate way).
+The performance in math mode is somewhat different from in text: there will
+be no line breaks or stretching in the underlined text, and the vertical
+positioning may not be right. The results should be best for \uline,
+\uwave, \uuline, and any other truly UNDER-line you define.
+
+Any type of underlining can be substituted for any font-selection command
+by issuing a proper \useunder declaration:
+
+\useunder{\underlinecommand}{\fontdeclaration}{\fontcommand}
+
+e.g., \useunder{\uuline}{\bfseries}{\textbf} gives a double underline
+instead of bold face in LaTeX. The commands \normalem and \ULforem switch
+underlining for \em off and on, respectively, and so do the \usepackage
+options [normalem] and [ULforem]. There is also the \usepackage style
+option [UWforbf] to replace boldface with a wavey underline.
+
+UWforbf does handle \bf in math mode, but it doesn't work in section titles,
+unfortunately, because the titles are not delimited by explicit braces when
+printed by the \section command. For the present version, the \bfseries
+command still produces bold face, but \bf makes an under-wave. To get under-
+waved section titles you can do
+
+\renewcommand\@seccntformat[1]{\uwave{\csname the#1\endcsname}\hskip 1em}
+
+and later specify \section[...]{\uwave{...}}.
+
+In plain TeX there is no \textbf so you should use \useunder{\UWave}{\bf}{}.
+You can even skip a step and define the underline or overprint with \useunder:
+\useunder{\bgroup\markoverwith{!}\ULon}{\sf}{}
+
+Some commands, such as \\ and \hskip are given special treatment, but
+others (like \marginpar) are not. Support for others can be added by
+assigning special meanings in the token register \UL@hook. (In LaTeX do
+\addto@hook\UL@hook{\let\command\ULversion}.) The UL versions of commands
+should be modelled on \UL@hskip or \UL@cr, and should include the test
+"\ifx\ \LA@space". For example, support for "\marginpar" is added through
+the hook mechanism.
+
+All the underlining commands are robust in LaTeX.
+
+%====================== END INSTRUCTIONS ===========================
+
+% Previous bug-finders: Esther Hu (\hfill in plain); Lones Smith (\tt\-);
+% Steve Anderson (\ooalign accents); Thanassi Protopapas ( { in tables).
+% The bug finders' fee is now $0.00; it will double for each new bug found.
+% Version (identified by year)
+% 1994:
+% Many changes! Notably: LaTeX2e options and \emph. Nesting works (somewhat).
+% Behavior with inner braces is more consistent (not stripped). \useunder.
+% Better underwave (using lasy6). Special underlines are not commented out.
+% patch 1995: fix \UL@swender to work in {tabular}; make hyphenation join
+% well; crude math support; eliminate \@clb
+% 1996: use "\csname ProvidesPackage\endcsname", tidying.
+% 1997: fix \\ when LaTeX changed; remove extra overlap in putbox.
+% 2000: hook (and marginpar)
+% 2004: Fix spacing in \uwave and \xout. \ULleaders hook.
+% 2009: Accept \par in argument (\long)
+% 2010: Include \dotuline and \dashuline, typeset documentation, add \UL@setULdepth
+% 2011: Change \dimen@ to \UL@height
+% 2012: Removed \let\par garbage
+%
+% Send problem reports to asnd@triumf.ca
+%
+% test integrity:
+% brackets: round, square, curly, angle: () [] {} <>
+% backslash, slash, vertical, at, dollar, and: \ / | @ $ &
+% hat, grave, acute (apostrophe), quote, tilde, under: ^ ` ' " ~ _
diff --git a/tex/.texmf/tex/latex/misc/xstring/xstring.sty b/tex/.texmf/tex/latex/misc/xstring/xstring.sty
new file mode 100644
index 0000000..9dc5a18
--- /dev/null
+++ b/tex/.texmf/tex/latex/misc/xstring/xstring.sty
@@ -0,0 +1,3 @@
+\input xstring.tex
+\ProvidesPackage{xstring}[\xstringdate\space\space v\xstringversion\space\space String manipulations (C Tellechea)]
+\endinput \ No newline at end of file
diff --git a/tex/.texmf/tex/latex/misc/xstring/xstring.tex b/tex/.texmf/tex/latex/misc/xstring/xstring.tex
new file mode 100644
index 0000000..015fc65
--- /dev/null
+++ b/tex/.texmf/tex/latex/misc/xstring/xstring.tex
@@ -0,0 +1,1389 @@
+% __________________________________________________
+% | |
+% | |
+% | xstring v1.7c |
+% | |
+% | 13 octobre 2013 |
+% | |
+% |__________________________________________________|
+%
+% This is xtring.tex
+%
+% "xstring" package consists of the 7 following files:
+% xstring.tex (this file)
+% xstring.sty
+% README
+% xstring_doc_fr.tex, xstring_doc_fr.pdf (manual in french)
+% xstring_doc_en.tex, xstring_doc_en.pdf (manual in english)
+%
+% Christian Tellechea 2008-2013
+% email : unbonpetit@gmail.com
+% -------------------------------------------------------------------
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% -------------------------------------------------------------------
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Christian Tellechea
+% -------------------------------------------------------------------
+\def\xstringversion {1.7c}
+\def\xstringdate {2013/10/13}
+\def\xstringfrenchdate {13 octobre 2013}
+\def\xstringenglishdate {13 october 2013}
+\edef\CurrentAtCatcode {\the\catcode`\@}
+\catcode`\@=11
+\newwrite\@xs@message% canal pour les messages
+\newcount\integerpart
+\newcount\decimalpart% compteurs utilis\'es par xstring
+
+\expandafter\ifx\csname @latexerr\endcsname\relax% on n'utilise pas LaTeX ?
+ \immediate\write\m@ne{Package: xstring \xstringdate\space\space v\xstringversion\space\space String manipulations}%
+ \long\def\@firstoftwo#1#2{#1}
+ \long\def\@secondoftwo#1#2{#2}
+ \long\def\@gobble#1{}
+ \long\def\@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}%
+ \def\reserved@b{#3}%
+ \futurelet\@let@arg\@ifnch}
+ \def\@ifnch{%
+ \ifx\@let@arg\@sptoken
+ \let\reserved@c\@xifnch
+ \else
+ \ifx\@let@arg\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \fi
+ \reserved@c}
+ \def\:{\let\@sptoken= } \:
+ \def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@arg\@ifnch}
+ \def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}}
+ \long\def\@testopt#1#2{\@ifnextchar[{#1}{#1[{#2}]}}
+ \def\@empty{}
+\fi% fin des d\'efinitions LaTeX
+
+\long\def\@xs@ifempty#1{%
+ \expandafter\ifx\expandafter\relax\detokenize{#1}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% Ouvre un groupe o\`u les catcodes sont \`a 12 et \`a 10 pour les espaces
+% ensuite, appelle \@xs@ReadVerb qui lit un argument entre d\'elimiteurs verb
+\def\@xs@MakeVerb{% lit 1 argument et le transforme en verb
+ \begingroup% groupe o\`u les catcodes sont \`a 12 pour la lecture suivante
+ \def\do##1{\catcode`##112\relax}%
+ \dospecials% on entre dans le mode verb
+ \obeyspaces% et on tient compte des espaces
+ \@xs@ReadVerb% et on va lire l'argument
+}
+
+% D\'efinit \@xs@ReadVerb qui lit un argument entre d\'elimiteurs verb
+\def\setverbdelim#1{% d\'efinit quel est le d\'elimiteur de verb
+ \expandafter\@xs@ifempty\expandafter{\@gobble#1}%
+ \relax
+ {\begingroup
+ \newlinechar`\^^J%
+ \immediate\write\@xs@message
+ {Package xstring Warning: verb delimiter is not a single token on input line \the\inputlineno^^J}%
+ \endgroup
+ }%
+ \def\@xs@ReadVerb##1#1##2#1{% lit ##2 qui est entre les d\'elimiteurs de verb
+ \endgroup% on ferme le groupe
+ \@xs@afterreadverb{##2}}% on appelle l'ex\'ecution de fin
+}
+
+% Assigne l'argument entre d\'elimiteur verb dans la sc #1' +
+\def\verbtocs#1{%
+ \def\@xs@afterreadverb##1{\def#1{##1}}%
+ \@xs@MakeVerb
+}
+
+\begingroup
+ \catcode\z@3 \def\@xs@twochars{^^00}%
+ \catcode\z@7 \xdef\@xs@twochars{\@xs@twochars^^00}%
+\endgroup
+
+\edef\@xs@reserved@A{\long\def\noexpand\@xs@AssignResult##1\@xs@twochars}
+
+\@xs@reserved@A#2{\endgroup\expandafter\def\expandafter#2\expandafter{\@gobble#1}}
+
+\def\tokenize#1#2{%
+ \begingroup
+ \@xs@def\@xs@reserved@A{#2}% on d\'eveloppe en accord avec \fullexpandarg ou \noexpandarg
+ \everyeof\expandafter{\@xs@twochars#1}% met "^^@^^@#1" \`a la fin du fichier virtuel
+ \endlinechar\m@ne
+ \expandafter\@xs@AssignResult\scantokens\expandafter{\expandafter\relax\@xs@reserved@A}% on fait l'assignation
+}%
+
+% Macro tr\`es simple qui assigne ou affiche le r\'esultat, selon la pr\'esence
+% ou non de #2 qui est l'argument optionnel venant en derni\`ere position des macros
+\long\def\@xs@ReturnResult#1#2{%
+ \def\@xs@argument@A{#1}%
+ \@xs@ifempty{#2}%
+ \@xs@argument@A
+ {\let#2\@xs@argument@A}%
+}
+
+\def\@xs@ldef{\long\def}
+
+\def\@xs@ledef{\long\edef}
+
+% Pas d'expansion des arguments
+\def\normalexpandarg{%
+ \let\@xs@def\@xs@ldef% on d\'efinit \@xs@call avec \def
+ \def\@xs@expand##1{\unexpanded\expandafter{##1}}}
+\let\noexpandarg\normalexpandarg% synonyme
+
+% 1-d\'eveloppement du premier token des arguments
+\def\expandarg{%
+ \let\@xs@def\@xs@ldef% on d\'efinit \@xs@call avec \def
+ \def\@xs@expand##1{\unexpanded\expandafter\expandafter\expandafter{##1}}%
+}
+
+% D\'eveloppement maximum des arguments
+\def\fullexpandarg{%
+ \let\@xs@def\@xs@ledef% on d\'efinit\@xs@call avec \edef
+ \def\@xs@expand##1{##1}% et on neutralise \@xs@expand
+}
+
+\def\saveexpandmode{\let\@xs@saved@def\@xs@defarg\let\@xs@saved@expand\@xs@expand}
+
+\def\restoreexpandmode{\let\@xs@defarg\@xs@saved@def\let\@xs@expand\@xs@saved@expand}
+
+% Macro interne renvoyant #2 si son argument commence par une accolade ouvrante "{"
+% et #3 sinon (Ulrich Diez sur comp.text.tex)
+\long\def\@xs@ifbeginwithbrace#1{%
+ \csname @%
+ \expandafter\@gobble\string{%
+ \expandafter\@gobble\expandafter{\expandafter{\string#1}%
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\@firstoftwo
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\@gobble
+ \expandafter\expandafter\expandafter\@gobble
+ \expandafter\expandafter\expandafter{\expandafter\string\expandafter}\string}%
+ \expandafter\@gobble\string}%
+ \@secondoftwo{first}{second}oftwo%
+ \endcsname
+}
+
+% Cette macro interne prend la 1ere unit\'e syntaxique de #1 et assigne le r\'esultat \`a #2
+\long\def\@xs@returnfirstsyntaxunit#1#2{%
+ \def\@xs@groupfound{\expandafter\def\expandafter#2\expandafter{\expandafter{#2}}\@xs@gobbleall}% on met #2 dans des accolades et on finit
+ \long\def\@xs@assignfirsttok##1##2\@xs@nil{\let\@xs@toks0\def#2{##1}}%
+ \def\@xs@testfirsttok{%
+ \let\@xs@next\@xs@assignfirsttok
+ \ifx\@xs@toks\bgroup
+ \expandafter\@xs@ifbeginwithbrace\expandafter{\@xs@argument}{\def\@xs@next{\afterassignment\@xs@groupfound\def#2}}{}%
+ \fi
+ \@xs@next}%
+ \def\@xs@argument{#1}%
+ \edef\@xs@next{\expandafter\@xs@beforespace\detokenize{#1} \@xs@nil}% #1 commence par un espace ?
+ \ifx\@xs@next\@empty
+ \def\@xs@next{\expandafter\ifx\expandafter\@empty\detokenize\expandafter{\@xs@argument}\@empty\let#2\@empty\else\def#2{ }\let\@xs@toks0\fi}%
+ \else
+ \def\@xs@next{\expandafter\futurelet\expandafter\@xs@toks\expandafter\@xs@testfirsttok\@xs@argument\@xs@nil}%
+ \fi
+ \@xs@next
+}
+
+% Cette macro interne enl\`eve la 1ere unit\'e syntaxique de #1 et assigne le r\'esultat \`a #2
+\long\def\@xs@testsecondtoken#1\@xs@nil{\@xs@ifbeginwithbrace{#1}}
+
+\long\def\@xs@gobblespacebeforebrace#1#{}% supprime tout ce qui est avant la 1ere accolade ouvrante
+
+\long\def\@xs@removefirstsyntaxunit#1#2{%
+ \def\@xs@argument{#1}%
+ \expandafter\expandafter\expandafter\ifx\expandafter\expandafter\expandafter\@empty\expandafter\@xs@beforespace\detokenize\expandafter{\@xs@argument} \@xs@nil\@empty% #1 commence par un espace ?
+ \expandafter\@xs@ifempty\expandafter{\@xs@argument}%
+ {\let#2\@empty}
+ {\afterassignment\@xs@testsecondtoken% après avoir mangé le 1er token, on va tester si la suite commence par «{»
+ \expandafter\let\expandafter\@xs@secontoken\expandafter=\expandafter\@sptoken\@xs@argument\@xs@@nil\@xs@nil% on mange le 1er token et on rajoute \@xs@@nil à la fin pour éviter de perdre les accolades du groupe
+ {\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{\expandafter\@xs@gobblespacebeforebrace\@xs@argument}}%
+ {\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{\expandafter\@xs@behindspace\@xs@argument\@xs@nil}}%
+ }%
+ \else
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{\expandafter\@gobble\@xs@argument}%
+ \fi
+}
+
+% Macros \`a arguments d\'elimit\'es pour les macros ci dessus
+\long\def\@xs@beforespace#1 #2\@xs@nil{#1}
+
+\long\def\@xs@behindspace#1 #2\@xs@nil{#2}
+
+\long\def\@xs@returnfirstsyntaxunit@ii#1#2\@xs@nil{#1}
+
+\long\def\@xs@gobbleall#1\@xs@nil{}
+
+% Cette macro interne est utilis\'ee dans les macros \'etoil\'ees pour :
+% 1) d\'evelopper l'argument selon qu'on a choisit \fullexpandarg
+% ou \normalexpandarg, et ceci \`a l'aide de la macro \@xs@def
+% 2) Ensuite, on d\'etokenize ce d\'eveloppement de façon n'avoir plus que
+% des catcodes de 10 pour les espaces et 12 pour le reste.
+\long\def\@xs@expand@and@detokenize#1#2{%
+ \long\def#1{#2}%
+ \expandafter\edef\expandafter#1\expandafter{\@xs@expand#1}% on d\'eveloppe #2 selon le mode de d\'eveloppement
+ \long\edef#1{\detokenize\expandafter{#1}}% puis on d\'etokenize et on assigne \`a #1
+}
+
+\long\def\@xs@expand@and@assign#1#2{\@xs@def#1{#2}}% on d\'eveloppe #2 selon \fullexpandarg ou \normalexpandarg
+
+\long\def\@xs@edefaddtomacro#1#2{\edef#1{\unexpanded\expandafter{#1}#2}}
+
+\long\def\@xs@addtomacro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\def\@xs@argstring{0########1########2########3########4########5########6########7########8########9}
+
+% \@xs@DefArg{3} met dans la sc \@xs@myarg les tokens "####1####2####3"
+\def\@xs@DefArg#1{\def\@xs@defarg0##1#1##2\@xs@nil{\def\@xs@myarg{##1#1}}\expandafter\@xs@defarg\@xs@argstring\@xs@nil}
+
+% \@xs@DefArg@{3} met dans la sc \@xs@myarg les tokens "[####1]####2####3####4"
+\def\@xs@DefArg@#1{\expandafter\@xs@defarg@\expandafter{\number\numexpr#1+1}}
+
+\def\@xs@defarg@#1{\def\@xs@defarg0##11##2#1##3\@xs@nil{\def\@xs@myarg{[##11]##2#1}}\expandafter\@xs@defarg\@xs@argstring\@xs@nil}
+
+% \@xs@OneArg{3} met dans la sc \@xs@myarg les tokens "####3"
+\def\@xs@OneArg#1{\expandafter\@xs@onearg\expandafter{\number\numexpr#1-1}{#1}}
+
+\def\@xs@onearg#1#2{\def\@xs@defarg##1#1##2#2##3\@xs@nil{\def\@xs@myarg{##2#2}}\expandafter\@xs@defarg\@xs@argstring\@xs@nil}
+
+% #1 : num\'ero du 1er argument; #2 : nombre de lignes; #3 argument optionnel; #4 : dernier num\'ero de l'argument devant être d\'etokenis\'e si \'etoile
+\def\@xs@BuildLines#1#2#3#4{%
+ \let\@xs@newlines\@empty
+ \let\@xs@newargs\@empty
+ \def\@xs@buildlines##1{%
+ \expandafter\@xs@OneArg\expandafter{\number\numexpr##1+#1-1}%
+ \edef\@xs@reserved@B{\noexpand\@xs@expand\csname @xs@arg@\romannumeral\numexpr##1\endcsname}%
+ \ifnum##1=\@ne% si c'est le premier argument
+ \@xs@ifempty{#3}%
+ {\expandafter\@xs@addtomacro\expandafter\@xs@newargs\expandafter{\expandafter{\@xs@reserved@B}}%
+ \edef\@xs@reserved@B{\ifnum##1>#4 @xs@def\else @xs@assign\fi}%
+ }% et s'il y a un argument optionnel alors, on met des crochets
+ {\expandafter\@xs@addtomacro\expandafter\@xs@newargs\expandafter{\expandafter[\@xs@reserved@B]}%
+ \def\@xs@reserved@B{@xs@def}% ne pas d\'etok\'eniser l'argument optionnel grace au \@xs@def
+ }
+ \else
+ \expandafter\@xs@addtomacro\expandafter\@xs@newargs\expandafter{\expandafter{\@xs@reserved@B}}%
+ \edef\@xs@reserved@B{\ifnum##1>#4 @xs@def\else @xs@assign\fi}%
+ \fi
+ \edef\@xs@newlines{\unexpanded\expandafter{\@xs@newlines}\expandafter\noexpand\csname\@xs@reserved@B\endcsname\expandafter\noexpand\csname @xs@arg@\romannumeral\numexpr##1\endcsname{\@xs@myarg}}%
+ \ifnum##1<#2\relax
+ \def\@xs@next{\expandafter\@xs@buildlines\expandafter{\number\numexpr##1+1}}%
+ \expandafter\@xs@next
+ \fi}%
+ \@xs@buildlines\@ne
+}
+
+\def\@xs@newmacro{%
+ \@ifstar
+ {\let\@xs@reserved@D\@empty\@xs@newmacro@}
+ {\let\@xs@reserved@D\relax\@xs@newmacro@0}%
+}
+
+% #1 : dernier num\'ero de l'argument devant être d\'etokenis\'e
+% #2 : nom de la macro publique
+% #3 : argument optionnel (vide si pas d'arg optionnel)
+% #4 : nombre d'arguments obligatoires
+% #5 : utilisation de testopt (1 si oui, 0 si non)
+% #6 : code de la macro
+\def\@xs@newmacro@#1#2#3#4#5{%
+ \edef\@xs@reserved@A{@xs@\expandafter\@gobble\string#2}%
+ \edef\@xs@reserved@C{\expandafter\noexpand\csname\@xs@reserved@A @\ifx\@empty#3\@empty @\fi\endcsname}%
+ \edef\@xs@reserved@B{%
+ \ifx\@empty\@xs@reserved@D
+ \def\noexpand#2{\noexpand\@ifstar
+ {\let\noexpand\@xs@assign\noexpand\@xs@expand@and@detokenize\expandafter\noexpand\@xs@reserved@C}%
+ {\let\noexpand\@xs@assign\noexpand\@xs@expand@and@assign\expandafter\noexpand\@xs@reserved@C}%
+ }%
+ \else
+ \def\noexpand#2{\let\noexpand\@xs@assign\noexpand\@xs@expand@and@assign\expandafter\noexpand\@xs@reserved@C}%
+ \fi
+ \ifx\@empty#3\@empty
+ \else
+ \def\expandafter\noexpand\@xs@reserved@C{%
+ \noexpand\@testopt{\expandafter\noexpand\csname\@xs@reserved@A @@\endcsname}{\ifx\@xs@def\@xs@ledef#3\else\unexpanded{#3}\fi}}%
+ \fi
+ }%
+ % Que fait \@xs@reserved@B ? Il d\'efinit :
+ % si #3 est vide : \NOM{\@ifstar{\let\@xs@assign\@xs@expand@and@detokenize\@xs@NOM@@}{\let\@xs@assign\@xs@expand@and@assign\@xs@NOM@@}}
+ % si #3 existe : \NOM{\@ifstar{\let\@xs@assign\@xs@expand@and@detokenize\@xs@NOM@}{\let\@xs@assign\@xs@expand@and@assign\@xs@NOM@}}
+ % \@xs@NOM@{\@testopt{\@xs@NOM@@}{#3}}}
+ \long\@xs@reserved@B
+ \ifx\@empty#3\@empty
+ \@xs@BuildLines1{#4}{#3}{#1}%
+ \@xs@DefArg{#4}%
+ \else
+ \expandafter\@xs@BuildLines\expandafter1\expandafter{\number\numexpr#4+1}{#3}{#1}%
+ \@xs@DefArg@{#4}%
+ \fi
+ \edef\@xs@reserved@B{\def\expandafter\noexpand\csname\@xs@reserved@A @@\endcsname\@xs@myarg}%
+ \edef\@xs@reserved@C{\unexpanded\expandafter{\@xs@newlines}\edef\noexpand\@xs@call}%
+ \edef\@xs@reserved@D{%
+ \noexpand\noexpand\expandafter\noexpand\csname\@xs@reserved@A\endcsname\unexpanded\expandafter{\@xs@newargs}%
+ }%
+ \ifnum#5=\@ne\edef\@xs@reserved@D{\noexpand\noexpand\noexpand\@testopt{\unexpanded\expandafter{\@xs@reserved@D}}{}}\fi
+ \@xs@edefaddtomacro\@xs@reserved@C{{\unexpanded\expandafter{\@xs@reserved@D}}\noexpand\@xs@call}%
+ \@xs@edefaddtomacro\@xs@reserved@B{{\unexpanded\expandafter{\@xs@reserved@C}}}%
+ % Que fait \@xs@reserved@B ? Il d\'efinit par exemple pour 3 arguments obligatoires et 1 facultatif :
+ % \def\@xs@NOM@@[##2]##3##4##5{%
+ % \@xs@def\@xs@arg@i{##2}\@xs@assign\@xs@arg@ii{##3}\@xs@assign\@xs@arg@iii{##4}\@xs@asign\@xs@arg@iv{##5}%
+ % si #5=0: \edef\@xs@call{\noexpand\@xs@NOM[\@xs@expand\@xs@arg@i]{\@xs@expand\@xs@arg@ii}{\@xs@expand\@xs@arg@iii}{\@xs@expand\@xs@arg@iv}}%
+ % si #5=1: \edef\@xs@call{\noexpand\@testopt{\noexpand\@xs@NOM[\@xs@expand\@xs@arg@i]{\@xs@expand\@xs@arg@i}{\@xs@expand\@xs@arg@ii}{\@xs@expand\@xs@arg@iii}{\@xs@expand\@xs@arg@iv}}{}}%
+ % \@xs@call}
+ \long\@xs@reserved@B
+ \edef\@xs@reserved@B{%
+ \def\expandafter\noexpand\csname\@xs@reserved@A\endcsname
+ \@xs@myarg\ifnum#5=\@ne[\unexpanded{##}\number\numexpr\ifx\@empty#3\@empty#4+1\else#4+2\fi]\fi
+ }%
+ % Que fait \@xs@reserved@B ? Il d\'efinit par exemple pour 3 arguments obligatoires et 1 facultatif :
+ % \def \@xs@NOM[##2]##3##4##5[##6]{#6}
+ \long\@xs@reserved@B
+}
+
+% macro g\'en\'erique qui lit \@xs@reserved@C us par us
+% 3 sous-routines sont appel\'ees \`a des moments cl\'e :
+% \@xs@atendofgroup (un groupe se finit, appel r\'ecursif)
+% \@xs@atbegingroup (un groupe vient d'être ouvert)
+% \@xs@atnextsyntaxunit (la future US n'est pas un groupe)
+\def\@xs@read@reserved@C{%
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\ifnum\@xs@nestlevel=\z@
+ \let\@xs@next\relax
+ \else
+ \let\@xs@next\@xs@atendofgroup
+ \fi
+ }
+ {\expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@A
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@C
+ \let\@xs@next\@xs@read@reserved@C
+ \@xs@exploregroups
+ \ifx\bgroup\@xs@toks
+ \advance\integerpart\@ne
+ \begingroup
+ \expandafter\def\expandafter\@xs@reserved@C\@xs@reserved@A
+ \@xs@manage@groupID
+ \let\@xs@nestlevel\@ne
+ \integerpart\z@
+ \@xs@atbegingroup
+ \else
+ \global\advance\decimalpart\@ne
+ \@xs@atnextsyntaxunit
+ \fi
+ }%
+ \@xs@next
+}
+
+% macro g\'en\'erique qui lit \@xs@reserved@D en proc\'edant \`a des tests avec \IfBeginWith
+% 2 sous-routines sont appel\'ees \`a des moments cl\'e :
+% \@xs@atendofgroup (un groupe se finit, appel r\'ecursif)
+% \@xs@atoccurfound (une occurrence a \'et\'e trouv\'ee)
+\def\@xs@read@reserved@D{%
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@D}%
+ {\ifnum\@xs@nestlevel=\z@
+ \let\@xs@next\relax
+ \else
+ \let\@xs@next\@xs@atendofgroup
+ \fi
+ }%
+ {\expandafter\expandafter\expandafter\@xs@IfBeginWith@i\expandafter\expandafter\expandafter
+ {\expandafter\@xs@reserved@D\expandafter}\expandafter{\@xs@reserved@E}%
+ {\global\advance\decimalpart\@ne
+ \let\@xs@reserved@D\@xs@reserved@A
+ \@xs@atoccurfound
+ }%
+ {\expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@reserved@D}\@xs@reserved@A
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@D}\@xs@reserved@D
+ \let\@xs@next\@xs@read@reserved@D
+ \@xs@exploregroups
+ \ifx\bgroup\@xs@toks
+ \advance\integerpart\@ne
+ \begingroup
+ \expandafter\def\expandafter\@xs@reserved@D\@xs@reserved@A
+ \@xs@manage@groupID
+ \let\@xs@reserved@C\@empty
+ \let\@xs@nestlevel\@ne
+ \integerpart\z@
+ \else
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\@xs@reserved@A}%
+ \fi
+ }%
+ }%
+ \@xs@next
+}
+
+\@xs@newmacro\StrRemoveBraces{}{1}{1}{%
+ \def\@xs@reserved@C{#1}%
+ \let\@xs@reserved@B\@empty
+ \let\@xs@nestlevel\z@
+ \@xs@StrRemoveBraces@i
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@B}{#2}%
+}
+
+\def\@xs@StrRemoveBraces@i{%
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\ifnum\@xs@nestlevel=\z@
+ \let\@xs@next\relax
+ \else
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\expandafter{\@xs@reserved@B}%
+ \let\@xs@next\@xs@StrRemoveBraces@i
+ \fi
+ }
+ {\expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@A
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@C
+ \let\@xs@next\@xs@StrRemoveBraces@i
+ \ifx\bgroup\@xs@toks
+ \ifx\@xs@exploregroups\relax% on explore les groupes ?
+ \begingroup
+ \expandafter\def\expandafter\@xs@reserved@C\@xs@reserved@A
+ \let\@xs@nestlevel\@ne
+ \integerpart\z@
+ \let\@xs@reserved@B\@empty
+ \else
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\@xs@reserved@A
+ \fi
+ \else
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\expandafter{\@xs@reserved@A}%
+ \fi
+ }%
+ \@xs@next
+}
+
+% \@xs@cutafteroccur coupe l'argument #1 apr\`es la #3\`eme occurrence de #2
+% \@xs@reserved@C : contient ce qui se trouve avant cette occurrence
+% \@xs@reserved@D : contient ce qui se trouve avant cette occurrence y compris cette occurrence
+% \@xs@reserved@E : contient ce qui se trouve apr\`es l'occurrence
+% si l'occurrence n'existe pas ou qu'un des arguments est vide, toutes les chaines renvoy\'ees sont vides
+\long\def\@xs@cutafteroccur#1#2#3{%
+ \ifnum#3<\@ne\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\let\@xs@reserved@C\@empty
+ \let\@xs@reserved@E\@empty
+ \global\let\groupID\@empty
+ }
+ {\@xs@cutafteroccur@i{#1}{#2}{#3}}%
+}
+
+\long\def\@xs@cutafteroccur@i#1#2#3{%
+ \def\@xs@reserved@D{#1}\let\@xs@reserved@C\@empty\def\@xs@reserved@E{#2}%
+ \decimalpart\z@
+ \integerpart\z@
+ \gdef\groupID{0}%
+ \let\@xs@nestlevel\z@
+ \def\@xs@atendofgroup{%
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\expandafter{\@xs@reserved@C}}%
+ \@xs@read@reserved@D}%
+ \def\@xs@atoccurfound{%
+ \ifnum\decimalpart=\numexpr(#3)\relax
+ \global\let\@xs@reserved@D\@xs@reserved@D
+ \global\let\@xs@reserved@C\@xs@reserved@C
+ \@xs@exitallgroups
+ \let\@xs@next\relax
+ \else
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\@xs@reserved@E}%
+ \let\@xs@next\@xs@read@reserved@D
+ \fi}%
+ \@xs@read@reserved@D
+ \def\@xs@argument@A{#2}%
+ \ifnum\decimalpart=\numexpr(#3)\relax % occurrence trouv\'ee ?
+ \let\@xs@reserved@E\@xs@reserved@D
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\@xs@reserved@D\expandafter\expandafter\expandafter{\expandafter\@xs@reserved@C\@xs@argument@A}%
+ \else
+ \let\@xs@reserved@C\@empty
+ \let\@xs@reserved@E\@empty
+ \global\let\groupID\@empty
+ \fi
+}
+
+\@xs@newmacro*3\IfSubStr{1}{2}{0}{%
+ \def\@xs@argument@A{#2}\def\@xs@argument@B{#3}%
+ \expandafter\expandafter\expandafter\@xs@cutafteroccur
+ \expandafter\expandafter\expandafter{\expandafter\@xs@argument@A\expandafter}\expandafter{\@xs@argument@B}{#1}%
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@D}%
+ \@secondoftwo
+ \@firstoftwo
+}
+
+\@xs@newmacro*2\IfBeginWith{}{2}{0}{%
+ \def\@xs@argument@A{#1}\def\@xs@argument@B{#2}%
+ \expandafter\@xs@ifempty\expandafter{\@xs@argument@B}%
+ {\let\@xs@next\@secondoftwo
+ }
+ {\def\@xs@next{%
+ \expandafter\expandafter\expandafter\@xs@IfBeginWith@i\expandafter\expandafter\expandafter
+ {\expandafter\@xs@argument@A\expandafter}\expandafter
+ {\@xs@argument@B}}%
+ }%
+ \@xs@next
+}
+
+\long\def\@xs@IfBeginWith@i#1#2{%
+ \def\@xs@argument@A{#1}\def\@xs@argument@B{#2}%
+ \expandafter\@xs@ifempty\expandafter{\@xs@argument@B}%
+ {\let\@xs@next\@firstoftwo% #2 est vide, tous les tests sont pass\'es avec succ\`es : on renvoie #3
+ }
+ {\expandafter\@xs@ifempty\expandafter{\@xs@argument@A}%
+ {\let\@xs@next\@secondoftwo% #1 est vide, c'est que #2 est + long que #1 : on renvoie #4
+ }
+ {\expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@argument@B}\@xs@reserved@B
+ \expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@argument@A}\@xs@reserved@A
+ \ifx\@xs@reserved@A\@xs@reserved@B% il y a \'egalit\'e...
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@argument@B}\@xs@reserved@B
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@argument@A}\@xs@reserved@A% on enl\`eve les 1ere unit\'es syntaxiques
+ \def\@xs@next{% et on recommence avec ces arguments racourcis d'1 unit\'e syntaxique
+ \expandafter\expandafter\expandafter\@xs@IfBeginWith@i
+ \expandafter\expandafter\expandafter{\expandafter\@xs@reserved@A\expandafter}\expandafter{\@xs@reserved@B}}%
+ \else
+ \let\@xs@next\@secondoftwo
+ \fi
+ }%
+ }%
+ \@xs@next
+}
+
+\@xs@newmacro*2\IfEndWith{}{2}{0}{%
+ \def\@xs@argument@A{#1}\def\@xs@argument@B{#2}%
+ \@xs@ifempty{#2}%
+ {\let\@xs@reserved@A\@secondoftwo
+ }
+ {\expandafter\expandafter\expandafter\@xs@StrCount
+ \expandafter\expandafter\expandafter{\expandafter\@xs@argument@A\expandafter}\expandafter
+ {\@xs@argument@B}[\@xs@reserved@A]%
+ \ifnum\@xs@reserved@A=\z@
+ \let\@xs@reserved@A\@secondoftwo
+ \else
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\let\@xs@reserved@A\@firstoftwo}
+ {\let\@xs@reserved@A\@secondoftwo}%
+ \fi
+ }%
+ \@xs@reserved@A
+}
+
+\@xs@newmacro*4\IfSubStrBefore{1,1}{3}{0}{\@xs@IfSubStrBefore@i[#1]{#2}{#3}{#4}}
+
+\def\@xs@IfSubStrBefore@i[#1,#2]#3#4#5{%
+ \def\@xs@reserved@C{#3}%
+ \ifx\@xs@exploregroups\relax% si on explore les groupes
+ \let\@xs@reserved@B\@empty
+ \let\@xs@nestlevel\z@
+ \@xs@StrRemoveBraces@i% on retire les accolades
+ \let\@xs@reserved@C\@xs@reserved@B
+ \fi
+ \def\@xs@reserved@A{#5}%
+ \expandafter\expandafter\expandafter\@xs@cutafteroccur\expandafter\expandafter\expandafter{\expandafter\@xs@reserved@C\expandafter}\expandafter{\@xs@reserved@A}{#2}%
+ \def\@xs@reserved@A{#4}%
+ \expandafter\expandafter\expandafter\@xs@cutafteroccur\expandafter\expandafter\expandafter{\expandafter\@xs@reserved@C\expandafter}\expandafter{\@xs@reserved@A}{#1}%
+ \global\let\groupID\@empty
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ \@secondoftwo
+ \@firstoftwo
+}
+
+\@xs@newmacro*4\IfSubStrBehind{1,1}{3}{0}{\@xs@IfSubStrBehind@i[#1]{#2}{#3}{#4}}
+
+\long\def\@xs@IfSubStrBehind@i[#1,#2]#3#4#5{\@xs@IfSubStrBefore@i[#2,#1]{#3}{#5}{#4}}
+
+\long\def\@xs@formatnumber#1#2{%
+ \def\@xs@argument@A{#1}%
+ \@xs@ifempty{#1}%
+ {\def#2{0X}% si vide, renvoie 0X
+ }
+ {\@xs@returnfirstsyntaxunit{#1}\@xs@reserved@A
+ \def\@xs@reserved@B{+}%
+ \ifx\@xs@reserved@A\@xs@reserved@B
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@argument@A}\@xs@reserved@C
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\def#2{+0X}}
+ {\expandafter\def\expandafter#2\expandafter{\expandafter+\expandafter0\@xs@reserved@C}}%
+ \else
+ \def\@xs@reserved@B{-}%
+ \ifx\@xs@reserved@A\@xs@reserved@B
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@argument@A}\@xs@reserved@A
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@A}%
+ {\def#2{-0X}}%
+ {\expandafter\def\expandafter#2\expandafter{\expandafter-\expandafter0\@xs@reserved@A}}%
+ \else
+ \expandafter\def\expandafter#2\expandafter{\expandafter0\@xs@argument@A}%
+ \fi
+ \fi
+ }%
+}
+
+\@xs@newmacro\IfInteger{}{1}{0}{%
+ \@xs@formatnumber{#1}\@xs@reserved@A
+ \decimalpart\z@
+ \afterassignment\@xs@defafterinteger\integerpart\@xs@reserved@A\relax\@xs@nil
+ \let\@xs@after@intpart\@xs@afterinteger
+ \expandafter\@xs@testdot\@xs@afterinteger\@xs@nil
+ \ifx\@empty\@xs@afterdecimal
+ \ifnum\decimalpart=\z@
+ \let\@xs@next\@firstoftwo% partie décimale constituée de 0 --> seul cas où on renvoie vrai
+ \else
+ \let\@xs@afterinteger\@xs@after@intpart
+ \let\@xs@next\@secondoftwo
+ \fi
+ \else
+ \let\@xs@afterinteger\@xs@after@intpart
+ \let\@xs@next\@secondoftwo
+ \fi
+ \@xs@next
+}
+
+\@xs@newmacro\IfDecimal{}{1}{0}{%
+ \@xs@formatnumber{#1}\@xs@reserved@A
+ \decimalpart\z@
+ \afterassignment\@xs@defafterinteger\integerpart\@xs@reserved@A\relax\@xs@nil
+ \expandafter\@xs@testdot\@xs@afterinteger\@xs@nil
+ \ifx\@empty\@xs@afterdecimal
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+
+\long\def\@xs@defafterinteger#1\relax\@xs@nil{\def\@xs@afterinteger{#1}}
+
+\def\@xs@testdot{%
+ \let\xs@decsep\@empty
+ \@ifnextchar.%
+ {\def\xs@decsep{.}\@xs@readdecimalpart}%
+ {\@xs@testcomma}%
+}
+
+\def\@xs@testcomma{%
+ \@ifnextchar,%
+ {\def\xs@dessep{,}\@xs@readdecimalpart}%
+ {\@xs@endnumber}%
+}
+
+\long\def\@xs@readdecimalpart#1#2\@xs@nil{%
+ \ifx\@empty#2\@empty
+ \def\@xs@reserved@A{0X}%
+ \else
+ \def\@xs@reserved@A{0#2}%
+ \fi
+ \afterassignment\@xs@defafterinteger\decimalpart\@xs@reserved@A\relax\@xs@nil
+ \expandafter\@xs@endnumber\@xs@afterinteger\@xs@nil
+}
+
+\long\def\@xs@endnumber#1\@xs@nil{\def\@xs@afterdecimal{#1}}
+
+% test d'\'egalit\'e sur des chaines (et des chaines contenant des nombres)
+\long\def\@xs@IfStrEqFalse@i#1#2{\let\@xs@reserved@A\@secondoftwo}
+\long\def\@xs@IfStrEqFalse@ii#1#2{% renvoie vrai si les 2 arg sont d\'ecimaux et s'ils sont \'egaux, faux sinon
+ \@xs@IfDecimal{#1}%
+ {\@xs@IfDecimal{#2}%
+ {\ifdim#1pt=#2pt
+ \let\@xs@reserved@A\@firstoftwo
+ \else
+ \let\@xs@reserved@A\@secondoftwo
+ \fi% les 2 sont d\'ecimaux : on fait le test
+ }%
+ {\let\@xs@reserved@A\@secondoftwo}% un seul est d\'ecimal
+ }%
+ {\let\@xs@reserved@A\@secondoftwo}% #1 n'est pas d\'ecimal
+}
+
+\long\def\@xs@TestEqual#1#2{% teste si les 2 arguments sont \'egaux
+ \def\@xs@reserved@A{#1}\def\@xs@reserved@B{#2}%
+ \ifx\@xs@reserved@A\@xs@reserved@B
+ \let\@xs@reserved@A\@firstoftwo% \'egalit\'e parfaite des 2 chaines
+ \else
+ \expandafter\expandafter\expandafter\@xs@reserved@D\expandafter\expandafter\expandafter{\expandafter\@xs@reserved@A\expandafter}\expandafter{\@xs@reserved@B}%
+ \fi
+ \@xs@reserved@A
+}
+
+\@xs@newmacro*2\IfStrEq{}{2}{0}{% teste si les deux chaines sont \'egales
+ \let\@xs@reserved@D\@xs@IfStrEqFalse@i
+ \@xs@TestEqual{#1}{#2}%
+}
+
+\@xs@newmacro*2\IfEq{}{2}{0}{% teste si les 2 arguments (chaine ou nombre) sont \'egaux
+ \let\@xs@reserved@D\@xs@IfStrEqFalse@ii
+ \@xs@TestEqual{#1}{#2}%
+}
+
+\def\IfStrEqCase{%
+ \@ifstar
+ {\def\@xs@reserved@E{\IfStrEq*}\@xs@IfStrCase}%
+ {\def\@xs@reserved@E{\IfStrEq}\@xs@IfStrCase}%
+}
+
+\long\def\@xs@IfStrCase#1#2{\@testopt{\@xs@IfStringCase{#1}{#2}}{}}
+
+\def\IfEqCase{%
+ \@ifstar
+ {\def\@xs@reserved@E{\IfEq*}\@xs@IfEqCase}%
+ {\def\@xs@reserved@E{\IfEq}\@xs@IfEqCase}%
+}
+
+\long\def\@xs@IfEqCase#1#2{\@testopt{\@xs@IfStringCase{#1}{#2}}{}}
+
+\long\def\@xs@IfStringCase#1#2[#3]{%
+ \long\def\@xs@testcase##1##2##3\@xs@nil{% lit les 2 premieres unit\'es syntaxiques dans ##1 et ##2. Les autres dans ##3
+ \@xs@reserved@E{#1}{##1}%
+ {##2}% le test est positif, on ex\'ecute le code correspondant
+ {\@xs@ifempty{##3}%
+ {#3}% s'il n'y a plus de cas, on ex\'ecute le code <autres cas>
+ {\@xs@testcase##3\@xs@nil}% sinon, on recommence avec ce qui reste
+ }%
+ }%
+ \@xs@testcase#2\@xs@nil
+}
+
+% Renvoie ce qui est \`a gauche de l'occurence n°#1 de la sous chaine #3 dans la chaine #2
+\@xs@newmacro*3\StrBefore{1}{2}{1}{%
+ \@xs@cutafteroccur{#2}{#3}{#1}%
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@C}{#4}%
+}
+
+% Renvoie ce qui est \`a droite de l'occurence n°#1 de la sous chaine #3 dans la chaine #2
+\@xs@newmacro*3\StrBehind{1}{2}{1}{%
+ \@xs@cutafteroccur{#2}{#3}{#1}%
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@E}{#4}%
+}
+
+% Renvoie ce qui est strictement compris entre les occurrences n°#1 et n°#2
+% des chaines #4 et #5 dans la chaine #3
+\@xs@newmacro*4\StrBetween{1,1}{3}{1}{\@xs@StrBetween@i[#1]{#2}{#3}{#4}[#5]}
+
+\long\def\@xs@StrBetween@i[#1,#2]#3#4#5[#6]{%
+ \begingroup
+ \noexploregroups
+ \@xs@cutafteroccur{#3}{#5}{#2}%
+ \expandafter\@xs@cutafteroccur\expandafter{\@xs@reserved@C}{#4}{#1}%
+ \expandafter
+ \endgroup
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@E}{#6}%
+ \global\let\groupID\@empty
+}
+
+\def\exploregroups{\let\@xs@exploregroups\relax}
+
+\def\noexploregroups{\def\@xs@exploregroups{\let\@xs@toks0\relax}}
+
+\def\saveexploremode{\let\@xs@saveexploremode\@xs@exploregroups}
+
+\def\restoreexploremode{\let\@xs@exploregroups\@xs@saveexploremode}
+
+% Remplace les #1 premi\`eres occurences de la chaine #3
+% par la chaine #4 dans la chaine #2
+\@xs@newmacro\StrSubstitute{0}{3}{1}{%
+ \def\@xs@reserved@D{#2}\let\@xs@reserved@C\@empty\def\@xs@reserved@E{#3}%
+ \def\@xs@argument@C{#3}\def\@xs@argument@D{#4}%
+ \decimalpart\z@
+ \integerpart\z@
+ \gdef\groupID{0}%
+ \let\@xs@nestlevel\z@
+ \def\@xs@atendofgroup{%
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\expandafter{\@xs@reserved@C}}%
+ \@xs@read@reserved@D
+ }%
+ \def\@xs@atoccurfound{%
+ \ifnum#1<\@ne
+ \let\@xs@reserved@A\@xs@argument@D
+ \else
+ \ifnum\decimalpart>#1
+ \let\@xs@reserved@A\@xs@argument@C
+ \else
+ \let\@xs@reserved@A\@xs@argument@D
+ \fi
+ \fi
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\@xs@reserved@A}%
+ \@xs@read@reserved@D
+ }%
+ \@xs@ifempty{#3}%
+ {\expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@D}{#5}%
+ }
+ {\@xs@read@reserved@D
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@C}{#5}%
+ }%
+}
+
+% Supprime les #1 premi\`eres occurrences de #3 dans #2
+\@xs@newmacro\StrDel{0}{2}{1}{\@xs@StrSubstitute[#1]{#2}{#3}{}[#4]}
+
+\def\@xs@exitallgroups{\ifnum\@xs@nestlevel>\z@\endgroup\expandafter\@xs@exitallgroups\fi}
+
+% Compte combien d'unit\'es syntaxiques contient la chaine #1 ?
+\@xs@newmacro\StrLen{}{1}{1}{%
+ \def\@xs@reserved@C{#1}%
+ \decimalpart\z@
+ \let\@xs@nestlevel\z@
+ \gdef\groupID{0}%
+ \let\@xs@atbegingroup\relax
+ \def\@xs@atendofgroup{\endgroup\@xs@read@reserved@C}%
+ \let\@xs@atnextsyntaxunit\relax
+ \@xs@read@reserved@C
+ \expandafter\@xs@ReturnResult\expandafter{\number\decimalpart}{#2}%
+}
+
+% Macro interne fermant autant de groupes que n\'ecessaire pour trouver une unit\'e syntaxique derri\`ere
+\def\@xs@continuetonext{%
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\ifnum\@xs@nestlevel>\z@
+ \expandafter\endgroup\expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\expandafter{\expandafter{\@xs@reserved@B}}% on concat\`ene
+ \expandafter\expandafter\expandafter\@xs@continuetonext% on recommence
+ \fi}
+ \relax
+}%
+
+\def\@xs@manage@groupID{%
+ \begingroup\def\@xs@reserved@A{0}%
+ \ifx\@xs@reserved@A\groupID% si on arrive du groupe de niveau 0
+ \endgroup
+ \xdef\groupID{\number\integerpart}% on met simplement le niveau
+ \else
+ \endgroup
+ \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter\groupID\expandafter\expandafter\expandafter{\expandafter\groupID\expandafter,\number\integerpart}%
+ \fi
+}
+
+% Cette macro coupe la chaine #1 apr\`es l'unit\'e syntaxique n°#2
+\def\StrSplit{%
+ \@ifstar
+ {\let\@xs@reserved@E\@xs@continuetonext\StrSpl@t}%
+ {\let\@xs@reserved@E\relax\StrSpl@t}%
+}
+
+\@xs@newmacro\StrSpl@t{}{2}{0}{\@xs@StrSplit@i{#2}{#1}\@xs@StrSplit@ii}
+
+% Cette macro interne coupe la chaine #2 apr\`es l'unit\'e syntaxique n°#1
+% Le d\'ebut est assign\'e dans \@xs@reserved@B et la fin dans \@xs@reserved@C
+\long\def\@xs@StrSplit@i#1#2{%
+ \def\@xs@reserved@D{#1}%
+ \def\@xs@reserved@C{#2}%
+ \let\@xs@reserved@B\@empty
+ \global\let\groupID\@empty
+ \ifnum#1>\z@
+ \decimalpart\z@
+ \integerpart\z@
+ \gdef\groupID{0}%
+ \let\@xs@nestlevel\z@
+ \def\@xs@atendofgroup{%
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\expandafter{\expandafter{\@xs@reserved@B}}%
+ \@xs@read@reserved@C
+ }%
+ \def\@xs@atbegingroup{\let\@xs@reserved@B\@empty}%
+ \def\@xs@atnextsyntaxunit{%
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\expandafter{\@xs@reserved@A}%
+ \ifnum\decimalpart=\@xs@reserved@D\relax
+ \ifx\@xs@reserved@C\@empty\@xs@reserved@E\fi
+ \global\let\@xs@reserved@B\@xs@reserved@B
+ \global\let\@xs@reserved@C\@xs@reserved@C
+ \@xs@exitallgroups
+ \let\@xs@next\relax
+ \fi
+ }%
+ \@xs@read@reserved@C
+ \fi
+}
+
+\def\@xs@StrSplit@ii#1#2{\let#1\@xs@reserved@B\let#2\@xs@reserved@C}
+
+% StrCut[n]{<texte>}{<motif>}\macroA\macroB
+% \macroA reçoit ce qui se trouve avant la n ème occurrence <motif> dans <texte>
+% \macroB reçoit ce qui est après cette n ème occurrence
+\@xs@newmacro*3\StrCut{1}{2}{0}{%
+ \@xs@ifempty{#3}%
+ {\global\let\groupID\@empty
+ \let\@xs@reserved@C\@empty
+ \let\@xs@reserved@E\@empty
+ }
+ {\ifnum#1<\@ne\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\@xs@StrCut@ii{#2}{#3}1}
+ {\@xs@StrCut@ii{#2}{#3}{#1}}%
+ }%
+ \@xs@StrCut@iii
+}
+
+\long\def\@xs@StrCut@ii#1#2#3{%
+ \def\@xs@reserved@D{#1}%
+ \let\@xs@reserved@C\@empty
+ \def\@xs@reserved@E{#2}%
+ \decimalpart\z@\integerpart\z@
+ \gdef\groupID{0}%
+ \let\@xs@nestlevel\z@
+ \def\@xs@atendofgroup{%
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\expandafter{\@xs@reserved@C}}%
+ \@xs@read@reserved@D
+ }%
+ \def\@xs@atoccurfound{%
+ \ifnum\decimalpart=\numexpr(#3)\relax
+ \global\let\@xs@reserved@D\@xs@reserved@D
+ \global\let\@xs@reserved@C\@xs@reserved@C
+ \@xs@exitallgroups
+ \let\@xs@next\relax
+ \else
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\@xs@reserved@E}%
+ \let\@xs@next\@xs@read@reserved@D
+ \fi
+ }%
+ \@xs@read@reserved@D
+ \def\@xs@argument@A{#2}%
+ \let\@xs@reserved@E\@xs@reserved@D
+ \expandafter\expandafter\expandafter
+ \def
+ \expandafter\expandafter\expandafter
+ \@xs@reserved@D
+ \expandafter\expandafter\expandafter
+ {\expandafter\@xs@reserved@C\@xs@argument@A}%
+}
+
+\long\def\@xs@StrCut@iii#1#2{\let#1\@xs@reserved@C\let#2\@xs@reserved@E}
+
+% De la chaine #1, renvoie ce qui se trouve entre les positions
+% #2 et #3, unit\'es syntaxiques aux positions compris !
+\@xs@newmacro\StrMid{}{3}{1}{%
+ \begingroup
+ \noexploregroups
+ \let\@xs@reserved@E\relax
+ \@xs@StrSplit@i{#3}{#1}%
+ \edef\@xs@reserved@C{\number\numexpr#2-1}%
+ \let\@xs@reserved@E\relax
+ \expandafter\expandafter\expandafter\@xs@StrSplit@i\expandafter\expandafter\expandafter{\expandafter\@xs@reserved@C\expandafter}\expandafter{\@xs@reserved@B}%
+ \expandafter\endgroup
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@C}{#4}%
+ \global\let\groupID\@empty
+}
+
+% supprime #2 unit\'es syntaxiques \`a gauche dans la chaine #1
+\@xs@newmacro\StrGobbleLeft{}{2}{1}{%
+ \let\@xs@reserved@E\relax
+ \@xs@StrSplit@i{#2}{#1}%
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@C}{#3}%
+}
+
+% extrait de #1 la chaine \`a gauche de longueur #2
+\@xs@newmacro\StrLeft{}{2}{1}{%
+ \let\@xs@reserved@E\relax
+ \@xs@StrSplit@i{#2}{#1}%
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@B}{#3}%
+}
+
+% supprime #2 unit\'es syntaxiques \`a droite dans la chaine #1
+\@xs@newmacro\StrGobbleRight{}{2}{1}{%
+ \@xs@StrLen{#1}[\@xs@reserved@D]%
+ \let\@xs@reserved@E\relax
+ \expandafter\@xs@StrSplit@i\expandafter{\number\numexpr\@xs@reserved@D-#2}{#1}%
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@B}{#3}%
+}
+
+% renvoie #2 unit\'es syntaxiques \`a la droite de la chaine #1
+\@xs@newmacro\StrRight{}{2}{1}{%
+ \@xs@StrLen{#1}[\@xs@reserved@D]%
+ \let\@xs@reserved@E\relax
+ \expandafter\@xs@StrSplit@i\expandafter{\number\numexpr\@xs@reserved@D-#2}{#1}%
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@C}{#3}%
+}
+
+\@xs@newmacro\StrChar{}{2}{1}{%
+ \let\@xs@reserved@B\@empty
+ \def\@xs@reserved@C{#1}\def\@xs@reserved@D{#2}%
+ \ifnum#2>\z@
+ \def\groupID{0}\let\@xs@nestlevel\z@\integerpart\z@\decimalpart\z@
+ \let\@xs@atbegingroup\relax
+ \def\@xs@atendofgroup{\endgroup\@xs@read@reserved@C}%
+ \def\@xs@atnextsyntaxunit{%
+ \ifnum\decimalpart=\@xs@reserved@D% la n i\`eme US est atteinte ?
+ \global\let\@xs@reserved@B\@xs@reserved@A% on capture l'US en cours qui est celle cherch\'ee
+ \@xs@exitallgroups
+ \let\@xs@next\relax
+ \fi
+ }%
+ \@xs@read@reserved@C
+ \fi
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@B}%
+ {\global\let\groupID\@empty}
+ \relax
+ \expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@B}{#3}%
+}
+
+% Combien de fois compte t-on #2 dans #1 ?
+\@xs@newmacro\StrCount{}{2}{1}{%
+ \def\@xs@reserved@D{#1}\def\@xs@reserved@E{#2}\let\@xs@reserved@C\@empty
+ \@xs@ifempty{#2}%
+ {\@xs@ReturnResult{0}{#3}}
+ {\decimalpart\z@
+ \integerpart\z@
+ \gdef\groupID{0}%
+ \let\@xs@nestlevel\z@
+ \def\@xs@atendofgroup{%
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@C\expandafter{\expandafter{\@xs@reserved@C}}%
+ \@xs@read@reserved@D
+ }%
+ \def\@xs@atoccurfound{\let\@xs@reserved@C\@empty\@xs@read@reserved@D}%
+ \@xs@read@reserved@D
+ \expandafter\@xs@ReturnResult\expandafter{\number\decimalpart}{#3}%
+ }%
+}
+
+% renvoie la position de l'occurrence #1 de la sous chaine #3 dans la chaine #2
+\@xs@newmacro\StrPosition{1}{2}{1}{%
+ \@xs@cutafteroccur{#2}{#3}{#1}%
+ \let\@xs@reserved@E\groupID
+ \ifx\@xs@reserved@C\@xs@reserved@D
+ \@xs@ReturnResult{0}{#4}%
+ \let\@xs@reserved@E\@empty
+ \else
+ \expandafter\@xs@StrLen\expandafter{\@xs@reserved@C}[\@xs@reserved@C]%
+ \expandafter\@xs@ReturnResult\expandafter{\number\numexpr\@xs@reserved@C+1}{#4}%
+ \fi
+ \global\let\groupID\@xs@reserved@E
+}
+
+\def\comparestrict{\let\@xs@comparecoeff\@ne}
+
+\def\comparenormal{\let\@xs@comparecoeff\z@}
+
+\def\savecomparemode{\let\@xs@saved@comparecoeff\@xs@comparecoeff}
+
+\def\restorecomparemode{\let\@xs@comparecoeff\@xs@saved@comparecoeff}
+
+% Compare les deux arguments #1 et #2
+% Renvoie 0 s'ils sont \'egaux et renvoie la
+% position de la premiere unit\'e syntaxiques diff\'erente sinon
+\@xs@newmacro*2\StrCompare{}{2}{1}{%
+ \def\@xs@reserved@A{#1}%
+ \def\@xs@reserved@B{#2}%
+ \ifx\@xs@reserved@B\@xs@reserved@A
+ \@xs@ReturnResult{0}{#3}%
+ \else
+ \def\@xs@next{\@xs@StrCompare@i{#1}{#2}{#3}}%
+ \expandafter\@xs@next
+ \fi
+}
+
+\long\def\@xs@StrCompare@i#1#2#3{%
+ \def\@xs@StrCompare@iii##1{%
+ \let\@xs@reserved@A\@empty
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\def\@xs@reserved@A{*\@xs@comparecoeff}}%
+ {\expandafter\@xs@ifempty\expandafter{\@xs@reserved@D}%
+ {\def\@xs@reserved@A{*\@xs@comparecoeff}}
+ \relax
+ }%
+ \def\@xs@next{%
+ \expandafter\@xs@ReturnResult\expandafter
+ {\number\numexpr##1\@xs@reserved@A\relax}{#3}%
+ }%
+ }%
+ \def\@xs@StrCompare@ii##1{% ##1 est la position
+ \expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@A
+ \expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@reserved@D}\@xs@reserved@B
+ \ifx\@xs@reserved@B\@xs@reserved@A
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@A}%
+ {\@xs@StrCompare@iii{##1}% les 2 unit\'es syntaxiques sont \'egales, on renvoie la position
+ }
+ {\def\@xs@next{\expandafter\@xs@StrCompare@ii\expandafter{\number\numexpr##1+1}}% les 2 unit\'es syntaxiques sont \'egales et non vides, on recommence
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@C
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@D}\@xs@reserved@D
+ }%
+ \else% les 2 unit\'es syntaxiques sont diff\'erentes : on renvoie la position
+ \@xs@StrCompare@iii{##1}%
+ \fi
+ \@xs@next
+ }%
+ \def\@xs@reserved@C{#1}\def\@xs@reserved@D{#2}%
+ \@xs@StrCompare@ii1%
+}
+
+\@xs@newmacro\StrFindGroup{}{2}{1}{%
+ \def\@xs@reserved@A{#2}\def\@xs@reserved@B{0}%
+ \ifx\@xs@reserved@A\@xs@reserved@B
+ \def\@xs@next{\@xs@ReturnResult{{#1}}{#3}}%
+ \else
+ \def\@xs@next{\@xs@StrFindGroup@i{#1}{#2}[#3]}%
+ \fi
+ \@xs@next
+}
+
+\long\def\@xs@StrFindGroup@i#1#2[#3]{%
+ \def\@xs@StrFindGroup@ii{%
+ \expandafter\@xs@ifempty\expandafter{\@xs@reserved@C}%
+ {\def\@xs@next{\@xs@ReturnResult{}{#3}}% s'il ne reste plus rien, on renvoie vide
+ }
+ {\expandafter\@xs@returnfirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@D
+ \ifx\bgroup\@xs@toks% si la 1\`ere unit\'e syntaxique est un groupe explicite
+ \advance\decimalpart\@ne% on augmente le compteur
+ \ifnum\decimalpart=\@xs@reserved@A% on est au groupe cherch\'e lors de la profondeur courante ?
+ \ifx\@empty\@xs@reserved@B% on est \`a la profondeur maximale ?
+ \def\@xs@next{\expandafter\@xs@ReturnResult\expandafter{\@xs@reserved@D}{#3}}% on renvoie ce groupe
+ \else% sinon
+ \expandafter\def\expandafter\@xs@next\expandafter{\expandafter\@xs@StrFindGroup@i\@xs@reserved@D}% on recommence avec ce groupe
+ \expandafter\@xs@addtomacro\expandafter\@xs@next\expandafter{\expandafter{\@xs@reserved@B}[#3]}% et les profondeurs de recherche restantes
+ \fi
+ \else
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@C
+ \let\@xs@next\@xs@StrFindGroup@ii
+ \fi
+ \else
+ \expandafter\@xs@removefirstsyntaxunit\expandafter{\@xs@reserved@C}\@xs@reserved@C
+ \let\@xs@next\@xs@StrFindGroup@ii
+ \fi
+ }%
+ \@xs@next
+ }%
+ \@xs@extractgroupnumber{#2}\@xs@reserved@A\@xs@reserved@B
+ \decimalpart\z@
+ \ifnum\@xs@reserved@A>\z@\def\@xs@reserved@C{#1}\else\let\@xs@reserved@C\@empty\fi
+ \@xs@StrFindGroup@ii
+}
+
+\def\@xs@extractgroupnumber#1#2#3{%
+ \def\@xs@extractgroupnumber@i##1,##2\@xs@nil{\def#2{##1}\def#3{##2}}%
+ \@xs@extractgroupnumber@i#1,\@xs@nil
+ \ifx\@empty#3\else\@xs@extractgroupnumber@i#1\@xs@nil\fi
+}
+
+\def\expandingroups{\let\@xs@expandingroups\exploregroups}
+
+\def\noexpandingroups{\let\@xs@expandingroups\noexploregroups}
+
+\def\StrExpand{\@testopt{\@xs@StrExpand}{1}}
+\long\def\@xs@StrExpand[#1]#2#3{%
+ \begingroup
+ \@xs@expandingroups
+ \ifnum#1>\z@
+ \integerpart#1\relax
+ \decimalpart\z@
+ \gdef\groupID{0}%
+ \let\@xs@nestlevel\z@
+ \def\@xs@atendofgroup{%
+ \expandafter\endgroup
+ \expandafter\@xs@addtomacro\expandafter\@xs@reserved@B\expandafter{\expandafter{\@xs@reserved@B}}%
+ \@xs@read@reserved@C
+ }%
+ \def\@xs@atbegingroup{\let\@xs@reserved@B\@empty}%
+ \def\@xs@atnextsyntaxunit{%
+ \expandafter\expandafter\expandafter\@xs@addtomacro
+ \expandafter\expandafter\expandafter\@xs@reserved@B
+ \expandafter\expandafter\expandafter{\@xs@reserved@A}%
+ }%
+ \def\@xs@reserved@C{#2}%
+ \@xs@StrExpand@i{#1}% Appel de la macro r\'ecursive
+ \else
+ \def\@xs@reserved@B{#2}%
+ \fi
+ \global\let\@xs@reserved@B\@xs@reserved@B
+ \endgroup
+ \let#3\@xs@reserved@B
+ \global\let\groupID\@empty
+}
+
+\long\def\@xs@StrExpand@i#1{%
+ \ifnum#1>\z@
+ \let\@xs@reserved@B\@empty
+ \@xs@read@reserved@C
+ \let\@xs@reserved@C\@xs@reserved@B
+ \def\@xs@reserved@A{\expandafter\@xs@StrExpand@i\expandafter{\number\numexpr#1-1}}%
+ \else
+ \let\@xs@reserved@A\relax
+ \fi
+ \@xs@reserved@A
+}
+
+\def\scancs{\@testopt{\@xs@scancs}{1}}
+\long\def\@xs@scancs[#1]#2#3{%
+ \@xs@StrExpand[#1]{#3}{#2}%
+ \edef#2{\detokenize\expandafter{#2}}%
+}
+
+% Restaure le code de @
+\catcode`\@=\CurrentAtCatcode\relax
+
+% D\'efinit le d\'elimiteur verb
+% d\'efinit les diff\'erents modes et les m\'emorise
+\setverbdelim{|}%
+\fullexpandarg\saveexpandmode
+\comparenormal\savecomparemode
+\noexploregroups\saveexploremode
+\expandingroups
+
+\endinput
+%
+% Historique
+%------------------------------------------------------------------------------
+%% v1.0 4/7/2008 : - Package achev\'e.
+% 7/7/2008 : - Package publi\'e sur CTAN.
+%------------------------------------------------------------------------------
+% v1.1 15/8/2008
+% - Le package ne n\'ecessite plus LaTeX et est d\'esormais utilisable sous
+% Plain eTeX.
+% - Ajout des macros \IfInteger et \IfDecimal.
+% Pour cette derni\`ere, la partie enti\`ere et la partie d\'ecimale sont
+% r\'ecup\'erables dans les compteurs \integerpart et \decimalpart. Ce
+% qu'il reste apr\`es qu'un caract\`ere non attendu soit rencontr\'e est
+% dispo dans \@xs@remainafterdecimal
+% - Correction d'un bug dans \tokenize :
+% suppression de l'expansion avec \normalexpandarg pour \'eviter le bug
+% avec les lettres accentu\'ees dans l'exemple : \tokenize\aa{\'e\`u}
+% - Am\'elioration du code de la plupart des macros.
+% - \'Ecriture d'une routine \@xs@newmacro d\'efinissant les macros.
+% - Suppression de tous les compteurs grace \`a \numexpr.
+% - Nouvelles fonctionnalit\'es internes dans :
+% \IfSubStr
+% ajout des chaines se trouvant avant et apr\`es l'occurrence test\'ee
+% dans les sc \@xs@behind@IfSubStr et \@xs@before@IfSubStr
+% \StrCount
+% a) ajout de ce qui se trouve apr\`es la derni\`ere occurrence dans la
+% sc \@xs@StrCount@afterlastocccur
+% b) la macro ne d\'epend plus d'aucune autre
+%------------------------------------------------------------------------------
+% v1.2 23/8/2008
+% - Am\'elioration du code de \StrMid \StrGobbleLeft, \StrLeft,
+% \StrGobbleRight et \StrRight \`a l'aide de la nouvelle macro
+% \@xs@StrSplit@i
+% - Nouveau test \IfStrEq qui compare 2 chaines
+% - Nouveau test \IfEq qui compare 2 chaines (ou 2 nombres si les 2 chaines
+% contiennent un nombre)
+% - Correction d'un bug dans \@xs@formatnumber. La macro n'envisageait pas le
+% cas o\`u son argument \'etait vide ce qui faiasait planter
+% \IfDecimal{}{V}{F} et \IfInteger{}{V}{F}
+%------------------------------------------------------------------------------
+% v1.3 21/9/2008
+% - Am\'elioration du code, mise en place de r\'ecursivit\'es terminales dans
+% toutes les macros r\'ecursives, simplification de \@xs@TestEqual en
+% utilisant \ifx
+% - Nouvelles macros \IfStrEqCase et \IfEqCase
+% Teste si une chaîne est \'egale \`a plusieurs cha\^ines donn\'ee et
+% ex\'ecute un code sp\'ecifique
+% - Cr\'eation de la macro publique \StrSplit
+% Coupe la chaine en 2 \`a une position donn\'ee
+% - Nouvelle macro \StrCompare
+% Compare 2 chaînes et renvoie la position du 1er caract\`ere diff\'erent.
+% Renvoie 0 si elles sont \'egales.
+%------------------------------------------------------------------------------
+% v1.3a 29/9/2008
+% - Correction d'un bug : \expandafter#1
+% dans les macros \IfSubStrBefore et \StrBetween qui buggue si #1 est un
+% nombre > 9 !
+% - R\'e \'ecriture de \@xs@returnfirstsyntaxunit et \@gobble qui
+% deviennent purement d\'eveloppables.
+% - R\'e \'ecriture de \StrLen
+% - Nouvelle macro interne \@xs@cutafteroccur
+% Coupe la chaine apr\`es la ni\`eme occurrence d'une sous chaine.
+% - Code am\'elior\'e de \StrMid, \StrLeft, \StrGobbleLeft, \StrRight,
+% \StrGobbleRight grace \`a \@xs@cutafteroccur
+%------------------------------------------------------------------------------
+% v1.4 4/11/2008
+% - xstring traite ses arguments par unit\'e syntaxique, et donc toutes les
+% macros internes ont \'et\'e r\'e-\'ecrites \`a cette fin.
+% - Le manuel a \'et\'e r\'e-\'ecrit, rendu plus clair et mieux structur\'e.
+% - Nouvelle fonctionnalit\'e : \expandarg
+% le 1er lex\`eme de chaque argument est 1-d\'evelopp\'e avant que la
+% macro ne soit appel\'ee. Si un argument comporte plus qu'1 lex\`eme,
+% il faut passer par \scancs*[1] pour 1-d\'evelopper toutes les unit\'es
+% syntaxiques.
+% - Correction de 2 erreurs dans le manuel anglais : 0 est la valeur par
+% d\'efaut dans \StrSubstitute et \StrDel
+% - Coh\'erence dans les nom des s\'equences de contr\^oles temporaires qui
+% sont d\'esormais : \@xs@reserved@A \`a \@xs@reserved@E
+%------------------------------------------------------------------------------
+% v1.4a 12/11/2008
+% - Correction d'un bug dans \@xs@StrSplit dans le cas o\`u l'argument
+% num\'erique est <1 : la 1ere coupure doit être vide et le seconde doit
+% être \'egale \`a l'argument.
+%------------------------------------------------------------------------------
+% v1.4b 16/11/2008
+% - Correction de 2 bugs dans \@xs@returnfirstsyntaxunit
+%------------------------------------------------------------------------------
+% v1.5 31/12/2008
+% - Nouvelles fonctionnalit\'es dans la recherche de groupes par un
+% identificateur caract\'erisant leur imbrication. Impl\'ementation de :
+% 1) \StrFindGroup
+% 2) \groupID
+% - Ajout des nouvelles macros g\'en\'eriques \@xs@read@reserved@C et
+% \@xs@read@reserved@D
+% - Correction d'un bug dans \StrSplit : \StrSplit{{a}bc}{1}[\truc] faisait
+% que \truc contenait «a{a}».
+% - Correction d'un bug dans \@xs@newmacro : l'argument optionnel \'etait
+% d\'etok\'enis\'e \`a tort dans les macros \'etoil\'ees.
+% - Dans \@xs@newmacro, on doit choisir le num\'ero du dernier argument devant
+% être d\'etok\'enis\'e dans le cas d'une macro \'etoil\'ee (sachant que
+% l'argument optionnel ne l'est jamais)
+%------------------------------------------------------------------------------
+% v1.5a 09/2/2009
+% - Nouvelle macro \StrExpand, sensible au mode d'exploration. La macro est
+% indépendante du mode d'exploration et dispose de ses propres commandes
+% d'exploration : \expandingroups et \noexpandingroups
+% - R\'e-\'ecriture de \scancs, qui devient triviale puisque d\'ependant de
+% \StrExpand. Il n'y a plus de version \'étoil\'ee et d\'esormais, \scancs
+% est sensible au mode d'exploration.
+% - Correction d'un bug dans \IfInteger : \IfInteger{2.0}{V}{F} affichait F
+% - Correction de bugs : mettre \let\@xs@reserved@E\relax avant d'appeler
+% \@xs@StrSplit@i
+% - Suppression des messages d'erreur, de warning et d'info. xstring devient
+% donc silencieux ;)
+% - Passage de 3 \'a 2 compteurs
+% - Le manuel est d\'esormais plus color\'e, en esp\'erant qu'il sera un peu
+% plus agr\'eable \`a lire !
+%------------------------------------------------------------------------------
+% v1.5b 13/3/2009
+% - Modification d'un grand nombre de macros de telle sorte que vraiment
+% n'importe quel code peut d\'esormais \^etre plac\'e dans les arguments des
+% macros (comme par exemple des \if, \ifx ou autre, m\^eme sans leur \fi, ce
+% qui n'\'etait pas possible jusqu'alors)
+%------------------------------------------------------------------------------
+% v1.5c 05/6/2009
+% - Correction d'un bug dans \IfBeginWith : il faut appeler
+% \@xs@returnfirstsyntaxunit pour l'argument #2 puis pour l'argument #1 et
+% non pas l'inverse pour que \@xs@toks reflète ce qui se trouve dans #1
+% - Correction d'un bug dans \@xs@returnfirstsyntaxunit au cas où #1 commence
+% par un espace : mettre \@xs@toks à 0
+% - Correction d'un bug dans \@xs@returnfirstsyntaxunit :
+% \@xs@returnfirstsyntaxunit{{}}\truc
+% faisait que \truc se développait en un espace.
+% - Correction d'un bug dans \@xs@removefirstsyntaxunit où le cas
+% \@xs@removefirstsyntaxunit{ {b}}\truc
+% donnait \truc se développant en «b» au lieu de «{b}».
+%------------------------------------------------------------------------------
+% v1.5d 28/3/2010
+% - Correction d'un bug dans \IfInteger : \@xs@afterinteger ne donnait pas le
+% bon r\'esultat. Par exemple avec 1.23 il renvoyait {} au lieu de {.23}
+% - \xs@formatnumber ne detokenize plus ses arguments (que m'est-il pass\'e
+% par la t\^ete pour que je code un truc comme ca ?), et donc
+% \@xs@afterinteger et \@xs@afterdecimal ont des tokens ayant le bon
+% catcode
+%------------------------------------------------------------------------------
+% v1.6 24/10/2012
+% - Correction d'un bug dans \@xs@cutafteroccur au cas o\`u #3<1
+% - \IfDecimal ne \detokenize plus l'argument.
+% - Nouvelle version de \tokenize qui enlevait les accolades si son argument
+% \'etait entre accolades
+% - Nouvelle macro \StrCut
+% - \@xs@cutafteroccur@i ne produit plus d'espace indésirable si #3 était
+% évalué par \numexpr
+%------------------------------------------------------------------------------
+% v1.7 13/1/2013
+% - Correction d'un manque de rigueur dans les assignations concernant
+% \groupID : elles sont toutes globales d\'esormais
+% - Les macros de xstring sont \long
+%------------------------------------------------------------------------------
+% v1.7a 28/2/2013
+% - Correction d'un espace parasite dans \@xs@removefirstsyntaxunit
+%------------------------------------------------------------------------------
+% v1.7b 29/7/2013
+% - La date contenue dans \xstringdate est désormais conforme
+%------------------------------------------------------------------------------
+% v1.7c 13/10/2013
+% - les macros impliquées dans \IfStrCase et \IfStrEqCase sont désormais \long \ No newline at end of file
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposter-template.tex b/tex/.texmf/tex/latex/tikzposter/tikzposter-template.tex
new file mode 100644
index 0000000..304a8aa
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposter-template.tex
@@ -0,0 +1,100 @@
+%%
+%% This is file `tikzposter-template.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposter-template.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+\documentclass{tikzposter} %Options for format can be included here
+
+ % Title, Author, Institute
+\title{Template Poster}
+\author{Author(s)}
+\institute{Institute}
+\titlegraphic{LogoGraphic Inserted Here}
+
+ %Choose Layout
+\usetheme{Default}
+
+\begin{document}
+
+ % Title block with title, author, logo, etc.
+\maketitle
+ \block{Basic Block}{Text}
+ \begin{columns}
+
+ % FIRST column
+\column{0.6}% Width set relative to text width
+
+\block{Large Column}{Text\\Text\\Text Text Text}
+\note{Note with default behavior}
+\note[targetoffsetx=12cm, targetoffsety=-1cm, angle=20, rotate=25]
+{Note \\ offset and rotated}
+
+ % First column - second block
+\block{Block titles with enough text will automatically obey spacing requirements }
+{Text\\Text}
+
+ % First column - third block
+\block{Sample Block 4}{T\\E\\S\\T}
+
+ % SECOND column
+\column{0.4}
+ %Second column with first block's top edge aligned with with previous column's top.
+
+ % Second column - first block
+\block[titleleft]{Smaller Column}{Test}
+
+ % Second column - second block
+\block[titlewidthscale=0.6, bodywidthscale=0.8]
+{Variable width title}{Block with smaller width.}
+
+ % Second column - third block
+\block{}{Block with no title}
+
+ % Second column - A collection of blocks in subcolumn environment.
+\begin{subcolumns}
+ \subcolumn{0.27} \block{1}{First block.} \block{2}{Second block}
+ \subcolumn{0.4} \block{Sub-columns}{Sample subblocks\\Second subcolumn}
+ \subcolumn{0.33} \block{4}{Fourth} \block{}{Final Subcolumn block}
+\end{subcolumns}
+
+ % Bottomblock
+\block{Final Block in column}{
+ Sample block.
+}
+\end{columns}
+\block[titleleft, titleoffsetx=2em, titleoffsety=1em, bodyoffsetx=2em,%
+ bodyoffsety=-2cm, roundedcorners=10, linewidth=0mm, titlewidthscale=0.7,%
+ bodywidthscale=0.9, bodyverticalshift=2cm, titleright]
+{Block outside of Columns}{Along with several options enabled}
+
+\end{document}
+
+
+
+\endinput
+%%
+%% End of file `tikzposter-template.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposter.cls b/tex/.texmf/tex/latex/tikzposter/tikzposter.cls
new file mode 100644
index 0000000..5ff39e1
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposter.cls
@@ -0,0 +1,830 @@
+%%
+%% This is file `tikzposter.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposter.cls')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{tikzposter}[2014/01/15 v2.0 LaTeX document class for Posters]
+
+ % --------------------------------------- %
+ % Loading Packages
+\usepackage{xkeyval}
+\usepackage{calc}
+\usepackage{ifthen}
+\usepackage{ae}
+\usepackage{xstring}
+\usepackage{etoolbox}
+\usepackage{tikz}
+ \usetikzlibrary{shapes,decorations,shadows,backgrounds,calc,fadings,fit}
+ \usetikzlibrary{decorations.pathmorphing}
+ \usepgflibrary{arrows}
+
+ % --------------------------------------- %
+ % Paper parameter
+\newif\ifTP@hugefontsize
+\newdimen\TP@innermargin
+\newdimen\TP@visibletextwidth
+\newdimen\TP@visibletextheight
+
+ % Title parameter
+\newdimen\TP@titlewidth
+\newdimen\titlewidth
+\newdimen\TP@titlelinewidth
+\newdimen\titlelinewidth
+\def\titleroundedcorners{}
+\newdimen\titleinnersep
+\newdimen\TP@titleinnersep
+\newdimen\TP@titletotopverticalspace
+\newdimen\titletotopverticalspace
+\newdimen\TP@titletoblockverticalspace
+\newdimen\TP@titleheight
+\newdimen\titleheight
+\newdimen\titlegraphicheight
+\newdimen\titleposleft
+\newdimen\titleposright
+\newdimen\titlepostop
+\newdimen\titleposbottom
+\newdimen\TP@titlegraphictotitledistance
+\def\TP@titletextscale{1}
+
+ % Maketitle parameter
+\def\@title{~}
+\def\title#1{\gdef\@title{\scalebox{\TP@titletextscale}{#1}}}
+\def\@author{~}
+\def\@institute{~}
+\def\@titlegraphic{~}
+
+ % Affection parameter
+\newif\ifTP@showlatexaffection
+
+ % Column parameter
+\newif\ifTP@columnEnvironment
+\TP@columnEnvironmentfalse
+\newif\ifTP@subcolumnEnvironment
+\TP@subcolumnEnvironmentfalse
+\newdimen\TP@colspace
+\newdimen\TP@coltop
+\newdimen\TP@colbottom
+\newdimen\TP@colcenter
+\newdimen\colwidth
+
+ % Subcolumn parameter
+\newdimen\TP@subcolspace
+\newdimen\TP@subcoltop
+\newdimen\TP@subcolbottom
+\newdimen\TP@subcolcenter
+\newdimen\subcolwidth
+
+ % Block parameter
+\newdimen\TP@blockverticalspace
+\newdimen\TP@blockcenter
+\newdimen\TP@blocktitleinnersep
+\newdimen\blocktitleinnersep
+\newdimen\TP@blockbodyinnersep
+\newdimen\blockbodyinnersep
+\newbox\TP@blocktitlebox
+\newbox\TP@blockbodybox
+\def\TP@blocktitleAlignment{}
+\newif\ifBlockHasTitle
+\newdimen\TP@blocktitlewidth
+\newdimen\TP@blockbodywidth
+\newdimen\TP@blockbodyheight
+\newdimen\TP@blocktitleheight
+\newdimen\TP@blocktop
+\newdimen\TP@blocktitleoffsetx
+\newdimen\TP@blocktitleoffsety
+\newdimen\TP@blockbodyoffsetx
+\newdimen\TP@blockbodyoffsety
+\newdimen\TP@blockbodyverticalshift
+\def\blockroundedcorners{}
+\newdimen\blocklinewidth
+
+ % Innerblock parameter
+\newdimen\TP@innerblockcenter
+\newdimen\TP@innerblocktitleinnersep
+\newdimen\innerblocktitleinnersep
+\newdimen\TP@innerblockbodyinnersep
+\newdimen\innerblockbodyinnersep
+\newbox\TP@innerblocktitlebox
+\newbox\TP@innerblockbodybox
+\def\TP@innerblocktitleAlignment{}
+\newif\ifInnerblockHasTitle
+\newdimen\TP@innerblocktitlewidth
+\newdimen\TP@innerblockbodywidth
+\newdimen\TP@innerblockbodyheight
+\newdimen\TP@innerblocktitleheight
+\newdimen\TP@innerblocktitleoffsetx
+\newdimen\TP@innerblocktitleoffsety
+\newdimen\TP@innerblockbodyoffsetx
+\newdimen\TP@innerblockbodyoffsety
+\newdimen\TP@innerblockbodyverticalshift
+\def\innerblockroundedcorners{}
+\newdimen\innerblocklinewidth
+
+ % Coloredbox parameter
+\newbox\TP@coloredbox
+\newdimen\TP@coloredboxwidth
+\def\TP@coloredboxroundedcorners{}
+\newdimen\TP@coloredboxlinewidth
+\newdimen\TP@coloredboxinnersep
+\newdimen\TP@coloredboxheight
+
+ % Note parameter
+\newdimen\TP@noteinnersep
+\newdimen\noteinnersep
+\newdimen\TP@notetargetoffsetx
+\newdimen\TP@notetargetoffsety
+\def\TP@noteangle{}
+\newdimen\TP@noteradius
+\newdimen\TP@notewidth
+\newdimen\TP@noteheight
+\newif\ifNoteHasConnection
+\newbox\TP@notebox
+\def\noterotate{}
+\def\noteroundedcorners{}
+\newdimen\notelinewidth
+
+ % --------------------------------------- %
+ % Declaring options
+\DeclareOptionX{12pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{14pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{17pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{20pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{25pt}{\TP@hugefontsizetrue}
+\DeclareOptionX{fleqn}{\PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{leqno} {\PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{a0paper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{a1paper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{a2paper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{landscape}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{portrait}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{margin}[20mm]{\PassOptionsToPackage{margin=#1}{geometry}}
+\DeclareOptionX{innermargin}{\TP@innermargin=#1}
+\DeclareOptionX{colspace}{\TP@colspace=#1}
+\DeclareOptionX{subcolspace}{\TP@subcolspace=#1}
+\DeclareOptionX{blockverticalspace}{\TP@blockverticalspace=#1}
+\DeclareOptionX*{{\PackageWarning{tikzposter}{Unknown Option \CurrentOption.}}}
+
+ % Executing options
+\ExecuteOptionsX{
+ 25pt,
+ a0paper,
+ portrait,
+ margin=0mm,
+ innermargin=15mm,
+ colspace=15mm,
+ subcolspace=8mm,
+ blockverticalspace=15mm
+}
+\ProcessOptionsX \relax
+\LoadClass{extarticle}
+\RequirePackage{geometry}
+\ifTP@hugefontsize
+ \input{a0size.sty}
+ \renewcommand{\tiny}{\fontsize{12}{14}\selectfont}
+ \renewcommand{\scriptsize}{\fontsize{14.4}{18}\selectfont}
+ \renewcommand{\footnotesize}{\fontsize{17.28}{22}\selectfont}
+ \renewcommand{\small}{\fontsize{20.74}{25}\selectfont}
+ \renewcommand{\normalsize}{\fontsize{24.88}{30}\selectfont}
+ \renewcommand{\large}{\fontsize{29.86}{37}\selectfont}
+ \renewcommand{\Large}{\fontsize{35.83}{45}\selectfont}
+ \renewcommand{\LARGE}{\fontsize{43}{54}\selectfont}
+ \renewcommand{\huge}{\fontsize{51.6}{64}\selectfont}
+ \renewcommand{\Huge}{\fontsize{61.92}{77}\selectfont}
+\fi
+\normalsize
+\pagestyle{empty}
+\setlength{\TP@visibletextwidth}{\textwidth-2\TP@innermargin}
+\setlength{\TP@visibletextheight}{\textheight-2\TP@innermargin}
+\pgfdeclarelayer{backgroundlayer}
+\pgfdeclarelayer{notelayer}
+\pgfsetlayers{backgroundlayer,main,notelayer}
+
+ % --------------------------------------- %
+ % Background styles
+\gdef\definebackgroundstyle#1#2{\expandafter\gdef\csname TP@backgroundstyle#1\endcsname{#2}}
+
+\gdef\usebackgroundstyle#1{
+ \ifcsname TP@backgroundstyle#1\endcsname
+ \gdef\TP@backgroundstyle{\csname TP@backgroundstyle#1\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown backgroundstyle `#1'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Title styles
+\gdef\definetitlestyle#1#2#3{
+ \expandafter\gdef\csname TP@titlestyle#1Defaultvalues\endcsname{\gpresetkeys{title}{#2}{}}
+ \expandafter\gdef\csname TP@titlestyle#1\endcsname{#3}
+}
+
+\define@key{title}{width}{\TP@titlewidth=#1 \titlewidth=#1}
+\define@key{title}{roundedcorners}{\gdef\titleroundedcorners{#1}}
+\define@key{title}{linewidth}{\TP@titlelinewidth=#1 \titlelinewidth=#1}
+\define@key{title}{innersep}{\TP@titleinnersep=#1 \titleinnersep=#1}
+\define@key{title}{titletotopverticalspace}{\TP@titletotopverticalspace=#1 \titletotopverticalspace=#1}
+\define@key{title}{titletoblockverticalspace}{\TP@titletoblockverticalspace=#1}
+\define@key{title}{titlegraphictotitledistance}{\TP@titlegraphictotitledistance=#1}
+\define@key{title}{titletextscale}{\TP@titletextscale=#1}
+\newcommand\usetitlestyle[2][]{
+ \ifcsname TP@titlestyle#2\endcsname
+ \csname TP@titlestyle#2Defaultvalues\endcsname\gpresetkeys{title}{#1}{} % call macro
+ \gdef\TP@titlestyle{\csname TP@titlestyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown titlestyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Title
+\gdef\TP@maketitle{
+ \centering
+ \vbox{
+ \@titlegraphic
+ \\[\TP@titlegraphictotitledistance]
+ \centering
+ \color{titlefgcolor}
+ {\bfseries \Huge \sc \@title \par}
+ \vspace*{1em}
+ {\huge \@author \par}
+ \vspace*{1em}
+ {\LARGE \@institute}
+ }
+}
+
+\gdef\institute#1{\gdef\@institute{#1}}
+\gdef\titlegraphic#1{\gdef\@titlegraphic{#1}}
+
+\newenvironment{settitle}{
+ \makeatletter
+ \renewcommand{\TP@maketitle}
+}{
+ \makeatother
+}
+
+\renewcommand\maketitle[1][]{ % #1 keys
+ \normalsize
+ \setkeys{title}{#1}
+ % Title dummy to get title height
+ \node[transparent,inner sep=\TP@titleinnersep, line width=\TP@titlelinewidth, anchor=north, minimum width=\TP@visibletextwidth-2\TP@titleinnersep]
+ (TP@title) at ($(0, 0.5\textheight-\TP@titletotopverticalspace)$) {\parbox{\TP@titlewidth-2\TP@titleinnersep}{\TP@maketitle}};
+ \draw let \p1 = ($(TP@title.north)-(TP@title.south)$) in node {
+ \setlength{\TP@titleheight}{\y1}
+ \setlength{\titleheight}{\y1}
+ \global\TP@titleheight=\TP@titleheight
+ \global\titleheight=\titleheight
+ };
+
+ % Compute title position
+ \setlength{\titleposleft}{-0.5\titlewidth}
+ \setlength{\titleposright}{\titleposleft+\titlewidth}
+ \setlength{\titlepostop}{0.5\textheight-\TP@titletotopverticalspace}
+ \setlength{\titleposbottom}{\titlepostop-\titleheight}
+
+ % Title style (background)
+ \TP@titlestyle
+
+ % Title node
+ \node[inner sep=\TP@titleinnersep, line width=\TP@titlelinewidth, anchor=north, minimum width=\TP@visibletextwidth-2\TP@titleinnersep]
+ at (0,0.5\textheight-\TP@titletotopverticalspace) {\parbox{\TP@titlewidth-2\TP@titleinnersep}{\TP@maketitle}};
+
+ % Settings for blocks
+ \normalsize
+ \setlength{\TP@blocktop}{\titleposbottom-\TP@titletoblockverticalspace}
+}
+
+ % --------------------------------------- %
+ % Block styles
+\gdef\defineblockstyle#1#2#3{
+ \expandafter\gdef\csname TP@blockstyle#1Defaultvalues\endcsname{\gpresetkeys{block}{#2}{}}
+ \expandafter\gdef\csname TP@blockstyle#1\endcsname{#3}
+}
+
+\define@key{block}{titlewidthscale}{\setlength{\TP@blocktitlewidth}{#1\TP@blocktitlewidth}}
+\define@key{block}{bodywidthscale}{\setlength{\TP@blockbodywidth}{#1\TP@blockbodywidth}}
+\define@boolkey{block}{titleleft}[true]{\ifKV@block@titleleft \gdef\TP@blocktitleAlignment{\raggedright} \fi}
+\define@boolkey{block}{titlecenter}[true]{\ifKV@block@titlecenter \gdef\TP@blocktitleAlignment{\centering} \fi}
+\define@boolkey{block}{titleright}[true]{\ifKV@block@titleright \gdef\TP@blocktitleAlignment{\raggedleft} \fi}
+\define@key{block}{titleoffsetx}{\TP@blocktitleoffsetx=#1}
+\define@key{block}{titleoffsety}{\TP@blocktitleoffsety=#1}
+\define@key{block}{bodyoffsetx}{\TP@blockbodyoffsetx=#1}
+\define@key{block}{bodyoffsety}{\TP@blockbodyoffsety=#1}
+\define@key{block}{bodyverticalshift}{\TP@blockbodyverticalshift=#1}
+\define@key{block}{roundedcorners}{\gdef\blockroundedcorners{#1}}
+\define@key{block}{linewidth}{\blocklinewidth=#1}
+\define@key{block}{titleinnersep}{\TP@blocktitleinnersep=#1 \blocktitleinnersep=#1}
+\define@key{block}{bodyinnersep}{\TP@blockbodyinnersep=#1 \blockbodyinnersep=#1}
+
+\newcommand\useblockstyle[2][]{
+ \ifcsname TP@blockstyle#2\endcsname
+ \csname TP@blockstyle#2Defaultvalues\endcsname\gpresetkeys{block}{#1}{} % call macro
+ \gdef\TP@blockstyle{\csname TP@blockstyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown blockstyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Block
+\newcommand\block[3][]{ % #1 keys #2 title #3 text
+ % Block position
+ \normalsize
+ \ifTP@subcolumnEnvironment
+ \TP@blocktitlewidth=\subcolwidth
+ \TP@blockbodywidth=\subcolwidth
+ \TP@blockcenter=\TP@subcolcenter
+ \else
+ \ifTP@columnEnvironment
+ \TP@blocktitlewidth=\colwidth
+ \TP@blockbodywidth=\colwidth
+ \TP@blockcenter=\TP@colcenter
+ \else
+ \setlength\TP@blocktitlewidth{\TP@visibletextwidth}
+ \setlength\TP@blockbodywidth{\TP@visibletextwidth}
+ \TP@blockcenter=0pt
+ \fi
+ \fi
+
+ % Set parameter
+ \setkeys{block}{#1}
+
+ % Settings for Subcolumns
+ \ifTP@subcolumnEnvironment \else \ifTP@columnEnvironment \else
+ \setlength\TP@blocktitlewidth{\TP@blocktitlewidth-\blocklinewidth}
+ \setlength\TP@blockbodywidth{\TP@blockbodywidth-\blocklinewidth}
+ \TP@blockcenter=0pt
+ \fi \fi
+
+ % Get height of title
+ \ifstrempty{#2}{
+ \BlockHasTitlefalse
+ \setlength{\TP@blocktitleheight}{0pt}
+ }{
+ \BlockHasTitletrue
+ \setbox\TP@blocktitlebox=\hbox{%
+ \pgfinterruptpicture%
+ \parbox{\TP@blocktitlewidth-2\TP@blocktitleinnersep}{%
+ \bf\LARGE\color{blocktitlefgcolor}\TP@blocktitleAlignment#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@blocktitleheight}{\ht\TP@blocktitlebox + \dp\TP@blocktitlebox +2\TP@blocktitleinnersep}
+ }
+
+ % Get height of body
+ \setbox\TP@blockbodybox=\hbox{
+ \pgfinterruptpicture%
+ \parbox{\TP@blockbodywidth-2\TP@blockbodyinnersep-\TP@blockbodyoffsetx}{%
+ \vspace*{\TP@blockbodyverticalshift}\large\color{blockbodyfgcolor}#3\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@blockbodyheight}{\ht\TP@blockbodybox + \dp\TP@blockbodybox +2\TP@blockbodyinnersep}
+
+ % Set coordinates
+ \node[minimum width=\TP@blocktitlewidth, minimum height=\TP@blocktitleheight, anchor=center] (blocktitle)%
+ at (\TP@blockcenter+\TP@blocktitleoffsetx, {\TP@blocktop-0.5\TP@blocktitleheight+\TP@blocktitleoffsety}){};
+ \ifBlockHasTitle
+ \node[minimum width=\TP@blockbodywidth, minimum height=\TP@blockbodyheight, anchor=center] (blockbody)%
+ at (\TP@blockcenter+\TP@blockbodyoffsetx, {\TP@blocktop-\TP@blocktitleheight-0.5\TP@blockbodyheight+\TP@blockbodyoffsety}){};
+ \else
+ \node[minimum width=\TP@blockbodywidth, minimum height=\TP@blockbodyheight, anchor=center] (blockbody)%
+ at (\TP@blockcenter+\TP@blockbodyoffsetx, {\TP@blocktop-\TP@blocktitleheight-0.5\TP@blockbodyheight}){};
+ \fi
+
+ % Draw style
+ \TP@blockstyle
+
+ % Draw text
+ \ifBlockHasTitle
+ \node[text width=\TP@blocktitlewidth-2\TP@blocktitleinnersep, inner sep=\TP@blocktitleinnersep, anchor=center]%
+ at (blocktitle){\box\TP@blocktitlebox};
+ \fi
+ \node[text width=\TP@blockbodywidth-2\TP@blockbodyinnersep, inner sep=\TP@blockbodyinnersep, anchor=center]%
+ at (blockbody){\box\TP@blockbodybox};
+
+ % Set position parameter
+ \draw let \p1 = (blockbody.south) in node {
+ \setlength{\TP@blocktop}{\y1-\TP@blockverticalspace}
+ \global\TP@blocktop=\TP@blocktop
+ };
+ \ifTP@subcolumnEnvironment
+ \setlength{\TP@subcolbottom}{\minof{\TP@subcolbottom}{\TP@blocktop}}
+ \global\TP@subcolbottom=\TP@subcolbottom
+ \else
+ \ifTP@columnEnvironment
+ \setlength{\TP@colbottom}{\minof{\TP@colbottom}{\TP@blocktop}}
+ \global\TP@colbottom=\TP@colbottom
+ \fi
+ \fi
+}
+
+ % --------------------------------------- %
+ % Innerblock styles
+\gdef\defineinnerblockstyle#1#2#3{
+ \expandafter\gdef\csname TP@innerblockstyle#1Defaultvalues\endcsname{\gpresetkeys{innerblock}{#2}{}}
+ \expandafter\gdef\csname TP@innerblockstyle#1\endcsname{#3}
+}
+
+\define@key{innerblock}{titlewidth}{\setlength{\TP@innerblocktitlewidth}{#1}}
+\define@key{innerblock}{bodywidth}{\setlength{\TP@innerblockbodywidth}{#1}}
+\define@key{innerblock}{titlewidthscale}{\setlength{\TP@innerblocktitlewidth}{#1\TP@innerblocktitlewidth}}
+\define@key{innerblock}{bodywidthscale}{\setlength{\TP@innerblockbodywidth}{#1\TP@innerblockbodywidth}}
+\define@boolkey{innerblock}{titleleft}[true]{\ifKV@innerblock@titleleft \gdef\TP@innerblocktitleAlignment{\raggedright} \fi}
+\define@boolkey{innerblock}{titlecenter}[true]{\ifKV@innerblock@titlecenter \gdef\TP@innerblocktitleAlignment{\centering} \fi}
+\define@boolkey{innerblock}{titleright}[true]{\ifKV@innerblock@titleright \gdef\TP@innerblocktitleAlignment{\raggedleft} \fi}
+\define@key{innerblock}{titleoffsetx}{\TP@innerblocktitleoffsetx=#1}
+\define@key{innerblock}{titleoffsety}{\TP@innerblocktitleoffsety=#1}
+\define@key{innerblock}{bodyoffsetx}{\TP@innerblockbodyoffsetx=#1}
+\define@key{innerblock}{bodyoffsety}{\TP@innerblockbodyoffsety=#1}
+\define@key{innerblock}{bodyverticalshift}{\TP@innerblockbodyverticalshift=#1}
+\define@key{innerblock}{roundedcorners}{\gdef\innerblockroundedcorners{#1}}
+\define@key{innerblock}{linewidth}{\innerblocklinewidth=#1}
+\define@key{innerblock}{titleinnersep}{\TP@innerblocktitleinnersep=#1 \innerblocktitleinnersep=#1}
+\define@key{innerblock}{bodyinnersep}{\TP@innerblockbodyinnersep=#1 \innerblockbodyinnersep=#1}
+\define@key{innerblock}{titlebgcolor}{\definecolor{innerblocktitlebgcolor}{named}{#1}}
+\define@key{innerblock}{titlefgcolor}{\definecolor{innerblocktitlefgcolor}{named}{#1}}
+\define@key{innerblock}{bodybgcolor}{\definecolor{innerblockbodybgcolor}{named}{#1}}
+\define@key{innerblock}{bodyfgcolor}{\definecolor{innerblockbodyfgcolor}{named}{#1}}
+
+\newcommand\useinnerblockstyle[2][]{
+ \ifcsname TP@innerblockstyle#2\endcsname
+ \csname TP@innerblockstyle#2Defaultvalues\endcsname\gpresetkeys{innerblock}{#1}{} % call macro
+ \gdef\TP@innerblockstyle{\csname TP@innerblockstyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown innerblockstyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Innerblock
+\newcommand\innerblock[3][]{ % #1 keys #2 title #3 text
+ % Settings for Innerblock
+ \definecolor{innerblocktitlebgcolorTemp}{named}{innerblocktitlebgcolor}
+ \definecolor{innerblocktitlefgcolorTemp}{named}{innerblocktitlefgcolor}
+ \definecolor{innerblockbodybgcolorTemp}{named}{innerblockbodybgcolor}
+ \definecolor{innerblockbodyfgcolorTemp}{named}{innerblockbodyfgcolor}
+ \setlength{\TP@innerblocktitlewidth}{\linewidth}
+ \setlength{\TP@innerblockbodywidth}{\linewidth}
+ \setkeys{innerblock}{#1}
+
+ \begin{tikzpicture}
+
+ % Get center in x-direction
+ \pgfmathsetlength{\TP@innerblockcenter}{max(\TP@innerblocktitlewidth,\TP@innerblockbodywidth)/2}
+
+ % Get height of title
+ \ifstrempty{#2}{
+ \InnerblockHasTitlefalse
+ \setlength{\TP@innerblocktitleheight}{0pt}
+ }{
+ \InnerblockHasTitletrue
+ \setbox\TP@innerblocktitlebox=\hbox{%
+ \pgfinterruptpicture%
+ \parbox{\TP@innerblocktitlewidth-2\TP@innerblocktitleinnersep}{%
+ \bf\color{innerblocktitlefgcolor}\TP@innerblocktitleAlignment#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }
+ \setlength{\TP@innerblocktitleheight}{\ht\TP@innerblocktitlebox + \dp\TP@innerblocktitlebox +2\TP@innerblocktitleinnersep}
+ }
+
+ % Get height of body
+ \setbox\TP@innerblockbodybox=\hbox{
+ \pgfinterruptpicture%
+ \parbox{\TP@innerblockbodywidth-2\TP@innerblockbodyinnersep-\TP@innerblockbodyoffsetx}{%
+ \vspace*{\TP@innerblockbodyverticalshift}%
+ \color{innerblockbodyfgcolor}#3\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@innerblockbodyheight}{\ht\TP@innerblockbodybox + \dp\TP@innerblockbodybox +2\TP@innerblockbodyinnersep}
+
+ % Set coordinates
+ \node[minimum width=\TP@innerblocktitlewidth, minimum height=\TP@innerblocktitleheight, anchor=center] (innerblocktitle)
+ at (\TP@innerblockcenter+\TP@innerblocktitleoffsetx, {-0.5\TP@innerblocktitleheight+\TP@innerblocktitleoffsety}) {};%
+ \ifInnerblockHasTitle
+ \node[minimum width=\TP@innerblockbodywidth, minimum height=\TP@innerblockbodyheight, anchor=center] (innerblockbody)
+ at (\TP@innerblockcenter+\TP@innerblockbodyoffsetx, {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight+\TP@innerblockbodyoffsety}) {};%
+ \else
+ \node[minimum width=\TP@innerblockbodywidth, minimum height=\TP@innerblockbodyheight, anchor=center] (innerblockbody)
+ at (\TP@innerblockcenter+\TP@innerblockbodyoffsetx, {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight}) {};%
+ \fi
+
+ % Draw style
+ \TP@innerblockstyle
+
+ % Draw text
+ \ifInnerblockHasTitle
+ \node[text width=\TP@innerblocktitlewidth-2\TP@innerblocktitleinnersep, inner sep=\TP@innerblocktitleinnersep, anchor= center]
+ at (innerblocktitle) {\box\TP@innerblocktitlebox};%
+ \fi
+ \node[text width=\TP@innerblockbodywidth-2\TP@innerblockbodyinnersep, inner sep=\TP@innerblockbodyinnersep, anchor= center]
+ at (innerblockbody) {\box\TP@innerblockbodybox};%
+ \end{tikzpicture}
+
+ % Reset colors
+ \definecolor{innerblocktitlebgcolor}{named}{innerblocktitlebgcolorTemp}
+ \definecolor{innerblocktitlefgcolor}{named}{innerblocktitlefgcolorTemp}
+ \definecolor{innerblockbodybgcolor}{named}{innerblockbodybgcolorTemp}
+ \definecolor{innerblockbodyfgcolor}{named}{innerblockbodyfgcolorTemp}
+}
+
+ % --------------------------------------- %
+ % Coloredbox
+\define@key{coloredbox}{width}{\setlength{\TP@coloredboxwidth}{#1}}
+\define@key{coloredbox}{roundedcorners}{\gdef\TP@coloredboxroundedcorners{#1}}
+\define@key{coloredbox}{linewidth}{\TP@coloredboxlinewidth=#1}
+\define@key{coloredbox}{innersep}{\TP@coloredboxinnersep=#1}
+\define@key{coloredbox}{bgcolor}{\definecolor{coloredboxbgcolorTemp}{named}{#1}}
+\define@key{coloredbox}{fgcolor}{\definecolor{coloredboxfgcolorTemp}{named}{#1}}
+\define@key{coloredbox}{framecolor}{\definecolor{coloredboxframecolorTemp}{named}{#1}}
+
+\newcommand\coloredbox[2][]{ % #1 keys #2 text
+ % Settings for coloredbox
+ \setlength{\TP@coloredboxwidth}{\TP@blocktitlewidth-4\TP@blocktitleinnersep}
+ \setkeys{coloredbox}{%
+ width={\linewidth}, roundedcorners=15, linewidth=3.5pt, innersep=10pt,
+bgcolor=notebgcolor, fgcolor=notefgcolor, framecolor=notebgcolor, #1}
+
+ \begin{tikzpicture}
+ % Get height of text
+ \setbox\TP@coloredbox=\hbox{
+ \pgfinterruptpicture%
+ \parbox{\TP@coloredboxwidth-2\TP@coloredboxinnersep}{%
+ \color{coloredboxfgcolorTemp}#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@coloredboxheight}{\ht\TP@coloredbox + \dp\TP@coloredbox +2\TP@coloredboxinnersep}
+
+ % Set coordinates
+ \node[minimum width=\TP@coloredboxwidth, minimum height=\TP@coloredboxheight, anchor=center] (coloredbox)
+ at (0.5\TP@coloredboxwidth, -0.5\TP@coloredboxheight) {};%
+
+ % Draw style
+ \begin{scope}[line width=\TP@coloredboxlinewidth, rounded corners=\TP@coloredboxroundedcorners]
+ \draw[color=coloredboxframecolorTemp, fill=coloredboxbgcolorTemp] (coloredbox.south west) rectangle (coloredbox.north east);
+ \end{scope}
+
+ % Draw text
+ \node[text width=\TP@coloredboxwidth-2\TP@coloredboxinnersep, inner sep=\TP@coloredboxinnersep, anchor= center]
+ at (coloredbox) {\box\TP@coloredbox};%
+ \end{tikzpicture}
+
+ % Reset colors
+ \definecolor{coloredboxbgcolor}{named}{coloredboxbgcolorTemp}
+ \definecolor{coloredboxfgcolor}{named}{coloredboxfgcolorTemp}
+}
+
+ % --------------------------------------- %
+ % Note styles
+\gdef\definenotestyle#1#2#3{
+ \expandafter\gdef\csname TP@notestyle#1Defaultvalues\endcsname{\gpresetkeys{note}{#2}{}}
+ \expandafter\gdef\csname TP@notestyle#1\endcsname{#3}
+}
+
+\define@key{note}{targetoffsetx}{\TP@notetargetoffsetx=#1}
+\define@key{note}{targetoffsety}{\TP@notetargetoffsety=#1}
+\define@key{note}{angle}{\def\TP@noteangle{#1}}
+\define@key{note}{radius}{\TP@noteradius=#1}
+\define@key{note}{width}{\TP@notewidth=#1}
+\define@boolkey{note}{connection}[true]{\NoteHasConnectiontrue \ifKV@note@connection \NoteHasConnectiontrue \else \NoteHasConnectionfalse \fi}
+\define@key{note}{rotate}{\gdef\noterotate{#1}}
+\define@key{note}{roundedcorners}{\gdef\noteroundedcorners{#1}}
+\define@key{note}{linewidth}{\notelinewidth=#1}
+\define@key{note}{innersep}{\TP@noteinnersep=#1 \noteinnersep=#1}
+\newcommand\usenotestyle[2][]{
+ \ifcsname TP@notestyle#2\endcsname
+ \csname TP@notestyle#2Defaultvalues\endcsname\gpresetkeys{note}{#1}{} % call macro
+ \gdef\TP@notestyle{\csname TP@notestyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown notestyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Note
+\newcommand\note[2][]{ % #1 keys #2 text
+ \normalsize
+ \setkeys{note}{#1}
+
+ % Note box
+ \setbox\TP@notebox=\hbox{%
+ \pgfinterruptpicture%
+ \parbox{\TP@notewidth-2\TP@noteinnersep}{\color{notefgcolor}#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@noteheight}{\ht\TP@notebox + \dp\TP@notebox +2\TP@noteinnersep}
+ \pgfmathsetlength{\TP@noteheight}{max(\TP@noteheight,80pt)}
+
+ % Set note coordinates
+ \node (notetarget) at ($(blockbody)+(\TP@notetargetoffsetx,\TP@notetargetoffsety)$){};
+ \node[minimum width=\TP@notewidth, minimum height=\TP@noteheight, anchor=center,rotate=\noterotate] (notecenter)
+ at ($(notetarget)+({\TP@noteradius*cos(\TP@noteangle)},{\TP@noteradius*sin(\TP@noteangle)})$){};%
+
+ % Draw note
+ \begin{pgfonlayer}{notelayer}
+ \TP@notestyle
+ % Draw note text
+ \node[text width=\TP@notewidth-2\TP@noteinnersep, inner sep=\TP@noteinnersep, anchor=center,rotate=\noterotate]%
+ at (notecenter){\box\TP@notebox};
+ \end{pgfonlayer}
+}
+
+ % --------------------------------------- %
+ % Color palette
+\gdef\definecolorpalette#1#2{\expandafter\gdef\csname TP@colorpalette#1\endcsname{#2}}
+
+\gdef\usecolorpalette#1{
+ \ifcsname TP@colorpalette#1\endcsname
+ \csname TP@colorpalette#1\endcsname % call macro
+ \else
+ \PackageWarning{tikzposter}{Unknown color palette `#1'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Color style
+\gdef\definecolorstyle#1#2#3{
+ \expandafter\gdef\csname TP@colorstyle#1Defaultvalues\endcsname{#2}
+ \expandafter\gdef\csname TP@colorstyle#1\endcsname{#3}
+}
+
+\define@key{colors}{colorOne}{\colorlet{colorOne}{#1}}
+\define@key{colors}{colorTwo}{\colorlet{colorTwo}{#1}}
+\define@key{colors}{colorThree}{\colorlet{colorThree}{#1}}
+\define@key{colors}{colorPalette}{\usecolorpalette{#1}}
+
+\newcommand\usecolorstyle[2][]{ % #1 keys #2 macroname
+ \ifcsname TP@colorstyle#2\endcsname
+ \csname TP@colorstyle#2Defaultvalues\endcsname % call macro
+ \setkeys{colors}{#1} % set keys
+ \csname TP@colorstyle#2\endcsname % call macro
+ \else
+ \PackageWarning{tikzposter}{Unknown color style `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Layouttheme
+\gdef\definelayouttheme#1#2{\expandafter\gdef\csname TP@layouttheme#1\endcsname{#2}}
+
+\gdef\usetheme#1{
+ % Layout theme
+ \ifcsname TP@layouttheme#1\endcsname
+ \csname TP@layouttheme#1\endcsname % call macro
+ \else
+ \PackageWarning{tikzposter}{Unknown layouttheme `#1'.}
+ \fi
+}
+
+ % Input Style and Theme Files
+\input{tikzposterColorpalettes}
+\input{tikzposterColorstyles}
+\input{tikzposterBackgroundstyles}
+\input{tikzposterTitlestyles}
+\input{tikzposterBlockstyles}
+\input{tikzposterInnerblockstyles}
+\input{tikzposterNotestyles}
+\input{tikzposterLayoutthemes}
+
+ % Set Default theme
+\usetheme{Default}
+
+ % --------------------------------------- %
+ % Columns environment
+\newenvironment{columns}{
+ \TP@columnEnvironmenttrue
+ \setlength{\TP@colcenter}{-0.5\TP@visibletextwidth-\TP@colspace-0.5\blocklinewidth}
+ \global\TP@colcenter=\TP@colcenter
+ \global\TP@coltop=\TP@blocktop
+ \global\TP@colbottom=\TP@blocktop
+ \colwidth=0pt
+}{
+ \TP@columnEnvironmentfalse
+ \global\TP@blocktop=\TP@colbottom
+}
+
+ % Column
+\gdef\column#1{ % #1: relative width
+ \ifTP@columnEnvironment
+ \normalsize
+ \setlength{\TP@blocktop}{\TP@coltop}
+ \setlength{\TP@colcenter}{\TP@colcenter+0.5\colwidth+\TP@colspace}
+ \setlength{\colwidth}{#1\TP@visibletextwidth+#1\TP@colspace-\TP@colspace-\blocklinewidth}
+ \setlength{\TP@colcenter}{\TP@colcenter+0.5\colwidth+\blocklinewidth}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Subcolumns environment
+\newenvironment{subcolumns}{
+ \ifTP@columnEnvironment
+ \TP@subcolumnEnvironmenttrue
+ \setlength{\TP@subcolcenter}{\TP@colcenter-0.5\colwidth-\TP@blockbodyinnersep-\TP@subcolspace-\TP@blockbodyinnersep}
+ \global\TP@subcolcenter=\TP@subcolcenter
+ \global\TP@subcoltop=\TP@blocktop
+ \global\TP@subcolbottom=\TP@blocktop
+ \subcolwidth=0pt
+ \fi
+}{
+ \TP@subcolumnEnvironmentfalse
+ \global\TP@blocktop=\TP@subcolbottom
+}
+
+ % Subcolumn
+\gdef\subcolumn#1{ % #1: relative width
+ \ifTP@subcolumnEnvironment
+ \normalsize
+ \setlength{\TP@blocktop}{\TP@subcoltop}
+ \setlength{\TP@subcolcenter}{\TP@subcolcenter+0.5\subcolwidth+\TP@blockbodyinnersep+\TP@subcolspace+\TP@blockbodyinnersep}
+ \setlength{\subcolwidth}{#1\colwidth+#1\TP@blockbodyinnersep+#1\TP@blockbodyinnersep
+ +#1\TP@subcolspace-\TP@subcolspace-2\TP@blockbodyinnersep}
+ \setlength{\TP@subcolcenter}{\TP@subcolcenter+0.5\subcolwidth}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Affection
+\gdef\tikzposterlatexaffectionproofon{\TP@showlatexaffectiontrue}
+\gdef\tikzposterlatexaffectionproofoff{\TP@showlatexaffectionfalse}
+\TP@showlatexaffectiontrue
+
+ % --------------------------------------- %
+ % Document environment
+\AtBeginDocument{%
+ % Get titlegraphic height
+ \settototalheight{\titlegraphicheight}{\hbox{\@titlegraphic}}
+
+ \begin{center}
+ \begin{tikzpicture}
+ % Background
+ \coordinate (topright) at (0.5\textwidth, 0.5\textheight);
+ \coordinate (bottomleft) at (-0.5\textwidth, -0.5\textheight);
+ \clip (bottomleft) rectangle (topright);
+
+ % Draw background
+ \begin{pgfonlayer}{backgroundlayer}
+ \clip (bottomleft) rectangle (topright);
+ \TP@backgroundstyle
+ \ifTP@showlatexaffection
+ \node[inner sep=4pt, anchor=south east, fill=white, draw=none, rounded corners=5, fill opacity=0.3, text opacity=1]
+ at (0.5\textwidth-7pt, -0.5\textheight+7pt){\footnotesize {\bf\textrm\LaTeX}~\textrm{Ti\emph{k}Z}\bf\textrm{poster}};
+ \fi
+ \end{pgfonlayer}
+
+}
+
+\AtEndDocument{%
+ \end{tikzpicture}
+ \end{center}
+}
+
+%%
+
+\newcounter{figurecounter}
+
+%% #1 Caption
+\newenvironment{tikzfigure}[1][]{
+ \def \rememberparameter{#1}
+ \vspace{10pt}
+ \refstepcounter{figurecounter}
+ \begin{center}
+ }{
+ \ifx\rememberparameter\@empty
+ \else %nothing
+ \\[10pt]
+ {\small Fig.~\thefigurecounter: \rememberparameter}
+ \fi
+ \end{center}
+}
+
+%%
+
+
+
+\endinput
+%%
+%% End of file `tikzposter.cls'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposter.dtx b/tex/.texmf/tex/latex/tikzposter/tikzposter.dtx
new file mode 100644
index 0000000..fa1c773
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposter.dtx
@@ -0,0 +1,2905 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, Dirk Surmann
+% -----------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 2.0 of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 2.0 or later is part of all distributions of
+% LaTeX version 2014/01/15 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{tikzposter.dtx}
+\documentclass{ltxdoc}
+\usepackage{subfigure}
+\usepackage{tikz}
+\usepackage{fancyvrb,hyperref}
+\usepackage{setspace}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription
+\definecolor{macro}{HTML}{1B1BB3}
+\definecolor{option}{HTML}{009999}
+\definecolor{color}{HTML}{00CC00}%62E200}
+\definecolor{style}{HTML}{E60042}
+\definecolor{value}{HTML}{FF7400}
+\definecolor{node}{HTML}{6F0AAA}
+\newcommand{\mmacro}[1]{{\color{macro} {#1}}}
+\newcommand{\moption}[1]{\textcolor{option}{#1}}
+\newcommand{\mcolor}[1]{\textcolor{color}{#1}}
+\newcommand{\mstyle}[1]{\textcolor{style}{#1}}
+\newcommand{\mvalue}[1]{\textcolor{value}{#1}}
+\newcommand{\mnode}[1]{\textcolor{node}{#1}}
+\begin{document}
+ \DocInput{tikzposter.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \changes{v1.0}{2012/09/15}{Initial version}
+%
+% \GetFileInfo{tikzposter.cls}
+% \def\filedate{2014/01/15}
+% \def\fileversion{v2.0}
+% \def\fileinfo{LaTeX Poster Class with TikZ}
+%
+% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
+% \DoNotIndex{\@ne}
+% \DoNotIndex{\advance,\begingroup,\catcode,\closein}
+% \DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
+%
+% \title{The \textsf{tikzposter} class \thanks{This document corresponds to \textsf{tikzposter}~\fileversion, dated~\filedate.}}
+% \author{Pascal Richter, Elena Botoeva, Richard Barnard, Dirk Surmann \\[1ex] \texttt{tikzposter@mathcces.rwth-aachen.de} \\ \url{https://bitbucket.org/surmann/tikzposter/wiki/}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This document class aims to provide a simple way of using LateX and TikZ for
+% generating good looking scientific posters.
+% \end{abstract}
+%
+% \renewcommand{\baselinestretch}{0.75}
+% \tableofcontents
+% %\renewcommand{\baselinestretch}{1}
+%
+% \section{Introduction}
+% The \textsf{tikzposter} document class file may be used to simplify formatting and generating scientific posters
+% in the \textsf{.pdf} format. It uses the TikZ package to generate a poster layout. % The poster is formed by a series of blocks against a background in a sequence of aligned columns.
+% The purpose of the class is to reduce the level of formatting by automatically setting spacing between
+% blocks in the poster as well as their lengths. The user has control over the width of the columns.
+% Due to the class' reliance on TikZ, only \textsf{.pdf} output is supported. This document explains the
+% formatting options available and how to easily create a basic block layout.
+%
+% To start with the class, the user can look at either the template file included with the class |tikzposter-template.tex| (also shown in Section \ref{sec:template}) which provides a template, the minimal working example shown in Section \ref{sec:usage}, or the example file |tikzposter-example.tex|. The last file illustrates various formatting options available.
+% In Section \ref{sec:docclass}, the |\documentclass| is described.
+% Inside of the |document| environment, the title is created by the use of one of the title block commands
+% and columns of aligned blocks are then created; the various commands are described in the subsections of Section \ref{sec:postercontents}.
+% If you want to alter the appearance of the poster, the various ways of doing this are explained in Section \ref{sec:posterlayout}. Finally, the Appendix (Section \ref{sec:appendix}) lists useful variables for those who want to further customize the appearance of the posters.
+%\vspace{12pt}
+%
+%\noindent\textbf{Required packages:} The class uses \LaTeX2e and the following required packages:
+% |tikz|, |calc|, |ifthen|, |ae|, |xstring|, |etoolbox|, |xkeyval|.
+%\vspace{12pt}
+
+% \noindent\textbf{Changes from previous versions:} Significant changes have been
+%made between the current version and the previous version of tikzposter. Aside from bug fixes, there
+%have been the following changes: The background can now be customized, the title formatting can be customized,
+% blocks can be shifted with respect to the default positioning, the format and appearance of blocks can be
+%customized, the |note| object was introduced (a new type of object) and colorthemes have been modified. The various changes mean backwards compatibility was not possible for posters using some of the formatting options in the previous version.
+%\section{Creating a Poster}\label{sec:usage}
+%Below is a minimal example of a poster and the relevant places in the manual to find further information.
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \documentclass{tikzposter} % See Section 3
+% \title{Title} \institute{Inst} % See Section 4.1
+% \author{Auth} \titlegraphic{Logo}
+% \usetheme{Basic} % See Section 5
+% \begin{document}
+% \maketitle % See Section 4.1
+% \block{BlocktitleA}{Blocktext} % See Section 4.2
+% \begin{columns} % See Section 4.4
+% \column{0.3} % See Section 4.4
+% \block{BlocktitleB}{Blocktext}
+% \column{0.7}
+% \block{BlocktitleC}{Blocktext}
+% \note{Notetext} % See Section 4.3
+% \end{columns}
+% \end{document}
+%\end{Verbatim}
+%
+%\section{Options for the Document Class}
+%\label{sec:docclass}
+% In order to use the class, begin the document with
+% \begin{quote}
+% |\documentclass[|\emph{options}|]{tikzposter}|
+% \end{quote}
+% There are several options available for customizing the general layout of the poster. These are
+% called as optional arguments when declaring the document class. The options for the page geometry are
+%\begin{itemize}
+% \item font size: The size of the text in the main body may be set as : |12pt|, |14pt|, |17pt|, |20pt|, or |25pt|;
+% \item paper size: Currently, paper sizes may be set to : |a0paper|, |a1paper|, or |a2paper|;
+% \item orientation: Either |landscape| or |portrait|.
+% \end{itemize}
+% The standard options |fleqn| and |leqno| may also be invoked here.
+% The following options are set in the form $\langle$\emph{variable name}$\rangle$=$\langle$\emph{value}$\rangle$ and deal with spacing of the poster:
+% \begin {itemize}
+% \item \moption{|margin|}: The margin between outer edge of the poster and the edge of the paper.
+%\item \moption{|innermargin|}: The margin from the edge of the poster edge to the outermost edge of the blocks;
+%\item \moption{|colspace|}: The horizontal spacing between successive columns;
+%\item \moption{|subcolspace|}: The horizontal spacing between successive columns in the |subcolumn| environment (See Section \ref{sec:postercontents:columns} for more on this environment);
+%\item \moption{|blockverticalspace|}: The spacing between the bottom of a normal block and the top of the next block.
+%\end{itemize}
+% A sample usage of these options would be :
+% \begin{verbatim}
+% \documentclass[25pt, a0paper, portrait, margin=0mm, innermargin=15mm,
+% blockverticalspace=15mm, colspace=15mm, subcolspace=8mm]{tikzposter}
+% \end{verbatim}
+% These listed values are in fact the default values of the optional arguments.
+% To turn off the comment on how the poster was created in the lower right corner, include in the preamble {\color{macro}|\tikzposterlatexaffectionproofoff|}.
+
+%\section{The Poster Contents}
+%\label{sec:postercontents}
+%\subsection{Title Matter}
+%\label{sec:postercontents:title}
+% \DescribeMacro{\maketitle} The information for the title matter is defined in the usual manner; the user may use |\author{}|, |\institute{}|, and |\title{}|. Additionally, a logo for the title matter may be defined via {\color{macro}|\titlegraphic{}|}. The title is created with the normal {\color{macro}|\maketitle[|\emph{options}|]|} command; however, we note that new options are available to alter the default settings:
+%\begin{itemize}
+%\item \moption{|width|}: The width of the title portion of the poster.
+%\item \moption{|roundedcorners|}, \moption{|linewidth|}, \moption{|innersep|}: Passed to relevant TikZ commands in the title style, governing the ``box'' surrounding the title matter (if the style is made dependent on these parameters -- the default style, for instance, is).
+%\item \moption{|titletotopverticalspace|}, \moption{|titletoblockverticalspace|}: Space between the top of the poster (excluding margins) and the top edge of the title portion; and space between the bottom of the poster and the top block, respectively.
+%\item \moption{|titlegraphictotitledistance|}: a length, used for a vertical distance between the titlegraphic and title description.
+%\item \moption{|titletextscale|}: a number which allows for relative scaling of the text of the title.
+%\end{itemize}
+% The necessary spacing is handled using the options chosen in the call to the document class described in Section \ref{sec:docclass}. The default format for the title is seen in Figure~\ref{fig:titledefault}.
+%\begin{figure}[ht]
+%\centering \begin{tikzpicture}\node[draw] {titlegraphic};\end{tikzpicture}\\ {\huge TITLE} \\ author \\ institute
+%\caption{Default format of the title material}
+%\label{fig:titledefault}
+%\end{figure}
+%
+%One can redefine the way the title matter (title, author, etc.) are arranged by
+%calling {\color{macro} |\settitle|}.
+% \DescribeMacro{\settitle} The user can change this format by including in the preamble {\color{macro}|\settitle|}. Note that when referring to the title, author, titlegraphic, and institute with this command, one needs to use {\color{value}|\@title|}, {\color{value}|\@author|}, {\color{value}|\@institute|} and {\color{value}|\@titlegraphic|}. A sample alternative title format is:
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \settitle{ \centering \vbox{
+% \@titlegraphic \\[\TP@titlegraphictotitledistance] \centering
+% \color{titlefgcolor} {\bfseries \Huge \sc \@title \par}
+% \vspace*{1em}
+% {\huge \@author \par} \vspace*{1em} {\LARGE \@institute}
+% }}
+%\end{Verbatim}
+
+%\subsection{Blocks}
+%\label{sec:postercontents:blocks}
+%\DescribeMacro{\block}
+% Blocks are created with the command {\color{macro}|\block[|\emph{options}|]{|\emph{title}|}{|\emph{text}|}|}.
+% Excluding options, this creates a block of the width of the page (or column/subcolumn, see section \ref{sec:postercontents:columns}), excepting the
+% margin and inner margin. A title for the block will be generated along the top in a separate,
+%smaller block, centered using the contents of \emph{title}.
+% By default, its width will be set to be the {\color{value}|\textwidth|} or, if in a column (see below), to the {\color{value}|\colwidth|}; alternatively, it may be altered as described below.
+%
+%If the \emph{title} field is left empty, then there will be no title for the block created. Multiline titles are supported and will be (approximately) broken to satisfy the maximum width of the block titles as specified in the formatting options. The contents of \emph{text} will be displayed in the main
+% body of the block. The length of the block is determined automatically by the contents of \emph{text}.
+% Further blocks may be generated in the same column by further uses of {\color{macro}|\block|}. However, if the
+% contents of the blocks in a single column lead to spill over (that is, they take up more vertical space than
+% allowed under the formatting for the paper size and margins), then formatting errors will occur.
+%
+% \DescribeEnv{Block Options} If the user wishes to have certain internal spacing and positioning aspects of the block to differ from those of the layout theme, they may reset the following:
+% \begin{itemize}
+% \item \moption{|titleoffsetx|}, \moption{|titleoffsety|}, \moption{|bodyoffsetx|} and \moption{|bodyoffsety|}:
+% The block may be placed in violation of the automatic alignment according to the default spacing rules. This may be achieved with 4 options. The first two are used to shift the title block from the default position. The latter two shift the main content block (containing \emph{text}) from a position directly under the title. All four are by default set to 0. That is, in relation to previously created blocks, the class determines the position of the current block according to the format options' spacing values and then determines the appropriate heights of the two components, main part and title. The position can then be adjusted as desired. Please note that these offset values use the convention of positive values resulting in a shift right/upwards and negative values in a shift left/downwards.
+% \item \moption{|titlewidthscale|}, \moption{|bodywidthscale|}: The relative scaling from the default widths of the block's title and main portion, respectively. This is given in relative terms; i.e., |titlewidthscale=.5| will result in a $50\%$ narrower title width than the default.
+% \item \moption{|titleleft|}, \moption{|titlecenter|}, \moption{|titleright|}: The alignment of the title text within the title section of the block (if it it exists). Unless specified in the block or the block style (see below), center alignment is used.
+% \item \moption{|bodyverticalshift|}: Additional spacing (in absolute terms) between the bottom of the title and the beginning of the \emph{contents} of the block body.
+% \item \moption{|roundedcorners|}, \moption{|linewidth|}: Parameters used to determine the degree of roundedness of the corners of the block and the thickness of the outer edge of the block, respectively; behaves as in TikZ.
+% \item \moption{|titleinnersep|}, \moption{|bodyinnersep|}: Separation for the title and body of the block, respectively, between the edge and their contents.
+% \end{itemize}
+% A sample block may be created by the command
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \block[titleleft,titleoffsetx=2em,titleoffsety=1em,bodyoffsetx=2em,
+% bodyoffsety=1em,titlewidthscale=.6, bodywidthscale=.8, roundedcorners=14,
+% linewidth=8mm, bodyinnersep=4em, titleinnersep=2em]
+% {Sample Block}{Text\\Text\\Text Text}
+% \end{Verbatim}
+% \subsubsection*{Block objects}\DescribeMacro{\innerblock} There are three special objects which may be placed in the blocks: inner blocks, colored boxes, and figures. Inner blocks, called by the command {\color{macro}|\innerblock[|\emph{options}|]{|\emph{Heading}|}{|\emph{Text}|}|}, are blocks placed in the body. If no heading is provided, the title area is not drawn, as in the case of normal blocks. The available options are:
+% \begin{itemize}
+% \item \moption{|titlewidth|}, \moption{|bodywidth|}, \moption{|titlewidthscale|}, \moption{|bodywidthscale|}: Respectively, the absolute width of the title and body, and scaling from the default widths set by the inner block style (see below). \textbf{NOTE}: If using the style \mstyle{|Table|} (see Section \ref{sec:innerblockstyles}) sec: for inner blocks, the sum of \moption{|titlewidthscale|} and \moption{|bodywidthscale|} must be no greater than 1 and the total height of the heading text should be less than the the total height of the text.
+% \item Title alignment: Either \moption{|titlecenter|}, \moption{|titleleft|}, or \moption{|titleright|}.
+% \item \moption{|titleoffsetx|}, \moption{|titleoffsety|}, \moption{|bodyoffsetx|}, \moption{|bodyoffsety|}: For positioning from the default placement of the title and body, similar in function to the options for a block.
+% \item \moption{|roundedcorners|}, \moption{|linewidth|}, \moption{|titleinnersep|}, \moption{|bodyinnersep|}: Same functionality as the options for blocks.
+% \end{itemize}
+% \DescribeMacro{\coloredbox} Colored boxes can be used for emphasizing parts of the block body and are generated by {\color{macro}|\coloredbox[|\emph{options}|]{|\emph{Text}|}|}. Without options, a box of the width of the block body (minus the length \moption{|blockbodyinnersep|}) is created, highlighted by the color assigned to the background of notes (see below for more on setting colors). The options are:
+% \begin{itemize}
+% \item \moption{|width|}: the width of the highlighted region.
+% \item \moption{|linewidth|}, \moption{|roundedcorners|}: similar as above.
+% \item \moption{|bgcolor|}, \moption{|fgcolor|}, \moption{|framecolor|}: Colors of the background highlighting, the text, and the frame of the colored box.
+% \end{itemize}
+%\DescribeMacro{tikzfigure} Due to implementation of the blocks, using the standard \LaTeX |figure| environment is not possible. As a workaround, the environment {\color{macro}|tikzfigure|} has been included using a solution adapted from code suggested by Stephan Thober. It may be used in the same manner as the standard figure environment.
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \begin{tikzfigure}[Caption of the figure]
+% \label{fig:fig1}
+% Figure
+% \end{tikzfigure}
+% \end{Verbatim}
+
+%\subsection{Notes}
+%\label{sec:postercontents:notes}
+%\DescribeMacro{\note} Smaller objects called notes are also available. These are associated with blocks and can be used to attach comments to specific points in the blocks. Their use is slightly more complicated; they are created with the use of the {\color{macro}|\note[|\emph{options}|]{|\emph{contents}|}|} command. We will here remark on the options that are needed for placing them. These options are:
+%\begin{itemize}
+%\item \moption{|targetoffsetx|}, \moption{|targetoffsety|}: The note places a ``target'' point in the center of the previously created block and uses this as a reference point for placement. If this target should be moved, these two parameters can be set to shift the target away from the default;
+%\item \moption{|angle|}, \moption{|radius|}: After the target has been set, the center of the note is a distance of \moption{|radius|} away from the target with angle (with respect to the horizontal axis) \moption{|angle|};
+%\item \moption{|width|}: The desired width of the note;
+%\item \moption{|connection|}: If the note style allows for it (see below on the styles for notes), using the connection option draws the relevant connection (i.e. line or arrow) from the note's center point to the target point;
+%\item \moption{|rotate|}: If the entire note should be rotated, a rotation angle (again with respect to the horizontal axis) may be defined using this option.
+%\item \moption{|roundedcorners|}, \moption{|linewidth|}, \moption{|innersep|}: If the note should be drawn using corners that are rounded differently than the default, with a thicker/thinner bounding line than the default, or with a different separation between content and edge of the note, respectively, these options may be used to reset the values.
+%\end{itemize}
+%Two comments should be kept in mind. First, notes are always visible over the background and blocks. Second, there are no automatic spacing rules for notes, so care should be used in placement to ensure the proper appearance of the poster.
+%
+%A sample note could be constructed via:
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \note[targetoffsetx=2cm, targetoffsety=-1cm, angle=90, radius=3cm,
+% width=5cm, rotate=30, connection, linewidth=.2cm,
+% roundedcorners=30, innersep=1cm]{Text}
+%\end{Verbatim}
+%This inserts a note which is directly above (|angle=90|) and 3 cm from the target, which is 2 cm to the right of and 1 cm below the block center, and is then rotated 30 degrees. A connection is then drawn from the block center to this target.
+%
+%\subsection{Columns and Subcolumns}
+%\label{sec:postercontents:columns}
+% \DescribeEnv{columns}
+%If multicolumn formats are desired, the environment {\color{macro}|columns|} may be used. All blocks generated inside of this environment will be divided into the desired columns with the specified width. To begin a column, use the command {\color{macro}|\column{|\emph{width}|}|}, e.g., \emph{width}|=0.3|{\color{value}|\textwidth|} or \emph{width}|=20cm|. Any blocks created after this will be aligned along a vertical line automatically placed, depending on the number of columns and their widths, as specified inside of the instance of the environment. Formatting errors may arise if the sum of the column
+% widths is greater than {\color{value}|\textwidth|}. The width of the column may be referred -- for formatting pictures or altering a block's width, for
+% instance -- by referencing the length {\color{value}|\colwidth|}.
+%
+%
+% \DescribeEnv{subcolumns}
+% If you wish to create a set of subcolumns in the current column, the environment |subcolumns| can be
+% used. In this environment, subcolumns are created by {\color{macro}|\subcolumn{|\emph{width}|}|}. However, the width
+% in the {\color{macro}|\subcolumn|} command is relative now to the current {\color{value}|\colwidth|} and can be referenced by the
+% length {\color{value}|\subcolwidth|}. The same comments on formatting made above regarding widths and text
+% length hold here as well.
+
+% \section{Poster Layout}
+%\label{sec:posterlayout}
+%We will describe additional options which govern the appearance of the poster.
+%There are options for changing the: \vspace{-0.2cm}
+%\begin{itemize}
+% \item colors used, \vspace{-0.3cm}
+% \item background of the poster, \vspace{-0.3cm}
+% \item the appearance of the title matter, \vspace{-0.3cm}
+% \item the shapes of the various blocks, \vspace{-0.3cm}
+% \item the appearance of inner blocks, and \vspace{-0.3cm}
+% \item the shapes of the notes.
+%\end{itemize}
+
+%\DescribeMacro{\usetheme} A poster theme provides the settings for the other options. A theme is called by the command {\color{macro}|\usetheme{|\emph{layout style}|}|} where the argument is either a predefined object name in \texttt{tikzposterLayoutthemes.tex}, or a style defined in the preamble for the appropriate object. Creating styles and their components is described in the following subsections. The predefined themes are \mstyle{|Default|}, \mstyle{|Rays|}, \mstyle{|Basic|}, \mstyle{|Simple|}, \mstyle{|Envelope|}, \mstyle{|Wave|}, \mstyle{|Board|}, \mstyle{|Autumn|}, and \mstyle{|Desert|}.
+% It should be noted that the user may call {\color{macro}|\usetheme|} and subsequently overwrite any or all components of the layout theme by resetting the different styles contained.
+%
+% \subsection{Setting the colors}
+% \label{sec:color}
+% The colors used in the poster are defined using two objects: the palette and the style. The palette provides 3 basic colors to be used. There are several included color palettes.
+% \DescribeMacro{\usecolorpalette} They may be called by the command {\color{macro}|\usecolorpalette{}|}. The included palettes are \mstyle{|Default|}, \mstyle{|BlueGrayOrange|}, \mstyle{|GreenGrayViolet|}, \mstyle{|PurpleGrayBlue|}, \mstyle{|BrownBlueOrange|}.
+%
+% \DescribeMacro{\usecolorstyle} The way that these colors are used in the
+% poster is defined in a color style, which is called by the command
+% {\color{macro}|\usecolorstyle[|\emph{options}|]{|\emph{style name}|}|}. The
+% options are the basic colors or the palette to be used. A sample set
+% of options is\\
+% {\small|[colorPalette=BrownOrangeBlue,colorOne=blue,colorTwo=black,colorThree=green]|}, which would not be used due to redundancy.
+%
+% All styles have a predefined palette as default. The included color styles are named after various countries (please note the associated default palettes are not connected by the names) and are: \mstyle{|Default|}, \mstyle{|Australia|}, \mstyle{|Britain|}, \mstyle{|Sweden|}, \mstyle{|Spain|}, \mstyle{|Russia|}, \mstyle{|Denmark|}, \mstyle{|Germany|}. The color style (with the palette) is used by the styles which define the appearance of the title, blocks, notes, and background. If no color palette or style is
+% chosen, a default color theme is used.
+% We now will explain the different components that can have colors assigned to them.
+%
+% \DescribeEnv{background colors}
+% The background has associated with it the colors \mcolor{|backgroundcolor|} and \mcolor{|framecolor|} which are, respectively, the color for the solid background and the color for the outer edges of the poster and the outer edges for all blocks.
+%
+% \DescribeEnv{title colors}
+% The text of the title material of the poster is in the color \mcolor{|titlefgcolor|}. The background of the title material is given by the color \mcolor{|titlebgcolor|}.
+%
+% \DescribeEnv{block colors}
+% The colors for the backgrounds of the blocks can also be defined. The background color of the title portion of
+% the block may be set with |blocktitlebgcolor| and the background color of the portion of the block with the text
+% is set by \mcolor{|blockbodybgcolor|}. The text colors for the title and the block contents are set with \mcolor{|blocktitlefgcolor|} and \mcolor{|blockbodyfgcolor|}, respectively.
+% \DescribeEnv{innerblock colors}
+%
+% Inside blocks, the inner blocks will be colored using \mcolor{|innerblocktitlebgcolor|}, \mcolor{|innerblocktitlefgcolor|}, \mcolor{|innerblockbodybgcolor|}, \mcolor{|innerblockbodyfgcolor|} for, respecitvely, the background color of the title, the text color for the title, the background color of the body, and the text color of the body.
+%
+% \DescribeEnv{coloredbox colors}
+% The note background color is used as the default of the background of colored boxes in the blocks.
+%
+% \DescribeEnv{note colors}
+%The note blocks created have background color defined by \mcolor{|notebgcolor|} and text color defined by \mcolor{|notefgcolor|}. The note blocks' frames are colored by \mcolor{|noteframecolor|}.
+%
+% \DescribeEnv{text colors}
+% The relevant text colors may also be individually defined. The color of the text of the title matter is defined via \mcolor{|titlefgcolor|}.
+% The color of the title text in each block is defined by \mcolor{|blocktitlefgcolor|} and the color of the text of the main portion of the block
+% is defined by \mcolor{|blockbodyfgcolor|}. Finally, the notes' text uses the color \mcolor{|notefgcolor|}.
+%
+% \DescribeMacro{\definecolorpalette}\DescribeMacro{\definecolorstyle} Finally, if one wishes, one may define the color palette and style locally in the preamble. The palette is defined by the command {\color{macro}|\definecolorpalette{|\emph{color palette name}|}{|\emph{definitions}|}|}. A sample palette can defined by
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \definecolorpalette{sampleColorPalette} {
+% \definecolor{colorOne}{named}{green}
+% \definecolor{colorTwo}{named}{black}
+% \definecolor{colorThree}{named}{cyan}
+% }
+% \end{Verbatim}
+% For a style, this is accomplished by {\color{macro}|\definecolorstyle{|\emph{color style name}|}{|\emph{default palette}|}{|\emph{definitions}|}|}. Using the name convention below of \mcolor{|colorOne|}, \mcolor{|colorTwo|}, and \mcolor{|colorThree|} when setting the colors allows the flexibility of various palettes.
+% A sample color style can be defined by:
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \definecolorstyle{sampleColorStyle} {
+% \definecolor{colorOne}{named}{blue}
+% \definecolor{colorTwo}{named}{yellow}
+% \definecolor{colorThree}{named}{orange}
+% }{
+% % Background Colors
+% \colorlet{backgroundcolor}{colorOne}
+% \colorlet{framecolor}{black}
+% % Title Colors
+% \colorlet{titlefgcolor}{black}
+% \colorlet{titlebgcolor}{colorOne}
+% % Block Colors
+% \colorlet{blocktitlebgcolor}{colorThree}
+% \colorlet{blocktitlefgcolor}{white}
+% \colorlet{blockbodybgcolor}{white}
+% \colorlet{blockbodyfgcolor}{black}
+% % Innerblock Colors
+% \colorlet{innerblocktitlebgcolor}{white}
+% \colorlet{innerblocktitlefgcolor}{black}
+% \colorlet{innerblockbodybgcolor}{colorThree!30!white}
+% \colorlet{innerblockbodyfgcolor{black}
+% % Note colors
+% \colorlet{notefgcolor}{black}
+% \colorlet{notebgcolor}{colorTwo!50!white}
+% \colorlet{noteframecolor}{colorTwo}
+% }
+%\end{Verbatim}
+%
+% \subsection{Setting the layout}
+% The basic components of the poster fall into three categories: the title portion, the blocks of content, and smaller notes. General rules for the appearance of the components as well as the background are set by a layout theme. The layout theme is composed of rules for the general shape of the components.
+%
+% \DescribeMacro{\definelayouttheme}
+% One may use, for instance, the \mstyle{|Default|} color style with the \mstyle{|Envelope|} layout.
+% A sample theme called |sample| may be defined with the following:
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \definelayouttheme{sample}{
+% \usecolorstyle[colorPalette=sampleColorPalette]{sampleColorStyle}
+% \usebackgroundstyle{sample}
+% \usetitlestyle{Test}
+% \useblockstyle{sample}
+% \useinnerblockstyle{sample}
+% \usenotestyle{Corner}
+% }
+% \end{Verbatim}
+% In the following subsections, the styles for background, title, block, innerblock, and notes are described.
+%
+%\subsection{Background style}
+% The background is by default a vertically graded single color depending on the value of \mcolor{|backgroundcolor|} set by the color theme chosen (see Section \ref{sec:color}). If the user wishes to alter this, then in the preamble you can use the {\color{macro}|\usebackgroundstyle{}|} command.
+% \DescribeMacro{\usebackgroundstyle}
+% This command takes as argument a name for a setting in the file |tikzBackgrounds.tex|; predefined backgrounds included with the package are: \mstyle{|Default|}, \mstyle{|Rays|}, \mstyle{|VerticalGradation|}, \mstyle{|BottomVerticalGradation|}, \mstyle{|Empty|}.
+%
+% \DescribeMacro{\definebackgroundstyle}
+% If you want to define a custom background style, you can use the commnd {\color{macro}|\definebackgroundstyle{|\emph{style name}|}{|\emph{background commands}|}|}: This command takes as first argument a name for the background and as second argument valid TikZ commands; an example usage of this is:
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \definebackgroundstyle{samplebackgroundstyle}{
+% \draw[inner sep=0pt, line width=0pt, color=red, fill=backgroundcolor!30!black]
+% (bottomleft) rectangle (topright);
+% }
+%\end{Verbatim}
+%Following this definition, the preamble should include the command \\
+%{\color{macro}|\usebackgroundstyle{samplebackgroundstyle}|} either directly or inside of a layout theme.
+%
+%In making a custom background, it is important to note that the point $(0,0)$ is the center of the poster (after removing the margins). Additionally, as can be seen from the example commands above, the user has access to several variables. These include:
+%\begin{itemize}
+%\item {\color{value}|\textwidth|}: The total width of the available poster space, after creating the margins.
+%\item {\color{value}|\textheight|}: The total height of the available poster space, after creating the margins.
+%\item {\color{value}|\titlegraphicheight|}, {\color{value}|\titletotopverticalspace|}, {\color{value}|\titleinnersep|}: See the information in desigining a titlestyle.
+%\item \mcolor{|backgroundcolor|}: Defined in color theme or by user in preamble (see above).
+%\item \mnode{|topright|}: a TikZ node defining the top right position poster background.
+%\item \mnode{|bottomleft|}: a TikZ node defining the bottom left position poster background.
+%\end{itemize}
+%
+% \subsection{Title style}
+% \label{sec:title}
+%\DescribeMacro{\usetitlestyle} \DescribeMacro{\definetitlestyle} If the default simple box surrounding the title matter is not desired, the user may use one of the several predefined title styles by using in the preamble {\color{macro}|\usetitlestyle[|\emph{options}|]{|\emph{style name}|}|} where the argument is a style listed in |tikzposterTitlestyles.tex| or the name of a style defined in the preamble. The preset title styles are: \mstyle{|Default|}, \mstyle{|Basic|}, \mstyle{|Envelope|}, \mstyle{|Wave|}, \mstyle{|VerticalShading|}, \mstyle{|Filled|}, \mstyle{|Empty|}. If the user wishes to use a title with a different appearance, then {\color{macro}|\definetitlestyle{|\emph{style name}|}{|\emph{options}|}{|\emph{title commands}|}|}. The available options are those mentioned above. Several parameters which might be helpful when writing a custom title style are:
+%\begin{itemize}
+% \item {\color{value}|\textwidth|}: The width of the poster contents, similar to the standard usage in \LaTeX, albeit having incorporated both margins set in the document class' options.
+% \item {\color{value}|\textheight|}: Same as the standard \LaTeX usage.
+% \item {\color{value}|\titlewidth|}: Stores the value passed from the options in {\color{macro}|\maketitle|}.
+% \item {\color{value}|\titlegraphicheight|}: Height of the defined title graphic.
+% \item {\color{value}|\titlelinewidth|}, {\color{value}|\titleinnersep|}: Line width and inner sep.
+% \item {\color{value}|\titletotopverticalspace|}: Spacing between the upper edge of the poster (after including margins) and the upper edge of the title.
+% \item \mcolor{|titlebgcolor|}: As defined in the color style.
+% \item {\color{value}|\titleposleft|}, {\color{value}|\titleposright|}, {\color{value}|\titleposbottom|}, {\color{value}|\titlepostop|}: The horizontal (resp. vertical) coordinates of the left and right (resp. bottom and top) edges of the title portion.
+%\end{itemize}
+%A sample title style is shown below
+
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \definetitlestyle{sampletitle}{
+% width=500mm, roundedcorners=20, linewidth=2pt, innersep=5pt,
+% titletotopverticalspace=15mm, titletoblockverticalspace=30mm
+% }{
+% \begin{scope}[line width=\titlelinewidth, rounded corners=\titleroundedcorners]
+% \draw[color=blocktitlebgcolor, fill=titlebgcolor]
+% (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop);
+% \end{scope}
+% }
+% \end{Verbatim}
+% and could be called using {\color{macro}|\usetitlestyle{sampletitle}|}. For more information on the available variables to assist in designing a custom title style, please refer to the Appendix.
+%
+% \subsection{Block style}
+% \DescribeMacro{\useblockstyle} \DescribeMacro{\defineblockstyle}
+% If the user wishes to use blocks with a different style, he or she may use {\color{macro}|\useblockstyle[|\emph{options}|]{|\emph{style name}|}|}. This loads either prewritten styles available in
+%\texttt{tikzposterBlockstyles.tex} or custom styles. The predefined styles are \mstyle{|Default|}, \mstyle{|Basic|}, \mstyle{|Minimal|}, \mstyle{|Envelope|}, \mstyle{|Corner|}, \mstyle{|Slide|}, \mstyle{|TornOut|}. The user can also create a custom block style, in the preamble via the command {\color{macro}|\defineblockstyle{|\emph{stylename}|}{| \emph{default values}|}{|\emph{commands}|}|} which contains the name of the style, the default values (see below) of relevant parameters; and a definition for drawing a block and (if wanted) the title composed of TikZ commands. A sample definition of this might be
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \defineblockstyle{sampleblockstyle}{
+% titlewidthscale=0.9, bodywidthscale=1,titleleft,
+% titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0mm, bodyoffsety=15mm,
+% bodyverticalshift=10mm, roundedcorners=5, linewidth=2pt,
+% titleinnersep=6mm, bodyinnersep=1cm
+% }{
+% \draw[color=framecolor, fill=blockbodybgcolor,
+% rounded corners=\blockroundedcorners] (blockbody.south west)
+% rectangle (blockbody.north east);
+% \ifBlockHasTitle
+% \draw[color=framecolor, fill=blocktitlebgcolor,
+% rounded corners=\blockroundedcorners] (blocktitle.south west)
+% rectangle (blocktitle.north east);
+% \fi
+% }
+%\end{Verbatim}
+% At any point, the user may change the block style used for subsequent blocks by using {\color{macro}|\useblockstyle{}|} with the new style. The block will then draw the objects as defined by {\color{macro}|\defineblockstyle|} and afterwards put the contents in those positions. The parameters that may be assigned default values and referenced in the commands are {\color{value}|\blockroundedcorners|}, {\color{value}|\blocklinewidth|}, {\color{value}|\blockbodyinnersep|}, and {\color{value}|\blocktitleinnersep|}; if this is not done, preset default values are used. These are used for values in TikZ commands that use the parameters for rounded corners, line width (for the edge of the block), inner sep for the body content and title, respectively.
+%
+% As can be seen, when creating the style, the user has access to several parameters. They are computed after the class determines, under the rules of formatting and given the width of the block, dimensions of the block. These, aside from those already mentioned, include:
+%\begin{itemize}
+%\item {\color{value}|\ifBlockhasTitle|}: A boolean for whether the block has nonempty first argument;
+%\item \mnode{|blocktitle|}: A TikZ node defining the appropriate position of the title subject to the spacing rules and the length/width of the title;
+%\item \mnode{|blockbody|}: A TikZ node defining the appropriate position of the body subject to the spacing rules and the length/width of the body and title(assuming the title is above the body);
+%\item {\color{value}|\blockroundedcorners|}, {\color{value}|\blocklinewidth|}, {\color{value}|\blockbodyinnersep|}, and \\
+%{\color{value}|\blocktitleinnersep|}: Parameters passed from the options of the block.
+%\item \mcolor{|framecolor|}, \mcolor{|blocktitlebgcolor|}, \mcolor{|blockbodybgcolor|}: Determined by the chosen color scheme.
+%\end{itemize}
+%\subsection{Inner Block styles}\label{sec:innerblockstyles}
+% \DescribeMacro{\useinnerblockstyle}\DescribeMacro{\defineinnerblockstyle} If
+% one wishes, inner blocks may have their appearance changed by the command
+% {\color{macro}|\useinnerblockstyle{|\emph{style name}|}|}. The included
+% styles are \mstyle{|Default|} and \mstyle{|Table|}, along with copies of the
+% styles for blocks. If the user wants, additional inner block styles may be
+% created with the command
+% {\color{macro}|\defineinnerblockstyle{|\emph{stylename}|}| |{|\emph{default
+% values}|}{|\emph{commands}|}|}. The relevant parameters are:
+% \begin{itemize}
+% \item {\color{value}|\ifInnerblockHasTitle|}: A boolean denoting whether the inner block has nonempty first argument
+%\item \mnode{|innerblocktitle|}, \mnode{|innerblockbody|}: TikZ nodes for the position of the heading and body of the inner block.
+% \item {\color{value}|\innerblockroundedcorners|}, {\color{value}|\innerblocklinewidth|}, \\ {\color{value}|\innerblockbodyinnersep|}, and {\color{value}|\innerblocktitleinnersep|} : Parameters passed from the options of the inner block.
+% \item \mcolor{|innerblockbodybgcolor|}, \mcolor{|innerblocktitlebgcolor|}, \mcolor{|framecolor|}: Colors determined by the chosen color scheme, or passed as options.
+% \end{itemize}
+% Styles are similar in structure as those for blocks.
+% \subsection{Note style}
+%\DescribeMacro{\usenotestyle}
+%If one wishes, alternative note appearances may be used. If the user wants to use one of the included note styles |Default|, |Corner|, |VerticalShading|, or |Sticky|, then the command {\color{macro}|\usenotestyle[|\emph{options}|]{|\emph{style name}|}|} may be employed.
+%
+% \DescribeMacro{\definenotestyle}Alternatively, one may include in either the preamble or inside of the document the command {\color{macro}|\definenotestyle{|\emph{note style name}|}{|\emph{default values}|}{|\emph{commands}|}|} where the inputs are the name of the style, default values for relevant format options and valid TikZ commands for drawing the note. In the use of {\color{macro}|\definenotestyle|}, the user may make use of the following parameters:
+%\begin{itemize}
+%\item {\color{value}|\ifNoteHasConnection|}: A boolean denoting whether |connection| has been included as an option;
+%\item \mnode{|notetarget|}: A TikZ node defining the placement of the note target;
+%\item \mnode{|notecenter|}: A TikZ node defining the placement of the center of the note;
+%\item {\color{value}|\noterotate|}: The angle the entire note should be rotated;
+%\item {\color{value}|\notelinewidth|}, {\color{value}|\noteroundedcorners|}, {\color{value}|\noteinnersep|}: Values from either the default values or from the user passing options corresponding to the width of the outer edge of the note, the roundedness of the corners, and the separation between the note edge and contents, respectively.
+%\item \mcolor{|noteframecolor|}, \mcolor{|notefgcolor|}, \mcolor{|notebgcolor|}: Colors defined in the color them (see above).
+%\end{itemize}
+%An example style may be defined via the command:
+%\begin{Verbatim}[samepage=true,gobble=1, fontsize=\small]
+% \definenotestyle{samplenotestyle}{
+% targetoffsetx=0pt, targetoffsety=0pt, angle=45, radius=8cm,
+% width=6cm, connection=true, rotate=0, roundedcorners=0, linewidth=1pt,
+% innersep=0pt%
+% }{
+% \ifNoteHasConnection
+% \draw[thick] (notecenter) -- (notetarget) node{$\bullet$};
+% \fi
+% \draw[draw=notebgcolor,fill=notebgcolor,rotate=\noterotate]
+% (notecenter.south west) rectangle (notecenter.north east);
+% }
+%\end{Verbatim}
+%
+%
+% \section{Poster template}
+% \label{sec:template}
+% \setcounter{CodelineNo}{0}
+%
+% The following \LaTeX\ document is intended to be used as a template. It has a minimal set of inputs. Included
+% with the package is an additional \texttt{tikzposter-example.tex} which has more extensive comments and additional options
+% implemented, see Section \ref{sec-example}.\vspace{1cm}
+%
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposter-template.tex>
+% \end{macrocode}
+% \begin{macrocode}
+\documentclass{tikzposter} %Options for format can be included here
+
+ % Title, Author, Institute
+\title{Template Poster}
+\author{Author(s)}
+\institute{Institute}
+\titlegraphic{LogoGraphic Inserted Here}
+
+ %Choose Layout
+\usetheme{Default}
+
+\begin{document}
+
+ % Title block with title, author, logo, etc.
+\maketitle
+ \block{Basic Block}{Text}
+ \begin{columns}
+
+ % FIRST column
+\column{0.6}% Width set relative to text width
+
+\block{Large Column}{Text\\Text\\Text Text Text}
+\note{Note with default behavior}
+\note[targetoffsetx=12cm, targetoffsety=-1cm, angle=20, rotate=25]
+{Note \\ offset and rotated}
+
+ % First column - second block
+\block{Block titles with enough text will automatically obey spacing requirements }
+{Text\\Text}
+
+ % First column - third block
+\block{Sample Block 4}{T\\E\\S\\T}
+
+ % SECOND column
+\column{0.4}
+ %Second column with first block's top edge aligned with with previous column's top.
+
+ % Second column - first block
+\block[titleleft]{Smaller Column}{Test}
+
+ % Second column - second block
+\block[titlewidthscale=0.6, bodywidthscale=0.8]
+{Variable width title}{Block with smaller width.}
+
+ % Second column - third block
+\block{}{Block with no title}
+
+ % Second column - A collection of blocks in subcolumn environment.
+\begin{subcolumns}
+ \subcolumn{0.27} \block{1}{First block.} \block{2}{Second block}
+ \subcolumn{0.4} \block{Sub-columns}{Sample subblocks\\Second subcolumn}
+ \subcolumn{0.33} \block{4}{Fourth} \block{}{Final Subcolumn block}
+\end{subcolumns}
+
+ % Bottomblock
+\block{Final Block in column}{
+ Sample block.
+}
+\end{columns}
+\block[titleleft, titleoffsetx=2em, titleoffsety=1em, bodyoffsetx=2em,%
+ bodyoffsety=-2cm, roundedcorners=10, linewidth=0mm, titlewidthscale=0.7,%
+ bodywidthscale=0.9, bodyverticalshift=2cm, titleright]
+{Block outside of Columns}{Along with several options enabled}
+
+\end{document}
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposter-template.tex>
+% \end{macrocode}
+%
+% \section{Poster example}
+% \label{sec-example}
+% Included in the class directory is an example tex file |tikzposter-example.tex|. This demonstrates the various options available, as opposed to the minimal working copy \texttt{tikzposter-template.tex}.
+%
+%
+%\section{Appendix}\label{sec:appendix}
+%\subsection{Available variables}
+%If one wishes to create their own themes/styles/etc, the following variables which govern positioning, spacing, and appearance may be of use. They may be used within themes, title styles, block styles, and note styles. Please note that each of these are defined and then passed to the style; they may then be referenced and redefined inside of a style. However, not all are local to that block; only those that are noted as being redefined.
+%\begin{itemize}
+% \item {\color{value}|\TP@visibletextwidth|}, {\color{value}|\TP@visibletextheight|}: The width and height of the poster material. Excludes the margin length set in the option.
+% \item {\color{value}|\TP@titleinnersep|}, {\color{value}|\TP@titletoblockverticalspace|}: Defined in options of the document. May be redefined in a theme.
+% \item {\color{value}|\titlewidth|}, {\color{value}|\titleheight|}: Width and height of the title block.
+% \item {\color{value}|\titlegraphicheight|}: The height of graphic used in the title.
+% \item {\color{value}|\titletotopverticalspace|}: Defined in the options.
+% \item {\color{value}|\TP@colspace|}, {\color{value}|\TP@coltop|}, {\color{value}|\TP@colbottom|}, {\color{value}|\TP@colcenter|}, {\color{value}|\TP@colwidth|}: The space between columns, defined in the options, the y-coordinate of the current column's beginning, end, center axis, and absolute width, respectively.
+% \item {\color{value}|\TP@subcolspace|}, {\color{value}|\TP@subcoltop|}, {\color{value}|\TP@subcolbottom|}, {\color{value}|\TP@subcolcenter|}, {\color{value}|\subcolwidth|}: The same lengths, in the subcolumn environment.
+% \item {\color{value}|\TP@blockverticalspace|},
+% {\color{value}|\TP@blocktitleinnersep|}, {\color{value}|\TP@blockbodyinnersep|}: Spacing rules for blocks, defined in options.
+% \item {\color{value}|\TP@blockcenter|}: Horizontal position of the center of the current block; it is redefined for each call to the {\color{macro}|\block|} command.
+% \item {\color{value}|\blockwidth|}, {\color{value}|\blockbodyheight|}, {\color{value}|\blocktitleheight|}: Dimensions of the current block's components; it is redefined for each call to the {\color{macro}|\block|} command.
+% \item {\color{value}|\TP@blocktop|}: The y-coordinate of the top edge of the block (including the title if it exists).
+% \item {\color{value}|\TP@blocktitleoffsetx|}, {\color{value}|\TP@blocktitleoffsety|}: Shifts to the position of the block title component; each call to {\color{macro}|\block|} resets them to 0.
+% \item {\color{value}|\TP@blockbodyoffsetx|}, {\color{value}|\TP@blockbodyoffsety|}: Similar to the above, but for the block's body component; also reset to 0 with each {\color{macro}|\block|} call.
+% \item {\color{value}|\blockroundedcorners|}, {\color{value}|\blocklinewidth|}, {\color{value}|\blockbodyinnersep|}, {\color{value}|\blocktitleinnersep|}: Values passed by the user with each block, or defined in a block style, which give the values to be used for TiKz draw parameters rounded corners, line width, and inner seps of the body and title, respectively. These may have default values defined in a style/theme using the functions: {\color{macro}|\setblockDefaultroundedcorners{}|}, {\color{macro}|\setblockDefaultlinewidth{}|}, \\
+% {\color{macro}|\setblockDefaultbodyinnersep{}|}, and {\color{macro}|\setblockDefaulttitleinnersep{}|}. If the user does not specify these values in the options of the block call, the defaults are used.
+% \item {\color{value}|\TP@noteinnersep|}: Defined in the options
+% \item {\color{value}|\TP@noteradius|}, {\color{value}|\TP@notetargetoffsetx|}, {\color{value}|\TP@notetargetoffsety|}, {\color{value}|\notewidth|}: Arguments optionally passed from the {\color{macro}|\note|} command; redefined for each call to {\color{macro}|\note|}.
+% \item {\color{value}|\noteheight|}: The height of the current note computed according to size of contents and {\color{value}|\notewidth|}; redefine with each call to {\color{macro}|\note|}.
+% \item {\color{value}|\noteroundedcorners|}, {\color{value}|\notelinewidth|}, {\color{value}|\noteinnersep|}: Values passed by the user with each note, or defined in a note style, which give the values to be used for TiKz draw parameters rounded corners, line width, and inner seps of the body and title, respectively. These may have default values defined in a style/theme using the functions: {\color{macro}|\setnoteDefaultroundedcorners{}|}, {\color{macro}|\setnoteDefaultlinewidth{}|}, and {\color{macro}|\setnoteDefaultbodyinnersep{}|}. If the user does not set in a note call the options, the defaults are used.
+%\end{itemize}
+%Additionally, several nodes are defined for the title and the blocks. These
+%should be used when defining block styles and title styles. The
+%\mnode{|title|} node is the main node for the title material which spans
+%an area large enough to cover the entirety of the title material as formatted
+%with the {\color{macro}|\settitle|} command. The vertical and horizontal
+%positions of the title are stored as {\color{value}|\titlepostop|}, {\color{value}|\titleposbottom|}, {\color{value}|\titleposleft|}, and {\color{value}|\titleposright|}. For blocks, \mnode{|blocktitle|} and \mnode{|blockbody|} are nodes which cover the extent of the relevant components.
+%
+% \StopEventually{}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposter-example.tex>
+% \end{macrocode}
+%
+% \begin{macrocode}
+
+ \documentclass[25pt, a0paper, portrait, margin=0mm, innermargin=15mm,
+ blockverticalspace=15mm, colspace=15mm, subcolspace=8mm]{tikzposter} %Default values for poster format options.
+
+ \tikzposterlatexaffectionproofon %shows small comment on how the poster was made at bottom of poster
+
+ % Commands
+ \newcommand{\bs}{\textbackslash} % backslash
+ \newcommand{\cmd}[1]{{\bf \color{red}#1}} % highlights command
+
+ % Title, Author, Institute
+ \title{Using tikzposter}
+ \author{Pascal Richter, Elena Botoeva, Richard Barnard, \& Dirk Surmann}
+ \institute{}
+
+ % -- PREDEFINED THEMES ---------------------- %
+ % Choose LAYOUT: Default, Basic, Rays, Simple, Envelope, Wave, Board, Autumn, Desert,
+ \usetheme{Autumn}
+\usecolorstyle[colorPalette=BrownBlueOrange]{Germany}
+
+% - Predefined background styles: Default, Rays, VerticalGradation, BottomVerticalGradation, Empty
+% \usebackgroundstyle{Rays}
+%
+% - Predefined title styles: Default, Basic, Envelope, Wave, VerticalShading, Filled, Empty
+% \usetitlestyle[width=400mm]{Filled}
+%
+% - Predefined block styles: Default, Basic, Minimal, Envelope, Corner, Slide, TornOut
+% \useblockstyle[bodyinnersep=1cm]{Envelope}
+%
+% - Predefined innerblock styles: Default, Table, Basic, Minimal, Envelope, Corner, Slide, TornOut
+% \useinnerblockstyle{Table}
+%
+% % - Predefined note styles: Default, Corner, VerticalShading, Sticky
+% \usenotestyle[rotate=50]{VerticalShading}
+
+ \begin{document}
+
+ \maketitle
+
+ \begin{columns}%blocks will be placed into columns
+ \column{.55}
+ \block[roundedcorners=40]{Creating the document}{
+ The document begins with:
+ \begin{quote}
+ \texttt{\bs documentclass[25pt, a0paper, portrait, margin=10mm, innermargin=15mm,
+ blockverticalspace=15mm, colspace=15mm, subcolspace=8mm]\{tikzposter\}\\
+ \bs title\{Title\}\\
+ \bs author\{Author(s)\}\\
+ \bs institute\{Institute \}\\
+ \bs titlegraphic\{Logo\}\\
+ \bs begin\{document\}\\
+ \bs maketitle}
+ \\ \dots \end{quote}
+
+ \begin{tikzfigure}[A figure can be made with \bs \texttt{tikzfigure}; \bs\texttt{figure} does not work]
+ \begin{tikzpicture}
+ \draw[draw=none,inner color=red, outer color=green] (0,0) circle (1.5cm);
+ \end{tikzpicture}
+ \end{tikzfigure}
+ \innerblock[]{Inner Blocks}{Inner blocks may be created inside of blocks with the command \bs\texttt{innerblock[{\it options}]\{{\it Heading}\}\{{\it Text}\}} }
+ \coloredbox{Text may be highlighted using colored boxes created by \bs\texttt{coloredbox[{\it options}]\{{\it Text\}}}}
+
+ }
+ \note[targetoffsetx=-.05\textwidth,targetoffsety=9.5cm,innersep=.4cm,angle=-45,connection]{Optional arguments for the format of the poster}
+ \block{The title matter}{
+ The title is made by the standard \texttt{\bs maketitle[{\it options}]} command where you can alter the \texttt{width}, the spacing between the title and top of the poster (\texttt{titletotopverticalspace}), the bottom of the title to the main content of the poster (\texttt{titletoblockverticalspace}) and the space between the title information and the logo (\texttt{titlegraphictotitleverticalspace}).
+
+ If the default format of the title is not to your liking, you can define the placement of the different items via the \texttt{\bs settitle} command, described in the manual.
+ }
+ \block{Blocks}{
+ Blocks are arranged in a grid, by default, with width by default \texttt{\bs textwdith}. They are created by the command
+ \begin{quote}
+ \bs\texttt{block [{\it options}] \{{\it title}\}\{{\it contents}\}}
+ \end{quote}
+ The title may be left empty, resulting in no title area being created for the block (as seen in a later block to the right). Further blocks will be placed below automatically, at a distance defined by \texttt{blockverticalspace}.
+
+ If you want to change the position of the title matter or the contents in the block, you may by setting in the options
+ \begin{quote}
+ \texttt{titleoffsetx, titleoffsety, bodyoffsetx, bodyoffsety}
+ \end{quote}
+ which let you adjust the vertical or horizontal position of the two parts of the block, respectively. You can also make, relative to the default width, the title and block body by setting
+ \begin{quote}
+ \texttt{titlewidthscale, bodywidthscale}
+ \end{quote}
+ The title's alignment can be set by \texttt{titleleft, titlecenter, titleright}, the body may be shifted vertically by setting \texttt{bodyverticalshift}, and the shape of the block can be altered by setting \texttt{roundedcorners, linewidth}. The inner margins of the title can by set by \texttt{titleinnersep,bodyinnersep}.
+ }
+
+ \note[targetoffsetx=24cm, targetoffsety=-9cm,rotate=1,angle=270,radius=8cm,width=.75\textwidth,innersep=.4cm]{
+ You can place notes that are ``attached'' to the previous block using the command
+ \begin{quote} \texttt{\bs note[{\it options}]\{{\it contents}\}}\end{quote}
+ The note is placed by default slightly to the right of a ``target'' in the center of the previous block. The note style may also allow for a connection between the note and the ``target''. \\
+ The target may be shifted from the default by setting the options \texttt{targetoffsetx, targetoffsety}, rotated by an angle with \texttt{rotate}, and its width with \texttt{width}. The placement of the note in relation with the target is given in polar coordinates with \texttt{ radius, angle}. Please observe that notes are always drawn {\bf over} the other objects. They do not affect the placement of blocks.
+ }
+
+ \column{.45}
+ \block{Columns}{
+ By default, blocks are arranged in a single column. If you want multiple columns for your poster, you may use the \texttt{columns} environment. For example,
+ \begin{quote}
+ \texttt{\noindent \bs begin\{columns\}\\
+ \bs column\{.6\}\\
+ \bs block\{\dots\}\{\dots\}\\
+ \bs column\{.4\}\\
+ \bs block\{\dots\}\{\dots\}\\
+ \bs block\{\dots\}\{\dots\}\\
+ \bs end\{columns\}
+ }
+ \end{quote}
+ will create two columns of 60\% and 40\% the available width; spacing between successive columns is handled automatically. The block command(s) following \texttt{\bs column} are the blocks to go in that column. The number of columns is free to be chosen, but the relative widths must all be chosen. If the widths sum to less than 1, empty space will be seen on the right. If they sum to more than 1, the latter columns will be cut off.
+ }
+
+ \begin{subcolumns}
+ \subcolumn{.45}
+ \block{Subcolumns}{If you want to have an additional subdivision of columns inside a column, you may use the\\ \texttt{\bs subcolumns} environment inside of a column environment. The functionality is similar to that of columns, but now the widths are relative to the width of the current column.}
+
+ \subcolumn{.5}
+ \block{}{An example use of subcolumns is.
+ \begin{quote}
+ \texttt{\bs begin\{subcolumns\}\\
+ \bs subcolumn\{.6\}\\
+ \bs block\{\dots\}\{\dots\}\\
+ \bs subcolumn\{.4\}\\
+ \bs block\{\dots\}\{\dots\}\\
+ \bs block\{\dots\}\{\dots\}\\
+ \bs end\{subcolumns\}
+ }
+ \end{quote}
+ }
+ \end{subcolumns}
+
+ \block[titlewidthscale=.8,bodywidthscale=.9,titleoffsety=9.5mm,bodyoffsety=9mm]{Changing the Poster's Appearance}{
+ If the default appearance of the title, background, blocks, and notes is not desired, you may change the colors by calling the color style along with a general layout theme with the commands
+ \begin{quote}
+ \texttt{\bs usecolorpalette}\{{\em color palette}\}\\
+ \texttt{\bs usecolorstyle\{{\em color style}\}}
+ \end{quote}
+ and
+ \begin{quote}
+ \texttt{\bs usetheme\{{\em layout style}\}}
+ \end{quote}
+ where the color palette and style and layout style are either the name of a custom made or one of the offered predefined choices listed in the manual or the comments of this poster's source. Individual changes can be made to the style of the background, title matter, blocks, inner blocks, and notes by using one of the following (along with either a custom-designed style or a predefined style listed in the manual or the comments of this poster's source). These changes are made with the commands
+ \begin{quote}
+ \texttt{\bs usebackgroundstyle[]\{\}, \bs usetitlestyle[]\{\},\\ \bs useblockstyle[]\{\},\bs innerblockstyle[]\{\}, \bs usenotestyle[]\{\}}
+ \end{quote}
+ Custom styles for these can be made; this is detailed in the manual.
+ }
+
+ \end{columns}
+
+ \block[titleoffsety=-1cm,bodyoffsety=-1cm]{Sample document}{\vspace{2em}
+ This poster was created by the following commands (omitting the contents of the blocks and notes) to give a sense of how different objects are created and options used.
+ \begin{quote}
+ \texttt{\bs documentclass[25pt, a0paper, portrait, margin=0mm, innermargin=15mm,
+ blockverticalspace=15mm, colspace=15mm, subcolspace=8mm]\{tikzposter\}\\
+ \bs title\{Using tikzposter\} \bs author\{Pascal Richter, Elena Botoeva, Richard Barnard, \& Dirk Surmann\} \bs institute\{\}\\
+ \bs usetheme\{Autumn\}\bs usecolorstyle[colorPalette=BrownBlueOrange]\{Germany\}\\
+ \bs begin\{document\}\bs maketitle\\
+ \bs begin\{columns\} \bs column\{0.55\}\\
+ \bs block\{Creating the document\}\{The document\dots\} \bs note[targetoffsetx=-.05\bs textwidth,targetoffsety=9.5cm,innersep=.4cm,angle=-45,connection]\{\dots\}\\
+ \bs block\{The title matter\}\{The title\dots\}\\
+ \bs block\{Blocks\}\{Blocks are\dots\} \bs note[targetoffsetx=24cm, targetoffsety=-9cm,rotate=1,angle=270,radius=8cm,width=.75\bs textwidth,innersep=.4cm]\{You can\dots\}\\
+ \bs column\{0.45\} \bs block\{Columns\}\{By default,\dots\}\\
+ \bs begin\{subcolumns\} \bs subcolumn\{.45\}
+ \bs block\{Subcolumns\}\{If you\dots\}
+ \bs subcolumn\{.5\} \bs block\{\}\{An example\dots\}
+ \bs end\{subcolumns\}\\
+ \bs block[titlewidthscale=.8,bodywidthscale=.9,titleoffsety=9.5mm,bodyoffsety=9mm]\{Changing the Poster's Appearance\}\{If the default\dots\}
+ \bs end\{columns\}\\
+ \bs block[titleoffsety=-1cm,bodyoffsety=-1cm]\{Sample document\}\{This poster\dots\}\\
+ \bs end\{document\}
+ }
+ \end{quote}
+ }
+
+ \end{document}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposter-example.tex>
+% \end{macrocode}
+%
+% \section{Implementation}
+% \subsection*{Color themes}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterColorstyles.tex>
+% \end{macrocode}
+% \begin{macrocode}
+
+\definecolorstyle{Default}{
+ % Define default colors
+ % GrayBlueYellow
+ \definecolor{colorOne}{HTML}{DDDDDD}
+ \definecolor{colorTwo}{HTML}{0066A8}
+ \definecolor{colorThree}{HTML}{FCE565}%FCF0AD}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!70!white}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+\definecolorstyle{Australia}{
+ % Define default colors
+ %GreenGrayViolet
+ \definecolor{colorOne}{HTML}{A2E2C7}
+ \definecolor{colorTwo}{HTML}{56555A}
+ \definecolor{colorThree}{HTML}{C9AECF}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne}
+ \colorlet{framecolor}{colorOne!50!colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+\definecolorstyle{Britain}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!40!white}
+ \colorlet{notefrcolor}{colorThree!60!white}
+ }
+
+\definecolorstyle{Sweden}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne!40!white}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo!70!black}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white!90!colorTwo}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!50!white}
+ \colorlet{notefrcolor}{colorThree!50!white}
+ }
+
+\definecolorstyle{Spain}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne!55!white}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{white}
+ \colorlet{titlebgcolor}{colorOne}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorOne!80!black}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!50!white}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+\definecolorstyle{Russia}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{white}
+ \colorlet{framecolor}{colorOne!50!colorThree!30!}
+ % Title Colors
+ \colorlet{titlefgcolor}{white}
+ \colorlet{titlebgcolor}{colorOne!70!black}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorThree!80!colorTwo!80!black}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{colorTwo!40}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorTwo!40}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{colorTwo}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorTwo}
+ \colorlet{notefrcolor}{colorTwo}
+ }
+
+\definecolorstyle{Denmark}{
+ % Define default colors
+ % PurpleGrayBlue
+ \definecolor{colorOne}{HTML}{AE0D45}
+ \definecolor{colorTwo}{HTML}{7F8897}
+ \definecolor{colorThree}{HTML}{C8512D}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{white}
+ \colorlet{framecolor}{white}
+ % Title Colors
+ \colorlet{titlebgcolor}{colorOne}
+ \colorlet{titlefgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorTwo!50!white}
+ \colorlet{notefrcolor}{colorTwo!50!white}
+ }
+
+\definecolorstyle{Germany}{
+ % Define default colors
+ % BrownOrangeBlue
+ \definecolor{colorOne}{HTML}{8C7269}
+ \definecolor{colorTwo}{HTML}{E89261}
+ \definecolor{colorThree}{HTML}{A2C4D9}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorTwo}
+ \colorlet{framecolor}{colorThree}
+ % Title Colors
+ \colorlet{titlebgcolor}{colorOne}
+ \colorlet{titlefgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{white}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{white}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{colorThree}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterColorstyles.tex>
+% \end{macrocode}
+%
+%
+% \subsection*{Initial code}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposter.cls>
+% \end{macrocode}
+% \begin{macrocode}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{tikzposter}[2014/01/15 v2.0 LaTeX document class for Posters]
+
+ % --------------------------------------- %
+ % Loading Packages
+\usepackage{xkeyval}
+\usepackage{calc}
+\usepackage{ifthen}
+\usepackage{ae}
+\usepackage{xstring}
+\usepackage{etoolbox}
+\usepackage{tikz}
+ \usetikzlibrary{shapes,decorations,shadows,backgrounds,calc,fadings,fit}
+ \usetikzlibrary{decorations.pathmorphing}
+ \usepgflibrary{arrows}
+
+ % --------------------------------------- %
+ % Paper parameter
+\newif\ifTP@hugefontsize
+\newdimen\TP@innermargin
+\newdimen\TP@visibletextwidth
+\newdimen\TP@visibletextheight
+
+ % Title parameter
+\newdimen\TP@titlewidth
+\newdimen\titlewidth
+\newdimen\TP@titlelinewidth
+\newdimen\titlelinewidth
+\def\titleroundedcorners{}
+\newdimen\titleinnersep
+\newdimen\TP@titleinnersep
+\newdimen\TP@titletotopverticalspace
+\newdimen\titletotopverticalspace
+\newdimen\TP@titletoblockverticalspace
+\newdimen\TP@titleheight
+\newdimen\titleheight
+\newdimen\titlegraphicheight
+\newdimen\titleposleft
+\newdimen\titleposright
+\newdimen\titlepostop
+\newdimen\titleposbottom
+\newdimen\TP@titlegraphictotitledistance
+\def\TP@titletextscale{1}
+
+ % Maketitle parameter
+\def\@title{~}
+\def\title#1{\gdef\@title{\scalebox{\TP@titletextscale}{#1}}}
+\def\@author{~}
+\def\@institute{~}
+\def\@titlegraphic{~}
+
+ % Affection parameter
+\newif\ifTP@showlatexaffection
+
+ % Column parameter
+\newif\ifTP@columnEnvironment
+\TP@columnEnvironmentfalse
+\newif\ifTP@subcolumnEnvironment
+\TP@subcolumnEnvironmentfalse
+\newdimen\TP@colspace
+\newdimen\TP@coltop
+\newdimen\TP@colbottom
+\newdimen\TP@colcenter
+\newdimen\colwidth
+
+ % Subcolumn parameter
+\newdimen\TP@subcolspace
+\newdimen\TP@subcoltop
+\newdimen\TP@subcolbottom
+\newdimen\TP@subcolcenter
+\newdimen\subcolwidth
+
+ % Block parameter
+\newdimen\TP@blockverticalspace
+\newdimen\TP@blockcenter
+\newdimen\TP@blocktitleinnersep
+\newdimen\blocktitleinnersep
+\newdimen\TP@blockbodyinnersep
+\newdimen\blockbodyinnersep
+\newbox\TP@blocktitlebox
+\newbox\TP@blockbodybox
+\def\TP@blocktitleAlignment{}
+\newif\ifBlockHasTitle
+\newdimen\TP@blocktitlewidth
+\newdimen\TP@blockbodywidth
+\newdimen\TP@blockbodyheight
+\newdimen\TP@blocktitleheight
+\newdimen\TP@blocktop
+\newdimen\TP@blocktitleoffsetx
+\newdimen\TP@blocktitleoffsety
+\newdimen\TP@blockbodyoffsetx
+\newdimen\TP@blockbodyoffsety
+\newdimen\TP@blockbodyverticalshift
+\def\blockroundedcorners{}
+\newdimen\blocklinewidth
+
+ % Innerblock parameter
+\newdimen\TP@innerblockcenter
+\newdimen\TP@innerblocktitleinnersep
+\newdimen\innerblocktitleinnersep
+\newdimen\TP@innerblockbodyinnersep
+\newdimen\innerblockbodyinnersep
+\newbox\TP@innerblocktitlebox
+\newbox\TP@innerblockbodybox
+\def\TP@innerblocktitleAlignment{}
+\newif\ifInnerblockHasTitle
+\newdimen\TP@innerblocktitlewidth
+\newdimen\TP@innerblockbodywidth
+\newdimen\TP@innerblockbodyheight
+\newdimen\TP@innerblocktitleheight
+\newdimen\TP@innerblocktitleoffsetx
+\newdimen\TP@innerblocktitleoffsety
+\newdimen\TP@innerblockbodyoffsetx
+\newdimen\TP@innerblockbodyoffsety
+\newdimen\TP@innerblockbodyverticalshift
+\def\innerblockroundedcorners{}
+\newdimen\innerblocklinewidth
+
+ % Coloredbox parameter
+\newbox\TP@coloredbox
+\newdimen\TP@coloredboxwidth
+\def\TP@coloredboxroundedcorners{}
+\newdimen\TP@coloredboxlinewidth
+\newdimen\TP@coloredboxinnersep
+\newdimen\TP@coloredboxheight
+
+ % Note parameter
+\newdimen\TP@noteinnersep
+\newdimen\noteinnersep
+\newdimen\TP@notetargetoffsetx
+\newdimen\TP@notetargetoffsety
+\def\TP@noteangle{}
+\newdimen\TP@noteradius
+\newdimen\TP@notewidth
+\newdimen\TP@noteheight
+\newif\ifNoteHasConnection
+\newbox\TP@notebox
+\def\noterotate{}
+\def\noteroundedcorners{}
+\newdimen\notelinewidth
+
+ % --------------------------------------- %
+ % Declaring options
+\DeclareOptionX{12pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{14pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{17pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{20pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{25pt}{\TP@hugefontsizetrue}
+\DeclareOptionX{fleqn}{\PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{leqno} {\PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOptionX{a0paper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{a1paper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{a2paper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{landscape}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{portrait}{\PassOptionsToPackage{\CurrentOption}{geometry}}
+\DeclareOptionX{margin}[20mm]{\PassOptionsToPackage{margin=#1}{geometry}}
+\DeclareOptionX{innermargin}{\TP@innermargin=#1}
+\DeclareOptionX{colspace}{\TP@colspace=#1}
+\DeclareOptionX{subcolspace}{\TP@subcolspace=#1}
+\DeclareOptionX{blockverticalspace}{\TP@blockverticalspace=#1}
+\DeclareOptionX*{{\PackageWarning{tikzposter}{Unknown Option \CurrentOption.}}}
+
+ % Executing options
+\ExecuteOptionsX{
+ 25pt,
+ a0paper,
+ portrait,
+ margin=0mm,
+ innermargin=15mm,
+ colspace=15mm,
+ subcolspace=8mm,
+ blockverticalspace=15mm
+}
+\ProcessOptionsX \relax
+\LoadClass{extarticle}
+\RequirePackage{geometry}
+\ifTP@hugefontsize
+ \input{a0size.sty}
+ \renewcommand{\tiny}{\fontsize{12}{14}\selectfont}
+ \renewcommand{\scriptsize}{\fontsize{14.4}{18}\selectfont}
+ \renewcommand{\footnotesize}{\fontsize{17.28}{22}\selectfont}
+ \renewcommand{\small}{\fontsize{20.74}{25}\selectfont}
+ \renewcommand{\normalsize}{\fontsize{24.88}{30}\selectfont}
+ \renewcommand{\large}{\fontsize{29.86}{37}\selectfont}
+ \renewcommand{\Large}{\fontsize{35.83}{45}\selectfont}
+ \renewcommand{\LARGE}{\fontsize{43}{54}\selectfont}
+ \renewcommand{\huge}{\fontsize{51.6}{64}\selectfont}
+ \renewcommand{\Huge}{\fontsize{61.92}{77}\selectfont}
+\fi
+\normalsize
+\pagestyle{empty}
+\setlength{\TP@visibletextwidth}{\textwidth-2\TP@innermargin}
+\setlength{\TP@visibletextheight}{\textheight-2\TP@innermargin}
+\pgfdeclarelayer{backgroundlayer}
+\pgfdeclarelayer{notelayer}
+\pgfsetlayers{backgroundlayer,main,notelayer}
+
+ % --------------------------------------- %
+ % Background styles
+\gdef\definebackgroundstyle#1#2{\expandafter\gdef\csname TP@backgroundstyle#1\endcsname{#2}}
+
+\gdef\usebackgroundstyle#1{
+ \ifcsname TP@backgroundstyle#1\endcsname
+ \gdef\TP@backgroundstyle{\csname TP@backgroundstyle#1\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown backgroundstyle `#1'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Title styles
+\gdef\definetitlestyle#1#2#3{
+ \expandafter\gdef\csname TP@titlestyle#1Defaultvalues\endcsname{\gpresetkeys{title}{#2}{}}
+ \expandafter\gdef\csname TP@titlestyle#1\endcsname{#3}
+}
+
+\define@key{title}{width}{\TP@titlewidth=#1 \titlewidth=#1}
+\define@key{title}{roundedcorners}{\gdef\titleroundedcorners{#1}}
+\define@key{title}{linewidth}{\TP@titlelinewidth=#1 \titlelinewidth=#1}
+\define@key{title}{innersep}{\TP@titleinnersep=#1 \titleinnersep=#1}
+\define@key{title}{titletotopverticalspace}{\TP@titletotopverticalspace=#1 \titletotopverticalspace=#1}
+\define@key{title}{titletoblockverticalspace}{\TP@titletoblockverticalspace=#1}
+\define@key{title}{titlegraphictotitledistance}{\TP@titlegraphictotitledistance=#1}
+\define@key{title}{titletextscale}{\TP@titletextscale=#1}
+\newcommand\usetitlestyle[2][]{
+ \ifcsname TP@titlestyle#2\endcsname
+ \csname TP@titlestyle#2Defaultvalues\endcsname\gpresetkeys{title}{#1}{} % call macro
+ \gdef\TP@titlestyle{\csname TP@titlestyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown titlestyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Title
+\gdef\TP@maketitle{
+ \centering
+ \vbox{
+ \@titlegraphic
+ \\[\TP@titlegraphictotitledistance]
+ \centering
+ \color{titlefgcolor}
+ {\bfseries \Huge \sc \@title \par}
+ \vspace*{1em}
+ {\huge \@author \par}
+ \vspace*{1em}
+ {\LARGE \@institute}
+ }
+}
+
+\gdef\institute#1{\gdef\@institute{#1}}
+\gdef\titlegraphic#1{\gdef\@titlegraphic{#1}}
+
+\newenvironment{settitle}{
+ \makeatletter
+ \renewcommand{\TP@maketitle}
+}{
+ \makeatother
+}
+
+
+\renewcommand\maketitle[1][]{ % #1 keys
+ \normalsize
+ \setkeys{title}{#1}
+ % Title dummy to get title height
+ \node[transparent,inner sep=\TP@titleinnersep, line width=\TP@titlelinewidth, anchor=north, minimum width=\TP@visibletextwidth-2\TP@titleinnersep]
+ (TP@title) at ($(0, 0.5\textheight-\TP@titletotopverticalspace)$) {\parbox{\TP@titlewidth-2\TP@titleinnersep}{\TP@maketitle}};
+ \draw let \p1 = ($(TP@title.north)-(TP@title.south)$) in node {
+ \setlength{\TP@titleheight}{\y1}
+ \setlength{\titleheight}{\y1}
+ \global\TP@titleheight=\TP@titleheight
+ \global\titleheight=\titleheight
+ };
+
+ % Compute title position
+ \setlength{\titleposleft}{-0.5\titlewidth}
+ \setlength{\titleposright}{\titleposleft+\titlewidth}
+ \setlength{\titlepostop}{0.5\textheight-\TP@titletotopverticalspace}
+ \setlength{\titleposbottom}{\titlepostop-\titleheight}
+
+ % Title style (background)
+ \TP@titlestyle
+
+ % Title node
+ \node[inner sep=\TP@titleinnersep, line width=\TP@titlelinewidth, anchor=north, minimum width=\TP@visibletextwidth-2\TP@titleinnersep]
+ at (0,0.5\textheight-\TP@titletotopverticalspace) {\parbox{\TP@titlewidth-2\TP@titleinnersep}{\TP@maketitle}};
+
+ % Settings for blocks
+ \normalsize
+ \setlength{\TP@blocktop}{\titleposbottom-\TP@titletoblockverticalspace}
+}
+
+ % --------------------------------------- %
+ % Block styles
+\gdef\defineblockstyle#1#2#3{
+ \expandafter\gdef\csname TP@blockstyle#1Defaultvalues\endcsname{\gpresetkeys{block}{#2}{}}
+ \expandafter\gdef\csname TP@blockstyle#1\endcsname{#3}
+}
+
+\define@key{block}{titlewidthscale}{\setlength{\TP@blocktitlewidth}{#1\TP@blocktitlewidth}}
+\define@key{block}{bodywidthscale}{\setlength{\TP@blockbodywidth}{#1\TP@blockbodywidth}}
+\define@boolkey{block}{titleleft}[true]{\ifKV@block@titleleft \gdef\TP@blocktitleAlignment{\raggedright} \fi}
+\define@boolkey{block}{titlecenter}[true]{\ifKV@block@titlecenter \gdef\TP@blocktitleAlignment{\centering} \fi}
+\define@boolkey{block}{titleright}[true]{\ifKV@block@titleright \gdef\TP@blocktitleAlignment{\raggedleft} \fi}
+\define@key{block}{titleoffsetx}{\TP@blocktitleoffsetx=#1}
+\define@key{block}{titleoffsety}{\TP@blocktitleoffsety=#1}
+\define@key{block}{bodyoffsetx}{\TP@blockbodyoffsetx=#1}
+\define@key{block}{bodyoffsety}{\TP@blockbodyoffsety=#1}
+\define@key{block}{bodyverticalshift}{\TP@blockbodyverticalshift=#1}
+\define@key{block}{roundedcorners}{\gdef\blockroundedcorners{#1}}
+\define@key{block}{linewidth}{\blocklinewidth=#1}
+\define@key{block}{titleinnersep}{\TP@blocktitleinnersep=#1 \blocktitleinnersep=#1}
+\define@key{block}{bodyinnersep}{\TP@blockbodyinnersep=#1 \blockbodyinnersep=#1}
+
+\newcommand\useblockstyle[2][]{
+ \ifcsname TP@blockstyle#2\endcsname
+ \csname TP@blockstyle#2Defaultvalues\endcsname\gpresetkeys{block}{#1}{} % call macro
+ \gdef\TP@blockstyle{\csname TP@blockstyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown blockstyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Block
+\newcommand\block[3][]{ % #1 keys #2 title #3 text
+ % Block position
+ \normalsize
+ \ifTP@subcolumnEnvironment
+ \TP@blocktitlewidth=\subcolwidth
+ \TP@blockbodywidth=\subcolwidth
+ \TP@blockcenter=\TP@subcolcenter
+ \else
+ \ifTP@columnEnvironment
+ \TP@blocktitlewidth=\colwidth
+ \TP@blockbodywidth=\colwidth
+ \TP@blockcenter=\TP@colcenter
+ \else
+ \setlength\TP@blocktitlewidth{\TP@visibletextwidth}
+ \setlength\TP@blockbodywidth{\TP@visibletextwidth}
+ \TP@blockcenter=0pt
+ \fi
+ \fi
+
+ % Set parameter
+ \setkeys{block}{#1}
+
+ % Settings for Subcolumns
+ \ifTP@subcolumnEnvironment \else \ifTP@columnEnvironment \else
+ \setlength\TP@blocktitlewidth{\TP@blocktitlewidth-\blocklinewidth}
+ \setlength\TP@blockbodywidth{\TP@blockbodywidth-\blocklinewidth}
+ \TP@blockcenter=0pt
+ \fi \fi
+
+ % Get height of title
+ \ifstrempty{#2}{
+ \BlockHasTitlefalse
+ \setlength{\TP@blocktitleheight}{0pt}
+ }{
+ \BlockHasTitletrue
+ \setbox\TP@blocktitlebox=\hbox{%
+ \pgfinterruptpicture%
+ \parbox{\TP@blocktitlewidth-2\TP@blocktitleinnersep}{%
+ \bf\LARGE\color{blocktitlefgcolor}\TP@blocktitleAlignment#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@blocktitleheight}{\ht\TP@blocktitlebox + \dp\TP@blocktitlebox +2\TP@blocktitleinnersep}
+ }
+
+ % Get height of body
+ \setbox\TP@blockbodybox=\hbox{
+ \pgfinterruptpicture%
+ \parbox{\TP@blockbodywidth-2\TP@blockbodyinnersep-\TP@blockbodyoffsetx}{%
+ \vspace*{\TP@blockbodyverticalshift}\large\color{blockbodyfgcolor}#3\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@blockbodyheight}{\ht\TP@blockbodybox + \dp\TP@blockbodybox +2\TP@blockbodyinnersep}
+
+ % Set coordinates
+ \node[minimum width=\TP@blocktitlewidth, minimum height=\TP@blocktitleheight, anchor=center] (blocktitle)%
+ at (\TP@blockcenter+\TP@blocktitleoffsetx, {\TP@blocktop-0.5\TP@blocktitleheight+\TP@blocktitleoffsety}){};
+ \ifBlockHasTitle
+ \node[minimum width=\TP@blockbodywidth, minimum height=\TP@blockbodyheight, anchor=center] (blockbody)%
+ at (\TP@blockcenter+\TP@blockbodyoffsetx, {\TP@blocktop-\TP@blocktitleheight-0.5\TP@blockbodyheight+\TP@blockbodyoffsety}){};
+ \else
+ \node[minimum width=\TP@blockbodywidth, minimum height=\TP@blockbodyheight, anchor=center] (blockbody)%
+ at (\TP@blockcenter+\TP@blockbodyoffsetx, {\TP@blocktop-\TP@blocktitleheight-0.5\TP@blockbodyheight}){};
+ \fi
+
+ % Draw style
+ \TP@blockstyle
+
+ % Draw text
+ \ifBlockHasTitle
+ \node[text width=\TP@blocktitlewidth-2\TP@blocktitleinnersep, inner sep=\TP@blocktitleinnersep, anchor=center]%
+ at (blocktitle){\box\TP@blocktitlebox};
+ \fi
+ \node[text width=\TP@blockbodywidth-2\TP@blockbodyinnersep, inner sep=\TP@blockbodyinnersep, anchor=center]%
+ at (blockbody){\box\TP@blockbodybox};
+
+ % Set position parameter
+ \draw let \p1 = (blockbody.south) in node {
+ \setlength{\TP@blocktop}{\y1-\TP@blockverticalspace}
+ \global\TP@blocktop=\TP@blocktop
+ };
+ \ifTP@subcolumnEnvironment
+ \setlength{\TP@subcolbottom}{\minof{\TP@subcolbottom}{\TP@blocktop}}
+ \global\TP@subcolbottom=\TP@subcolbottom
+ \else
+ \ifTP@columnEnvironment
+ \setlength{\TP@colbottom}{\minof{\TP@colbottom}{\TP@blocktop}}
+ \global\TP@colbottom=\TP@colbottom
+ \fi
+ \fi
+}
+
+ % --------------------------------------- %
+ % Innerblock styles
+\gdef\defineinnerblockstyle#1#2#3{
+ \expandafter\gdef\csname TP@innerblockstyle#1Defaultvalues\endcsname{\gpresetkeys{innerblock}{#2}{}}
+ \expandafter\gdef\csname TP@innerblockstyle#1\endcsname{#3}
+}
+
+\define@key{innerblock}{titlewidth}{\setlength{\TP@innerblocktitlewidth}{#1}}
+\define@key{innerblock}{bodywidth}{\setlength{\TP@innerblockbodywidth}{#1}}
+\define@key{innerblock}{titlewidthscale}{\setlength{\TP@innerblocktitlewidth}{#1\TP@innerblocktitlewidth}}
+\define@key{innerblock}{bodywidthscale}{\setlength{\TP@innerblockbodywidth}{#1\TP@innerblockbodywidth}}
+\define@boolkey{innerblock}{titleleft}[true]{\ifKV@innerblock@titleleft \gdef\TP@innerblocktitleAlignment{\raggedright} \fi}
+\define@boolkey{innerblock}{titlecenter}[true]{\ifKV@innerblock@titlecenter \gdef\TP@innerblocktitleAlignment{\centering} \fi}
+\define@boolkey{innerblock}{titleright}[true]{\ifKV@innerblock@titleright \gdef\TP@innerblocktitleAlignment{\raggedleft} \fi}
+\define@key{innerblock}{titleoffsetx}{\TP@innerblocktitleoffsetx=#1}
+\define@key{innerblock}{titleoffsety}{\TP@innerblocktitleoffsety=#1}
+\define@key{innerblock}{bodyoffsetx}{\TP@innerblockbodyoffsetx=#1}
+\define@key{innerblock}{bodyoffsety}{\TP@innerblockbodyoffsety=#1}
+\define@key{innerblock}{bodyverticalshift}{\TP@innerblockbodyverticalshift=#1}
+\define@key{innerblock}{roundedcorners}{\gdef\innerblockroundedcorners{#1}}
+\define@key{innerblock}{linewidth}{\innerblocklinewidth=#1}
+\define@key{innerblock}{titleinnersep}{\TP@innerblocktitleinnersep=#1 \innerblocktitleinnersep=#1}
+\define@key{innerblock}{bodyinnersep}{\TP@innerblockbodyinnersep=#1 \innerblockbodyinnersep=#1}
+\define@key{innerblock}{titlebgcolor}{\definecolor{innerblocktitlebgcolor}{named}{#1}}
+\define@key{innerblock}{titlefgcolor}{\definecolor{innerblocktitlefgcolor}{named}{#1}}
+\define@key{innerblock}{bodybgcolor}{\definecolor{innerblockbodybgcolor}{named}{#1}}
+\define@key{innerblock}{bodyfgcolor}{\definecolor{innerblockbodyfgcolor}{named}{#1}}
+
+\newcommand\useinnerblockstyle[2][]{
+ \ifcsname TP@innerblockstyle#2\endcsname
+ \csname TP@innerblockstyle#2Defaultvalues\endcsname\gpresetkeys{innerblock}{#1}{} % call macro
+ \gdef\TP@innerblockstyle{\csname TP@innerblockstyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown innerblockstyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Innerblock
+\newcommand\innerblock[3][]{ % #1 keys #2 title #3 text
+ % Settings for Innerblock
+ \definecolor{innerblocktitlebgcolorTemp}{named}{innerblocktitlebgcolor}
+ \definecolor{innerblocktitlefgcolorTemp}{named}{innerblocktitlefgcolor}
+ \definecolor{innerblockbodybgcolorTemp}{named}{innerblockbodybgcolor}
+ \definecolor{innerblockbodyfgcolorTemp}{named}{innerblockbodyfgcolor}
+ \setlength{\TP@innerblocktitlewidth}{\linewidth}
+ \setlength{\TP@innerblockbodywidth}{\linewidth}
+ \setkeys{innerblock}{#1}
+
+ \begin{tikzpicture}
+
+ % Get center in x-direction
+ \pgfmathsetlength{\TP@innerblockcenter}{max(\TP@innerblocktitlewidth,\TP@innerblockbodywidth)/2}
+
+ % Get height of title
+ \ifstrempty{#2}{
+ \InnerblockHasTitlefalse
+ \setlength{\TP@innerblocktitleheight}{0pt}
+ }{
+ \InnerblockHasTitletrue
+ \setbox\TP@innerblocktitlebox=\hbox{%
+ \pgfinterruptpicture%
+ \parbox{\TP@innerblocktitlewidth-2\TP@innerblocktitleinnersep}{%
+ \bf\color{innerblocktitlefgcolor}\TP@innerblocktitleAlignment#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }
+ \setlength{\TP@innerblocktitleheight}{\ht\TP@innerblocktitlebox + \dp\TP@innerblocktitlebox +2\TP@innerblocktitleinnersep}
+ }
+
+ % Get height of body
+ \setbox\TP@innerblockbodybox=\hbox{
+ \pgfinterruptpicture%
+ \parbox{\TP@innerblockbodywidth-2\TP@innerblockbodyinnersep-\TP@innerblockbodyoffsetx}{%
+ \vspace*{\TP@innerblockbodyverticalshift}%
+ \color{innerblockbodyfgcolor}#3\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@innerblockbodyheight}{\ht\TP@innerblockbodybox + \dp\TP@innerblockbodybox +2\TP@innerblockbodyinnersep}
+
+ % Set coordinates
+ \node[minimum width=\TP@innerblocktitlewidth, minimum height=\TP@innerblocktitleheight, anchor=center] (innerblocktitle)
+ at (\TP@innerblockcenter+\TP@innerblocktitleoffsetx, {-0.5\TP@innerblocktitleheight+\TP@innerblocktitleoffsety}) {};%
+ \ifInnerblockHasTitle
+ \node[minimum width=\TP@innerblockbodywidth, minimum height=\TP@innerblockbodyheight, anchor=center] (innerblockbody)
+ at (\TP@innerblockcenter+\TP@innerblockbodyoffsetx, {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight+\TP@innerblockbodyoffsety}) {};%
+ \else
+ \node[minimum width=\TP@innerblockbodywidth, minimum height=\TP@innerblockbodyheight, anchor=center] (innerblockbody)
+ at (\TP@innerblockcenter+\TP@innerblockbodyoffsetx, {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight}) {};%
+ \fi
+
+ % Draw style
+ \TP@innerblockstyle
+
+ % Draw text
+ \ifInnerblockHasTitle
+ \node[text width=\TP@innerblocktitlewidth-2\TP@innerblocktitleinnersep, inner sep=\TP@innerblocktitleinnersep, anchor= center]
+ at (innerblocktitle) {\box\TP@innerblocktitlebox};%
+ \fi
+ \node[text width=\TP@innerblockbodywidth-2\TP@innerblockbodyinnersep, inner sep=\TP@innerblockbodyinnersep, anchor= center]
+ at (innerblockbody) {\box\TP@innerblockbodybox};%
+ \end{tikzpicture}
+
+ % Reset colors
+ \definecolor{innerblocktitlebgcolor}{named}{innerblocktitlebgcolorTemp}
+ \definecolor{innerblocktitlefgcolor}{named}{innerblocktitlefgcolorTemp}
+ \definecolor{innerblockbodybgcolor}{named}{innerblockbodybgcolorTemp}
+ \definecolor{innerblockbodyfgcolor}{named}{innerblockbodyfgcolorTemp}
+}
+
+ % --------------------------------------- %
+ % Coloredbox
+\define@key{coloredbox}{width}{\setlength{\TP@coloredboxwidth}{#1}}
+\define@key{coloredbox}{roundedcorners}{\gdef\TP@coloredboxroundedcorners{#1}}
+\define@key{coloredbox}{linewidth}{\TP@coloredboxlinewidth=#1}
+\define@key{coloredbox}{innersep}{\TP@coloredboxinnersep=#1}
+\define@key{coloredbox}{bgcolor}{\definecolor{coloredboxbgcolorTemp}{named}{#1}}
+\define@key{coloredbox}{fgcolor}{\definecolor{coloredboxfgcolorTemp}{named}{#1}}
+\define@key{coloredbox}{framecolor}{\definecolor{coloredboxframecolorTemp}{named}{#1}}
+
+\newcommand\coloredbox[2][]{ % #1 keys #2 text
+ % Settings for coloredbox
+ \setlength{\TP@coloredboxwidth}{\TP@blocktitlewidth-4\TP@blocktitleinnersep}
+ \setkeys{coloredbox}{%
+ width={\linewidth}, roundedcorners=15, linewidth=3.5pt, innersep=10pt,
+ bgcolor=notebgcolor, fgcolor=notefgcolor, framecolor=notebgcolor, #1}
+
+ \begin{tikzpicture}
+ % Get height of text
+ \setbox\TP@coloredbox=\hbox{
+ \pgfinterruptpicture%
+ \parbox{\TP@coloredboxwidth-2\TP@coloredboxinnersep}{%
+ \color{coloredboxfgcolorTemp}#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@coloredboxheight}{\ht\TP@coloredbox + \dp\TP@coloredbox +2\TP@coloredboxinnersep}
+
+ % Set coordinates
+ \node[minimum width=\TP@coloredboxwidth, minimum height=\TP@coloredboxheight, anchor=center] (coloredbox)
+ at (0.5\TP@coloredboxwidth, -0.5\TP@coloredboxheight) {};%
+
+ % Draw style
+ \begin{scope}[line width=\TP@coloredboxlinewidth, rounded corners=\TP@coloredboxroundedcorners]
+ \draw[color=coloredboxframecolorTemp, fill=coloredboxbgcolorTemp] (coloredbox.south west) rectangle (coloredbox.north east);
+ \end{scope}
+
+ % Draw text
+ \node[text width=\TP@coloredboxwidth-2\TP@coloredboxinnersep, inner sep=\TP@coloredboxinnersep, anchor= center]
+ at (coloredbox) {\box\TP@coloredbox};%
+ \end{tikzpicture}
+
+ % Reset colors
+ \definecolor{coloredboxbgcolor}{named}{coloredboxbgcolorTemp}
+ \definecolor{coloredboxfgcolor}{named}{coloredboxfgcolorTemp}
+}
+
+
+ % --------------------------------------- %
+ % Note styles
+\gdef\definenotestyle#1#2#3{
+ \expandafter\gdef\csname TP@notestyle#1Defaultvalues\endcsname{\gpresetkeys{note}{#2}{}}
+ \expandafter\gdef\csname TP@notestyle#1\endcsname{#3}
+}
+
+\define@key{note}{targetoffsetx}{\TP@notetargetoffsetx=#1}
+\define@key{note}{targetoffsety}{\TP@notetargetoffsety=#1}
+\define@key{note}{angle}{\def\TP@noteangle{#1}}
+\define@key{note}{radius}{\TP@noteradius=#1}
+\define@key{note}{width}{\TP@notewidth=#1}
+\define@boolkey{note}{connection}[true]{\NoteHasConnectiontrue \ifKV@note@connection \NoteHasConnectiontrue \else \NoteHasConnectionfalse \fi}
+\define@key{note}{rotate}{\gdef\noterotate{#1}}
+\define@key{note}{roundedcorners}{\gdef\noteroundedcorners{#1}}
+\define@key{note}{linewidth}{\notelinewidth=#1}
+\define@key{note}{innersep}{\TP@noteinnersep=#1 \noteinnersep=#1}
+\newcommand\usenotestyle[2][]{
+ \ifcsname TP@notestyle#2\endcsname
+ \csname TP@notestyle#2Defaultvalues\endcsname\gpresetkeys{note}{#1}{} % call macro
+ \gdef\TP@notestyle{\csname TP@notestyle#2\endcsname} % save macro
+ \else
+ \PackageWarning{tikzposter}{Unknown notestyle `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Note
+\newcommand\note[2][]{ % #1 keys #2 text
+ \normalsize
+ \setkeys{note}{#1}
+
+ % Note box
+ \setbox\TP@notebox=\hbox{%
+ \pgfinterruptpicture%
+ \parbox{\TP@notewidth-2\TP@noteinnersep}{\color{notefgcolor}#2\par\normalsize}%
+ \endpgfinterruptpicture%
+ }%
+ \setlength{\TP@noteheight}{\ht\TP@notebox + \dp\TP@notebox +2\TP@noteinnersep}
+ \pgfmathsetlength{\TP@noteheight}{max(\TP@noteheight,80pt)}
+
+ % Set note coordinates
+ \node (notetarget) at ($(blockbody)+(\TP@notetargetoffsetx,\TP@notetargetoffsety)$){};
+ \node[minimum width=\TP@notewidth, minimum height=\TP@noteheight, anchor=center,rotate=\noterotate] (notecenter)
+ at ($(notetarget)+({\TP@noteradius*cos(\TP@noteangle)},{\TP@noteradius*sin(\TP@noteangle)})$){};%
+
+ % Draw note
+ \begin{pgfonlayer}{notelayer}
+ \TP@notestyle
+ % Draw note text
+ \node[text width=\TP@notewidth-2\TP@noteinnersep, inner sep=\TP@noteinnersep, anchor=center,rotate=\noterotate]%
+ at (notecenter){\box\TP@notebox};
+ \end{pgfonlayer}
+}
+
+ % --------------------------------------- %
+ % Color palette
+\gdef\definecolorpalette#1#2{\expandafter\gdef\csname TP@colorpalette#1\endcsname{#2}}
+
+\gdef\usecolorpalette#1{
+ \ifcsname TP@colorpalette#1\endcsname
+ \csname TP@colorpalette#1\endcsname % call macro
+ \else
+ \PackageWarning{tikzposter}{Unknown color palette `#1'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Color style
+\gdef\definecolorstyle#1#2#3{
+ \expandafter\gdef\csname TP@colorstyle#1Defaultvalues\endcsname{#2}
+ \expandafter\gdef\csname TP@colorstyle#1\endcsname{#3}
+}
+
+\define@key{colors}{colorOne}{\colorlet{colorOne}{#1}}
+\define@key{colors}{colorTwo}{\colorlet{colorTwo}{#1}}
+\define@key{colors}{colorThree}{\colorlet{colorThree}{#1}}
+\define@key{colors}{colorPalette}{\usecolorpalette{#1}}
+
+\newcommand\usecolorstyle[2][]{ % #1 keys #2 macroname
+ \ifcsname TP@colorstyle#2\endcsname
+ \csname TP@colorstyle#2Defaultvalues\endcsname % call macro
+ \setkeys{colors}{#1} % set keys
+ \csname TP@colorstyle#2\endcsname % call macro
+ \else
+ \PackageWarning{tikzposter}{Unknown color style `#2'.}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Layouttheme
+\gdef\definelayouttheme#1#2{\expandafter\gdef\csname TP@layouttheme#1\endcsname{#2}}
+
+\gdef\usetheme#1{
+ % Layout theme
+ \ifcsname TP@layouttheme#1\endcsname
+ \csname TP@layouttheme#1\endcsname % call macro
+ \else
+ \PackageWarning{tikzposter}{Unknown layouttheme `#1'.}
+ \fi
+}
+
+ % Input Style and Theme Files
+\input{tikzposterColorpalettes}
+\input{tikzposterColorstyles}
+\input{tikzposterBackgroundstyles}
+\input{tikzposterTitlestyles}
+\input{tikzposterBlockstyles}
+\input{tikzposterInnerblockstyles}
+\input{tikzposterNotestyles}
+\input{tikzposterLayoutthemes}
+
+
+ % Set Default theme
+\usetheme{Default}
+
+ % --------------------------------------- %
+ % Columns environment
+\newenvironment{columns}{
+ \TP@columnEnvironmenttrue
+ \setlength{\TP@colcenter}{-0.5\TP@visibletextwidth-\TP@colspace-0.5\blocklinewidth}
+ \global\TP@colcenter=\TP@colcenter
+ \global\TP@coltop=\TP@blocktop
+ \global\TP@colbottom=\TP@blocktop
+ \colwidth=0pt
+}{
+ \TP@columnEnvironmentfalse
+ \global\TP@blocktop=\TP@colbottom
+}
+
+ % Column
+\gdef\column#1{ % #1: relative width
+ \ifTP@columnEnvironment
+ \normalsize
+ \setlength{\TP@blocktop}{\TP@coltop}
+ \setlength{\TP@colcenter}{\TP@colcenter+0.5\colwidth+\TP@colspace}
+ \setlength{\colwidth}{#1\TP@visibletextwidth+#1\TP@colspace-\TP@colspace-\blocklinewidth}
+ \setlength{\TP@colcenter}{\TP@colcenter+0.5\colwidth+\blocklinewidth}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Subcolumns environment
+\newenvironment{subcolumns}{
+ \ifTP@columnEnvironment
+ \TP@subcolumnEnvironmenttrue
+ \setlength{\TP@subcolcenter}{\TP@colcenter-0.5\colwidth-\TP@blockbodyinnersep-\TP@subcolspace-\TP@blockbodyinnersep}
+ \global\TP@subcolcenter=\TP@subcolcenter
+ \global\TP@subcoltop=\TP@blocktop
+ \global\TP@subcolbottom=\TP@blocktop
+ \subcolwidth=0pt
+ \fi
+}{
+ \TP@subcolumnEnvironmentfalse
+ \global\TP@blocktop=\TP@subcolbottom
+}
+
+ % Subcolumn
+\gdef\subcolumn#1{ % #1: relative width
+ \ifTP@subcolumnEnvironment
+ \normalsize
+ \setlength{\TP@blocktop}{\TP@subcoltop}
+ \setlength{\TP@subcolcenter}{\TP@subcolcenter+0.5\subcolwidth+\TP@blockbodyinnersep+\TP@subcolspace+\TP@blockbodyinnersep}
+ \setlength{\subcolwidth}{#1\colwidth+#1\TP@blockbodyinnersep+#1\TP@blockbodyinnersep
+ +#1\TP@subcolspace-\TP@subcolspace-2\TP@blockbodyinnersep}
+ \setlength{\TP@subcolcenter}{\TP@subcolcenter+0.5\subcolwidth}
+ \fi
+}
+
+ % --------------------------------------- %
+ % Affection
+\gdef\tikzposterlatexaffectionproofon{\TP@showlatexaffectiontrue}
+\gdef\tikzposterlatexaffectionproofoff{\TP@showlatexaffectionfalse}
+\TP@showlatexaffectiontrue
+
+ % --------------------------------------- %
+ % Document environment
+\AtBeginDocument{%
+ % Get titlegraphic height
+ \settototalheight{\titlegraphicheight}{\hbox{\@titlegraphic}}
+
+ \begin{center}
+ \begin{tikzpicture}
+ % Background
+ \coordinate (topright) at (0.5\textwidth, 0.5\textheight);
+ \coordinate (bottomleft) at (-0.5\textwidth, -0.5\textheight);
+ \clip (bottomleft) rectangle (topright);
+
+ % Draw background
+ \begin{pgfonlayer}{backgroundlayer}
+ \clip (bottomleft) rectangle (topright);
+ \TP@backgroundstyle
+ \ifTP@showlatexaffection
+ \node[inner sep=4pt, anchor=south east, fill=white, draw=none, rounded corners=5, fill opacity=0.3, text opacity=1]
+ at (0.5\textwidth-7pt, -0.5\textheight+7pt){\footnotesize {\bf\textrm\LaTeX}~\textrm{Ti\emph{k}Z}\bf\textrm{poster}};
+ \fi
+ \end{pgfonlayer}
+
+}
+
+\AtEndDocument{%
+ \end{tikzpicture}
+ \end{center}
+}
+
+%%
+
+\newcounter{figurecounter}
+
+%% #1 Caption
+\newenvironment{tikzfigure}[1][]{
+ \def \rememberparameter{#1}
+ \vspace{10pt}
+ \refstepcounter{figurecounter}
+ \begin{center}
+ }{
+ \ifx\rememberparameter\@empty
+ \else %nothing
+ \\[10pt]
+ {\small Fig.~\thefigurecounter: \rememberparameter}
+ \fi
+ \end{center}
+}
+
+%%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</tikzposter.cls>
+% \end{macrocode}
+% \subsection*{Layout styles}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterLayoutthemes.tex>
+% \end{macrocode}
+% \begin{macrocode}
+
+\definelayouttheme{Default}{
+ \usecolorstyle{Default}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Default}
+ \useblockstyle{Default}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Rays}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Britain}
+ \usebackgroundstyle{Rays}
+ \usetitlestyle{Default}
+ \useblockstyle{Default}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Corner}
+}
+
+\definelayouttheme{Basic}{
+ \usecolorstyle[colorPalette=GreenGrayViolet]{Australia}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Basic}
+ \useblockstyle{Basic}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Simple}{
+ \usecolorstyle[colorPalette=PurpleGrayBlue]{Denmark}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Default}
+ \useblockstyle{Minimal}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Envelope}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Spain}
+ \usebackgroundstyle{VerticalGradation}
+ \usetitlestyle{Envelope}
+ \useblockstyle{Envelope}
+ \useinnerblockstyle{Default}
+ \usenotestyle{VerticalShading}
+ }
+
+\definelayouttheme{Wave}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Spain}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \usebackgroundstyle{VerticalGradation}
+ \usetitlestyle{Wave}
+ \useblockstyle{Corner}
+ \useinnerblockstyle{Default}
+ \usenotestyle{VerticalShading}
+ }
+
+\definelayouttheme{Board}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Sweden}
+ \usebackgroundstyle{VerticalGradation}
+ \usetitlestyle{Empty}
+ \useblockstyle{TornOut}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Sticky}
+}
+
+\definelayouttheme{Autumn}{
+ \usecolorstyle[colorPalette=BrownBlueOrange]{Germany}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Filled}
+ \useblockstyle{Slide}
+ \useinnerblockstyle{Table}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Desert}{
+ \usecolorstyle[colorPalette=GrayOrangeBlue]{Russia}
+ \usebackgroundstyle{BottomVerticalGradation}
+ \usetitlestyle{VerticalShading}
+ \useblockstyle{Slide}
+ \useinnerblockstyle{Table}
+ \usenotestyle{Default}
+ }
+
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterLayoutthemes.tex>
+% \end{macrocode}
+% \subsection*{Background styles}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterBackgroundstyles.tex>
+% \end{macrocode}
+% \begin{macrocode}
+
+
+ % Parameters
+ % \textwidth - length
+ % \textheight - length
+ % \titlegraphicheight - length
+ % \titletotopverticalspace - length
+ % \titleinnersep - length
+ % backgroundcolor - color
+ % topright - coordinate
+ % bottomleft - coordinate
+
+\definebackgroundstyle{Default}{
+ \fill[inner sep=0pt, line width=0pt, color=backgroundcolor]%
+ (bottomleft) rectangle (topright);
+}
+
+\definebackgroundstyle{Rays}{
+ \draw[line width=0pt, top color=backgroundcolor!70, bottom
+ color=backgroundcolor!70!black] (bottomleft) rectangle (topright);
+ %
+ \begin{scope}
+ \foreach \a in {10,20,...,80}{%
+ \draw[backgroundcolor, line width=0.15cm](bottomleft) --
+ ($(bottomleft)!1!(bottomleft)+(\a:120)$);%
+ }
+ \foreach \i in {1,2,...,50}{%
+ \begin{scope}[shift={($(rand*60,rand*70)$)}]
+ \draw[backgroundcolor!50!, line width=0.1cm] (0,0) circle (4);
+ \end{scope}
+ }
+ \end{scope}
+}
+
+\definebackgroundstyle{VerticalGradation}{
+ \draw[line width=0pt, bottom color=backgroundcolor, top
+ color=backgroundcolor!60!white] (bottomleft) rectangle (topright);
+}
+
+\definebackgroundstyle{BottomVerticalGradation}{
+ \draw[draw=none, line width=0pt, bottom color=titlebgcolor, top
+ color=framecolor] (bottomleft) rectangle ($(bottomleft)+(\textwidth,3)$);
+}
+
+\definebackgroundstyle{Empty}{
+ %
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterBackgroundstyles.tex>
+% \end{macrocode}
+% \subsection*{Block styles}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterBlockstyles.tex>
+% \end{macrocode}
+% \begin{macrocode}
+ % Options:
+ % titlewidthscale
+ % bodywidthscale
+ % titlecenter, titleleft, titleright
+ % titleoffsetx
+ % titleoffsety
+ % bodyoffsetx
+ % bodyoffsety
+ % bodyverticalshift
+ % roundedcorners
+ % linewidth
+ % titleinnersep
+ % bodyinnersep
+
+ % Parameter:
+ % \ifBlockHasTitle - boolean
+ % blocktitle - coordinate
+ % blockbody - coordinate
+ % \blockroundedcorners - number
+ % \blocklinewidth - length
+ % \blockbodyinnersep - length
+ % \blocktitleinnersep - length
+ % blockbodybgcolor - color
+ % blocktitlebgcolor - color
+ % framecolor - color
+
+ \defineblockstyle{Default}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=30, linewidth=0.4cm,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \begin{scope}[line width=\blocklinewidth, rounded corners=\blockroundedcorners]
+ \ifBlockHasTitle %
+ \draw[color=blocktitlebgcolor, fill=blocktitlebgcolor] (blockbody.south west) rectangle (blocktitle.north east);
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor] (blockbody.south west) rectangle (blockbody.north east);
+ \else
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor] (blockbody.south west) rectangle (blockbody.north east);
+ \fi
+ \end{scope}
+}
+
+ \defineblockstyle{Basic}{
+ titlewidthscale=0.8, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=15mm,
+ bodyverticalshift=15mm, roundedcorners=22, linewidth=5pt,
+ titleinnersep=8mm, bodyinnersep=8mm
+}{
+ \draw[rounded corners=\blockroundedcorners, inner sep=\blockbodyinnersep, line width=\blocklinewidth, color=framecolor, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blockbody.north east); %
+ \ifBlockHasTitle%
+ \draw[rounded corners=\blockroundedcorners, inner sep=\blocktitleinnersep, line width=\blocklinewidth, color=framecolor, fill=blocktitlebgcolor]
+ (blocktitle.south west) rectangle (blocktitle.north east); %
+ \fi%
+}
+
+\defineblockstyle{Minimal}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=0.2cm,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \begin{scope}[line width=\blocklinewidth, rounded corners=\blockroundedcorners]
+ \ifBlockHasTitle %
+ \draw[draw=none]%, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blocktitle.north east);
+ \draw[color=blocktitlebgcolor, loosely dashed]
+ (blocktitle.south west) -- (blocktitle.south east);%
+ \else
+ \draw[draw=none]%, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineblockstyle{Envelope}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=1.6pt,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \begin{scope}[rounded corners=\blockroundedcorners, line width=\blocklinewidth,
+ drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3} ]
+ \ifBlockHasTitle
+ % the big rectangle
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor, drop shadow]
+ (blockbody.south west) rectangle (blocktitle.north east);%
+ \begin{scope}
+ \clip (blocktitle.south west) rectangle (blocktitle.north east);
+ % fading on top
+ \fill[rounded corners=0, path fading=south, fill=blocktitlebgcolor, opacity=.4]
+ ($(blocktitle.south west)-(0.1,0)$) rectangle ($(blocktitle.north east)+(0.1,0)$);
+ % the trapezium
+ \draw[draw=none, bottom color=blocktitlebgcolor, top
+ color=blocktitlebgcolor!85!] %
+ ($(blocktitle.north west)+(0.25,0)$) -- ($(blocktitle.north west)+(0.75,0)$) -- %
+ ($(blocktitle.south west)+(2.5,0)$) -- ($(blocktitle.south east)-(2.5,0)$) -- %
+ ($(blocktitle.north east)-(0.75,0)$) -- ($(blocktitle.north east)-(0.25,0)$) -- cycle;
+ \end{scope}
+ \else
+ % No title
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineblockstyle{Corner}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=1.2pt,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ % the shadow above the corner
+ \begin{scope}
+ \clip (blockbody.south west) rectangle (blocktitle.north east);
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-0.8cm, rotate
+ around={-20:($(blocktitle.north east)-(10,0)$)}}]
+ \fill[color=gray, path fading=north, opacity=0.8]%
+ ($(blocktitle.north east)-(10,1)$) rectangle ($(blocktitle.north east)+(2,2.3)$);
+ \end{scope}
+ \end{scope}
+ %
+ % the border
+ \def \border{%
+ [rounded corners=30] (blockbody.south west) -- (blocktitle.north west) %
+ [rounded corners=30] -- ($(blocktitle.north east)-(9.4,0)$)
+ [rounded corners=30] -- ($(blocktitle.north east)-(0,3.4)$)
+ [rounded corners=30] |- (blockbody.south west) -- cycle
+ }
+ \draw[line width=\blocklinewidth, color=blocktitlebgcolor, fill=blockbodybgcolor,
+ % drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3}
+ ] \border;
+ %
+ % the corner
+ \begin{scope}
+ \def \corner{ ($(blocktitle.north east)-(0,6)$) -- ($(blocktitle.north east)-(0,4.5)$) .. %
+ controls ($(blocktitle.north east)-(-0,2.7)$) and ($(blocktitle.north east)-(2.8,2.2)$)
+ .. ($(blocktitle.north east)-(3.8,4.6)$) %
+ .. controls ($(blocktitle.north east)-(8.6,0)$) .. ($(blocktitle.north east)-(11.4,0)$) %
+ [rounded corners=30] -- ($(blocktitle.north east)-(9.4,0)$) %
+ [rounded corners=30] -- ($(blocktitle.north east)-(0,3.4)$) %
+ [rounded corners=0] -- ($(blocktitle.north east)-(0,6)$)}
+ \draw[blocktitlebgcolor] \corner;
+ \clip \corner;
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-1.3cm, rotate
+ around={-23:($(blocktitle.north east)-(10,0)$)}}]
+ \fill[color=blocktitlebgcolor!90] ($(blocktitle.north east) - (10,2)$)
+ rectangle ($(blocktitle.north east) + (2,3.6)$); %
+ \fill[color=blocktitlebgcolor , path fading=south, opacity=1]
+ ($(blocktitle.north east) - (10,-1.2)$) rectangle ($(blocktitle.north east) + (2,1.6)$); %
+ \fill[color=blocktitlebgcolor , path fading=north, opacity=1]
+ ($(blocktitle.north east) - (10,-1.6)$) rectangle ($(blocktitle.north east) + (2,2.1)$);
+ \end{scope}
+ \end{scope}%
+}
+
+\defineblockstyle{Slide}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=0pt, titleinnersep=1cm,
+ bodyinnersep=1cm
+}{
+ \ifBlockHasTitle%
+ \draw[draw=none, left color=blocktitlebgcolor, right color=blockbodybgcolor]
+ (blocktitle.south west) rectangle (blocktitle.north east);
+ \fi%
+ \draw[draw=none, fill=blockbodybgcolor] %
+ (blockbody.north west) [rounded corners=30] -- (blockbody.south west) --
+ (blockbody.south east) [rounded corners=0]-- (blockbody.north east) -- cycle;
+}
+
+\defineblockstyle{TornOut}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=-1.2cm, roundedcorners=0, linewidth=1.2pt,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \ifBlockHasTitle%
+ \coordinate (topright) at (blocktitle.north east);
+ \else
+ \coordinate (topright) at (blockbody.north east);
+ \fi%
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor,%
+ line width=\blocklinewidth, drop shadow={shadow xshift=0.2cm, shadow yshift=-0.2cm,opacity=0.3}, %
+ decorate, decoration={random steps,segment length=1.5cm,amplitude=0.15cm}
+ % decorate, decoration={penciline,amplitude=0.2cm}
+ ] (blockbody.south west) rectangle (topright);%
+}
+
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterBlockstyles.tex>
+% \end{macrocode}
+
+% \subsection*{Note styles}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterNotestyles.tex>
+% \end{macrocode}
+% \begin{macrocode}
+
+
+ % Options:
+ % targetoffsetx
+ % targetoffsety
+ % angle
+ % radius
+ % width
+ % connection
+ % rotate
+ % roundedcorners
+ % linewidth
+ % innersep
+
+ % Parameter:
+ % \ifNoteHasConnection - boolean
+ % notecenter - coordinate
+ % notetarget - coordinate
+ % \noterotate - number
+ % \noteroundedcorners - number
+ % \notelinewidth - length
+ % \noteinnersep - length
+ % notebgcolor - color
+ % notefgcolor - color
+ % notefrcolor - color
+
+
+
+
+\definenotestyle{Default}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=8cm,
+ connection=false, rotate=0, roundedcorners=20, linewidth=0pt, innersep=1cm
+}{
+ \ifNoteHasConnection %% callout note
+ \draw[color=notefrcolor, fill=notebgcolor]%
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) --cycle; %
+ %
+ \fi
+ % the body of the note
+ \draw[color=notefrcolor, fill=notebgcolor, rounded
+ corners=\noteroundedcorners] (notecenter.south west) -- (notecenter.north
+ west) -- (notecenter.north east) -- (notecenter.south east) -- cycle;
+}
+
+ \definenotestyle{Corner}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=12cm,
+ connection=false, rotate=0, roundedcorners=20, linewidth=0pt, innersep=1cm
+}{
+ \ifNoteHasConnection % callout note
+ \draw[color=notebgcolor, fill=notebgcolor, drop shadow={shadow
+ xshift=0.2cm, shadow yshift=-0.2cm, opacity=0.3}] %
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) --cycle; %
+ \fi
+ % the body of the note
+ % the shape
+ \def \border{%
+ [rounded corners=0] (notecenter.south west) -- (notecenter.north west) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north
+ east)-(\noterotate:4.7)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north
+ east)+(-90+\noterotate:1.7)$) %
+ [rounded corners=0] -- (notecenter.south east) -- (notecenter.south
+ west) -- cycle%
+ }
+ \fill[color=notebgcolor] \border;
+ \coordinate (x) at (\noterotate:1);
+ \coordinate (y) at (\noterotate-90:1);
+ % the shadow of the corner
+ \fill[color=gray,opacity=0.3] ($(notecenter.north east)+3*(y)$) --
+ ($(notecenter.north east)+2.5*(y)$) .. %
+ controls ($(notecenter.north east)+1.25*(y)$) and ($(notecenter.north
+ east)-1.5*(x)+1.25*(y)$) .. %
+ ($(notecenter.north east)-1.9*(x)+2.5*(y)$) .. %
+ controls ($(notecenter.north east)-4.5*(x)$) .. %
+ ($(notecenter.north east)-5.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)-4.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)+1.7*(y)$) %
+ [rounded corners=0] -- ($(notecenter.north east)+3*(y)$);
+ % the corner
+ \fill[color=notefrcolor] %
+ ($(notecenter.north east)+3*(y)$) -- ($(notecenter.north east)+2.5*(y)$) .. %
+ controls ($(notecenter.north east)+1.25*(y)$) and ($(notecenter.north
+ east)-1.5*(x)+1.25*(y)$) .. %
+ ($(notecenter.north east)-1.9*(x)+2.3*(y)$) .. %
+ controls ($(notecenter.north east)-4.5*(x)$) .. %
+ ($(notecenter.north east)-5.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)-4.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)+1.7*(y)$) %
+ [rounded corners=0] -- ($(notecenter.north east)+3*(y)$);
+}
+
+ \definenotestyle{VerticalShading}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=8cm,
+ connection=false, rotate=0, roundedcorners=20, linewidth=1pt, innersep=1cm
+}{
+ \ifNoteHasConnection % callout note
+ % the shadow
+ \begin{scope}[opacity=0.3]
+ \begin{pgftransparencygroup}
+ \coordinate (shadowshift) at (0.2cm,-0.2cm); \fill%
+ ($(notetarget)+(shadowshift)$) --
+ ($(notetarget)!1!4:(notecenter.center)+(shadowshift)$) --
+ ($(notetarget)!1!-4:(notecenter.center)+(shadowshift)$) --cycle; %
+ \fill[rounded corners=\noteroundedcorners] %
+ ($(notecenter.south west)+(shadowshift)$) -- ($(notecenter.north
+ west)+(shadowshift)$) -- ($(notecenter.north east)+(shadowshift)$)
+ -- ($(notecenter.south east)+(shadowshift)$) -- cycle;
+ \end{pgftransparencygroup}
+ \end{scope}
+ %% the main drawing
+ %
+ %% the border
+ \draw[color=notefrcolor, line width=\notelinewidth*2]%
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) -- cycle;%
+ \draw[color=notefrcolor, line width=\notelinewidth*2, rounded
+ corners=\noteroundedcorners]%
+ (notecenter.south west) -- (notecenter.north west) --
+ (notecenter.north east) -- (notecenter.south east) -- cycle; %
+ %
+ %% the filling (vertical shading), shared between the note and the connection
+ \begin{scope}
+ \node[fit=(notetarget)(notecenter.south west)(notecenter.south east)
+ (notecenter.north east) (notecenter.north west), inner sep=+0pt]
+ (box) {};%
+ %
+ \clip (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) -- cycle%
+ [rounded corners=\noteroundedcorners] (notecenter.south west) --
+ (notecenter.north west) -- (notecenter.north east) --
+ (notecenter.south east) -- cycle;
+ %
+ \draw[draw=none, color=notefrcolor, top color=notebgcolor!60, bottom
+ color=notebgcolor] %
+ (box.south west) rectangle (box.north east);
+ \end{scope}
+ %
+ \else % the simple note
+ \begin{scope}[drop shadow={shadow xshift=0.2cm, shadow yshift=-0.2cm,
+ opacity=0.3}]
+ \draw[line width=\notelinewidth, rounded corners=\noteroundedcorners,
+ color=notefrcolor, top color=notebgcolor!60, bottom color=notebgcolor,
+ drop shadow] %
+ (notecenter.south west) -- (notecenter.north west) -- (notecenter.north
+ east) -- (notecenter.south east) -- cycle;
+ \end{scope}
+ \fi
+}
+
+ \definenotestyle{Sticky}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=8cm,
+ connection=false, rotate=0, roundedcorners=0, linewidth=0pt, innersep=1cm
+}{
+ \ifNoteHasConnection %% callout note
+ \draw[color=notefrcolor, fill=notebgcolor, drop shadow={shadow
+ xshift=0.2cm, shadow yshift=-0.2cm, opacity=0.3}] %
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) --cycle; %
+ \fi
+ % the body of the note
+ % shadow
+ \draw[draw=none, fill=gray, opacity=0.3]
+ ($(notecenter.north east)+(-0.5,0)$) [rounded corners=40]--%
+ (notecenter.north west) [rounded corners=0] -- %
+ ($(notecenter.south west)$) .. %
+ controls ($0.2*(notecenter.south west) + 0.8*(notecenter.south east)$) .. %
+ ($(notecenter.south east)+(-0.2,0.3)$) .. %
+ controls ($0.75*(notecenter.south east) + 0.25*(notecenter.north east) - (0.5,0)$) .. %
+ ($(notecenter.north east)+(-0.5,0)$);
+ % the shape
+ \def \border{%
+ ($(notecenter.north east)+(-0.5,0)$) [rounded corners=40]--%
+ (notecenter.north west) [rounded corners=0] -- %
+ ($(notecenter.south west)$) .. %
+ controls ($0.2*(notecenter.south west) + 0.8*(notecenter.south east)$) .. %
+ ($(notecenter.south east)+(0,0.7)$) .. %
+ controls ($0.75*(notecenter.south east) +0.25*(notecenter.north east) -(0.5,0)$) .. %
+ ($(notecenter.north east)+(-0.5,0)$)%
+ }%
+ \draw[color=notefrcolor, fill=notebgcolor]
+ \border;
+ % the shading in the left top corner
+ \begin{scope}
+ \clip \border; %
+ \begin{scope}[transform canvas={rotate
+ around={\noterotate+15:(notecenter.north west)}}]
+ \fill[notebgcolor!60!black, path fading=south, opacity=0.6]%
+ (notecenter.north west) -- +(-3,0) |- ($(notecenter.north west) + (0,-1.2)$)
+ -- ($(notecenter.north west) + (4,-1.2)$) |- ($(notecenter.north west)$);
+ \end{scope}
+ \end{scope}
+}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterNotestyles.tex>
+% \end{macrocode}
+
+% \subsection*{Title styles}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterTitlestyles.tex>
+% \end{macrocode}
+% \begin{macrocode}
+
+% Options
+ % width
+ % roundedcorners
+ % linewidth
+ % innersep
+ % titletotopverticalspace
+ % titletoblockverticalspace
+ % titlegraphictotitledistance
+ % titletextscale
+
+ % Parameter:
+ % \textwidth - length
+ % \textheight - length
+ % \titlewidth - length
+ % \titlegraphicheight - length
+ % \titlelinewidth - length
+ % \titleinnersep - length
+ % \titleposleft, \titleposright, \titleposbottom, \titlepostop - length
+ % \titletotopverticalspace - length
+ % titlebgcolor - color
+
+\definetitlestyle{Default}{
+ width=600mm, roundedcorners=30, linewidth=0.4cm, innersep=1cm,
+ titletotopverticalspace=15mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt, titletextscale=1
+}{
+ \begin{scope}[line width=\titlelinewidth, rounded corners=\titleroundedcorners]
+ \draw[color=framecolor, fill=titlebgcolor]%
+ (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop);
+ \end{scope}
+}
+
+\definetitlestyle{Basic}{
+ width=770mm, roundedcorners=0, linewidth=0pt, innersep=10pt,
+ titletotopverticalspace=20mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=25mm, titletextscale=1
+}{
+ \coordinate (topright) at (0.5\textwidth-0.5\titlelinewidth, 0.5\textheight-0.5\titlelinewidth);
+ \coordinate (bottomleft) at (-0.5\textwidth+0.5\titlelinewidth, 0.5\textheight-\titlegraphicheight-0.5\titlelinewidth-2\titletotopverticalspace-2\titleinnersep);
+ \draw[line width=\titlelinewidth, inner sep=\titleinnersep, fill=titlebgcolor] (bottomleft) rectangle (topright);
+}
+
+\definetitlestyle{Envelope}{
+ 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, bottom color=blocktitlebgcolor!90!black, %
+ top color=titlebgcolor!90] %
+ (topleft) -- ($(topleft)-0.2*(head)$) .. controls ($(topleft)-(head)+(1,0)$)
+ .. ($(topleft)-(head)+0.2*(lefttoright)$) --
+ ($(topleft)-(head)+0.8*(lefttoright)$) .. controls ($(topright)-(head)-(1,0)$)
+ .. %
+ ($(topright)-0.2*(head)$) -- (topright) -- cycle;
+ %
+ \draw[draw=none, right color=white, left color=blocktitlebgcolor]
+ ($(topleft)-(head)+0.8*(lefttoright)$) .. controls
+ ($(topleft)-(head)+0.92*(lefttoright)+(0,0.7)$) and %
+ ($(topright)- 0.13*(lefttoright)$) .. %
+ (topright) .. controls %
+ ($(topright)- 0.11*(lefttoright)$) and%
+ ($(topleft)-(head)+0.95*(lefttoright)$) .. %
+ ($(topleft)-(head)+0.82*(lefttoright)$);
+ %
+ \draw[draw=none, right color=white, left color=blocktitlebgcolor]
+ ($(topleft)-(head)+0.83*(lefttoright)$) .. controls
+ ($(topleft)-(head)+0.97*(lefttoright)+(0,0.2)$) and %
+ ($(topright)- 0.08*(lefttoright)$) .. %
+ (topright) .. controls %
+ ($(topright)- 0.06*(lefttoright)$) and %
+ ($(topleft)-(head)+0.99*(lefttoright)$) .. %
+ ($(topleft)-(head)+0.85*(lefttoright)$); %
+}
+
+\definetitlestyle{Wave}{
+ 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}
+}
+
+\definetitlestyle{VerticalShading}{
+ width=\paperwidth, roundedcorners=0, linewidth=0pt, innersep=1.5cm,
+ titletotopverticalspace=0mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt, titletextscale=1
+}{
+ \draw[draw=none, bottom color=framecolor, top color=titlebgcolor]%
+ (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop); %
+}
+
+\definetitlestyle{Filled}{
+ width=\paperwidth, roundedcorners=0, linewidth=0pt, innersep=1.5cm,
+ titletotopverticalspace=0mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt
+}{
+ \draw[draw=none, fill=titlebgcolor]%
+ (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop); %
+}
+
+\definetitlestyle{Empty}{
+ width=750mm, roundedcorners=0, linewidth=0pt, innersep=8mm,
+ titletotopverticalspace=5mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt
+}{}
+
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterTitlestyles.tex>
+% \end{macrocode}
+
+% \subsection*{Color palettes}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterColorpalettes.tex>
+% \end{macrocode}
+% \begin{macrocode}
+\definecolorpalette{Default}{
+ % GrayBlueYellow
+ \definecolor{colorOne}{HTML}{DDDDDD}
+ \definecolor{colorTwo}{HTML}{0066A8}
+ \definecolor{colorThree}{HTML}{FCF0AD}
+}
+
+\definecolorpalette{BlueGrayOrange}{
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}
+
+\definecolorpalette{GreenGrayViolet}{
+ \definecolor{colorOne}{HTML}{A2E2C7}
+ \definecolor{colorTwo}{HTML}{56555A}
+ \definecolor{colorThree}{HTML}{C9AECF}
+}
+
+\definecolorpalette{PurpleGrayBlue}{
+ \definecolor{colorOne}{HTML}{AE0D45}
+ \definecolor{colorTwo}{HTML}{7F8897}
+ \definecolor{colorThree}{HTML}{006C9E}
+}
+
+\definecolorpalette{BrownBlueOrange}{
+ \definecolor{colorOne}{HTML}{8C7269}
+ \definecolor{colorTwo}{HTML}{A2C4D9}
+ \definecolor{colorThree}{HTML}{E89261}
+}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterColorpalettes.tex>
+% \end{macrocode}
+% \subsection*{Inner block styles}
+% \setcounter{CodelineNo}{0}
+% \begin{macrocode}
+%<*tikzposterInnerblockstyles.tex>
+% \end{macrocode}
+% \begin{macrocode}
+
+ % Options:
+ % titlewidth
+ % bodywidth
+ % titlewidthscale
+ % bodywidthscale
+ % titlecenter, titleleft, titleright
+ % titleoffsetx
+ % titleoffsety
+ % bodyoffsetx
+ % bodyoffsety
+ % bodyverticalshift
+ % roundedcorners
+ % linewidth
+ % titleinnersep
+ % bodyinnersep
+
+ % Parameter:
+ % \ifInnerblockHasTitle - boolean
+ % innerblocktitle - coordinate
+ % innerblockbody - coordinate
+ % \innerblockroundedcorners - number
+ % \innerblocklinewidth - length
+ % \innerblockbodyinnersep - length
+ % \innerblocktitleinnersep - length
+ % innerblockbodybgcolor - color
+ % innerblocktitlebgcolor - color
+ % framecolor - color
+
+\defineinnerblockstyle{Default}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=4pt,
+ titleinnersep=10pt, bodyinnersep=12pt
+}{
+ \begin{scope}[line width=\innerblocklinewidth, rounded
+ corners=\innerblockroundedcorners, solid]
+ \ifInnerblockHasTitle %
+ \draw[color=innerblocktitlebgcolor, fill=innerblocktitlebgcolor]
+ (innerblockbody.south west) rectangle (innerblocktitle.north east);
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \else
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineinnerblockstyle{Table}{
+ titlewidthscale=0.25, bodywidthscale=0.75, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=15, linewidth=3mm,
+ titleinnersep=15pt, bodyinnersep=15pt
+}{
+%
+ % minimum height should be the maximum of \TP@innerblocktitleheight and
+ % \TP@innerblockbodyheight
+ \node[minimum width=\TP@innerblocktitlewidth, minimum
+ height=\TP@innerblockbodyheight, anchor=center] (innerblocktitle) at
+ (\TP@innerblockcenter-0.5\TP@innerblockbodywidth+\TP@innerblocktitleoffsetx,
+ {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight+\TP@innerblocktitleoffsety})
+ {};%
+ %
+ \ifInnerblockHasTitle%
+ \node[minimum width=\TP@innerblockbodywidth, minimum
+ height=\TP@innerblockbodyheight, anchor=center] (innerblockbody) at
+ (\TP@innerblockcenter+0.5\TP@innerblocktitlewidth+\TP@innerblockbodyoffsetx,
+ {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight+\TP@innerblockbodyoffsety})
+ {};%
+ %
+ \else%
+ \node[minimum width=\TP@innerblockbodywidth, minimum
+ height=\TP@innerblockbodyheight, anchor=center] (innerblockbody) at
+ (\TP@innerblockcenter+\TP@innerblockbodyoffsetx,
+ {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight}) {};%
+ \fi
+%
+ \begin{scope}[rounded corners=\innerblockroundedcorners, line width=\innerblocklinewidth]
+ \ifInnerblockHasTitle
+ % the big rectangle
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblocktitle.north west) rectangle (innerblockbody.south east);%
+ \draw[color=innerblocktitlebgcolor] (innerblocktitle.south east) --
+ (innerblocktitle.north east); %
+ \else
+ % No title
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+ \defineinnerblockstyle{Basic}{
+ titlewidthscale=0.8, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=6mm,
+ bodyverticalshift=6mm, roundedcorners=14, linewidth=2pt,
+ titleinnersep=8pt, bodyinnersep=8pt
+}{
+ \draw[rounded corners=\innerblockroundedcorners, inner sep=\innerblockbodyinnersep, line width=\innerblocklinewidth, color=framecolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east); %
+ \ifInnerblockHasTitle%
+ \draw[rounded corners=\innerblockroundedcorners, inner sep=\innerblocktitleinnersep, line width=\innerblocklinewidth, color=framecolor, fill=innerblocktitlebgcolor]
+ (innerblocktitle.south west) rectangle (innerblocktitle.north east); %
+ \fi%
+}
+
+\defineinnerblockstyle{Minimal}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=1.5mm,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \begin{scope}[line width=\innerblocklinewidth, rounded corners=\innerblockroundedcorners]
+ \ifInnerblockHasTitle %
+ \draw[draw=none, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblocktitle.north east);
+ \draw[color=innerblocktitlebgcolor, loosely dashed]
+ (innerblocktitle.south west) -- (innerblocktitle.south east);%
+ \else
+ \draw[draw=none, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineinnerblockstyle{Envelope}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=1.3pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \begin{scope}[rounded corners=\innerblockroundedcorners, line width=\innerblocklinewidth,
+ drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3} ]
+ \ifInnerblockHasTitle
+ % the big rectangle
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor, drop shadow]
+ (innerblockbody.south west) rectangle (innerblocktitle.north east);%
+ \begin{scope}
+ \clip (innerblocktitle.south west) rectangle (innerblocktitle.north east);
+ % fading on top
+ \fill[rounded corners=0, path fading=south, fill=innerblocktitlebgcolor, opacity=.4]
+ ($(innerblocktitle.south west)-(0.1,0)$) rectangle ($(innerblocktitle.north east)+(0.1,0)$);
+ % the trapezium
+ \draw[draw=none, bottom color=innerblocktitlebgcolor, top
+ color=innerblocktitlebgcolor!85!] %
+ ($(innerblocktitle.north west)+(0.25,0)$) -- ($(innerblocktitle.north west)+(0.75,0)$) -- %
+ ($(innerblocktitle.south west)+(2.5,0)$) -- ($(innerblocktitle.south east)-(2.5,0)$) -- %
+ ($(innerblocktitle.north east)-(0.75,0)$) -- ($(innerblocktitle.north east)-(0.25,0)$) -- cycle;
+ \end{scope}
+ \else
+ % No title
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineinnerblockstyle{Corner}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=8, linewidth=1pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ % the shadow above the corner
+ \begin{scope}
+ \clip (innerblockbody.south west) rectangle (innerblocktitle.north east);
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-0.8cm, rotate
+ around={-20:($(innerblocktitle.north east)-(10,0)$)}}]
+ \fill[color=gray, path fading=north, opacity=0.8]%
+ ($(innerblocktitle.north east)-(10,1)$) rectangle ($(innerblocktitle.north east)+(2,2.3)$);
+ \end{scope}
+ \end{scope}
+ %
+ % the border
+ \def \border{%
+ [rounded corners=30] (innerblockbody.south west) -- (innerblocktitle.north west) %
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(9.4,0)$)
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(0,3.4)$)
+ [rounded corners=30] |- (innerblockbody.south west) -- cycle
+ }
+ \draw[line width=\innerblocklinewidth, color=innerblocktitlebgcolor, fill=innerblockbodybgcolor,
+ % drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3}
+ ] \border;
+ %
+ % the corner
+ \begin{scope}
+ \def \corner{ ($(innerblocktitle.north east)-(0,6)$) -- ($(innerblocktitle.north east)-(0,4.5)$) .. %
+ controls ($(innerblocktitle.north east)-(-0,2.7)$) and ($(innerblocktitle.north east)-(2.8,2.2)$)
+ .. ($(innerblocktitle.north east)-(3.8,4.6)$) %
+ .. controls ($(innerblocktitle.north east)-(8.6,0)$) .. ($(innerblocktitle.north east)-(11.4,0)$) %
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(9.4,0)$) %
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(0,3.4)$) %
+ [rounded corners=0] -- ($(innerblocktitle.north east)-(0,6)$)}
+ \draw[innerblocktitlebgcolor] \corner;
+ \clip \corner;
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-1.3cm, rotate
+ around={-23:($(innerblocktitle.north east)-(10,0)$)}}]
+ \fill[color=innerblocktitlebgcolor!90] ($(innerblocktitle.north east) - (10,2)$)
+ rectangle ($(innerblocktitle.north east) + (2,3.6)$); %
+ \fill[color=innerblocktitlebgcolor , path fading=south, opacity=1]
+ ($(innerblocktitle.north east) - (10,-1.2)$) rectangle ($(innerblocktitle.north east) + (2,1.6)$); %
+ \fill[color=innerblocktitlebgcolor , path fading=north, opacity=1]
+ ($(innerblocktitle.north east) - (10,-1.6)$) rectangle ($(innerblocktitle.north east) + (2,2.1)$);
+ \end{scope}
+ \end{scope}%
+}
+
+\defineinnerblockstyle{Slide}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=0pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \ifInnerblockHasTitle%
+ \draw[draw=none, left color=innerblocktitlebgcolor, right color=innerblockbodybgcolor]
+ (innerblocktitle.south west) rectangle (innerblocktitle.north east);
+ \fi%
+ \draw[draw=none, fill=innerblockbodybgcolor] %
+ (innerblockbody.north west) [rounded corners=30] -- (innerblockbody.south west) --
+ (innerblockbody.south east) [rounded corners=0]-- (innerblockbody.north east) -- cycle;
+}
+
+\defineinnerblockstyle{TornOut}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=-1.2cm, roundedcorners=0, linewidth=1pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \ifInnerblockHasTitle%
+ \coordinate (topright) at (innerblocktitle.north east);
+ \else
+ \coordinate (topright) at (innerblockbody.north east);
+ \fi%
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor,%
+ line width=\innerblocklinewidth, drop shadow={shadow xshift=0.2cm, shadow yshift=-0.2cm,opacity=0.3}, %
+ decorate, decoration={random steps,segment length=1.5cm,amplitude=0.15cm}
+ % decorate, decoration={penciline,amplitude=0.2cm}
+ ] (innerblockbody.south west) rectangle (topright);%
+}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</tikzposterInnerblockstyles.tex>
+% \end{macrocode}
+% \Finale
+\endinput
+
+
+
+
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposter.ins b/tex/.texmf/tex/latex/tikzposter/tikzposter.ins
new file mode 100644
index 0000000..6e2868b
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposter.ins
@@ -0,0 +1,68 @@
+%%
+%% Copyright (C) 2014 Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 2.0 of this license or (at your option) any later
+version. The latest version of this license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 2.0 or later is part of all distributions of
+LaTeX version 2013/12/01 or later.
+
+\endpreamble
+\generate{\file{tikzposter.cls}{\from{tikzposter.dtx}{tikzposter.cls}}}
+
+%\nopreamble
+%\nopostamble
+\generate{\file{tikzposterColorstyles.tex}{\from{tikzposter.dtx}{tikzposterColorstyles.tex}}}
+\generate{\file{tikzposterColorpalettes.tex}{\from{tikzposter.dtx}{tikzposterColorpalettes.tex}}}
+\generate{\file{tikzposter-template.tex}{\from{tikzposter.dtx}{tikzposter-template.tex}}}
+\generate{\file{tikzposter-example.tex}{\from{tikzposter.dtx}{tikzposter-example.tex}}}
+\generate{\file{tikzposterBackgroundstyles.tex}{\from{tikzposter.dtx}{tikzposterBackgroundstyles.tex}}}
+\generate{\file{tikzposterBlockstyles.tex}{\from{tikzposter.dtx}{tikzposterBlockstyles.tex}}}
+\generate{\file{tikzposterInnerblockstyles.tex}{\from{tikzposter.dtx}{tikzposterInnerblockstyles.tex}}}
+\generate{\file{tikzposterNotestyles.tex}{\from{tikzposter.dtx}{tikzposterNotestyles.tex}}}
+\generate{\file{tikzposterTitlestyles.tex}{\from{tikzposter.dtx}{tikzposterTitlestyles.tex}}}
+\generate{\file{tikzposterLayoutthemes.tex}{\from{tikzposter.dtx}{tikzposterLayoutthemes.tex}}}
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* tikzposter.cls}
+\Msg{* tikzposterColorstyles.tex}
+\Msg{* tikzposterColorpalettes.tex}
+\Msg{* tikzposterBackgroundstyles.tex}
+\Msg{* tikzposterBlockstyles.tex}
+\Msg{* tikzposterInnerblockstyles.tex}
+\Msg{* tikzposterNotestyles.tex}
+\Msg{* tikzposterTitlestyles.tex}
+\Msg{* tikzposterLayoutthemes.tex}
+\Msg{* To produce the documentation run the file}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+
+\endbatchfile
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposter.pdf b/tex/.texmf/tex/latex/tikzposter/tikzposter.pdf
new file mode 100644
index 0000000..43875aa
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposter.pdf
Binary files differ
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterBackgroundstyles.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterBackgroundstyles.tex
new file mode 100644
index 0000000..40da942
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterBackgroundstyles.tex
@@ -0,0 +1,81 @@
+%%
+%% This is file `tikzposterBackgroundstyles.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterBackgroundstyles.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+ % Parameters
+ % \textwidth - length
+ % \textheight - length
+ % \titlegraphicheight - length
+ % \titletotopverticalspace - length
+ % \titleinnersep - length
+ % backgroundcolor - color
+ % topright - coordinate
+ % bottomleft - coordinate
+
+\definebackgroundstyle{Default}{
+ \fill[inner sep=0pt, line width=0pt, color=backgroundcolor]%
+ (bottomleft) rectangle (topright);
+}
+
+\definebackgroundstyle{Rays}{
+ \draw[line width=0pt, top color=backgroundcolor!70, bottom
+ color=backgroundcolor!70!black] (bottomleft) rectangle (topright);
+ %
+ \begin{scope}
+ \foreach \a in {10,20,...,80}{%
+ \draw[backgroundcolor, line width=0.15cm](bottomleft) --
+ ($(bottomleft)!1!(bottomleft)+(\a:120)$);%
+ }
+ \foreach \i in {1,2,...,50}{%
+ \begin{scope}[shift={($(rand*60,rand*70)$)}]
+ \draw[backgroundcolor!50!, line width=0.1cm] (0,0) circle (4);
+ \end{scope}
+ }
+ \end{scope}
+}
+
+\definebackgroundstyle{VerticalGradation}{
+ \draw[line width=0pt, bottom color=backgroundcolor, top
+ color=backgroundcolor!60!white] (bottomleft) rectangle (topright);
+}
+
+\definebackgroundstyle{BottomVerticalGradation}{
+ \draw[draw=none, line width=0pt, bottom color=titlebgcolor, top
+ color=framecolor] (bottomleft) rectangle ($(bottomleft)+(\textwidth,3)$);
+}
+
+\definebackgroundstyle{Empty}{
+ %
+}
+
+
+
+\endinput
+%%
+%% End of file `tikzposterBackgroundstyles.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterBlockstyles.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterBlockstyles.tex
new file mode 100644
index 0000000..e1ec4ec
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterBlockstyles.tex
@@ -0,0 +1,225 @@
+%%
+%% This is file `tikzposterBlockstyles.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterBlockstyles.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+ % Options:
+ % titlewidthscale
+ % bodywidthscale
+ % titlecenter, titleleft, titleright
+ % titleoffsetx
+ % titleoffsety
+ % bodyoffsetx
+ % bodyoffsety
+ % bodyverticalshift
+ % roundedcorners
+ % linewidth
+ % titleinnersep
+ % bodyinnersep
+
+ % Parameter:
+ % \ifBlockHasTitle - boolean
+ % blocktitle - coordinate
+ % blockbody - coordinate
+ % \blockroundedcorners - number
+ % \blocklinewidth - length
+ % \blockbodyinnersep - length
+ % \blocktitleinnersep - length
+ % blockbodybgcolor - color
+ % blocktitlebgcolor - color
+ % framecolor - color
+
+ \defineblockstyle{Default}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=30, linewidth=0.4cm,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \begin{scope}[line width=\blocklinewidth, rounded corners=\blockroundedcorners]
+ \ifBlockHasTitle %
+ \draw[color=blocktitlebgcolor, fill=blocktitlebgcolor] (blockbody.south west) rectangle (blocktitle.north east);
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor] (blockbody.south west) rectangle (blockbody.north east);
+ \else
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor] (blockbody.south west) rectangle (blockbody.north east);
+ \fi
+ \end{scope}
+}
+
+ \defineblockstyle{Basic}{
+ titlewidthscale=0.8, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=15mm,
+ bodyverticalshift=15mm, roundedcorners=22, linewidth=5pt,
+ titleinnersep=8mm, bodyinnersep=8mm
+}{
+ \draw[rounded corners=\blockroundedcorners, inner sep=\blockbodyinnersep, line width=\blocklinewidth, color=framecolor, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blockbody.north east); %
+ \ifBlockHasTitle%
+ \draw[rounded corners=\blockroundedcorners, inner sep=\blocktitleinnersep, line width=\blocklinewidth, color=framecolor, fill=blocktitlebgcolor]
+ (blocktitle.south west) rectangle (blocktitle.north east); %
+ \fi%
+}
+
+\defineblockstyle{Minimal}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=0.2cm,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \begin{scope}[line width=\blocklinewidth, rounded corners=\blockroundedcorners]
+ \ifBlockHasTitle %
+ \draw[draw=none]%, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blocktitle.north east);
+ \draw[color=blocktitlebgcolor, loosely dashed]
+ (blocktitle.south west) -- (blocktitle.south east);%
+ \else
+ \draw[draw=none]%, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineblockstyle{Envelope}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=1.6pt,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \begin{scope}[rounded corners=\blockroundedcorners, line width=\blocklinewidth,
+ drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3} ]
+ \ifBlockHasTitle
+ % the big rectangle
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor, drop shadow]
+ (blockbody.south west) rectangle (blocktitle.north east);%
+ \begin{scope}
+ \clip (blocktitle.south west) rectangle (blocktitle.north east);
+ % fading on top
+ \fill[rounded corners=0, path fading=south, fill=blocktitlebgcolor, opacity=.4]
+ ($(blocktitle.south west)-(0.1,0)$) rectangle ($(blocktitle.north east)+(0.1,0)$);
+ % the trapezium
+ \draw[draw=none, bottom color=blocktitlebgcolor, top
+ color=blocktitlebgcolor!85!] %
+ ($(blocktitle.north west)+(0.25,0)$) -- ($(blocktitle.north west)+(0.75,0)$) -- %
+ ($(blocktitle.south west)+(2.5,0)$) -- ($(blocktitle.south east)-(2.5,0)$) -- %
+ ($(blocktitle.north east)-(0.75,0)$) -- ($(blocktitle.north east)-(0.25,0)$) -- cycle;
+ \end{scope}
+ \else
+ % No title
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor]
+ (blockbody.south west) rectangle (blockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineblockstyle{Corner}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=1.2pt,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ % the shadow above the corner
+ \begin{scope}
+ \clip (blockbody.south west) rectangle (blocktitle.north east);
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-0.8cm, rotate
+ around={-20:($(blocktitle.north east)-(10,0)$)}}]
+ \fill[color=gray, path fading=north, opacity=0.8]%
+ ($(blocktitle.north east)-(10,1)$) rectangle ($(blocktitle.north east)+(2,2.3)$);
+ \end{scope}
+ \end{scope}
+ %
+ % the border
+ \def \border{%
+ [rounded corners=30] (blockbody.south west) -- (blocktitle.north west) %
+ [rounded corners=30] -- ($(blocktitle.north east)-(9.4,0)$)
+ [rounded corners=30] -- ($(blocktitle.north east)-(0,3.4)$)
+ [rounded corners=30] |- (blockbody.south west) -- cycle
+ }
+ \draw[line width=\blocklinewidth, color=blocktitlebgcolor, fill=blockbodybgcolor,
+ % drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3}
+ ] \border;
+ %
+ % the corner
+ \begin{scope}
+ \def \corner{ ($(blocktitle.north east)-(0,6)$) -- ($(blocktitle.north east)-(0,4.5)$) .. %
+ controls ($(blocktitle.north east)-(-0,2.7)$) and ($(blocktitle.north east)-(2.8,2.2)$)
+ .. ($(blocktitle.north east)-(3.8,4.6)$) %
+ .. controls ($(blocktitle.north east)-(8.6,0)$) .. ($(blocktitle.north east)-(11.4,0)$) %
+ [rounded corners=30] -- ($(blocktitle.north east)-(9.4,0)$) %
+ [rounded corners=30] -- ($(blocktitle.north east)-(0,3.4)$) %
+ [rounded corners=0] -- ($(blocktitle.north east)-(0,6)$)}
+ \draw[blocktitlebgcolor] \corner;
+ \clip \corner;
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-1.3cm, rotate
+ around={-23:($(blocktitle.north east)-(10,0)$)}}]
+ \fill[color=blocktitlebgcolor!90] ($(blocktitle.north east) - (10,2)$)
+ rectangle ($(blocktitle.north east) + (2,3.6)$); %
+ \fill[color=blocktitlebgcolor , path fading=south, opacity=1]
+ ($(blocktitle.north east) - (10,-1.2)$) rectangle ($(blocktitle.north east) + (2,1.6)$); %
+ \fill[color=blocktitlebgcolor , path fading=north, opacity=1]
+ ($(blocktitle.north east) - (10,-1.6)$) rectangle ($(blocktitle.north east) + (2,2.1)$);
+ \end{scope}
+ \end{scope}%
+}
+
+\defineblockstyle{Slide}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=0pt, titleinnersep=1cm,
+ bodyinnersep=1cm
+}{
+ \ifBlockHasTitle%
+ \draw[draw=none, left color=blocktitlebgcolor, right color=blockbodybgcolor]
+ (blocktitle.south west) rectangle (blocktitle.north east);
+ \fi%
+ \draw[draw=none, fill=blockbodybgcolor] %
+ (blockbody.north west) [rounded corners=30] -- (blockbody.south west) --
+ (blockbody.south east) [rounded corners=0]-- (blockbody.north east) -- cycle;
+}
+
+\defineblockstyle{TornOut}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=-1.2cm, roundedcorners=0, linewidth=1.2pt,
+ titleinnersep=1cm, bodyinnersep=1cm
+}{
+ \ifBlockHasTitle%
+ \coordinate (topright) at (blocktitle.north east);
+ \else
+ \coordinate (topright) at (blockbody.north east);
+ \fi%
+ \draw[color=blocktitlebgcolor, fill=blockbodybgcolor,%
+ line width=\blocklinewidth, drop shadow={shadow xshift=0.2cm, shadow yshift=-0.2cm,opacity=0.3}, %
+ decorate, decoration={random steps,segment length=1.5cm,amplitude=0.15cm}
+ % decorate, decoration={penciline,amplitude=0.2cm}
+ ] (blockbody.south west) rectangle (topright);%
+}
+
+
+
+
+\endinput
+%%
+%% End of file `tikzposterBlockstyles.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterColorpalettes.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterColorpalettes.tex
new file mode 100644
index 0000000..e3f1043
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterColorpalettes.tex
@@ -0,0 +1,66 @@
+%%
+%% This is file `tikzposterColorpalettes.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterColorpalettes.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+
+
+\definecolorpalette{Default}{
+ % GrayBlueYellow
+ \definecolor{colorOne}{HTML}{DDDDDD}
+ \definecolor{colorTwo}{HTML}{0066A8}
+ \definecolor{colorThree}{HTML}{FCF0AD}
+}
+
+\definecolorpalette{BlueGrayOrange}{
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}
+
+\definecolorpalette{GreenGrayViolet}{
+ \definecolor{colorOne}{HTML}{A2E2C7}
+ \definecolor{colorTwo}{HTML}{56555A}
+ \definecolor{colorThree}{HTML}{C9AECF}
+}
+
+\definecolorpalette{PurpleGrayBlue}{
+ \definecolor{colorOne}{HTML}{AE0D45}
+ \definecolor{colorTwo}{HTML}{7F8897}
+ \definecolor{colorThree}{HTML}{006C9E}
+}
+
+\definecolorpalette{BrownBlueOrange}{
+ \definecolor{colorOne}{HTML}{8C7269}
+ \definecolor{colorTwo}{HTML}{A2C4D9}
+ \definecolor{colorThree}{HTML}{E89261}
+}
+
+\endinput
+%%
+%% End of file `tikzposterColorpalettes.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterColorstyles.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterColorstyles.tex
new file mode 100644
index 0000000..3a84e37
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterColorstyles.tex
@@ -0,0 +1,268 @@
+%%
+%% This is file `tikzposterColorstyles.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterColorstyles.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+\definecolorstyle{Default}{
+ % Define default colors
+ % GrayBlueYellow
+ \definecolor{colorOne}{HTML}{DDDDDD}
+ \definecolor{colorTwo}{HTML}{0066A8}
+ \definecolor{colorThree}{HTML}{FCE565}%FCF0AD}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!70!white}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+\definecolorstyle{Australia}{
+ % Define default colors
+ %GreenGrayViolet
+ \definecolor{colorOne}{HTML}{A2E2C7}
+ \definecolor{colorTwo}{HTML}{56555A}
+ \definecolor{colorThree}{HTML}{C9AECF}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne}
+ \colorlet{framecolor}{colorOne!50!colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+\definecolorstyle{Britain}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!40!white}
+ \colorlet{notefrcolor}{colorThree!60!white}
+ }
+
+\definecolorstyle{Sweden}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne!40!white}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{black}
+ \colorlet{titlebgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo!70!black}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white!90!colorTwo}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!50!white}
+ \colorlet{notefrcolor}{colorThree!50!white}
+ }
+
+\definecolorstyle{Spain}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{colorOne!55!white}
+ \colorlet{framecolor}{colorTwo}
+ % Title Colors
+ \colorlet{titlefgcolor}{white}
+ \colorlet{titlebgcolor}{colorOne}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorOne!80!black}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree!50!white}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+\definecolorstyle{Russia}{
+ % Define default colors
+ % BlueGrayOrange
+ \definecolor{colorOne}{HTML}{116699}
+ \definecolor{colorTwo}{HTML}{CCCCCC}
+ \definecolor{colorThree}{HTML}{CC6633}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{white}
+ \colorlet{framecolor}{colorOne!50!colorThree!30!}
+ % Title Colors
+ \colorlet{titlefgcolor}{white}
+ \colorlet{titlebgcolor}{colorOne!70!black}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorThree!80!colorTwo!80!black}
+ \colorlet{blocktitlefgcolor}{white}
+ \colorlet{blockbodybgcolor}{colorTwo!40}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorTwo!40}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{colorTwo}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorTwo}
+ \colorlet{notefrcolor}{colorTwo}
+ }
+
+\definecolorstyle{Denmark}{
+ % Define default colors
+ % PurpleGrayBlue
+ \definecolor{colorOne}{HTML}{AE0D45}
+ \definecolor{colorTwo}{HTML}{7F8897}
+ \definecolor{colorThree}{HTML}{C8512D}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{white}
+ \colorlet{framecolor}{white}
+ % Title Colors
+ \colorlet{titlebgcolor}{colorOne}
+ \colorlet{titlefgcolor}{white}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{colorTwo}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{white}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{colorThree}
+ \colorlet{innerblocktitlefgcolor}{white}
+ \colorlet{innerblockbodybgcolor}{white}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorTwo!50!white}
+ \colorlet{notefrcolor}{colorTwo!50!white}
+ }
+
+\definecolorstyle{Germany}{
+ % Define default colors
+ % BrownOrangeBlue
+ \definecolor{colorOne}{named}{black}
+ \definecolor{colorTwo}{HTML}{eeeeee}
+ \definecolor{colorThree}{HTML}{A2C4D9}
+}{
+ % Background Colors
+ \colorlet{backgroundcolor}{white}
+ \colorlet{framecolor}{black}
+ % Title Colors
+ \colorlet{titlebgcolor}{colorOne}
+ \colorlet{titlefgcolor}{black}
+ % Block Colors
+ \colorlet{blocktitlebgcolor}{black!20}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \colorlet{blockbodybgcolor}{black!3}
+ \colorlet{blockbodyfgcolor}{black}
+ % Innerblock Colors
+ \colorlet{innerblocktitlebgcolor}{white}
+ \colorlet{innerblocktitlefgcolor}{black}
+ \colorlet{innerblockbodybgcolor}{colorThree}
+ \colorlet{innerblockbodyfgcolor}{black}
+ % Note colors
+ \colorlet{notefgcolor}{black}
+ \colorlet{notebgcolor}{colorThree}
+ \colorlet{notefrcolor}{colorThree}
+ }
+
+
+
+
+\endinput
+%%
+%% End of file `tikzposterColorstyles.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterInnerblockstyles.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterInnerblockstyles.tex
new file mode 100644
index 0000000..ac9aee3
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterInnerblockstyles.tex
@@ -0,0 +1,274 @@
+%%
+%% This is file `tikzposterInnerblockstyles.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterInnerblockstyles.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+
+
+
+ % Options:
+ % titlewidth
+ % bodywidth
+ % titlewidthscale
+ % bodywidthscale
+ % titlecenter, titleleft, titleright
+ % titleoffsetx
+ % titleoffsety
+ % bodyoffsetx
+ % bodyoffsety
+ % bodyverticalshift
+ % roundedcorners
+ % linewidth
+ % titleinnersep
+ % bodyinnersep
+
+ % Parameter:
+ % \ifInnerblockHasTitle - boolean
+ % innerblocktitle - coordinate
+ % innerblockbody - coordinate
+ % \innerblockroundedcorners - number
+ % \innerblocklinewidth - length
+ % \innerblockbodyinnersep - length
+ % \innerblocktitleinnersep - length
+ % innerblockbodybgcolor - color
+ % innerblocktitlebgcolor - color
+ % framecolor - color
+
+\defineinnerblockstyle{Default}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=4pt,
+ titleinnersep=10pt, bodyinnersep=12pt
+}{
+ \begin{scope}[line width=\innerblocklinewidth, rounded
+ corners=\innerblockroundedcorners, solid]
+ \ifInnerblockHasTitle %
+ \draw[color=innerblocktitlebgcolor, fill=innerblocktitlebgcolor]
+ (innerblockbody.south west) rectangle (innerblocktitle.north east);
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \else
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineinnerblockstyle{Table}{
+ titlewidthscale=0.25, bodywidthscale=0.75, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=15, linewidth=3mm,
+ titleinnersep=15pt, bodyinnersep=15pt
+}{
+ % minimum height should be the maximum of \TP@innerblocktitleheight and
+ % \TP@innerblockbodyheight
+ \node[minimum width=\TP@innerblocktitlewidth, minimum
+ height=\TP@innerblockbodyheight, anchor=center] (innerblocktitle) at
+ (\TP@innerblockcenter-0.5\TP@innerblockbodywidth+\TP@innerblocktitleoffsetx,
+ {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight+\TP@innerblocktitleoffsety})
+ {};%
+ %
+ \ifInnerblockHasTitle%
+ \node[minimum width=\TP@innerblockbodywidth, minimum
+ height=\TP@innerblockbodyheight, anchor=center] (innerblockbody) at
+ (\TP@innerblockcenter+0.5\TP@innerblocktitlewidth+\TP@innerblockbodyoffsetx,
+ {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight+\TP@innerblockbodyoffsety})
+ {};%
+ %
+ \else%
+ \node[minimum width=\TP@innerblockbodywidth, minimum
+ height=\TP@innerblockbodyheight, anchor=center] (innerblockbody) at
+ (\TP@innerblockcenter+\TP@innerblockbodyoffsetx,
+ {-\TP@innerblocktitleheight-0.5\TP@innerblockbodyheight}) {};%
+ \fi
+ \begin{scope}[rounded corners=\innerblockroundedcorners, line width=\innerblocklinewidth]
+ \ifInnerblockHasTitle
+ % the big rectangle
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblocktitle.north west) rectangle (innerblockbody.south east);%
+ \draw[color=innerblocktitlebgcolor] (innerblocktitle.south east) --
+ (innerblocktitle.north east); %
+ \else
+ % No title
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+ \defineinnerblockstyle{Basic}{
+ titlewidthscale=0.8, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=6mm,
+ bodyverticalshift=6mm, roundedcorners=14, linewidth=2pt,
+ titleinnersep=8pt, bodyinnersep=8pt
+}{
+ \draw[rounded corners=\innerblockroundedcorners, inner sep=\innerblockbodyinnersep, line width=\innerblocklinewidth, color=framecolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east); %
+ \ifInnerblockHasTitle%
+ \draw[rounded corners=\innerblockroundedcorners, inner sep=\innerblocktitleinnersep, line width=\innerblocklinewidth, color=framecolor, fill=innerblocktitlebgcolor]
+ (innerblocktitle.south west) rectangle (innerblocktitle.north east); %
+ \fi%
+}
+
+\defineinnerblockstyle{Minimal}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=1.5mm,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \begin{scope}[line width=\innerblocklinewidth, rounded corners=\innerblockroundedcorners]
+ \ifInnerblockHasTitle %
+ \draw[draw=none, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblocktitle.north east);
+ \draw[color=innerblocktitlebgcolor, loosely dashed]
+ (innerblocktitle.south west) -- (innerblocktitle.south east);%
+ \else
+ \draw[draw=none, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineinnerblockstyle{Envelope}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=20, linewidth=1.3pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \begin{scope}[rounded corners=\innerblockroundedcorners, line width=\innerblocklinewidth,
+ drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3} ]
+ \ifInnerblockHasTitle
+ % the big rectangle
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor, drop shadow]
+ (innerblockbody.south west) rectangle (innerblocktitle.north east);%
+ \begin{scope}
+ \clip (innerblocktitle.south west) rectangle (innerblocktitle.north east);
+ % fading on top
+ \fill[rounded corners=0, path fading=south, fill=innerblocktitlebgcolor, opacity=.4]
+ ($(innerblocktitle.south west)-(0.1,0)$) rectangle ($(innerblocktitle.north east)+(0.1,0)$);
+ % the trapezium
+ \draw[draw=none, bottom color=innerblocktitlebgcolor, top
+ color=innerblocktitlebgcolor!85!] %
+ ($(innerblocktitle.north west)+(0.25,0)$) -- ($(innerblocktitle.north west)+(0.75,0)$) -- %
+ ($(innerblocktitle.south west)+(2.5,0)$) -- ($(innerblocktitle.south east)-(2.5,0)$) -- %
+ ($(innerblocktitle.north east)-(0.75,0)$) -- ($(innerblocktitle.north east)-(0.25,0)$) -- cycle;
+ \end{scope}
+ \else
+ % No title
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor]
+ (innerblockbody.south west) rectangle (innerblockbody.north east);
+ \fi
+ \end{scope}
+}
+
+\defineinnerblockstyle{Corner}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=8, linewidth=1pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ % the shadow above the corner
+ \begin{scope}
+ \clip (innerblockbody.south west) rectangle (innerblocktitle.north east);
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-0.8cm, rotate
+ around={-20:($(innerblocktitle.north east)-(10,0)$)}}]
+ \fill[color=gray, path fading=north, opacity=0.8]%
+ ($(innerblocktitle.north east)-(10,1)$) rectangle ($(innerblocktitle.north east)+(2,2.3)$);
+ \end{scope}
+ \end{scope}
+ %
+ % the border
+ \def \border{%
+ [rounded corners=30] (innerblockbody.south west) -- (innerblocktitle.north west) %
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(9.4,0)$)
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(0,3.4)$)
+ [rounded corners=30] |- (innerblockbody.south west) -- cycle
+ }
+ \draw[line width=\innerblocklinewidth, color=innerblocktitlebgcolor, fill=innerblockbodybgcolor,
+ % drop shadow={shadow xshift=0.3cm, shadow yshift=-0.3cm, opacity=0.3}
+ ] \border;
+ %
+ % the corner
+ \begin{scope}
+ \def \corner{ ($(innerblocktitle.north east)-(0,6)$) -- ($(innerblocktitle.north east)-(0,4.5)$) .. %
+ controls ($(innerblocktitle.north east)-(-0,2.7)$) and ($(innerblocktitle.north east)-(2.8,2.2)$)
+ .. ($(innerblocktitle.north east)-(3.8,4.6)$) %
+ .. controls ($(innerblocktitle.north east)-(8.6,0)$) .. ($(innerblocktitle.north east)-(11.4,0)$) %
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(9.4,0)$) %
+ [rounded corners=30] -- ($(innerblocktitle.north east)-(0,3.4)$) %
+ [rounded corners=0] -- ($(innerblocktitle.north east)-(0,6)$)}
+ \draw[innerblocktitlebgcolor] \corner;
+ \clip \corner;
+ \begin{scope}[transform canvas={xshift=-1cm, yshift=-1.3cm, rotate
+ around={-23:($(innerblocktitle.north east)-(10,0)$)}}]
+ \fill[color=innerblocktitlebgcolor!90] ($(innerblocktitle.north east) - (10,2)$)
+ rectangle ($(innerblocktitle.north east) + (2,3.6)$); %
+ \fill[color=innerblocktitlebgcolor , path fading=south, opacity=1]
+ ($(innerblocktitle.north east) - (10,-1.2)$) rectangle ($(innerblocktitle.north east) + (2,1.6)$); %
+ \fill[color=innerblocktitlebgcolor , path fading=north, opacity=1]
+ ($(innerblocktitle.north east) - (10,-1.6)$) rectangle ($(innerblocktitle.north east) + (2,2.1)$);
+ \end{scope}
+ \end{scope}%
+}
+
+\defineinnerblockstyle{Slide}{
+ titlewidthscale=1, bodywidthscale=1, titleleft,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=0pt, roundedcorners=0, linewidth=0pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \ifInnerblockHasTitle%
+ \draw[draw=none, left color=innerblocktitlebgcolor, right color=innerblockbodybgcolor]
+ (innerblocktitle.south west) rectangle (innerblocktitle.north east);
+ \fi%
+ \draw[draw=none, fill=innerblockbodybgcolor] %
+ (innerblockbody.north west) [rounded corners=30] -- (innerblockbody.south west) --
+ (innerblockbody.south east) [rounded corners=0]-- (innerblockbody.north east) -- cycle;
+}
+
+\defineinnerblockstyle{TornOut}{
+ titlewidthscale=1, bodywidthscale=1, titlecenter,
+ titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,
+ bodyverticalshift=-1.2cm, roundedcorners=0, linewidth=1pt,
+ titleinnersep=10pt, bodyinnersep=10pt
+}{
+ \ifInnerblockHasTitle%
+ \coordinate (topright) at (innerblocktitle.north east);
+ \else
+ \coordinate (topright) at (innerblockbody.north east);
+ \fi%
+ \draw[color=innerblocktitlebgcolor, fill=innerblockbodybgcolor,%
+ line width=\innerblocklinewidth, drop shadow={shadow xshift=0.2cm, shadow yshift=-0.2cm,opacity=0.3}, %
+ decorate, decoration={random steps,segment length=1.5cm,amplitude=0.15cm}
+ % decorate, decoration={penciline,amplitude=0.2cm}
+ ] (innerblockbody.south west) rectangle (topright);%
+}
+
+\endinput
+%%
+%% End of file `tikzposterInnerblockstyles.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterLayoutthemes.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterLayoutthemes.tex
new file mode 100644
index 0000000..10ccbaa
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterLayoutthemes.tex
@@ -0,0 +1,117 @@
+%%
+%% This is file `tikzposterLayoutthemes.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterLayoutthemes.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+\definelayouttheme{Default}{
+ \usecolorstyle{Default}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Default}
+ \useblockstyle{Default}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Rays}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Britain}
+ \usebackgroundstyle{Rays}
+ \usetitlestyle{Default}
+ \useblockstyle{Default}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Corner}
+}
+
+\definelayouttheme{Basic}{
+ \usecolorstyle[colorPalette=GreenGrayViolet]{Australia}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Basic}
+ \useblockstyle{Basic}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Simple}{
+ \usecolorstyle[colorPalette=PurpleGrayBlue]{Denmark}
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Default}
+ \useblockstyle{Minimal}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Envelope}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Spain}
+ \usebackgroundstyle{VerticalGradation}
+ \usetitlestyle{Envelope}
+ \useblockstyle{Envelope}
+ \useinnerblockstyle{Default}
+ \usenotestyle{VerticalShading}
+ }
+
+\definelayouttheme{Wave}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Spain}
+ \colorlet{blocktitlefgcolor}{colorOne}
+ \usebackgroundstyle{VerticalGradation}
+ \usetitlestyle{Wave}
+ \useblockstyle{Corner}
+ \useinnerblockstyle{Default}
+ \usenotestyle{VerticalShading}
+ }
+
+\definelayouttheme{Board}{
+ \usecolorstyle[colorPalette=BlueGrayOrange]{Sweden}
+ \usebackgroundstyle{VerticalGradation}
+ \usetitlestyle{Empty}
+ \useblockstyle{TornOut}
+ \useinnerblockstyle{Default}
+ \usenotestyle{Sticky}
+}
+
+\definelayouttheme{Autumn}{
+ \usebackgroundstyle{Default}
+ \usetitlestyle{Empty}
+ \useblockstyle{Slide}
+ \useinnerblockstyle{Table}
+ \usenotestyle{Default}
+}
+
+\definelayouttheme{Desert}{
+ \usecolorstyle[colorPalette=GrayOrangeBlue]{Russia}
+ \usebackgroundstyle{BottomVerticalGradation}
+ \usetitlestyle{VerticalShading}
+ \useblockstyle{Slide}
+ \useinnerblockstyle{Table}
+ \usenotestyle{Default}
+ }
+
+
+
+
+\endinput
+%%
+%% End of file `tikzposterLayoutthemes.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterNotestyles.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterNotestyles.tex
new file mode 100644
index 0000000..9e558f8
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterNotestyles.tex
@@ -0,0 +1,226 @@
+%%
+%% This is file `tikzposterNotestyles.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterNotestyles.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+
+ % Options:
+ % targetoffsetx
+ % targetoffsety
+ % angle
+ % radius
+ % width
+ % connection
+ % rotate
+ % roundedcorners
+ % linewidth
+ % innersep
+
+ % Parameter:
+ % \ifNoteHasConnection - boolean
+ % notecenter - coordinate
+ % notetarget - coordinate
+ % \noterotate - number
+ % \noteroundedcorners - number
+ % \notelinewidth - length
+ % \noteinnersep - length
+ % notebgcolor - color
+ % notefgcolor - color
+ % notefrcolor - color
+
+\definenotestyle{Default}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=8cm,
+ connection=false, rotate=0, roundedcorners=20, linewidth=0pt, innersep=1cm
+}{
+ \ifNoteHasConnection %% callout note
+ \draw[color=notefrcolor, fill=notebgcolor]%
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) --cycle; %
+ %
+ \fi
+ % the body of the note
+ \draw[color=notefrcolor, fill=notebgcolor, rounded
+ corners=\noteroundedcorners] (notecenter.south west) -- (notecenter.north
+ west) -- (notecenter.north east) -- (notecenter.south east) -- cycle;
+}
+
+ \definenotestyle{Corner}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=12cm,
+ connection=false, rotate=0, roundedcorners=20, linewidth=0pt, innersep=1cm
+}{
+ \ifNoteHasConnection % callout note
+ \draw[color=notebgcolor, fill=notebgcolor, drop shadow={shadow
+ xshift=0.2cm, shadow yshift=-0.2cm, opacity=0.3}] %
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) --cycle; %
+ \fi
+ % the body of the note
+ % the shape
+ \def \border{%
+ [rounded corners=0] (notecenter.south west) -- (notecenter.north west) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north
+ east)-(\noterotate:4.7)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north
+ east)+(-90+\noterotate:1.7)$) %
+ [rounded corners=0] -- (notecenter.south east) -- (notecenter.south
+ west) -- cycle%
+ }
+ \fill[color=notebgcolor] \border;
+ \coordinate (x) at (\noterotate:1);
+ \coordinate (y) at (\noterotate-90:1);
+ % the shadow of the corner
+ \fill[color=gray,opacity=0.3] ($(notecenter.north east)+3*(y)$) --
+ ($(notecenter.north east)+2.5*(y)$) .. %
+ controls ($(notecenter.north east)+1.25*(y)$) and ($(notecenter.north
+ east)-1.5*(x)+1.25*(y)$) .. %
+ ($(notecenter.north east)-1.9*(x)+2.5*(y)$) .. %
+ controls ($(notecenter.north east)-4.5*(x)$) .. %
+ ($(notecenter.north east)-5.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)-4.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)+1.7*(y)$) %
+ [rounded corners=0] -- ($(notecenter.north east)+3*(y)$);
+ % the corner
+ \fill[color=notefrcolor] %
+ ($(notecenter.north east)+3*(y)$) -- ($(notecenter.north east)+2.5*(y)$) .. %
+ controls ($(notecenter.north east)+1.25*(y)$) and ($(notecenter.north
+ east)-1.5*(x)+1.25*(y)$) .. %
+ ($(notecenter.north east)-1.9*(x)+2.3*(y)$) .. %
+ controls ($(notecenter.north east)-4.5*(x)$) .. %
+ ($(notecenter.north east)-5.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)-4.7*(x)$) %
+ [rounded corners=\noteroundedcorners] -- ($(notecenter.north east)+1.7*(y)$) %
+ [rounded corners=0] -- ($(notecenter.north east)+3*(y)$);
+}
+
+ \definenotestyle{VerticalShading}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=8cm,
+ connection=false, rotate=0, roundedcorners=20, linewidth=1pt, innersep=1cm
+}{
+ \ifNoteHasConnection % callout note
+ % the shadow
+ \begin{scope}[opacity=0.3]
+ \begin{pgftransparencygroup}
+ \coordinate (shadowshift) at (0.2cm,-0.2cm); \fill%
+ ($(notetarget)+(shadowshift)$) --
+ ($(notetarget)!1!4:(notecenter.center)+(shadowshift)$) --
+ ($(notetarget)!1!-4:(notecenter.center)+(shadowshift)$) --cycle; %
+ \fill[rounded corners=\noteroundedcorners] %
+ ($(notecenter.south west)+(shadowshift)$) -- ($(notecenter.north
+ west)+(shadowshift)$) -- ($(notecenter.north east)+(shadowshift)$)
+ -- ($(notecenter.south east)+(shadowshift)$) -- cycle;
+ \end{pgftransparencygroup}
+ \end{scope}
+ %% the main drawing
+ %
+ %% the border
+ \draw[color=notefrcolor, line width=\notelinewidth*2]%
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) -- cycle;%
+ \draw[color=notefrcolor, line width=\notelinewidth*2, rounded
+ corners=\noteroundedcorners]%
+ (notecenter.south west) -- (notecenter.north west) --
+ (notecenter.north east) -- (notecenter.south east) -- cycle; %
+ %
+ %% the filling (vertical shading), shared between the note and the connection
+ \begin{scope}
+ \node[fit=(notetarget)(notecenter.south west)(notecenter.south east)
+ (notecenter.north east) (notecenter.north west), inner sep=+0pt]
+ (box) {};%
+ %
+ \clip (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) -- cycle%
+ [rounded corners=\noteroundedcorners] (notecenter.south west) --
+ (notecenter.north west) -- (notecenter.north east) --
+ (notecenter.south east) -- cycle;
+ %
+ \draw[draw=none, color=notefrcolor, top color=notebgcolor!60, bottom
+ color=notebgcolor] %
+ (box.south west) rectangle (box.north east);
+ \end{scope}
+ %
+ \else % the simple note
+ \begin{scope}[drop shadow={shadow xshift=0.2cm, shadow yshift=-0.2cm,
+ opacity=0.3}]
+ \draw[line width=\notelinewidth, rounded corners=\noteroundedcorners,
+ color=notefrcolor, top color=notebgcolor!60, bottom color=notebgcolor,
+ drop shadow] %
+ (notecenter.south west) -- (notecenter.north west) -- (notecenter.north
+ east) -- (notecenter.south east) -- cycle;
+ \end{scope}
+ \fi
+}
+
+ \definenotestyle{Sticky}{
+ targetoffsetx=0pt, targetoffsety=0pt, angle=0, radius=8cm, width=8cm,
+ connection=false, rotate=0, roundedcorners=0, linewidth=0pt, innersep=1cm
+}{
+ \ifNoteHasConnection %% callout note
+ \draw[color=notefrcolor, fill=notebgcolor, drop shadow={shadow
+ xshift=0.2cm, shadow yshift=-0.2cm, opacity=0.3}] %
+ (notetarget) -- ($(notetarget)!1!4:(notecenter.center)$) --
+ ($(notetarget)!1!-4:(notecenter.center)$) --cycle; %
+ \fi
+ % the body of the note
+ % shadow
+ \draw[draw=none, fill=gray, opacity=0.3]
+ ($(notecenter.north east)+(-0.5,0)$) [rounded corners=40]--%
+ (notecenter.north west) [rounded corners=0] -- %
+ ($(notecenter.south west)$) .. %
+ controls ($0.2*(notecenter.south west) + 0.8*(notecenter.south east)$) .. %
+ ($(notecenter.south east)+(-0.2,0.3)$) .. %
+ controls ($0.75*(notecenter.south east) + 0.25*(notecenter.north east) - (0.5,0)$) .. %
+ ($(notecenter.north east)+(-0.5,0)$);
+ % the shape
+ \def \border{%
+ ($(notecenter.north east)+(-0.5,0)$) [rounded corners=40]--%
+ (notecenter.north west) [rounded corners=0] -- %
+ ($(notecenter.south west)$) .. %
+ controls ($0.2*(notecenter.south west) + 0.8*(notecenter.south east)$) .. %
+ ($(notecenter.south east)+(0,0.7)$) .. %
+ controls ($0.75*(notecenter.south east) +0.25*(notecenter.north east) -(0.5,0)$) .. %
+ ($(notecenter.north east)+(-0.5,0)$)%
+ }%
+ \draw[color=notefrcolor, fill=notebgcolor]
+ \border;
+ % the shading in the left top corner
+ \begin{scope}
+ \clip \border; %
+ \begin{scope}[transform canvas={rotate
+ around={\noterotate+15:(notecenter.north west)}}]
+ \fill[notebgcolor!60!black, path fading=south, opacity=0.6]%
+ (notecenter.north west) -- +(-3,0) |- ($(notecenter.north west) + (0,-1.2)$)
+ -- ($(notecenter.north west) + (4,-1.2)$) |- ($(notecenter.north west)$);
+ \end{scope}
+ \end{scope}
+}
+
+
+
+\endinput
+%%
+%% End of file `tikzposterNotestyles.tex'.
diff --git a/tex/.texmf/tex/latex/tikzposter/tikzposterTitlestyles.tex b/tex/.texmf/tex/latex/tikzposter/tikzposterTitlestyles.tex
new file mode 100644
index 0000000..f536938
--- /dev/null
+++ b/tex/.texmf/tex/latex/tikzposter/tikzposterTitlestyles.tex
@@ -0,0 +1,176 @@
+%%
+%% This is file `tikzposterTitlestyles.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tikzposter.dtx (with options: `tikzposterTitlestyles.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2014 by Pascal Richter, Elena Botoeva, Richard Barnard, and Dirk Surmann
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 2.0 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 2.0 or later is part of all distributions of
+%% LaTeX version 2013/12/01 or later.
+%%
+
+
+
+
+
+
+
+
+
+
+ % width
+ % roundedcorners
+ % linewidth
+ % innersep
+ % titletotopverticalspace
+ % titletoblockverticalspace
+ % titlegraphictotitledistance
+ % titletextscale
+
+ % Parameter:
+ % \textwidth - length
+ % \textheight - length
+ % \titlewidth - length
+ % \titlegraphicheight - length
+ % \titlelinewidth - length
+ % \titleinnersep - length
+ % \titleposleft, \titleposright, \titleposbottom, \titlepostop - length
+ % \titletotopverticalspace - length
+ % titlebgcolor - color
+
+\definetitlestyle{Default}{
+ width=600mm, roundedcorners=30, linewidth=0.4cm, innersep=1cm,
+ titletotopverticalspace=15mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt, titletextscale=1
+}{
+ \begin{scope}[line width=\titlelinewidth, rounded corners=\titleroundedcorners]
+ \draw[color=framecolor, fill=titlebgcolor]%
+ (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop);
+ \end{scope}
+}
+
+\definetitlestyle{Basic}{
+ width=770mm, roundedcorners=0, linewidth=0pt, innersep=10pt,
+ titletotopverticalspace=20mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=25mm, titletextscale=1
+}{
+ \coordinate (topright) at (0.5\textwidth-0.5\titlelinewidth, 0.5\textheight-0.5\titlelinewidth);
+ \coordinate (bottomleft) at (-0.5\textwidth+0.5\titlelinewidth, 0.5\textheight-\titlegraphicheight-0.5\titlelinewidth-2\titletotopverticalspace-2\titleinnersep);
+ \draw[line width=\titlelinewidth, inner sep=\titleinnersep, fill=titlebgcolor] (bottomleft) rectangle (topright);
+}
+
+\definetitlestyle{Envelope}{
+ 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, bottom color=blocktitlebgcolor!90!black, %
+ top color=titlebgcolor!90] %
+ (topleft) -- ($(topleft)-0.2*(head)$) .. controls ($(topleft)-(head)+(1,0)$)
+ .. ($(topleft)-(head)+0.2*(lefttoright)$) --
+ ($(topleft)-(head)+0.8*(lefttoright)$) .. controls ($(topright)-(head)-(1,0)$)
+ .. %
+ ($(topright)-0.2*(head)$) -- (topright) -- cycle;
+ %
+ \draw[draw=none, right color=white, left color=blocktitlebgcolor]
+ ($(topleft)-(head)+0.8*(lefttoright)$) .. controls
+ ($(topleft)-(head)+0.92*(lefttoright)+(0,0.7)$) and %
+ ($(topright)- 0.13*(lefttoright)$) .. %
+ (topright) .. controls %
+ ($(topright)- 0.11*(lefttoright)$) and%
+ ($(topleft)-(head)+0.95*(lefttoright)$) .. %
+ ($(topleft)-(head)+0.82*(lefttoright)$);
+ %
+ \draw[draw=none, right color=white, left color=blocktitlebgcolor]
+ ($(topleft)-(head)+0.83*(lefttoright)$) .. controls
+ ($(topleft)-(head)+0.97*(lefttoright)+(0,0.2)$) and %
+ ($(topright)- 0.08*(lefttoright)$) .. %
+ (topright) .. controls %
+ ($(topright)- 0.06*(lefttoright)$) and %
+ ($(topleft)-(head)+0.99*(lefttoright)$) .. %
+ ($(topleft)-(head)+0.85*(lefttoright)$); %
+}
+
+\definetitlestyle{Wave}{
+ 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}
+}
+
+\definetitlestyle{VerticalShading}{
+ width=\paperwidth, roundedcorners=0, linewidth=0pt, innersep=1.5cm,
+ titletotopverticalspace=0mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt, titletextscale=1
+}{
+ \draw[draw=none, bottom color=framecolor, top color=titlebgcolor]%
+ (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop); %
+}
+
+\definetitlestyle{Filled}{
+ width=\paperwidth, roundedcorners=0, linewidth=0pt, innersep=1.5cm,
+ titletotopverticalspace=0mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt
+}{
+ \draw[draw=none, fill=titlebgcolor]%
+ (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop); %
+}
+
+\definetitlestyle{Empty}{
+ width=750mm, roundedcorners=0, linewidth=0pt, innersep=8mm,
+ titletotopverticalspace=5mm, titletoblockverticalspace=20mm,
+ titlegraphictotitledistance=10pt
+}{}
+
+
+\endinput
+%%
+%% End of file `tikzposterTitlestyles.tex'.