From fb4a0bccf8c515f754cc06026c436b01194123e3 Mon Sep 17 00:00:00 2001 From: zssherman Date: Wed, 19 Feb 2020 17:12:10 -0600 Subject: [PATCH 1/3] DOC: Updated cheatsheet to have ARM-DOE instead of ANL-DIGR --- guides/act_cheatsheet.pdf | Bin 67609 -> 67607 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/guides/act_cheatsheet.pdf b/guides/act_cheatsheet.pdf index 5855aaaa49bbaa7dd06c8eb14f09c960adff3184..b9c51af184fbe4624d40afa21a8391de690ff2aa 100644 GIT binary patch delta 6526 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 delta 6467 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 From 644f3e5e4160220b1b68a72baea2e567e51c43e7 Mon Sep 17 00:00:00 2001 From: zssherman Date: Wed, 19 Feb 2020 19:25:21 -0600 Subject: [PATCH 2/3] DOC: More changes from ANL-DIGR to ARM-DOE. --- guides/act_cheatsheet.pdf | Bin 67607 -> 67603 bytes guides/act_cheatsheet.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/act_cheatsheet.pdf b/guides/act_cheatsheet.pdf index b9c51af184fbe4624d40afa21a8391de690ff2aa..127b9f5ad74c059247cece075b01a887be10c966 100644 GIT binary patch delta 9375 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 Wf_%xA>5Uo^jClg`>;Gncc>fPfGx7`o delta 9377 zcmbuFRZ|=c)T9~Q8Qdj6umFR*ySoG%++7EP3>G}tpuwHs4ncxD1b3IpF1o-&)1^Fy2 zEUowiEI2u>`S{Jb1ughs8vrI+U5U^l0(u`HJu_&ykfGf;3{~_ir^eL{e^rw+k>J0iUfg(W5ccGu4wwWA+wijbOX# zviTUlvv$YH0S8w!in$HDL}-F?(TItmdwO|Tn>(ZXu1=afdaku4zllP>R`^s7`4P?_ zqWx3Q1v?L^*)+f=l6*Jk7qj$PVhXL}nYD14g)_T@$oVBgo3fYV52pcpPCWktH|#X1 zZPgPGrvfg;U*j}lI(g7wz7eR3qT&pI?|-sZVAI$AGz=_|cj3uv_s`HB5fy0=y=JJb zXJ}pIoIs4V%?R>);mRMCpeMB1#ec^rhg*pc1QB4FK2oL5W%UBC#+tkdhr9=H27{H) zVR_Rhxw~MHRD$B=wQc4VoCmrftd+uh5Cyd2Uhm zMBlT>OU$x?SeT3gdM`AcLyCEv@PSGZp29Fxf0l31bz)3@VIceA3<_MmJjIH!Et`aG z<-YLYzb~BWT1TKMbLKuqjxR@&swKYMWu2zpeZoSRQb)CrvO(j#+9jB)rQWw1b*U5b ziw|enlNkL{Rvl@*(@lp6Dc{VeI&s1^h(NP7-b8Hz#Xvj@e#u~GR)`xPEUn4x3c1J zcTtqCZf?F^g#YGq=amb5Iv2NnACHl)R)p&h*&Rs`QL*!{+D=eEluV@R+I7`X1wLtj ziFj635!&-cJ)qRt-gCb#Aq%^zdX$r9-r)l1c0c`&=sP)J2$`M=c4KAKzLhE(wpB_S;+ z8b5Q-Uyrc%4sy4`{FUPp$XW6ATZ9_Z<>XmKbfPc4D%9IW#xW<7KHnoU;2#Ys{<>|g9u2JUN+&HDR-JhU+!N;jj9z30QL;*4wV23Qou{k%(k z0QG25qR^hrFUK`J{4FJ0a&Eh^rshbcfSITiEkyJ4cPnTY0V!ON23$o}vd&HtJY3HO z4dQOH2E)9vTF9qCdd_47Oapfn2!DkzAfkF$CCnxiP9|I0J*Ud>(5lx4Nuwu>%g6nQ z;Vzl}BkoohDY8678XXTtAR=}gka+E6W^$y74oxm3xeI;xRR3GQ?I5cSIVTp*{*d|1 zh%-jTiJKoYm=ABlieXp|Rb!_=Mti#`y||h8)v48F76a&B z*iZ2`a0KJtDagJbK70Tm%*i z9&`qhW1-rmRwKu|YkceIQ6L^s)6PRo!Uyc2|9YZ$<;IG2!=rTk!T=taz$}=+rM9K_ zBE1@6Rrxfp+8P(FUG!z&PMAlTEEQwV)H2ssc~CrM*g6X{egd$fpGt{;a8FFcRG}g{W(K=#UUGH@D zf4?IhXpz3!#j4$GXD_Te#jP80msLi$tTbx*&BOq5&LEu-Z~efa7@*J>8@}#I=t&`- zYwk!?>E{ zh@prCg#*a#;08pY9H%pkIshE)KvE_$5#|Rm>@zl*RxwqCxLq721gdneA$tk0Fu|8vqxKW<`1=AsB%X%C`#zw&1i{XPQXiZ=x$Fk>>M+>;^s{`MP?ohuj-_ zS-Od9z{A^kE4>ttpdo8$lh?Q@Arc2 zn?GXWZ|*qHrI|D~KJ>~$mz>uQhlfuaI+j6QohuaG0q-tBPve!At63zTWm4VOwKV?q zjRsn-?RUI?e7e}*Ok6%H&xe-_=FP|bTD0#~{0TrIP|~~8q3dS48n@ZHZ8sm^6Ld`V z{lJRT9;`J${&oQ_@mrW5?6oKwBmvSmRf(E5(R_cHldr!TIx^;jZbw{^yGO9;Cb8)} z%9gVe0x$F$ljiI9EhnDwu^V>xa<1iAHDhsI#UaGs$|*8Vf=->qg;(FXQE8RB86*5q zigYTaOGr{o@2>9KU%Xygs_yfCS-6b{8dMvP%cnTqR~~2p1PvPMKM8+s2q8=e|A?=$ zB9*Vf8(JHr^5u6v6x?7HBD4ahojj|KYGD6C)IY}mH_gf&k2D{;IFodcNHVGIFd`!u zp7jQN%o%NgBgCVcV9n5yp+<2-BKGKRmFs{w1|oV2rOx|&h^r?|4_E=7{}GD{?&iyO zenI_1S+okuYw#?oy=*4ca(8pJv=|zJsCP@Ch@?D`D2l~GEw^Hm5%2JNZQT*+Fqx=R z1N6#1uNJ{7aZB2fF5l8NC>S^Bi)~AA)Z2U0Zle_2FN3|tS=UWik8^2U&aSgsHk41E z+gHx{rzl5O`pfM3JdCechUb@37f(gLdfMTj9d1{u>gm-46(myCt>%med#5^UzN_o$ zZ?^yR(CplRno1C^4UKV!t4sgFe&DfrP3mF9X2OvCpm&Ne9IRAFx zBs~I`Z-Yr7+(rs>+Ps!#;fW`FY!@dkKS5bwk10mF?j6CSn<)luei+xBLe{zzB&8YH zKJcozWhDPXb{a$^zZz+oGXp_cB;6(NZx3NWG*NOlnz{ZA)bBJ9eLe3mJ(UPa$TtB z(x2X7eJnOz!|_v022j=}tGz-vUGHQ-c$Zxf(iP}=b#jPP+xb_U-|JTnzyERlxX@pb zf<=3a=N~R+8RHcOR2}UtqpLN`lv$!~TEdp(?i#|Dp8oXn*d;$AftS3%{Q2v8b&D)$ z*G=+A|C!ODH=HPSJZfC-$+DyscMH0&E&<C>=dAJ zB-l5og98`=6cv`D1T+7n%at0~2qdwgakPO|W!g@>nxhNlck7`fLI0gmd})F*4z&H= z=nqQx%T`T_2nw@|5j50F&Oc{guk+r$1PI{2(9x#F7`WI0W8f+~iz4C@&R__1k$yo7 zj!^cK=DL$aDkq5b#tbT>-KG(1P4FRr-+Q(t)FC5{Dq((0U7QSYPyRDCj3Sk!0$#A=8lw7(-%p*8iq%naloKmw2CH z#f|O9lz+K#>Eq6#;d2u|pfeWA5&p?MjH=jc~c_&0@J4AkWxup?D zNMAp#m?QAoqM5%7TTWbNsIy$Du2-0FyCBp#Jr4^Z`74HIR>IT!7hCB0n9zI2cJ*DT z^od1|cS&6D&#{WYttiu3{1A~-9Z*g0jaOzyCkR7NzLu~q*zu1d9LL`XHLONb`9EKd zgiy;J7FV!^8k2fQ&iTe;ITM#y4&eQ&9}?j95#Vk3ltQQD^Z1h|9jOJP&8)-c>+L_5 z@rZ1;V}@#zIa1G{&s#%*+>>pX7WC@iR5VMKjVhl@6zLavHl`&$@G@jtCLvtB%4qJ|x&+)?9Qt_@Yb3vxov@eig{YwyYirEx?9^6wDfZtO2I6W%2T z;zeWS@vjg36%r|C`K|zqIScw>G;24-kpuc@Sd;{r)gUvrjU-eiOf@OVLbdt-64F~}(*dJnRlZg%+cCl6Ss_&5k`!`pw9lh4HqQy1#$dP!VVx7=iNs55ix3}u& zw?rE6^Og~1B?k{bE+o7{tEz?j%GI+9fv;2|+yfG}O3-0n^x2z(c|Ws!df1`t8a6MJ zCv&oyi{T-cbfXTSHRzbgk#wSqD|We4wUIqYYi2C-^eCX3amvIa-)698g5Eww#>+m( z!uvTVrj#lh$>H*w@nv!aZG7XCW7yxs2aMf-RH|dJt?s8UDA@tpi%PM&w)_TNQ!Ik` zgNw7^VQ7Vb>rt|n*2F%ucA$M8)sN`Hda=Kb?gvV43dbgv-$|_lH_wiw(ht9{c#x!5 z>yM6`ZrzNEu(BuOD24rFg2u!@*?J90ra4JfFSeRFh(ITJhnAkgykt*OWhWVfQTNV-(Pm@^ zPI3d65ErBSTOg&(uA6;k~j!uo1bs}Ua`BFJ6=j2k2wEGA8 z%`=vX6cxhWfI|_I@cRTRwkMqgcTq}pDVimEmMmW!El-ke{KukV^3A`@{`)7VBO~E* zgiOcMH$vCiR7k{L=D4DPNq{&DgWMB)&p`iFdbZjVl2Q$Z;%(ezdQcx2w0=&_BHo(8 zxY-g^tSL>ya1iS9#X3{EVJqGz4ZY=-G|X&iJc0(}@Z8gtg9 zxUN03T+y+(@^lOI0Du0SXT*$rCp>Q%3cN;K|LqCiN7Qvap!lvVmy(qukY~C+Zm+~i zpvACC*)ds}j-@-iZLW;)+v6)67De9-5Uvq#MNeIImG_dcf&+#@Y3(~7T`OKo!O%Kpi(i5U zTh>2CUCB6TOdo!S;zWpcQSM7}9uaMOUhS9?<*xrI-PcW8z;N7Z!VR_lr*>4CILR*= z&H@udBD2m(75ZoF!u=ZMxOf@OZR(Fw*CnnB?Kt9XV68YXj5-cDV@*>(b2GA}^xP(l zQU#-tWSMxrci)~}{jfrP=Y-~E%be_NrB+%b<$(kszV3HCCBGFU5L$;*mQ*i9n=r@% zz|0-HE@x6VdeHu5J!iIe*iysT zl&<@A=u7+KhAX43_CD_TT~B7Cj$C2w^-r$b3Kp}C=6SpwNoIaN$()O6!s>6>8yuW3 z?9DqkO4*PVpHCZ8!S%$d7gjP9`Kf+-qmH6}r3p+d&k{ogSkjI0{Bw~c*2A%iS3?vF z5ubXG%lWb?5_&XM1E6Og&BHC9>oyel5Tq@h2#(-xwK=V@IlN~pt?oLn5a-Z!I-@de z24YD@VIjP@I{Wg!OkR487ZMCL*vrT+@e{<5-o>OHQN1z|A4;dmzOyO93pX7sC3R4Z z;l3(%=tYSTBdW5rV*ZDjg0ed_^La(SV9x9?z8)(U;)d4B@guzB_d^{QyAx` zN&P@3^e!)ahxbLX)>MN=^VwOHk=Y(YbskY?RJQkIaO`VxnsF2HN{g=~#^@0tU83~@ z7i3sqE4kSioJEy{8yP7p(2sf`*4`Be8tlm?UvX$2fo4^#ur+S%xAFJXF*UOfa6s78^b}Ujnk7yQ214;6X(ejX&yg{U4VMmL3;t!~$9vdMDw zm%T2KVkw6!XTAG^?2qfW!&b7Nj7z*Z)rE$yMqcCBo$u?n;79h3GbH4W++ipbIKhAr z9JIn-%+9uYj?O1EWV-FVlh_xwDL=Qi%+S#UsXx_ndG$gy1Q(&qDz!jPJX3_`i1&kf zp=$8=TH#Wm`d80PE)<3CrU^KQX?sgD7^5Z(15V}krpp#r{=@EFVJnqE3vzH>0W7n6 z6fvLt3~*vB4!frqf|T|PnU;t*%-km@y*x{>Ec;i|^aa?s{JrdgPN=2=?MNvHLUAlE zfBb2c z($c?OZzpXiuJEPec5cqcqx99@>$aTI{p{p&#CGobqz|e2RQf%Nyc*>bQrPCRP6$3O z`wU^2A_Sl6c|feP$6~VgB|}gIrFq79;%sR zFAl{8VWZwjy#ZOj=RVBi-0{w5P(>E+{(XuZ-+emM3x6otkvYkk%a|%IBAlAStPqk_ zyqMjxia(OfQM*@`zZf_5$kUWSFdbR8BvLm4( z3jN!9BbUBv>xD~xN{W<)sz`>Y)Dq?^^+VLGk@z)_b4I*)=Swnd`R9UpSm6F3j={kY zbF5IDo_KHIbDqh8c!b!JcubAM3seZR!48)6gx`2ep}Gm>SA^8N&aDX5!qe_L-epny>P z3Z_DlB-Zb46F_ZR+#olRo_P&wAJ>$^@HtdvdJ7~ODKe0hhd*bb($&!zE5bX24~q?M zyn9@f3e&d({^Puih2msQ+;cSSH8qRh!|ezx(@;(kgrn|+J0i^vP-0WmkEo1Y1%+e! z@B&HvstG1MI(D=o$`F1n>_I9!=w7!?G+M&se-*=&`r&7pgz>Ice^!k^IDAVMBdO8KD~*M&siwYA?V;<Dz93>if*D#v#!Ab6j@regC`EP3IdL#(MccgHy_}t7LGi1cNhXW| zdv!c|c^9$mbe;`DGXztKIr2XG`Ax4sF!ZK$AB zB=`833B}_Nw1KBoUe3*=qE?|6;=z~&oD=u>Vcvu@?h{kOWX08)w*AE$k&HPq+mtCE zWu~&GN$6ObAkyoIApUDpXp1zbg%k+`5H|G#rW4#k3t791GZ(t}L3RM^$!}ciUZ5|0f~q8>^s17iI7++xj?z z1^3X4sG{$_u&s#zg$v#am+GVSMxH;_OQb_%4|C}=W5O3|w_p2!DW$%QG7f~N75jSZ z3~6jvC2BVSs7P>>2~#dxDJTu%lZRm;GeTelBOJ_a&{@H&FW7bQv^k+ntUcwwfG4}i zi@U(Z;8w(7pF$cZ<`OA8j6Eb8a>gWTtLy_+3?51XyUr7+HPEC#|6U|YZ7MDj3*fr# z9X}jAIDK6e$55R}HtfhRR^^h0DltN0Sq)f|1P;Rg!%j(&D7T=HbCZ-rLB;#;E3!7H zX|rY$ck)oR<5+pRiJ}+jgzI6Wu+T$p&i8)erys}hRlNGxXB7kwO5hdi$5m;x`obhf zPn0zNS)$4YPqp11)~4*U5{uOu)uk0x3l3kWgRci#@5!Yf zr$^tL_}CHEzQk`*yKSx==&7@)zj^bSR;xqf==6w>xrFCobC;rt+C+Cj2)v{HM@w zK7d0xHLe;11CJWr+{e#4^N*}~wz25HRAS?;Dx7P)B6H{0PG0W{L7|)KY8XR#ER&g$ z3tlBg!W}b|`MV9gnO<3c1cp280?xHDl<0uRUO|Rw5wtS@n(k_xzUDqEBGu$M;S^JNACxgr$iUDEhoP31tiq2u=8I7`EYV@2@(?IAM-`PH0A zWsRho>BPu^a+dg8zGI{2D!_N5{8}GY%eGfDiP%Ta`HP0V8X4 z@b3Dy{RvOW|G^ECII;m$V4Gd4?td+jU58B=HmxU(RL2ZEnx=DOKJ} z%LBWMx#L%LifCb`#L#BueWHxm^YU{PQj{l4lI9XS_UL|pT#SjQobN&JZ&tQF*aDPr zXA+++gS!eKnDvStgCeLF@O%n>VIg>2oH4Rt!M`?U$}U*tQaceepdg}Q!0L-dXq{{P zG{IG5#;h}{Du4wha~?d+mW@c$RpZ%X^JsHEggtC!kdy8Ig6&4|29d0N{4$ib(zIit>!Qf>UXObivr zp26D?5D*!TmJAzQOg2vV`;8!Zz0`%bFo_1sy(Dbu`1B1)O5=XvC7u~Rxw-QU#*J@$ zTlt}IT!jrM7dj|=tPK8?KEbB!@5!m7aWIfxoz-S9E4Hot#4(IcY~+$CB^;$ORPm+B{cG?iu24NSI7if=r?N1O{0TFClXlm`TohLz+kaynd*Kg0o zuhst2m+vK@YM=BSBmfU8ryv(MhX6NEIwdlI{{N*`MP$GSfYkqf0F+*Z0w5tE$si#i dQ4XP}TSDM?W<-GF+(ATuF~c*Yzo7sK{|~w4>I?t? diff --git a/guides/act_cheatsheet.tex b/guides/act_cheatsheet.tex index 6bfeb96c52..9d9e8530f5 100644 --- a/guides/act_cheatsheet.tex +++ b/guides/act_cheatsheet.tex @@ -85,7 +85,7 @@ %---------------------------------------------------------------- {\bf\textsc{ACT Cheat Sheet}\vspace{0.5em}} % Poster title {\textsc{\ A C T \ \ \ \ \ C h e a t \ \ \ \ \ S h e e t\ \hspace{12pt}}} -{\textsc{Learn More About ACT at https://anl-digr.github.io/ACT/ \hspace{12pt}}} +{\textsc{Learn More About ACT at https://arm-doe.github.io/ACT/ \hspace{12pt}}} %------------------------------------------------ @@ -414,7 +414,7 @@ %---------------------------------------------------------------- {\bf\textsc{ACT Cheat Sheet}\vspace{0.5em}} % Poster title {\textsc{\ A C T \ \ \ \ \ C h e a t \ \ \ \ \ S h e e t\ \hspace{12pt}}} -{\textsc{Learn More About ACT at https://anl-digr.github.io/ACT/ \hspace{12pt}}} +{\textsc{Learn More About ACT at https://arm-doe.github.io/ACT/ \hspace{12pt}}} %------------------------------------------------ % Plotting Continued From 5182d1bc5ecab4b32e602cd58f6d9eda18fc8d20 Mon Sep 17 00:00:00 2001 From: zssherman Date: Wed, 19 Feb 2020 19:30:34 -0600 Subject: [PATCH 3/3] DOC: Adding baposter.cls format file. --- guides/baposter.cls | 1095 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1095 insertions(+) create mode 100644 guides/baposter.cls diff --git a/guides/baposter.cls b/guides/baposter.cls new file mode 100644 index 0000000000..b72fa7a4f1 --- /dev/null +++ b/guides/baposter.cls @@ -0,0 +1,1095 @@ +%% +%% This is file `baposter.cls' +%% +%% A relatively comfortable latex class to produce posters with a grid based +%% layout. It comes with a number of combinable styles and is (maybe only for +%% the writer) easy to extend, as all the graphics is based on pgf. +%% +%% It is meant to be used with pdftex, but might also work with pslatex if you +%% are not interested in things like transparency. +%% +%% Copyright (C) 2007-2011 Brian Amberg +%% Copyright (C) 2011 Reinhold Kainhofer +%% +%% 29. September 2011: +%% - Finally fixed confusion with paper size handling and landscape. This required seperate handling of papersizes +%% known to the geometry package and other packages. +%% 26. September 2011: +%% - Reverted drawing of faded borders to manual method, as the current result does not work with evince, +%% and produced spurious colored boxes with okular and acroread. +%% - Added one more example due to popular request +%% 16. September 2011: +%% - Removed nag package, such that it compiles on older systems +%% - Added more examples +%% 15. September 2011: +%% - Merged fork by (rk) back into mainline, essentially taking over all the great improvements that Reinhold Kainhofer coded. +%% We call this version 2, as it breaks the interface in some small points. Essentially watch out for this: +%% - no/yes keys are now false/true +%% - the shade-lr etc. keys have the hypen removed, and are now called shadelr etc. +% - Added more examples, which are all adapted to work with the current version +%% 27. August 2011 (rk): +%% - Completely factored out all drawing commands to handler functions, assigned via choice keys +%% - Added cornerradius, boxheaderheight, boxpadding options +%% - Added missing roundedright +%% 26. August 2011 (rk): +%% - Turned headerbox cmd into posterbox environment (allows verbatim) +%% - pass several options to packages +%% - added debug cls option to reduce default output +%% - rewrote several loops and ifthenelse +%% - Use boolean and choice keys for all options +%% - Changed all choice options to set a global function to +%% \baposter@OPTION@OPTIONVALUE, which are a functions that execute the +%% option's setting (drawing routine, color setting for tikz, etc.) +%% - Add a5paper +%% 07. April 2011: Fixed paper size handling +%% - Fixed Paper Size handling, you can now specify all page sizes using paperwidth=, paperheight= class options. +%% - Added rudimentary documentation of the available keys. +%% 11. December 2010: Fixed "Empty Second Page" bug +%% - A second empty page was introduced when a document ended with +%% \end{poster} +%% \end{document} +%% This was fixed thanks to a suggestion by Martin Aulbach +%% - Added +%% \thispagestyle{empty} +%% to suppress page numbers, which became visible when the margins are large. +%% The underlying problem of page-size handling has not yet been solved. +%% 30. September 2010: Border Bugfixes +%% - Correct background color with textborder=rounded-small, Thanks to Ke Chen for the bugreport and patch +%% - Correctly draw rectangular text boxes, Thanks to abenkst for the bugreport and fix +%% 10. June 2010: Added option to set the number of columns +%% - added a class option to set the number of columns +%% - columns=5: sets the number of columns to 5, possible values are 1..6, default is 3 in portrait and 4 in landscape format +%% 29. April 2009: Incorporated Patches by Arne Henningsen +%% - added some class options +%% - a4shrink: shrink the paper to A4 size (for printing drafts or handouts) +%% - movebody=Xpt: move the text/poster body Xpt to the right +%% (or to the left if Xpt is negative), +%% e.g. for manually centering the poster on the page +%% - showframe: use the "showframe" option of the "geometry" package +%% - a0paper (default): set paper size to A0 +%% - archE: set paper size to Arch E +%% - setting "background" can be "none" now (otherwise the "showframe" +%% option has no effect) +%% - the page number has been removed (it was mostly not visible before) +%% - the "margin=" option works now +%% 04. December 2008 +%% - Mainly an update to the landscape example +%% 14. November 2008 +%% - Actually center the title when eyecatcher is used. +%% 04. November 2008 +%% - Fixed bug with eyecatcher not working. +%% 26. June 2008 +%% - Fixed bug with plain background mode. +%% 14. June 2008 +%% - Support for portrait/landscape switching. +%% - Some smaller bugfixes. +%% 01. June 2007 +%% - First version released. +%% +%% Use this class with pdflatex +%% +%% I have confirmed that this package works with +%% - texlive 2007 and +%% - miktex 2.7 +%% +%% It does not seem to work with +%% - miktex 2.2 +%% - some old versions of tetex +%% +%% +%% TODO: +%% -) Rename backgrounds back to shaded-tb shade-lr +%% -) Rename textborder back to rounded-small (consistent naming needed!) +%% -) Rename headershade back to shade-lr, shade-tb, shade-tb-inverse +%% -) Rename headershape back to small-rounded +%% -) Option value consistency (small-rounded vs. rounded-small; missing ones) +%% -) Rename \baposterHeaderSetShade, \baposterHeaderDrawText to include @ and verb +%% +%% +%% Licence: GPL +\ProvidesClass{baposter}[2011/11/26 v2.0 baposter class] +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\LoadClass{article} +\typeout{baposter: Brian Amberg, 2007, 2008, 2009, 2010, 2011 | http://www.brian-amberg.de/uni/poster/} +\typeout{baposter: Reinhold Kainhofer, 2011 | http://reinhold.kainhofer.com/} + +%% Define lengths only once on inclusion, such that we can make multiple posters +\newlength{\baposter@basepaperwidth} +\newlength{\baposter@basepaperheight} +\newlength{\baposter@basemargin} +\newlength{\baposter@finalpaperwidth} +\newlength{\baposter@finalpaperheight} +\newlength{\baposter@finalmargin} +\newlength{\headerheight}% +\newlength{\colwidth}% +\newlength{\colheight}% +\newlength{\baposter@@colspacing}% +\newlength{\baposter@box@@cornerradius}% +\newlength{\baposter@box@@boxheaderheight}% +\newlength{\baposter@box@@boxpadding}% +\newlength{\boxstartx}% +\newlength{\boxstarty}% +\newlength{\boxwidth}% +\newlength{\boxheight}% +\newlength{\baposter@titleimage@left@width}% +\newlength{\baposter@titleimage@right@width}% +\newlength{\baposter@titleimage@textwidth}% +\newbox\baposter@box@content% +\newbox\baposter@titleimage@left% +\newbox\baposter@titleimage@title% +\newbox\baposter@titleimage@right% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Packages +%------------------------------------------------------------------------------- +% The only ``weird'' dependency of this package is pgf. All the rest should be +% installed on any decent system. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\typeout{Use Packages} +\RequirePackage{xkeyval} +\RequirePackage{calc} +\RequirePackage[cmyk]{xcolor} +\RequirePackage{tikz} +\RequirePackage{pgf} +\RequirePackage{ifthen} +\RequirePackage[T1]{fontenc} +%\RequirePackage[l2tabu, orthodox]{nag} +\usetikzlibrary{decorations} +\usetikzlibrary{fadings} +\usetikzlibrary{snakes} +\usetikzlibrary{calc} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Choose a smaller value for larger fonts +\newcommand{\baposter@fontscale}{0.292} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Zoom +%------------------------------------------------------------------------------- +% We scale the page from fontscale * papersize up to papersize +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%% Paper sizes +\newif\if@landscape +\newif\if@geometryKnowsThisSize +\DeclareOptionX{landscape}{\@landscapetrue} +\DeclareOptionX{portrait}{} + +\newcommand{\baposter@setfinalpapersize}[2]{% +\if@geometryKnowsThisSize + \setlength{\baposter@finalpaperwidth}{#1}% + \setlength{\baposter@finalpaperheight}{#2}% +\else +\if@landscape +% Transpose length, if geometry does not handle the papersize based on the key + \setlength{\baposter@finalpaperwidth}{#2}% + \setlength{\baposter@finalpaperheight}{#1}% +\else + \setlength{\baposter@finalpaperwidth}{#1}% + \setlength{\baposter@finalpaperheight}{#2}% +\fi +\fi +} + +% Default paperwidth and paperheight = a0paper +\DeclareOptionX{paperwidth}[841mm]{\setlength{\baposter@finalpaperwidth}{#1}} +\DeclareOptionX{paperheight}[1189mm]{\setlength{\baposter@finalpaperheight}{#1}} +\DeclareOptionX{archA} { \baposter@setfinalpapersize{9in}{12in}}% +\DeclareOptionX{archB} { \baposter@setfinalpapersize{12in}{18in}}% +\DeclareOptionX{archC} { \baposter@setfinalpapersize{18in}{24in}}% +\DeclareOptionX{archD} { \baposter@setfinalpapersize{24in}{36in}}% +\DeclareOptionX{archE} { \baposter@setfinalpapersize{36in}{48in}}% +\DeclareOptionX{archE1} { \baposter@setfinalpapersize{30in}{42in}}% +\DeclareOptionX{archE2} { \baposter@setfinalpapersize{26in}{38in}}% +\DeclareOptionX{archE3} { \baposter@setfinalpapersize{27in}{39in}}% +\DeclareOptionX{z1paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{841mm}{1100mm}}%g +\DeclareOptionX{a0paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{841mm}{1189mm}}%g +\DeclareOptionX{a1paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{594mm}{841mm}}%g +\DeclareOptionX{a2paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{420mm}{594mm}}%g +\DeclareOptionX{a3paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{297mm}{420mm}}%g +\DeclareOptionX{a4paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{210mm}{297mm}}%g +\DeclareOptionX{a5paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{148mm}{210mm}}%g +\DeclareOptionX{a6paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{105mm}{148mm}}%g +\DeclareOptionX{b0paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{1000mm}{1414mm}}%g +\DeclareOptionX{b1paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{707mm}{1000mm}}%g +\DeclareOptionX{b2paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{500mm}{707mm}}%g +\DeclareOptionX{b3paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{353mm}{500mm}}%g +\DeclareOptionX{b4paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{250mm}{353mm}}%g +\DeclareOptionX{b5paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{176mm}{250mm}}%g +\DeclareOptionX{b6paper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{125mm}{176mm}}%g +\DeclareOptionX{ansiapaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{8.5in}{11in}}% +\DeclareOptionX{ansibpaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{11in}{17in}}% +\DeclareOptionX{ansicpaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{17in}{22in}}% +\DeclareOptionX{ansidpaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{22in}{34in}}% +\DeclareOptionX{ansiepaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{34in}{44in}}% +\DeclareOptionX{letterpaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{8.5in}{11in}}% +\DeclareOptionX{legalpaper} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{8.5in}{14in}}% +\DeclareOptionX{executivepaper}{\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{7.25in}{10.5in}}% +\DeclareOptionX{screen} {\@geometryKnowsThisSizetrue\baposter@setfinalpapersize{225mm}{180mm}}%g + +% Margin +\setlength{\baposter@finalmargin}{2cm} +\DeclareOptionX{fontscale}[0.292]{\renewcommand{\baposter@fontscale}{#1}} +\DeclareOptionX{margin} [1.5cm]{\setlength{\baposter@finalmargin}{#1}} + +% move text/poster body to the right (or to the left if negative) +\newlength{\baposter@movebody} +\setlength{\baposter@movebody}{0cm} +\DeclareOptionX{movebody}[0cm]{\setlength{\baposter@movebody}{#1}} + + +\newif\if@debug +\DeclareOptionX{debug}{\@debugtrue} +%% Will be passed on to other packages (xcolor and geometry), still we don't want unused warnings +\DeclareOptionX{table}{} +\DeclareOptionX{showframe}{} + +\ProcessOptionsX + +\if@debug +\newcommand{\debug}[1]{\typeout{#1}} +\else +\newcommand{\debug}[1]{} +\fi + + + +\setlength{\baposter@basepaperwidth} {\baposter@fontscale\baposter@finalpaperwidth } +\setlength{\baposter@basepaperheight}{\baposter@fontscale\baposter@finalpaperheight} +\setlength{\baposter@basemargin} {\baposter@fontscale\baposter@finalmargin} +\newlength{\baposter@basemarginright} +\setlength{\baposter@basemarginright}{\baposter@basemargin} +\addtolength{\baposter@basemarginright}{-\baposter@fontscale\baposter@movebody} +\newlength{\baposter@basemarginleft} +\setlength{\baposter@basemarginleft}{\baposter@basemargin} +\addtolength{\baposter@basemarginleft}{\baposter@fontscale\baposter@movebody} + +\typeout{Paperwidth=\the\baposter@finalpaperwidth} +\typeout{Paperheight=\the\baposter@finalpaperheight} +\typeout{BasePaperwidth=\the\baposter@basepaperwidth} +\typeout{BasePaperheight=\the\baposter@basepaperheight} +\usepackage[ + paperwidth=\baposter@basepaperwidth, + paperheight=\baposter@basepaperheight, + tmargin=\baposter@basemargin, + bmargin=\baposter@basemargin, + lmargin=\baposter@basemarginleft, + rmargin=\baposter@basemarginright, + ]{geometry} + +\usepackage{pgfpages} +\if@landscape +\if@geometryKnowsThisSize +\pgfpagesuselayout{resize to}[physical paper width=\baposter@finalpaperheight,physical paper height=\baposter@finalpaperwidth] +\else +\pgfpagesuselayout{resize to}[physical paper width=\baposter@finalpaperwidth,physical paper height=\baposter@finalpaperheight] +\fi +\else +\pgfpagesuselayout{resize to}[physical paper width=\baposter@finalpaperwidth,physical paper height=\baposter@finalpaperheight] +\fi + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Default functions for borders/backgrounds +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% These functions will all be redefined from the actual option values. In +%% particular, they will be set to \baposter@optionname@optionvalue, which +%% should do the actual work / setting for that particular optionvalue. + +\newcommand{\baposterPosterDrawBackground}[2]{} % Draw poster background + +\newcommand{\baposterBoxGetShape}{} % Returns path of text box shape +\newcommand{\baposterBoxDrawBackground}[2]{} % Draw bg of boxes +\newcommand{\baposterBoxDrawBorder}[1]{} % Draw border of individual boxes + +\newcommand{\baposterHeaderGetShape}{} % Returns path of text box shape +\newcommand{\baposterHeaderSetShade}[3]{} % Set bg style for box headers +\newcommand{\baposterHeaderDrawBackground}[3]{} % Draw background of box header +\newcommand{\baposterHeaderDrawBorder}[1]{} % Draw border of box header +\newcommand{\baposterHeaderDrawText}[1]{} % Draw text inside box header + +\newcommand{\@@previousbox}{notset} % stores the previously processed box for below=auto + +% Function to set a user-defined background +\newcommand{\baposter@backgroundCmd}{\error{No background command defined. Use \background{...} to define background}} +\newcommand{\background}[1]{\renewcommand{\baposter@backgroundCmd}{#1}} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Handle poster and box options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\debug{Handling keys} + +%% +%% POSTER OPTIONS +%% +%% Store all poster options in variables of the form \baposter@option +%% choose-keys also store the index in \baposter@optionnr +%% choose-keys typically also assign a function +\definecolor{baposter@silver}{cmyk}{0,0,0,0.7} +\define@boolkey[ba]{poster}[baposter@]{grid} [false] {} +\define@boolkey[ba]{poster}[baposter@]{eyecatcher} [true] {} +\define@cmdkey [ba]{poster}[baposter@]{headerheight} [0.1\textheight]{} +\define@cmdkey [ba]{poster}[baposter@]{columns} [{}] {} +\define@cmdkey [ba]{poster}[baposter@]{colspacing} [1em] {} +\define@cmdkey [ba]{poster}[baposter@]{bgColorOne} [baposter@silver]{} +\define@cmdkey [ba]{poster}[baposter@]{bgColorTwo} [green] {} + +% background can be one of: shadeLR, shadeTB, plain, user, none +\define@choicekey*+[ba]{poster}{background}% + [\baposter@background\baposter@backgroundnr]% + {shadeLR, shadeTB, plain, user, none} [plain] {% + \debug{Poster background: \baposter@background} + \renewcommand{\baposterPosterDrawBackground}[2]{ + \csname baposter@background@\baposter@background\endcsname{##1}{##2}} +}{ + \PackageWarning{baposter}{Unknown background `\baposter@background' (use + shadeLR, shadeTB, plain, none, or user). If user is used, you also + have to define \background{...}.} + \renewcommand{\baposterPosterDrawBackground}[2]{\baposter@background@none{##1}{##2}} +} + + +%% +%% BOX OPTIONS +%% +\define@cmdkey[ba]{posterbox}[baposter@box@]{cornerradius} [1em] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{boxheaderheight} [2em] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{boxpadding} [0.5em] {} + + +% textborder can be one of: none, bars, coils, triangles, rectangle, rounded, +% roundedleft, roundedsmall, faded; UNIMPLEMENTED: roundedright +\edef\baposter@box@textborder@validvalues{none,bars,coils,triangles,rectangle,rounded,roundedleft,roundedsmall,faded} +\define@choicekey*+[ba]{posterbox}{textborder}% + [\baposter@box@textborder\baposter@box@textbordernr]% + {none,bars,coils,triangles,rectangle,rounded,roundedleft,roundedright,roundedsmall,faded} [rectangle] {% + \debug{Text border: \baposter@box@textborder} + \renewcommand{\baposterBoxGetShape}{ + \csname baposter@box@boxshape@\baposter@box@textborder\endcsname} + \renewcommand{\baposterBoxDrawBorder}[1]{ + \csname baposter@box@drawborder@\baposter@box@textborder\endcsname{##1}} +}{ + \PackageWarning{baposter}{Unknown text-border style `\baposter@box@textborder'. + Edit your file to choose a valid option (\baposter@box@textborder@validvalues).} + \renewcommand{\baposterBoxGetShape}{\baposter@boxshape@rectangle} + \renewcommand{\baposterBoxDrawBorder}[1]{\baposter@drawborder@rectangle{##1}} +} + +% boxshade can be one of: shadeLR, shadeTB, plain, none +\define@choicekey*+[ba]{posterbox}{boxshade}% + [\baposter@box@boxshade\baposter@box@boxshadenr]% + {shadelr,shadetb,plain,none} [none] {% + \debug{Box shade: \baposter@box@boxshade} + \renewcommand{\baposterBoxDrawBackground}[2]{ + \csname baposter@box@drawbackground@\baposter@box@boxshade\endcsname{##1}{##2}} +}{ + \PackageWarning{baposter}{Unknown boxshade style `\baposter@boxshade'. + Edit your file to choose a valid option.} + \renewcommand{\baposterBoxDrawBackground}[2]{\baposter@box@drawbackground@none{##1}{##2}} +} + +% headershade can be one of: shade-lr, shade-tb, shade-tb-inverse, plain +\define@choicekey*+[ba]{posterbox}{headershade}% + [\baposter@box@headershade\baposter@box@headershadenr]% + {shadelr, shadetb, shadetbinverse, plain} [shadelr] {% + \debug{Header shade: \baposter@box@headershade} + \renewcommand{\baposterHeaderSetShade}[3]{ + \csname baposter@box@headershade@\baposter@box@headershade\endcsname{##1}{##2}{##3}} +}{ + \PackageWarning{baposter}{Unknown headershade style `\baposter@box@headershade'. + Edit your file to choose a valid option.} + \renewcommand{\baposterHeaderSetShade}[3]{\baposter@box@headershade@none{##1}{##2}{##3}} +} + +% headershape can be one of: rectangle, rounded, smallrounded, roundedleft, roundedright +\define@choicekey*+[ba]{posterbox}{headershape}% + [\baposter@box@headershape\baposter@box@headershapenr]% + {rectangle,rounded,smallrounded,roundedleft,roundedright} [roundedright] {% + \debug{Header shape: \baposter@box@headershape} + \renewcommand{\baposterHeaderGetShape}{ + \csname baposter@box@headershape@\baposter@box@headershape\endcsname} + \renewcommand{\baposterHeaderDrawText}[1]{ + \csname baposter@box@headerdrawtext@\baposter@box@headershape\endcsname{##1}} + \renewcommand{\baposterHeaderDrawBorder}[1]{ + \csname baposter@box@headerdrawborder@\baposter@box@headershape\endcsname{##1}} +}{ + \PackageWarning{baposter}{Unknown headershape style `\baposter@headershape'. + Edit your file to choose a valid option.} + \renewcommand{\baposterHeaderGetShape}{\baposter@box@headershape@rectangle} + \renewcommand{\baposterHeaderDrawText}[1]{\baposter@box@headerdrawtext@rectangle{##1}} + \renewcommand{\baposterHeaderDrawBorder}[1]{\baposter@box@headerdrawborder@rectangle{##1}} +} + +% headerborder can be one of: open, closed, none +\define@choicekey*+[ba]{posterbox}{headerborder}% + [\baposter@box@headerborder\baposter@box@headerbordernr]% + {open,closed,none} [open] {% + \debug{Header border: \baposter@box@headerborder} +% \renewcommand{\baposterHeaderBorder}{ +% \csname baposter@headerborder@\baposter@box@headerborder\endcsname} +}{ + \PackageWarning{baposter}{Unknown headerborder style `\baposter@headerborder'. + Edit your file to choose a valid option.} +% \renewcommand{\baposterHeaderBorder}{\baposter@box@headerborder@rectangle} +} + + +\define@cmdkey[ba]{posterbox}[baposter@box@]{borderColor} [yellow] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{headerColorOne} [red] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{headerColorTwo} [brown] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{headerFontColor} [black] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{boxColorOne} [magenta] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{boxColorTwo} [cyan] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{headerfont} [\scshape\Large] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{textfont} [{}] {} + +\define@cmdkey[ba]{posterbox}[baposter@box@]{linewidth} [2pt] {} + +\define@cmdkey[ba]{posterbox}[baposter@box@]{below} [notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{above} [notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{aligned}[notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{bottomaligned}[notset]{} +\define@cmdkey[ba]{posterbox}[baposter@box@]{column} [0] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{row} [0] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{span} [1] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{height} [auto] {} +\define@cmdkey[ba]{posterbox}[baposter@box@]{name} [noname]{} + +% Set some default values, the poster and posterbox environments can override: +\setkeys[ba]{poster}{ + % Debug grid + grid=false, + % Is there an eyecatcher image + eyecatcher=true, + columns={}, + % Colours + bgColorOne=baposter@silver, + bgColorTwo=green, + % + colspacing=1em, + headerheight=0.1\textheight, + background=shadeLR, +}{} +\setkeys[ba]{posterbox}{ + % Position + column=0,row=0,span=1, + below=notset,above=notset, + bottomaligned=notset, + aligned=notset, + height=auto, + % Name + name=noname, + % Box design: border: + linewidth=2pt, + borderColor=yellow, + cornerradius=1em, + % text box: + textfont={}, + boxshade=plain, + boxColorOne=magenta, + boxColorTwo=cyan, + textborder=faded, + boxpadding=0.5em, + % header + headerfont=\scshape\Large,% or headerfont=\color{white}\textsf\textbf + headerFontColor=black, + headerColorOne=red, + headerColorTwo=brown, + headershape=rectangle, + headershade=shadeLR, + headerborder=none, + boxheaderheight=2em, +}{} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Background options and functions (one function for each possible value) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\baposter@background@shadelr}[2]{ + \debug{BAPOSTER: Using shade left right background.} + \begin{tikzpicture}[remember picture,overlay]% + \shade [shading=axis,left color=#1,right color=#2] (current page.north west) + rectangle(current page.south east); + \end{tikzpicture}% +} +\newcommand{\baposter@background@shadetb}[2]{ + \debug{BAPOSTER: Using shade top to bottom background.} + \begin{tikzpicture}[remember picture,overlay]% + \shade [shading=axis,top color=#1,bottom color=#2] (current page.north west) + rectangle(current page.south east); + \end{tikzpicture}% +} +\newcommand{\baposter@background@plain}[2]{ + \debug{BAPOSTER: Using plain background.} + \begin{tikzpicture}[remember picture,overlay]% + \fill [fill=#1] (current page.north west) rectangle(current page.south east); + \end{tikzpicture}% +} +\newcommand{\baposter@background@user}[2]{ + \debug{BAPOSTER: Using user background.} + \baposter@backgroundCmd% +} +\newcommand{\baposter@background@none}[2]{ + \debug{BAPOSTER: Using no background.} +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Return shape path of text box (depending on the box shape) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\baposter@box@boxshape@none}{\baposter@box@boxshape@rectangle} +\newcommand{\baposter@box@boxshape@bars}{ + (\baposter@box@name tnw) -- (\baposter@box@name sw) % + (\baposter@box@name se) -- (\baposter@box@name tne) +} +\newcommand{\baposter@box@boxshape@coils}{\baposter@box@boxshape@bars} +\newcommand{\baposter@box@boxshape@triangles}{\baposter@box@boxshape@bars} +\newcommand{\baposter@box@boxshape@rectangle}{ + (\baposter@box@name tnw) -- (\baposter@box@name sw) -- % + (\baposter@box@name se) -- (\baposter@box@name tne)% +} +\newcommand{\baposter@box@boxshape@faded}{ + (\baposter@box@name tnw) -- (\baposter@box@name sw) % + (\baposter@box@name tne) -- (\baposter@box@name se) + } +\newcommand{\baposter@box@boxshape@rounded}{ + [rc] \baposter@box@boxshape@rectangle% +} +\newcommand{\baposter@box@boxshape@roundedsmall}{ + [src] \baposter@box@boxshape@rectangle +} +\newcommand{\baposter@box@boxshape@roundedleft}{ + (\baposter@box@name tnw) {[rc]-- (\baposter@box@name sw)} -- % + (\baposter@box@name se) -- (\baposter@box@name tne)% +} +\newcommand{\baposter@box@boxshape@roundedright}{ + (\baposter@box@name tnw) -- (\baposter@box@name sw) {[rc]-- % + (\baposter@box@name se)} -- (\baposter@box@name tne)% +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Draw box background (one function for each possible value) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These functions take no arguments +\newcommand{\baposter@box@drawbackground@none}[2]{ + \tikzstyle{box colors}=[] +} +\newcommand{\baposter@box@drawbackground@plain}[2]{ + \tikzstyle{box colors}=[fill=#1] + \fill[box colors] \baposterBoxGetShape; +} +\newcommand{\baposter@box@drawbackground@shadelr}[2]{ + \tikzstyle{box colors}=[shading=axis, left color=#1, right color=#2]% + \fill[box colors] \baposterBoxGetShape; +} +\newcommand{\baposter@box@drawbackground@shadetb}[2]{ + \tikzstyle{box colors}=[shading=axis, top color=#1, bottom color=#2]% + \fill[box colors] \baposterBoxGetShape; +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Draw box border +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These functions take two arguments: borderColor +\newcommand{\baposter@box@drawborder@none}[1]{} +\newcommand{\baposter@box@drawborder@bars}[1]{ + \draw[color=#1] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@coils}[1]{ + \draw[color=#1,segment amplitude=0.35em,segment length=0.4em,snake=coil] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@triangles}[1]{ + \draw[color=#1,segment amplitude=0.2em,segment length=0.4em,snake=triangles] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@rectangle}[1]{ + \draw[color=#1] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@rounded}[1]{ + \draw[color=#1] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@roundedleft}[1]{ + \draw[color=#1] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@roundedright}[1]{ + \draw[color=#1] \baposterBoxGetShape;% +} +\newcommand{\baposter@box@drawborder@faded}[1]{ + % This is the right way to do it, but it does not work with evince, and has problems during printing, so instead we do + %\draw[color=#1,path fading=south] \baposterBoxGetShape;% + % this + \foreach \x in {0,1,...,90} \draw[color=#1!\x] ($(\baposter@box@name tnw)!{(100-\x)/100}!(\baposter@box@name sw)$) -- ($(\baposter@box@name tnw)!{(100-(\x+10))/100}!(\baposter@box@name sw)$);% + \foreach \x in {0,1,...,90} \draw[color=#1!\x] ($(\baposter@box@name tne)!{(100-\x)/100}!(\baposter@box@name se)$) -- ($(\baposter@box@name tne)!{(100-(\x+10))/100}!(\baposter@box@name se)$);% +} +\newcommand{\baposter@box@drawborder@roundedsmall}[1]{ + \draw[color=#1] \baposterBoxGetShape;% +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Return shape path of text box (depending on the box shape) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These functions take no arguments +% TODO: For headerborder==none, use (\baposter@box@name outer tnw) instead! +\newcommand{\baposter@box@headershape@rectangle}{% + (\baposter@box@name tnw) -- (\baposter@box@name nw) -- % + (\baposter@box@name ne) -- (\baposter@box@name tne)% +} +\newcommand{\baposter@box@headershape@smallrounded}{% + (\baposter@box@name tnw) {[src] -- (\baposter@box@name nw) -- % + (\baposter@box@name ne)} -- (\baposter@box@name tne)% +} +\newcommand{\baposter@box@headershape@roundedright}{% + (\baposter@box@name tnw) -- (\baposter@box@name nw) {[rc] -- % + (\baposter@box@name ne)} -- (\baposter@box@name tne)% +} +\newcommand{\baposter@box@headershape@roundedleft}{% + (\baposter@box@name tnw) {[rc]-- (\baposter@box@name nw)} -- % + (\baposter@box@name ne) -- (\baposter@box@name tne)% +} +\newcommand{\baposter@box@headershape@rounded}{% + (\baposter@box@name tnw) {[rc] -- (\baposter@box@name nw) -- % + (\baposter@box@name ne) } -- (\baposter@box@name tne)% +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Header text drawing (one function for each possible value of headershape) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These functions take one argument: the header text +\newcommand{\baposter@box@headerdrawtext@rectangle}[1]{ + \path (\baposter@box@name nw) +(0em,-0.5\baposter@box@@boxheaderheight) node[anchor=west,inner sep=0.4em] {#1};% +} +\newcommand{\baposter@box@headerdrawtext@smallrounded}[1]{ + \path (\baposter@box@name nw) +(0.5\boxwidth,-0.5\baposter@box@@boxheaderheight) node[anchor=center] {#1};% +} +\newcommand{\baposter@box@headerdrawtext@roundedright}[1]{ + \path (\baposter@box@name nw) +(0em,-0.5\baposter@box@@boxheaderheight)% + node[anchor=west,inner sep=0.4em,text depth=0.0em] {#1};% +} +\newcommand{\baposter@box@headerdrawtext@roundedleft}[1]{ + \path (\baposter@box@name nw) +(0em,-0.5\baposter@box@@boxheaderheight)% + node[anchor=west,inner sep=0.4em] {#1};% +} +\newcommand{\baposter@box@headerdrawtext@rounded}[1]{ + \path (\baposter@box@name nw) +(0.5\boxwidth,-0.5\baposter@box@@boxheaderheight) node[anchor=center] {#1};% +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Header shade options and functions (one function for each possible value) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These functions take two arguments: headerColorOne, headerColorTwo and borderColor +\newcommand{\baposter@box@headershade@shadelr}[3]{ + \debug{Header-Shade: Shade Left - Right} + \tikzstyle{header colors}=[% + color=#3,% + shading=axis,% + left color=#1,% + right color=#2% + ]% +} +\newcommand{\baposter@box@headershade@shadetb}[3]{ + \debug{Header-Shade: Shade Top - Bottom} + \tikzstyle{header colors}=[% + color=#3,% + shading=axis,% + top color=#1,% + bottom color=#2% + ]% +} +\newcommand{\baposter@box@headershade@shadetbinverse}[3]{ + \tikzstyle{header colors}=[% + top color=#1!75!#2,% + bottom color=#2!100!#1,% + shading angle=20% + ]% + \colorlet{baposterHeaderFontColor}{white}% +} +\newcommand{\baposter@box@headershade@plain}[3]{ + \debug{Header-Shade: Plain} + \tikzstyle{header colors}=[% + color=#3,% + fill=#1% + ]% +} +\newcommand{\baposter@box@headershade@none}[3]{ + \debug{Header-Shade: none} + \tikzstyle{header colors}=[] +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% The main poster environment +%%% \begin{baposter}{settings}{Eye Catcher}{Title}{Author}{University Logo} +%%%----------------------------------------------------------------------------- +%%% The settings are +%%% - grid=true,[false]:Show grid to help with alignment +%%% - colspacing=0.7em: Column spacing +%%% - columns=4: number of columns (default 4 in landscape and 3 in portrait format) (maximum number is 6) +%%% - color=[orange]: xcolor color definition used as the main color of the poster +%%% - colortwo=[white]: The other color for gradient based layouts +%%% - textborder=none,bars,coils,triangles,rectangle,rounded,roundedsmall,roundedleft,roundedright,[faded] +%%% The style of the box around the text area +%%% - headerborder=none,closed,open +%%% No extra border around box header, full border around box header or border that is open below. +%%% - headershape=rectangle,rounded,roundedleft,roundedright +%%% Shape of the box-header region +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newenvironment{poster}[5]{% + \thispagestyle{empty}% Suppress Page Number + \debug{Poster Starts}% + % This setkeys call parses all provided options and depending on the option + % value, assigns different handler functions to the \baposter(Box|Header)* + % functions. Once that is done, we don't have to care about particular + % values for border, shading, etc. All we have to do is call the + % handler functions and let them do their job. + % This also allows the user to override the poster-wide defaults on a per-box + % basis. + \setkeys[ba]{posterbox,poster}{#1}% +% + % TODO: Move all those assignments to the key macros! + % Parse Keys% + \colorlet{bgColorOne}{\baposter@bgColorOne} + \colorlet{bgColorTwo}{\baposter@bgColorTwo} +% + %% Boxes% + \setlength{\headerheight}{\baposter@headerheight}% + \setlength{\colheight}{\textheight-\baposter@headerheight}% + \renewcommand{\@@previousbox}{notset} + + \debug{Format}% + % Set default for columns if unset (4 for landscape, 3 for portrait) + \ifthenelse{\equal{\baposter@columns}{}}{% + \renewcommand{\baposter@columns}{\if@landscape4\else3\fi}% + }{} +% + \debug{Columns: \baposter@columns}% + \setlength{\baposter@@colspacing}{\baposter@colspacing}% + \setlength{\colwidth}{\textwidth}% + \addtolength{\colwidth}{\baposter@@colspacing*(1-\baposter@columns)}% + \ifcase\baposter@columns\relax + \error{You need to have at least one column!} + \or % 1 + \setlength{\colwidth}{\colwidth}% + \or % 2 + \setlength{\colwidth}{0.5\colwidth}% + \or % 3 + \setlength{\colwidth}{0.3333333333333\colwidth}% + \or % 4 + \setlength{\colwidth}{0.25\colwidth}% + \or % 5 + \setlength{\colwidth}{0.2\colwidth}% + \or % 6 + \setlength{\colwidth}{0.16666666666\colwidth}% + \else % >6 + \error{You do not want so many columns} + \fi +% + \newcommand{\baposter@reference}{north west}% +% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % A box with a header and some content. The basic unit of the poster% + %---------------------------------------------------------------------------% + % Each box has a name and can be placed absolutely or relatively.% + % The only inconvenience is that you can only specify a relative position % + % towards an already declared box. So if you have a box attached to the % + % bottom, one to the top and a third one which should be inbetween, you % + % have to specify the top and bottom boxes before you specify the middle % + % box.% + %% + % below= name of other node% + % above= name of other node% + % aligned=name of other node% + % bottomaligned=name of other node% + % column= [0] % + % row= [0] % + % span= [1] % + % height= ,[auto]% + % name= [noname]% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % Backward-compatibility definition (\headerbox command uses posterbox env): + \newcommand{\headerbox}[3]{% + \begin{posterbox}[##2]{##1} + ##3 + \end{posterbox} + } + + \newenvironment{posterbox}[2][]{% + \debug{Poster box options: ##1}% + % Override the poster-wide defaults on a per-box basis + \setkeys[ba]{posterbox}{##1}% +% + \def\baposter@box@title{##2} +% + \colorlet{borderColor}{\baposter@box@borderColor} + \colorlet{headerColorOne}{\baposter@box@headerColorOne} + \colorlet{headerColorTwo}{\baposter@box@headerColorTwo} + \colorlet{headerFontColor}{\baposter@box@headerFontColor} + \colorlet{boxColorOne}{\baposter@box@boxColorOne} + \colorlet{boxColorTwo}{\baposter@box@boxColorTwo} +% + \setlength{\baposter@box@@cornerradius}{\baposter@box@cornerradius}% + \setlength{\baposter@box@@boxheaderheight}{\baposter@box@boxheaderheight}% + \setlength{\baposter@box@@boxpadding}{\baposter@box@boxpadding}% + + + %% The columns is always given absolute + % boxstartx = column * colwidth + column * colspacing + \setlength{\boxstartx}{(\colwidth+\baposter@@colspacing)*\baposter@box@column}% +% + %% The width is gvien absolute + % Box Width = span * colwidth + (span-1) * colspacing + \setlength{\boxwidth}{\baposter@box@span\colwidth} % + \addtolength{\boxwidth}{\baposter@@colspacing*(\baposter@box@span-1)}% +% + %% Measure the content of the box% + \setbox\baposter@box@content=\hbox\bgroup% + \begin{pgfinterruptpicture}% + \begin{minipage}[t]{\boxwidth-\baposter@box@@boxpadding*2}% + \baposter@box@textfont\bgroup% + }% End of posterbox preamble + %%% HERE COME THE ACTUAL CONTENTS OF THE HEADERBOX ENVIRONMENT + {% posterbox handling after contents (i.e. drawing everything) + \egroup% + \end{minipage}% + \end{pgfinterruptpicture}% + \egroup% + \setlength{\boxheight}{\ht\baposter@box@content}% + \addtolength{\boxheight}{\dp\baposter@box@content}% + \addtolength{\boxheight}{\baposter@box@@boxheaderheight} % Header% + \addtolength{\boxheight}{2\baposter@box@@boxpadding} % Inner Sep +% + \ifthenelse{\equal{\baposter@box@height}{bottom}}{% + }{\ifthenelse{\equal{\baposter@box@height}{auto}}{% + }{ % Neither auto nor bottom% + \setlength{\boxheight}{\baposter@box@height\colheight}% + }}% +% + %% Determine the box position% + \debug{Setting Coordinates}% + \debug{Upper Right}% + \debug{\baposter@box@name}% +% + %%% Upper Right Corner% + % if below=auto, set it to the previous box + % TODO: We should generalize this to the previous box of the used column, + % currently we use the previous box, which might be in a different column + \ifthenelse{\equal{\baposter@box@below}{auto}}{% + \edef\baposter@box@below{\@@previousbox} + \debug{Box \baposter@box@name has below=auto, placing it below box \baposter@box@below.} + }{} + \xdef\@@previousbox{\baposter@box@name} + + \ifthenelse{\not\equal{\baposter@box@below}{notset} }{% + %% Below% + \debug{Below}% + \path[shape=coordinate] (\boxstartx,0pt |- \baposter@box@below se) ++(0pt,-\baposter@@colspacing) coordinate(\baposter@box@name nw);% + }{% + \ifthenelse{\not\equal{\baposter@box@aligned}{notset} }{% + %% Aligned% + \debug{Aligned: \baposter@box@aligned}% + \path[shape=coordinate] (\boxstartx,0pt |- \baposter@box@aligned nw) coordinate(\baposter@box@name nw);% + }{% + %% Fixed% + \debug{Fixed}% + \setlength{\boxstarty}{\baposter@box@row\colheight}% + \path[shape=coordinate] (\boxstartx,\colheight-\boxstarty) coordinate(\baposter@box@name nw);% + }}% +% + %% Lower Left Corner% + \debug{Lower Left}% + \ifthenelse{\equal{\baposter@box@above}{bottom}}{% + %% Above = Bottom% + \debug{Above bottom}% + \ifthenelse{\equal{\baposter@box@below}{notset} \and \equal{\baposter@box@aligned}{notset}}{% + \path[shape=coordinate] (\boxstartx,\boxheight) coordinate(\baposter@box@name nw);% + }{}% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\baposter@box@name se);% + }{\ifthenelse{\not \equal{\baposter@box@bottomaligned}{notset}}{% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \baposter@box@bottomaligned se) coordinate(\baposter@box@name se);% + }{{\ifthenelse{\not \equal{\baposter@box@above}{notset}}{% + %% Above = Node% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \baposter@box@above nw) +(0pt,\baposter@@colspacing) coordinate(\baposter@box@name se);% + }{% + %% Above = notset% + \debug{Above=not set}% + \ifthenelse{\equal{\baposter@box@height}{bottom}}{% + %% height=bottom% + \debug{height=bottom}% + \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\baposter@box@name se);% + }{ %% height=auto or fixed% + \debug{height=auto or fixed}% + \path[shape=coordinate] (\baposter@box@name nw) ++(\boxwidth,-\boxheight) coordinate(\baposter@box@name se);% + }}}}}% +% + % + % Set coordinates relative to nw,se% + \debug{Fixing Coordinates}% + \path[shape=coordinate]% + (\baposter@box@name nw) +(0pt,-\baposter@box@@boxheaderheight) coordinate(\baposter@box@name tnw)% + (\baposter@box@name nw |- \baposter@box@name se) coordinate(\baposter@box@name sw)% + (\baposter@box@name se |- \baposter@box@name nw) coordinate(\baposter@box@name ne)% + (\baposter@box@name ne) +(0pt,-\baposter@box@@boxheaderheight) coordinate(\baposter@box@name tne)% +% + (\baposter@box@name nw) +(-0.025em,0pt) coordinate(\baposter@box@name outer nw)% + (\baposter@box@name tnw) +(-0.025em,0pt) coordinate(\baposter@box@name outer tnw)% + (\baposter@box@name sw) +(-0.025em,0pt) coordinate(\baposter@box@name outer sw)% +% + (\baposter@box@name ne) +( 0.025em,0pt) coordinate(\baposter@box@name outer ne)% + (\baposter@box@name tne) +( 0.025em,0pt) coordinate(\baposter@box@name outer tne)% + (\baposter@box@name se) +( 0.025em,0pt) coordinate(\baposter@box@name outer se);% +% + %% Setting the bg colors of the box header + \baposterHeaderSetShade{headerColorOne}{headerColorTwo}{borderColor} +% + \tikzstyle{rc}=[rounded corners=\baposter@box@@cornerradius];% + \tikzstyle{src}=[rounded corners=0.5em];% +% + + %% Now that everything is set up, draw the actual box, with bg and header + \begin{scope}[line width=\baposter@box@linewidth] + %% Header% + \debug{Header}% + \debug{Header-Shape: \baposter@box@headershape, header-border: \baposter@box@headerborder (\baposter@box@headerbordernr)}% + % TODO: Also turn this last ifcase construct into a handler function + % We only need to determine (fill|shade)(draw|)... +% \baposterHeaderDrawBackground{bgColorOne}{bgColorTwo}{borderColor} +% \baposterHeaderDrawBorder{borderColor} + \ifcase\baposter@box@headerbordernr\relax% + % open + \ifthenelse{\equal{\baposter@box@headershade}{plain}}{ + \filldraw [style=header colors] \baposterHeaderGetShape;% + }{ + \shadedraw [style=header colors] \baposterHeaderGetShape;% + } + \or + % closed + \ifthenelse{\equal{\baposter@box@headershade}{plain}}{ + \filldraw [style=header colors] \baposterHeaderGetShape -- cycle;% + }{ + \shadedraw [style=header colors] \baposterHeaderGetShape -- cycle;% + } + \or + % none + \ifthenelse{\equal{\baposter@box@headershade}{plain}}{ + \fill [style=header colors] \baposterHeaderGetShape;% + }{ + \shade [style=header colors] \baposterHeaderGetShape;% + } + \fi + % + %% Draw the text inside the box header: + \baposterHeaderDrawText{\color{headerFontColor}\baposter@box@headerfont{\baposter@box@title}};% + % + %% Text borders (border around boxes) + \debug{Poster boxes}% + % First set box shade + \baposterBoxDrawBackground{boxColorOne}{boxColorTwo} + \baposterBoxDrawBorder{borderColor} + %% + %% Text Box% + \debug{Drawing Text}% + \path (\baposter@box@name tnw) node(text) [anchor=north west, + outer sep=-0.000em,text width=\boxwidth-2\baposter@box@@boxpadding,inner sep=\baposter@box@@boxpadding, + text justified] {\usebox{\baposter@box@content}};% + \end{scope} + % + % Finally store the box name as the previous box for the next call +% \xdef\@@previousbox{\baposter@box@name}% + }% END of posterbox definition +% + %% Poster Background% + \baposterPosterDrawBackground{bgColorOne}{bgColorTwo}% + %% Poster header/title + \hspace{-1.5em}% + \begin{tikzpicture}[inner sep=0pt,outer sep=0pt,line width=0.05em]% + \useasboundingbox (0em,0em) rectangle(\textwidth,\textheight);% + \path[shape=coordinate]% + (0pt,\colheight) coordinate(north west) (\textwidth,\colheight) coordinate(north east)% + (0pt,0pt) coordinate(south west) (\textwidth,0pt) coordinate(south east);% +% + \ifbaposter@eyecatcher% Has eye catcher + \debug{Eyecatcher found!} + \setbox\baposter@titleimage@left=\hbox{#2}% + \else% Has no eye catcher% + \setbox\baposter@titleimage@left=\hbox{}% + \fi% + \setlength{\baposter@titleimage@left@width}{\wd\baposter@titleimage@left}% + \setbox\baposter@titleimage@right=\hbox{#5}% + \setlength{\baposter@titleimage@right@width}{\wd\baposter@titleimage@right}% + \setlength{\baposter@titleimage@textwidth}{\textwidth}% + \addtolength{\baposter@titleimage@textwidth}{-\baposter@titleimage@left@width}% + \addtolength{\baposter@titleimage@textwidth}{-\baposter@titleimage@right@width}% + + \debug{#3} + % + % + % % Draw Header% + \draw (north west) +(0em,1em+0.5\headerheight) node(image)[anchor=west] { {\usebox{\baposter@titleimage@left }} };% + \draw (north east) +(0em,1em+0.5\headerheight) node(logo) [anchor=east] { {\usebox{\baposter@titleimage@right}} };% + % + \ifbaposter@eyecatcher% Has eye catcher% + \draw (image.east) node(title)[anchor=west,text width=\baposter@titleimage@textwidth]{% + \begin{minipage}{\baposter@titleimage@textwidth}% + \begin{center}% + \textbf{\Huge #3}\\% + {\Large #4}% + \end{center}% + \end{minipage} + };% + \else% Has no eye catcher + \draw (image.east) node(title)[anchor=west] { {\begin{minipage}{\baposter@titleimage@textwidth}{\bfseries\Huge #3}\\{\Large #4}\end{minipage}} };% + \fi + }% END poster begin +% The body + {% BEGIN poster end + % The end, draw gridlines if neccesary + \ifbaposter@grid + \newdimen{\gridpos} + \pgfmathsetmacro{\z}{\baposter@columns-1} + \foreach \y in {0,...,\z} + { + \setlength{\gridpos}{\y\colwidth+\y\baposter@@colspacing} + \draw[draw=green,draw opacity=0.7] (\gridpos,0pt) -- (\gridpos,\colheight) + (\gridpos+\colwidth,0pt) -- (\gridpos+\colwidth,\colheight);% + } + % Horizontal lines, every 0.1: + %% Explicitly list all percentages, because with {0.0, 0.1, ..., 1.0} we + %% get rounding errors in the displayed numbers! + \foreach \y in {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0} + \draw[draw=green,draw opacity=0.7] (0pt,\colheight-\y\colheight) -- + (\textwidth,\colheight-\y\colheight) node[anchor=west] {\y};% + \fi% + \end{tikzpicture}% + % \xkvview{} + \par + }% END poster end