NAME
Math::Geometry::Construction::Draw::TikZ
- TikZ output
VERSION
Version 0.009
SYNOPSIS
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;
\\documentclass{article}
\\usepackage{tikz}
\\begin{document}
$string\\end{document}
END_OF_TEX
DESCRIPTION
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)) {
$raw->mod(TikZ->raw_mod("$key=$value"));
}
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
.
INTERFACE
Public Attributes
svg_mode
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.
math_mode
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.
Methods
See Math::Geometry::Construction::Draw.
DIAGNOSTICS
Exceptions
Warnings
BUGS AND LIMITATIONS
Please report any bugs or feature requests to bug-math-geometry-construction at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Math-Geometry-Construction. I will be notified, and then you will automatically be notified of progress on your bug as I make changes.
SEE ALSO
AUTHOR
Lutz Gehlen, <perl at lutzgehlen.de>
LICENSE AND COPYRIGHT
Copyright 2011 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 http://dev.perl.org/licenses/ for more information.