Math::Geometry::Construction::Draw::TikZ - TikZ output


Version 0.021


  use Math::Geometry::Construction;

  my $construction = Math::Geometry::Construction->new;
  my $p1 = $construction->add_point('x' => 100, 'y' => 150);
  my $p2 = $construction->add_point('x' => 130, 'y' => 110);

  my $l1 = $construction->add_line(extend  => 10,
                                   support => [$p1, $p2]);

  my $tikz = $construction->as_tikz(width    => 8,
                                    height   => 3,
                                    view_box => [0, 0, 800, 300],
                                    svg_mode => 1);

  my (undef, undef, $body) = Tikz->formatter->render($tikz);
  my $string = sprintf("%s\n", join("\n", @$body));

  print <<END_OF_TEX;


This class implements the Math::Geometry::Construction::Draw interface in order to generate TikZ code to be used in LaTeX. It is instantiated by the draw method in Math::Geometry::Construction.

The output created by this class will be a LaTeX::TikZ::Set::Sequence object. See SYNOPSIS.

Key/value pairs in the style settings of lines, circles etc. are translated into raw_mod calls

    while(my ($key, $value) = each(%style)) {

See LaTeX::TikZ if you want to know what this code exactly does. Anyway, the important part is that you should be able to use any modifier that TikZ understands. See also svg_mode|/svg_mode.


Public Attributes


Defaults to 0. If set to a true value, SVG style attributes are mapped to TikZ attributes internally. The idea behind this is that you might want to use the same construction including style settings for both SVG and TikZ export. This feature is experimental and will probably never cover the full SVG and/or TikZ functionality.

Currently, only stroke is mapped to color, and this is done literally. It will therefore only work for named colors which exist in both output formats.


Defaults to 0. If set to a true value, all text is printed in LaTeX's math mode. Again, this is to enable the same code to be used for TikZ along side other output formats while still typesetting labels in math mode.


See Math::Geometry::Construction::Draw.



Lutz Gehlen, <perl at>


Copyright 2011,2013 Lutz Gehlen.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.