From e0d3f59babc78b6fb01cf70b9291e0b456f76e35 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 21 Jun 2024 09:19:32 +0200 Subject: [PATCH] initial --- compendium.pdf | Bin 0 -> 49001 bytes compendium.tex | 55 +++++++++++++++++ forest/base.tex | 37 ++++++++++++ forest/phyloforest-template.tex | 26 ++++++++ forest/test.forest | 8 +++ forest/test.tex | 72 ++++++++++++++++++++++ forest/treeconf.tex | 18 ++++++ jjpackages.tex | 104 ++++++++++++++++++++++++++++++++ trees/basetree.tex | 35 +++++++++++ 9 files changed, 355 insertions(+) create mode 100644 compendium.pdf create mode 100644 compendium.tex create mode 100644 forest/base.tex create mode 100644 forest/phyloforest-template.tex create mode 100644 forest/test.forest create mode 100644 forest/test.tex create mode 100644 forest/treeconf.tex create mode 100644 jjpackages.tex create mode 100644 trees/basetree.tex diff --git a/compendium.pdf b/compendium.pdf new file mode 100644 index 0000000000000000000000000000000000000000..32401e064d48342af0e71e5fd75516df8b8ba07d GIT binary patch literal 49001 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±c zK&9S7Ft~-g0*eQbT;z9Dl&a!tB7O}STa+|P2ctd6c7-8H`XJ#6a5WeM*FVYyqf{S& z6{JrPof89T>Tg+cF0JaWQ*G+!fJcv=QtW= zCT+=8`UCIQBb9{;r4f}c)>&$e-4== z8n#w;52G%yb)VU;lr(>I&%;R_B`dfuS6?aM7k7*yRc2o%V~yBNbvZikkOw=lP^oIl z48*a+mhrrUp9XJwn`}YK;vW8v9do(&6V&H3D4z@qQy^gjkZ=BRbNC&$#-E8Z)W)-P z4YR^pR~CT5);w-Z0x^LmPhw^MR=aH1Kcex6;IiO|U{8ux*xP}~9of`Vlqa*0^y7>= z46gQ_nUqH!cR631gXH$q>dgtFPW~TO0YC&T)3^7hS}H%+mYPT#-E*$>-!e091I z?hOHbO>BuDT)qe~J8Twi+5ioPY1q{yc#rA`6TK*It9!uOdTqzc?L|GoAQJo+7e-uTWZA#CL7`o;8>^@`(NG_ zyb4^ywka#9@c*$7O}OB=2`qTPp76h+-1Q=^|8i#qH6e3`g#U9kitHa~dYpfOrWayn z22j+Wd%K>IAVDSkwuE(@x&SV9(qVT*;M+oR8-B!l&o4Y?f3iPkRybkxfU&Xx`r-c^ z4}kvpzb!E5rhj!iAeE(PNEH&v`l!0XMJF}!taZp$iA5y*OZ^f8FkJk6>IEWVEqEG! zPNg(!GIt8IJy3_bT{*v87%k{6ilA^@7k}MG)yBZAKZUkU(pOUPXlV?vlype3PtsY& zMg#*c>m_#W%9f`Thai|5wQ8^EV%`Vto|3t+0ALcJ!J5?qz{UiSE+xxvI3}CJCK)vplVUR` zUJDNiw6+)y#!xm*%()bKe;b^SrAL3X#T&BKLduKvCB0%BDZAquL9(}l$j9kPNnHI& z5OCx8L6-uI2tYf9&*9h&SD;UXUHrcxO@cqu$av^_on{B$=rc7}H+KVYH3_l64jo9# z@OP|os^UJsIDZbv{c`?n#+nqZrhF0qAowL*3Xley((qs>43=^KlxGuIP@8ED?`B$sF-bsc77r1d+p6fb#2IV3%iB2Z~%=y5t5f)hZg9{dH(oY~_ zS4s5j(>pz}F-cA>B&I%h-%9zQ^gGBj>ix)jY-H`Kx6a_i#0DrX4$zxsu}oLpm2r4h z<7?u&or2EPzIy}~Eg*eGmfujfVq=?UV|}@MsJ!@IHmEamsQ&3n0{WuEjr*UzmkKZT z96kRfO8S3wxTBu2vD2Ob77c@4w?xqWi0VDhp`hgnpwcXed=WTE{V}+(RBW_dPpfKctqg$O1Od_XdycKQ=D%EuKp z4lD>ja#L2We^1l0n;d^33xaIW@SyKi`+(M5fGr=J)Q8pvyF$Lxo=k*3D37?PQn8Dx?go91?)lAt9z7F~Ye zG!&QEq8#VdB&aw-PH9~b0mShb6O1JD2kFZczf8Y$P*Nx;Z4Y+Gt%CD-QFFq#ukZHl z$)}ge9;|(?F>AC4-C&lF2c_@?yRQsP6$R)I|89P9A@m z`6Ck&hjkF=e zOd6S;hoB5))r1|N3BBJw6uIZW!mq4d!`<8|V(kxgA;5d_N|A6Q2Zy>Wr_O0%H1PrS z(8ChwT@6U0&H5WUCFAidhylXL5~130^1Uc&@YJ~h)6xNH{}0sc2El_XwF#4iPR`vX z=RYMb$Ca3Rl(S^^?fnAYEm`ew(No+CiGnvTuSa*yV7`Kylq;eof@yst`}L%5ZIotv z{?{vCQ98XZ;U_4^__a6KQV>R%T_t5W9jr#UE%9{-0`_CVbfBnyvYKGHY`Y?UxkVGE z7R6RDBi|(L;V|`~0(RlqKsvl(G(T6PR6d6qKGC~X3If2>Ka{>_n|&{L|RaKN)r+$|ENZ$Ma}@D{lCFtrG2_d^aS zdNwrnAs|V52LBsT&>!hy3FHug*($OAM!(s03UEaMt`?ZFy5x8UVB^T$X!^J zM=S)>@Al7B=qylvZqhJ6$6Mp@^m!w+CS)kzxn{65y@U5td3kGU7EcbHk5qOmd)&nA zEA{KZ2!C}YdnI0Fx7H0H^htc(MY{72P0KRYnQcvMY zKO!%Ly@}y+@}?)kABC3k*K~x&qdv>!{upp=LaMQfK;g~f%_2o$Yy9EzJ;y>r3)?!j zN&X11r~}Eje<#6cnCi9x)Ob)EK?3v$sGowNK2Yu3PbM*VMbM-LPG)-{i&PT^*Dq&= z`Y~aiN`Q5Sl)il)WxP5Rq9;1ScUzP(G+eu{ymOld#T#FTeN-;L(}arN&8Q8S#VW~| zE$pDskoWxgvxzj>CyIw8`GVe9poH{Wt^)pI6u;ZX4l39tiO50$bapqgZ5Jv&!)CX{ z5rb;8IPo>Ja3Cr>qp=-Ia%A6Zyc9yVA1H;k-vH`7V}9*W7X=srGB`LpwFo#P=av4` z;}v+k<iM z>V-rqyIz};cV}MU@;7vS-*tmvGEh|c0&5R;*_4Zlu4heC?i5DYW+Rb-5XoARpbx{s z;&dTtUHmodN2?BID9)L`>_i<3k=>|xI(kgSU=w#UMWlEr)b4uZ;eGMbN3TcWM$ZcC zCz@1N-@ag|Gp5keeatcR$_+?dFEwB!aV{X)2gl#7vHv~8*pR3cF$Ywh}IAv6Z{@D!GWs=F#RM zcRqCC`g^Ja(cJykIDBT=RZ+*p(Owp>p00?{YS@OB8z{Lw4E3?RaBKXWXtCn=;B#8i zcnF$Kc$7(G6(;dEaw^{J-1?uX5$WVpKhPUWWS*&LNqN`A?8N2tU9dDA3waCKi)jmU zrPN_*M5jToOk9zU$!HZ-cp)&udK%H@NP@u=S{;*6OA1hS@)9Rn+zK_sg}_liM#8Ad zMpaWqHw7{uXp8H-!)W$%7)Dl!mAMWg7)D{UCbQ|`IM2=-vYSaSWBHxWN;nmd2 zM{nKKa3lY$1Z8a_(mYnuusyi=$+}?aW!n5lQSy52uxu7%S>}-49Ln4WCipkP1O0tH zxIbVNYC!J%k-{q^V@3(Tsi z`-sffUAfwo(C6a12&Lvsx6fY^gdT7{Ei@$05mKT*_FW}p-FC2LUxP``_Hh-0QViifhC6y|!N;R-bMk zB(Dj|h!*X|4)JCb4}YZi0E~_jyxzO_bC)3<#nB_b#WK+l_q!gSWxZ z(QvZQz-rLy$(e!V8@L&zSzyLkbDg666T;Zl{ufD`kq;B{Gh44L%fK>qcUsAAcJO%j z-{k>2U%)cP-!NtaP^4ZI@FgDJwzAxjq{QoKO<B{uB!^F@3G(|cRdP>b{gDr>}5rqwm5gZj8YbBHN2;yjz)d?He&+xS9F zaY}^-{qfr4skI&a6Vhw+F85o~YJUIayzBuk)3LWO?3;Lea9oseOH58aMJ?&#V zDJk+z*$UruF0=3UtqEgrc3t!!SY?lvyi~U!xO^h|nFm?=`SYKcV%UUu+L~Nsw$2;M z?nBC@I)+5+Qu2cD;tt==-Z`?%M-o^g#iajWIJN>$w{+*Dv0w4D96R8=AGhG;`XTuJ zS=vM0F^Guh84Vm*Sb?OK?7yLnl04H9vGP(YvM@r}T*6GllQ*Vz*=Mk=Aelu9s}{j% zQD_;&Z%+pgIiz@^3k1kv4J5|1pa00xk#4X4S;g=rN^*Mh^m=uz;YY{2I_J=N*S2|| zlS`xy2mJ?^HhtggV--Up*Ngt+*Q?%PH?GbP``J0Zg8O^-Gtu8&oWFOvee75md<_la zyTt^dEDo-YAjeMWk&j~&6rrpVlyOH%3&94K)>RFfONjH>rD74dafjv0mJ&u6Ifrk| zFwcULCRB=wE=53QBZ@}K9jgEW)fqIHw22^auT`Cvkkd`9AJ7_gkI-wr(^HQ25K-No zMkXp`#|(d@N_@~QZ6z6pD`QY0BdMi+J~%g`K-c8mGKaR?`bwyNA$<$r;1dEgxM( zO`Xy-q|1zC2NS-mLL|jt1vc6BzaMBu8%NDMUxTrx3WCUNltf5H{oYpaRQU{se!_tP zWIzCOoML19_ZZYHfT75*<^ik#gww%XU|PFh<5l&NM0NE?Bcytd9j1E;n+&}h(*z#9O?3w(}zoIW`@Z&bVWEUei15-q|(F+y!k5}63;-8E0M_8V>)rXIAg5Hl1F&ySH*5S)#0t{ zU5z@AFb@IxQcuuB4!QiUBi?bRqPeVsP>cCqi(g^XXgS`w<}!MOIx6|>R)Ify^BL)m z>Yd0jpJ2*=(Nb=c3V)iO<{U&iRJ$gQ!F$Un2&(Kb1}tL-I2r$=oy_(d;%~>ZEOPxX z*DOCTMC}gI;!p5p&7xys^lYW-z}&<@?y`cw{Ehji`lqA^fP*KYz)3z{&?a->IYjL?Iw9Lte#8e!HLou#O`(6|#s{&CuZDHEQlmU+qlQBtvxhq>2J3Yd^HM%eo2Xt)LVx5MD>M{E zx{`MGKsn?<4UOT=1lg&B_H;%sMh#;ZAS}hHA{VNHAmUbRw~NSUv~evE1f6CV>j!ql z0PF4p3|;Fjl1qQ21zUw&d5mF`l1%?usA!Vt@1VE+Zm*mK#Ke9thRv!TgoGc zPy2g8)0WnjTr2$!N+|*_<+%wHdRf)72P8KN4k-tRGLkmFcvyAh~2~D;pHU-E43@IkGI1r>4+j)3q?n|pKrW$uS^Rf1(x7L~a| z^(GAdE^iBH+4slxt1G?b{#&Z!mdYPmjj1!(t}buAq5BUXv^A6~=QN5&-dN4k$~4K` z!jf-h%j(FCmcLhi`XrPnjDM{XQM%n`PhHAEKYpn5fwS7Ja8k-3Bk4*{Ln=Y#T0(<}ESp{BhU;soj)TP&K%zOAQIl9G z9(}k5A2ShL>M|~J-|*0u;QQlH-MsloDz@?9#wkz zL@wr^5PO_YD;Q3HAR=p#EBNF@BuMnnt$tG9z|djZqp(gyAtTezDmIhKb!Lspqb9tC zo_ji)R6J%O`k3)`DSnmPTU?80Ej@ywzH`t#dY8j+yPE%-9sPIspAVN#p}Xhjv*$lX z)*L4o=IP)QVQ^eQlrP);@?f%2yMm~z!xh-2{l3iVBm|LKfqjLr0;ea&6U+j?g?Xj5 zUnsBVcsyh${I$LYbVzNW|F!i7nUuT(_g<5YL0$I{flTj~MpmpZ{8q=*$?`5lVL5K! z#Z;laB+_9h6O<3W(W^zJ|r+wwd*)w6-M5GQWb_iq&q%H?8c#B2VH{*>jbXMlhV~*UsqLM zFOX^&8+y9>t$_G*_z8@a>1I_(rUqti1WPu~9j9(|BI^^C z`>O64zE|-)##4DrIw?K3!=POnH=QaiL}~?Zh`DYB7AznoE$eR(_+EH20J3w4zH8}D zQLOT3ka~$$$t+TWP;qGTG;CxvX4Vzhz3ZuaYM&rHhf>B_MMp*6ptRERoeI;E@aOgV z)Nu@r`uxa@u?TswPaO6&)~QAk1GmYk?t1Rpf~qqno^3%jM?dyWZ|*{N@1HVk=(#S{ z)vlseLqLd~H*(gF%@wow;C7t1prH89MrpuzJ|xk@9w7K`APsS^IHOQ47gb_+BWW5X z*u;6=nYx7$zdp4n3oTgB+D?b2y6d9w^b^TDg+3W{t_Cf3-rtoqx_J+ZwQ-tr+Uwb~ zN%r8>y%;@N3R4rB*CBRv!BvV`uDErTp@gokps_28zPj^6Orf?9{FGxh&3wU*4UYGYuS1C{2Prm$0pjg*Do4^v>^@#Av!wM@u;?D~nSD@4x> zD?m>ZQcawL6U)MIR-b!%V6Yc#VAoz!9Yg<$F&b1wgzv7 zJ8L6?{s7AMmmfmwvY;*zKr4D`IE@H`fxzYMc}lEaLf|&zMs!@Fl0vz&4OjS2P&*#N z8jSMFPZI?1nwGYeiC?SIiF3|*nwdxf0Dz&k+(al+oW;rI4U#OBeyC};8Has7_q2l0MQ_Eqv$4TtiJh3#NIh>hr&_V8iSZgT^C|&YOz^Y%CqU~F& z?jPP+I!@Mg@}yh$D7dnz`b;?#uBPFEC_*rvf?nLm18eRBGYw?>4Kke1w1Q30OHVKi zo&>(b&x&!fJSsO5)R;GTB7gE@E46-uK4x)I@Q+Jk0qImi3Mt0}QTdBqInlu(82`cb z_D?eU2745vOCkEUvYJ?xv`ca#>(&~>6+Cq3y6f+J3);ZP3AHt*j-c!(j~qu|_(|4{ zZEYryQc{7i;0q_L8h;_|sJl!XK$@%#=+V0VtK=&4G%UKNPz zqL9?sb@$o$ovI$R$;2ecFz9ryy5eO9(uy*jA`JVbebKnchA{WEMY#sn>;bpFO_M>?XHp3jUhR#varr zJ74nX;;lSM8}Fw`x7;NPRQQ^0Zh49xc_gyv(4Ib%R!q{?L}=AFlxw-@#WRRE(|vN^ zEl{m1lb$(HfQ0|p3vb^e7pxhsVY_ReIT2(NzJ&dnt?I+VLtUxE7!g{XzG|CQw2b^G zq|59l&}NP{G+-kiNNvXU8~13t7f$<&jwzNNgvF+w@Ysj0!Z=PBj8crTzwbn?6Zm#9 ztWra)kqKuVHwutt;JZ@O=ikVz7xY~57MfFpGUr{Z-sz_!)vcYolBJ&akG3tnD)x2x zURCCB_pvOL@8;_6(c*CRvEg;P*GabKM*!7qEm=m1-<2{SePkyb?z$`0ayYe4*3D!z z*w%~zuMb@3iARI&NGD`~2G2OcMKNRCE4j|b(}ko}JcW@wbC>?ZM%pfY62lOxrX|KW zs^<52dgF#{LAs@O-7gND4>=0&>uNJhCI&u4Yctqzns7wg_8pRv8bX-$L)xTN#T>%J z4%M1!*5#XxDx1|TLsd3{A{D@CuR@Q{?4L0woSb!bSTN8nCGkH|mSkjh^QRGYu(wJ5 zGy1Im$8tv5$-&Ik)ZB@f+R@BH-CUc2g^`_^k(Gl6j!DGT#md2nT91v36Y#^O2hgvT zeOZ{lEG+(B=rOZ1|NT3Mmsj>L3)7c{*UQ55W$}iFN!{AT*8KnMPW0tBzcz7sd1d^v z__eY1uT5SSf9)OcFXw;0S9^K$YtPOvuYPU+>x0?7y#2MOU;p>dJ(<0%@M~44msfxN z0p*uBzmCfG?>+qbEWeK7*ZTG}OlqzsHs+=-)HFh|1VFrbn7P=w=$Kiln3<^n z>nS*x{jXKjos1nF&CQ6JB#mvI&Ec4o)g`nUC0%W8O^ogBU(TVrm9;Z5;QNnrNl&b4 z?&J*k)5L6yEbIVl3RX@IHU?Hk&c9AFU<1Hsm$!B^CkA{fHYRa%6Ki988sayO#x7RQ z=ElTse{Rpo$i@g55`w=>4;)Nv;Qq7ZQU@G1F_V&sjhc%c9Frn3C-cj6qLZ@=F*_Fr z9Fx4cy(J(xtXzNPy#HddG2@NHS8mLZ&p)+JO~Gv`)|iA@guPa~6)gjbBRdN3aw%msPToIRHlqS(m~_lfG?33Ff@aN|An(E%OB;^%iBm$EsXw$gjXcRBkY-3k8FY-B_hA zUsKEo)6R+qZ8n9gTEw(ej%1xL$vDB8+(q~`Hw@?($60?Ib~=I>e;IK1Aufj=c^vi= z{0l2WDugRqw8_`A8}ZUEiXM>AJTtiZ82jmN(h&C+5Ke{0P|s=15ja@4QTJvoMfkmy znvRe-1_gXETbpIz5j+wEt{FU|n;5M8<`Dh-O;#`{XH(?Z&1827d1q@XM+_JK`JqH$ z9{^L43#Bm7CtDq`J!&#v0`jX#y+pPVN!Ypbd`VQh9l73JM>Pyq`qX)UHanKPHe1bk zb+Ma|0)3QfXrUxXZF%NO#QkkB$-BTzVOUs3X&6hk^#fPQj*_gPb|Bf-Ka{@sIN8<+$b{V@w^*cUbxsy z!uP(mo$q{ho2$DnZQHjzj@&ib$Lhrui$JhEZu9MEH^{nrgV4tE&F;P6NjB5xS~OOc zZuV(om^V|mj=W+5bn0Eq?ZaL+`8Id!&v#5vzGUE(u@}+3wz_(T2H8K@UKNz>y(%6L zp$TkC9i2PVaGwuEt{GC{LU^l#7;13{yA*g)O&?fo|Lr}vpmPahh-q*h$`V!TExIbQ#2_!Wz42VRKcW@56+<28Mq zKi7v+2WB!6tU+_rqR=IhHUj3@t>BH~Gbkl|OI*6J{qm`pwC{Mv-f*dS$P{N#9U07bmyRoIZE6=*Q|uhaPN4n|@}CIY!zPZsFTD>U9x9yiSK( zoeaD|EDo`+LlXKPB3xwUdxEEmIfJ2Yt&Cyh?lR02S~k?^ICjHG9P38D%=m`zA(bqw-P-oEKRL>aD>j|_cad7>bh>fv83`n5q z^nKt_!ys3aY{i6CEaXWMtLOLJprMmIWWl0+J9D6t(%!Zjr5ug<%9@FQY#B+U9|~rf zy4|zCLP7Zi2UbZxvsUblt*wu2bg|M$y1E5#eujZ;n-`b|tGU0yN^olHn2v~V z#OTu1HH#tsp^SK|7Fv0BLPPv*XF%8}p>+69Z>9XwP-F=|>JPY*L_{(g==ovwQRC8i z2KFq$_ZhhX9HF16>Rq;HxCvNbeLe(f{C}05do&aLAID9POPfo{tyET-u{mzp5=In{ zJsG**XB4(5xesBc2)Q+@h0LuXxy)tlaUaDG(ZTRe9tEuq_(Od{Y5r&t3D-D7WAlS%O#`gwR{DCfX+9@k#4Kv5|cZL znx}x~M4< zW2SbW#x}_^X2Vm`o@SnMw|2rwYwNN+r2O~tC(=n-_j$^xkN8D=q)(y zP^ZFRO2feULQsmSkc*|b89!0uh?LW%O#^u9Kz(Mp4RBHw)9dd z$|@?fQNxZwhb(S*sKH%_Z7Oo({%|JSs@V_QjOWJnjeN0hW6*(!pL#V*WglLYaqAd# zC&bT&>abES!>@>i0EN%O-Cj5L$u`}8*!jlUe>wRxHbKawHU=_fETf9STGDPsnRlWK zdS1Zw3IwKw32r#WT`jG$FUXAisW?N6q1oKt9@{0B8wtO*$afpT=>{5}Ua(%gawLEa zTGP(fp_jH}l!ay1n)^*tj+T#_fjX*6w(1rD&GvpKPgoIU+tcP1lkEo^2OusF|6uN? z_{lOdYa8SGFPfip!orH@Pio2W{Jmib5UcVEpD2tJ{A!4c>oDg@t`uuJL54L=mhpXb zabu!sr&_sdr3E>xdNsVQGC1s(CgS_{5$H#Jer;v2+2i1w_026^p`~lH)1g`wN5}Q! z^8j1vNBmjz2>KQj2vvwtSSaV)jq!TI(#Y|;29LaH z+tdatl-p)J6GKdg_`(h&fz!BU%Hy^_Q)ZSVy+T4io^x}_KphB|E=YAS%$8Y;S`Uf( z`i1!3sSBVKSu;j~U${3No2le6+-QU=xtU)*0#LgBw!1Q>`C+2j{Dhp|&uhEB#(|A4 zhYPM7vVN+@c^JKxyXGF~|8H1Xk@j`P=O*z@1CLSEmXEKy40e0@gWMRN=R&i+HxE_S|t zKrQt3E51aqyS9MP^*n)E_JrtPu&xKxat6EWfOWw-0?{rgC`=&!3ZU(Nb@&DS;`zU; z3t)F6Q*$%33j+8T96CsS{R?Nc^^y95jZJ0(Nn6|0)ENA~uL$1x8|4xIM~o^r zz(6~=lQ_1r-m`@JaoTgzimt*I;Uu1C;ijD8WnpR((;Md@p*Z8uPgTfM;f?}T^~fp8 z9i>{hkbN{=p$U3Ih0ySq0<4%HoAc658!q+oYrnbYa>O*A?vq3vAl7|6OAU>z@Uf2_l96E!dH!a9^6btoSJyuT*|FXoKr z%oOe&)L(?^JC84-#1=D2AmapTpYyk4Pot$ZZ|>LBO-!rgEUVr?tFs$=-uGxyAXEgM z}{>1ixzbdv<9dT$ox5~GuobH1&5t(FfOFeW@}IP;Mml(QC9fxQRCngcrQb0-OgW0eSh{wvohd-?*e zX8P4q`{7HY8@auO3$e2b#9&Dx+8@g#IfFO>swIqzArPB4c53Ex)QY+JP3s$DNqfag eiT{xOg@$>Dgb@Xn8>pu**qRH3K+J6{fPVp96}CzM literal 0 HcmV?d00001 diff --git a/compendium.tex b/compendium.tex new file mode 100644 index 0000000..059263f --- /dev/null +++ b/compendium.tex @@ -0,0 +1,55 @@ +% MAIN FILE + +\input{jjpackages.tex} + + +\usepackage{forest} +\tikzset{ + comment/.append style={label={[font=\small]0:#1}}, +} +\forestset{ + /tikz/label position=below left, + /tikz/label distance=.1em, + dot/.style={tikz+={\fill[fill=#1] (.child anchor) circle[radius=2pt];}}, + dot/.default=black, + bar/.style={tikz+={\draw[color=#1,line width=2pt] let \p1 = (!u.parent anchor), \p2 = (.child anchor) in ($(\x1, \y2 - 0.5em)!0.5!(\x2, \y2)$) -- ($(\x1, \y2 + 0.5em)!0.5!(\x2, \y2)$);}}, + bar/.default=black, +} +\definecolor{treeedgeclr}{RGB}{80, 80, 80} + + +\usepackage{pdfpages} + + +%opening +\title{Botanik \& Systematik der Pflanzen} + \author{Jeff Jonczyk} + +\begin{document} + +\maketitle + +\section*{Einleitung} + +\newpage + +\tableofcontents + +\newpage + +\section[Systematik der Pflanzen]{Spezieller Teil: Systematik der Pflanzen} +\subsection{Prokaryota, Eukaryota \& Archea} + +\begin{figure}[!ht] + \centering + \input{trees/basetree.tex} +\end{figure} + + + + +\section[Allgemeine Phylogenetik]{Allgemeiner Teil: Phylogenetik} + + + +\end{document} diff --git a/forest/base.tex b/forest/base.tex new file mode 100644 index 0000000..f244df4 --- /dev/null +++ b/forest/base.tex @@ -0,0 +1,37 @@ +%base tree +\begin{forest} + % BEGIN treeconf.tex + where n children=0{tier=word}{}, + for tree = { + %s sep=-0.1em, + grow = 0, % 0 deg = right + reversed, + align=left, + parent anchor=east, + child anchor=west, + anchor=west, + edge path={ + \noexpand\path[draw, ptclredge, line width=1.2pt, \forestoption{edge}] + (!u.parent anchor) |- (.child anchor)\forestoption{edge label}; + }, + before typesetting nodes={ + if content={}{shape=coordinate}{} + }, + } % END treeconf.tex + [[ + [Prokaryota] + [ + [Archea] + [,label=Eukaryota, dot[ + [, label=Planta, dot + [Rhodophyta (Rotalgen)] + [, label=Grünpflanzen, dot + [Chlorophyta] + [Embryophyta] + ] + ] + [] + ]] + ] + ]] +\end{forest} \ No newline at end of file diff --git a/forest/phyloforest-template.tex b/forest/phyloforest-template.tex new file mode 100644 index 0000000..716a76f --- /dev/null +++ b/forest/phyloforest-template.tex @@ -0,0 +1,26 @@ +% phyloforest-template.tex +% Template for a phylogenetic tree using forest + +\begin{forest} + % + where n children=0{tier=word}{}, + for tree = { + s sep=-0.1em, + grow = 0, % 0 deg = right + reversed, + align=left, + parent anchor=east, + child anchor=west, + anchor=west, + edge path={ + \noexpand\path[draw, ptclredge, line width=1.2pt, \forestoption{edge}] + (!u.parent anchor) |- (.child anchor)\forestoption{edge label}; + }, + before typesetting nodes={ + if content={}{shape=coordinate}{} + }, + } % + + % TREE CONTENT + +\end{forest} \ No newline at end of file diff --git a/forest/test.forest b/forest/test.forest new file mode 100644 index 0000000..9da6485 --- /dev/null +++ b/forest/test.forest @@ -0,0 +1,8 @@ +[ + [Procaryota] + [ + [Eucaryota] + [Archea] + [some more garbage] + ] +] \ No newline at end of file diff --git a/forest/test.tex b/forest/test.tex new file mode 100644 index 0000000..109d03d --- /dev/null +++ b/forest/test.tex @@ -0,0 +1,72 @@ +%c reated by phylo-tree from test.forest + + +\documentclass[tikz, crop, border=5pt]{standalone} +\usepackage{forest} + +\usepackage{fontspec,xltxtra,xunicode} + +% English Fonts +\setmainfont[BoldFont={Fira Sans}]{Fira Sans Light} + +% 中文字体 +\usepackage{xeCJK} +\setCJKmainfont[BoldFont=Hiragino Sans GB W6]{Hiragino Sans GB W3} +\xeCJKsetup{CJKecglue = {\hskip 0pt plus 0.08\baselineskip}, xCJKecglue = {false}} +\punctstyle{plain} +\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} + +\definecolor{red}{RGB}{188,36,46} +\definecolor{black}{RGB}{26,25,25} +\definecolor{grey}{RGB}{129,130,132} +\definecolor{green}{RGB}{32,128,108} +\definecolor{purple}{RGB}{160,90,150} + +\tikzset{ + comment/.append style={label={[font=\small]0:#1}}, +} +\forestset{ + /tikz/label position=below left, + /tikz/label distance=.1em, + dot/.style={tikz+={\fill[fill=#1] (.child anchor) circle[radius=2pt];}}, + dot/.default=black, + bar/.style={tikz+={\draw[color=#1,line width=2pt] let \p1 = (!u.parent anchor), \p2 = (.child anchor) in ($(\x1, \y2 - 0.5em)!0.5!(\x2, \y2)$) -- ($(\x1, \y2 + 0.5em)!0.5!(\x2, \y2)$);}}, + bar/.default=black, +} + +\begin{document} + +\begin{forest} + where n children=0{tier=word}{}, + for tree={ + s sep=-0.1em, % make siblings closer + grow=0, % 0 degrees is to the right + reversed, % tree_direction + align=left, + parent anchor=east, + child anchor=west, + anchor=west, + edge path={ + \noexpand\path[draw, grey, line width=1pt, \forestoption{edge}] + (!u.parent anchor) |- (.child anchor)\forestoption{edge label}; + }, + before typesetting nodes={ + if content={}{shape=coordinate}{} + }, + } +[ + [a] + [ + [b] + [b + [c] + [c + [d] + [d] + ] + ] + ] +] +\end{forest} + +\end{document} diff --git a/forest/treeconf.tex b/forest/treeconf.tex new file mode 100644 index 0000000..bd3150d --- /dev/null +++ b/forest/treeconf.tex @@ -0,0 +1,18 @@ +% BEGIN treeconf.tex +where n children=0{tier=word}{}, +for tree = { + s sep=-0.1em, + grow = 0, % 0 deg = right + reversed, + align=left, + parent anchor=east, + child anchor=west, + anchor=west, + edge path={ + \noexpand\path[draw, ptclredge, line width=1.2pt, \forestoption{edge}] + (!u.parent anchor) |- (.child anchor)\forestoption{edge label}; + }, + before typesetting nodes={ + if content={}{shape=coordinate}{} + }, +} % END treeconf.tex \ No newline at end of file diff --git a/jjpackages.tex b/jjpackages.tex new file mode 100644 index 0000000..7c95979 --- /dev/null +++ b/jjpackages.tex @@ -0,0 +1,104 @@ +%####################################### +% jjpackages.tex +% generic include for common LaTeX packages +% @author Jeff J +% usage: \input{jjpackages.tex} +% +% v0.1 2024-05 +%####################################### + + +% ### DOCUMENTCLASS & LANGUAGE ######### + +\documentclass[a4paper, 12pt, german]{article} +\usepackage{geometry} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} + +\usepackage[german]{babel} + + +% ### MISC ############################# + +\usepackage{hyperref} +% \usepackage[implicit=false]{hyperref} % disable color conversions for printing +\hypersetup{ + pdftitle = {Botanik \& Systematik der Pflanzen}, + pdfauthor = {Jeff Jonczyk}, + pdfsubject = {}, + pdfkeywords = {}, + colorlinks = false, + urlcolor = blue, + linkcolor = cyan, + citecolor = brown, + filecolor = magenta + pagebackref = true + linktoc = all + } + +\usepackage{url} +\usepackage{pdfpages} + +\usepackage{ragged2e} +\usepackage{parskip} +% \usepackage[skip=12pt, indent=30pt, parfill=50pt]{parskip} +\usepackage{setspace} + + +% ### FONTS & COLORS ################### + +\usepackage[table]{xcolor} + +%\usepackage{lmodern} %modern font-family +%\usepackage{mathptmx} %times ff that also works in math mode + +\usepackage{titlesec} % allows heading customisation + +% options for stiketrough +% \usepackage{soul} +% \usepackage{ulem} +% \usepackage{cancel} + + +% ### COMMENTS & CODE ################## + +% \usepackage{comment} +\usepackage{verbatim} + +%\usepackage{minted} + + +% ### IMAGES & FIGURES ################# + +\usepackage{graphicx} +%\usepackage{wrapstuff} + + +% ### TABLES ########################### + +\usepackage{multirow} + + +% ### LISTS ############################ + +% \usepackage{enumerate} +% \usepackage{paralist} % provides compactitem, compactenum enviroments + +\usepackage{enumitem} + + +% ### REFERENCES ####################### + +%\usepackage{cleveref} % ! For some reason must be loaded after ansmath; see below +%\usepackage{showkeys} + + +% ### MATH ############################# + +\usepackage{amsmath} +\usepackage{pgfplots} + + + +\usepackage{cleveref} % technically belongs to REFERENCES, but must be loaded after ansmath diff --git a/trees/basetree.tex b/trees/basetree.tex new file mode 100644 index 0000000..c24762f --- /dev/null +++ b/trees/basetree.tex @@ -0,0 +1,35 @@ +% phyloforest-template.tex +% Template for a phylogenetic tree using forest +\begin{forest} + % + where n children=0{tier=word}{}, + for tree = { + s sep=-0.1em, + grow = 0, % 0 deg = right + reversed, + align=left, + parent anchor=east, + child anchor=west, + anchor=west, + edge path={ + \noexpand\path[draw, treeedgeclr, line width=1.2pt, \forestoption{edge}] + (!u.parent anchor) |- (.child anchor)\forestoption{edge label}; + }, + before typesetting nodes={ + if content={}{shape=coordinate}{} + }, + } % + [, label=Animalia, dot + [Ctenophora] + [, label=NOTE, bar=red + [\color{green}{Porifera}] + [, label=\color{green}{Parahoxozoa}, dot=red + [Placozoa] + [, label=Planulozoa, dot=red + [Bilateria] + [Cnidaria] + ] + ] + ] + ] +\end{forest}