The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

LaTeX::Pod - Transform LaTeX source files to POD (Plain old documentation)

SYNOPSIS

 use LaTeX::Pod;

 my $parser = LaTeX::Pod->new('/path/to/latex-source');
 print $parser->convert;

DESCRIPTION

LaTeX::Pod converts LaTeX sources to Perl's POD (Plain old documentation) format. Currently only a subset of the available LaTeX language is suppported - see below for detailed information.

CONSTRUCTOR

new

The constructor requires that the path to the latex source must be declared:

 $parser = LaTeX::Pod->new('/path/to/latex-source');

Returns the parser object.

METHODS

convert

There is only one public method available, convert:

 $parser->convert;

Returns the POD document as string.

SUPPORTED LANGUAGE SUBSET

It's not much, but there's more to come:

  • chapters

  • sections/subsections/subsub...

  • verbatim blocks

  • itemized lists

  • plain text

  • bold/italic/code font tags

  • umlauts

IMPLEMENTATION DETAILS

The current implementation is a bit flaky because LaTeX::TOM, the framework being used for parsing the LaTeX nodes, makes a clear distinction between various types of nodes. As example, an \item directive has quite often a separate text which is associated with former one. And they can't be detected without some kind of sophisticated "look-behind", which is what is being done.

LaTeX::Pod was designed with the intention to be context-sensitive aware. This is being achieved by setting which node has been seen before the current one in order to be able to call the appropriate routine for a LaTeX directive with two or more nodes. Furthermore, LaTeX::Pod registers which node it has previously encountered and unregisters this information when it made use of it.

Considering that the POD documentation format has a limited subset of directives, the overhead of keeping track of node occurences appears to be bearable. The POD computed may consist of too many newlines before undergoing a transformation where leading and trailing newlines will be truncated.

SEE ALSO

LaTeX::TOM

AUTHOR

Steven Schubiger <schubiger@cpan.org>

LICENSE

This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html