X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ.pm;h=69a55c81ef7517b432c84232c7eb222984444121;hb=0fb9961e1a5172180e428b49f67e2120835c9e3c;hp=eda4ca61e1ec38ead58dfef6a677438657a340dd;hpb=594156dad44851e8a31499dfb83b9c6f089abdd4;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/lib/LaTeX/TikZ.pm b/lib/LaTeX/TikZ.pm index eda4ca6..69a55c8 100644 --- a/lib/LaTeX/TikZ.pm +++ b/lib/LaTeX/TikZ.pm @@ -9,11 +9,11 @@ LaTeX::TikZ - Perl object model for generating PGF/TikZ code. =head1 VERSION -Version 0.01 +Version 0.02 =cut -our $VERSION = '0.01'; +our $VERSION = '0.02'; =head1 SYNOPSIS @@ -36,7 +36,7 @@ our $VERSION = '0.01'; $octo->clip(Tikz->rectangle(-0.5*(1+i), 2*(1+i))); # Fill it with dots - $octo->mod(Tikz->pattern(class => 'Dots', space_width => 10)); + $octo->mod(Tikz->pattern(class => 'Dots')); # Create a formatter object my $tikz = Tikz->formatter(scale => 5); @@ -48,25 +48,25 @@ our $VERSION = '0.01'; =head1 DESCRIPTION -This module provides an object model for TikZ, a graphical tookit for LaTeX. +This module provides an object model for TikZ, a graphical toolkit for LaTeX. It allows you to build structures representing geometrical figures, apply a wide set of modifiers on them, transform them globally with functors, and print them in the context of an existing TeX document. =head1 CONCEPTS -Traditionnaly, in TikZ, there are two ways of grouping elements, or I, together : +Traditionally, in TikZ, there are two ways of grouping paths together : =over 4 =item * -either as a I, where each element is drawn in its own line : +either as a I, where each path is drawn in its own line : \draw (0cm,0cm) -- (0cm,1cm) ; \draw (0cm,0cm) -- (1cm,0cm) ; =item * -or as a I, where elements are all drawn as one line : +or as an I, where paths are all drawn as one line : \draw (0cm,0cm) -- (0cm,1cm) (0cm,0cm) -- (1cm,0cm) ; @@ -74,7 +74,7 @@ or as a I, where elements are all drawn as one line : This distinction is important because there are some primitives that only apply to paths but not to sequences, and vice versa. -Figures are made of ops, path or sequence I assembled together in a tree. +Figures are made of path or sequence I assembled together in a tree. I can be applied onto any set to alter the way in which it is generated. The two TikZ concepts of I and I have been unified with the modifiers. @@ -83,12 +83,12 @@ The two TikZ concepts of I and I have been unified with the modif =head2 Containers -=head3 C<< Tikz->path(@ops) >> +=head3 C<< Tikz->union(@seq) >> -Creates a L object out of the ops C<@ops>. +Creates a L object out of the paths C<@kids>. # A path made of two circles - Tikz->path( + Tikz->union( Tikz->circle(0, 1), Tikz->circle(1, 1), ) @@ -97,9 +97,26 @@ Creates a L object out of the ops C<@ops>. 'even odd rule', ); +=head3 C<< Tikz->join($connector, @kids) >> + +Creates a L object that joins the paths C<@kinds> with the given C<$connector> which can be, according to L, a string, an array reference or a code reference. + + # A stair + Tikz->join('-|', map [ $_, $_ ], 0 .. 5); + +=head3 C<< Tikz->chain($kid0, $link0, $kid1, $link1, ... $kidn) >> + +Creates a L object that chains C<$kid0> to C<$kid1> with the string C<$link0>, C<$kid1> to C<$kid2> with C<$link1>, and so on. + + # An heart-like shape + Tikz->chain([ 0, 1 ] + => '.. controls (-1, 1.5) and (-0.75, 0.25) ..' => [ 0, 0 ] + => '.. controls (0.75, 0.25) and (1, 1.5) ..' => [ 0, 1 ] + ); + =head3 C<< Tikz->seq(@kids) >> -Creates a L object out of the sequences, paths or ops C<@kids>. +Creates a L object out of the sequences or paths C<@kids>. my $bag = Tikz->seq($sequence, $path, $circle, $raw, $point); @@ -169,7 +186,7 @@ Creates a L object that links the successive element =head3 C<< Tikz->closed_polyline(@points) >> -Creates a L object that cycles through successive elemnts of C<@points>. +Creates a L object that cycles through successive elements of C<@points>. my $diamond = Tikz->closed_polyline( Tikz->point(0, 1), @@ -251,6 +268,13 @@ Layers can also be directly applied to sets with the C<< ->layer >> method. ->mod(Tikz->pattern(class => 'Dots')) ->layer('top'); +=head3 C<< Tikz->scale($factor) >> + +Creates a L object that scales the sets onto which it apply by the given C<$factor>. + + my $circle_of_radius_2 = Tikz->circle(0 => 1) + ->mod(Tikz->scale(2)); + =head3 C<< Tikz->width($line_width) >> Creates a L object that sets the line width to C<$line_width> when applied. @@ -260,7 +284,7 @@ Creates a L object that sets the line width to C<$line_ =head3 C<< Tikz->color($color) >> -Creates a Lobject that sets the line color to C<$color> (given in the C syntax). +Creates a L object that sets the line color to C<$color> (given in the C syntax). # Paint the previous $thick_arrow in red. $thick_arrow->mod(Tikz->color('red')); @@ -358,7 +382,7 @@ sub import { =head1 DEPENDENCIES -L with L 0.63 or greater. +L with L 0.80 or greater. L.