NAME

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

SYNOPSIS

 use LaTeX::Pod;

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

DESCRIPTION

LaTeX::Pod converts LaTeX sources to Perl's POD (Plain old documentation). Currently only a subset of the available LaTeX language is supported; see "SUPPORTED LANGUAGE SUBSET" for further details.

CONSTRUCTOR

new

The constructor requires that the path to the LaTeX source is defined:

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

Returns the parser object.

METHODS

convert

There is one public method available, namely convert():

 $pod = $parser->convert;

Returns the computed POD as a string.

SUPPORTED LANGUAGE SUBSET

LaTeX currently supported:

  • abstracts

  • chapters

  • sections/subsections/subsubsections

  • description, enumerate and itemize lists

  • verbatim blocks (and indentation)

  • plain text

  • bold/italic/code font tags

  • umlauts

  • newlines

  • comments

IMPLEMENTATION DETAILS

The current implementation is based upon LaTeX::TOM (the framework being used for parsing the LaTeX source) and its clear distinction between various types of nodes. As an example, a \chapter command has a separate text associated with it as its content. LaTeX::Pod uses a "look-behind" mechanism for commands and their corresponding texts since they currently cannot be easily detected without such a mechanism.

Thus LaTeX::Pod was designed with the intention to be context-sensitive aware. This is also being aimed at by eventually registering which type of node has been seen before the current one -- useful when constructing logical paragraphs made out of two or more nodes. LaTeX::Pod then finally unregisters the type of node seen when it is no longer required. In addition, a dispatch queue is built internally which is executed after all nodes have been processed.

Considering that the POD format has a limited subset of directives, the complexity of keeping track of node occurences appears to be bearable. Leading and trailing newlines will be removed from the node's text extracted where needed; furthermore, trailing spaces and tabs will also be purged from each line of POD resulting.

BUGS & CAVEATS

It is highly recommended to ensure that the structure of the LaTeX input file follows the format specification strictly or the parser may not succeed.

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://dev.perl.org/licenses/