Template::Plugin::Latex - Template Toolkit plugin for Latex
[% USE Latex %] [% FILTER latex("example.pdf") -%] \documentclass{article} \begin{document} This is a PDF document generated by LaTeX and the Template Toolkit. \end{document} [% END -%]
This plugin allows you to use LaTeX to generate PDF, PostScript and DVI output files from the Template Toolkit.
The latex filter was distributed as part of the core Template Toolkit until version 2.15 released in May 2006 when it was moved into the separate Template-Latex distribution. It should now be loaded as a plugin to enable the latex filter:
latex
[% USE Latex -%] [% FILTER latex %] ...LaTeX document... [% END %]
You can specify a different filter name using the filter parameter.
filter
[% USE Latex(filter='pdf') -%] [% FILTER pdf %] ...LaTeX document... [% END %]
The paths to the latex, pdflatex and dvips should be pre-defined as part of the installation process (i.e. when you run perl Makefile.PL). You can specify alternate values when you load the plugin.
perl Makefile.PL
[% USE Latex( latex = '/usr/bin/latex' pdflatex = '/usr/bin/pdflatex' dvips = '/usr/bin/dvips' ) %]
You can also specify the default output format. This value can be latex, pdf or dvi.
pdf
dvi
[% USE Latex(format='pdf') %]
With the plugin loaded and a default format defined, you can now use the latex filter.
[% FILTER latex -%] \documentclass{article} \begin{document} This is a PDF document generated by Latex and the Template Toolkit. \end{document} [% END %]
You can pass additional arguments when you invoke the filter to set program paths or specify the output format.
[% FILTER latex(format='pdf') -%] ...LaTeX document... [% END %] [% FILTER latex(latex='/path/to/latex') -%] ...LaTeX document... [% END %]
The template content between the FILTER and END directives will be piped to the appropriate program(s) to generate the document output. This is fine if you're generating a document directly from a template. For example:
FILTER
END
example.pdf:
[% USE Latex(format='pdf') -%] [% FILTER latex %] ...LaTeX document... [% END -%]
The output will be a binary format PDF, PostScript or DVI file. You should be careful not to prepend or append any extraneous characters or text outside the FILTER block as this text will be included in the file output. Notice in the above example how we use the post-chomp flags ('-') at the end of the USE and END directives to remove the trailing newline characters.
USE
If you're redirecting the output to a file via the third argument of the Template module's process() method then you should also pass the binmode parameter set to a true value to indicate that it is a binary file.
process()
binmode
use Template; my $tt = Template->new({ INCLUDE_PATH => '/path/to/templates', OUTPUT_PATH => '/path/to/pdf/output', }); my $vars = { title => 'Hello World', } $tt->process('example.tt2', $vars, 'example.pdf', binmode => 1) || die $tt->error();
If you want to capture the output to a template variable, you can do so like this:
[% output = FILTER latex %] ...LaTeX document... [% END %]
If you want to write the output to a file then you can specify an output parameter.
output
[% FILTER latex(output='example.pdf') %] ...LaTeX document... [% END %]
If you don't explicity specify an output format then the filename extension (e.g. 'pdf' in the above example) will be used to determine the correct format.
Andy Wardley <abw@wardley.org> http://wardley.org/
The original Latex plugin on which this is based was written by Craig Barratt with additions for Win32 by Richard Tietjen.
Copyright (C) 1996-2006 Andy Wardley. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Template::Latex
To install Template::Latex, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Template::Latex
CPAN shell
perl -MCPAN -e shell install Template::Latex
For more information on module installation, please visit the detailed CPAN module installation guide.