diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2004-06-08 18:51:03 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2004-06-08 18:51:03 +0000 |
commit | 72e5dea67722deb16f01b7f031b918a1919efc18 (patch) | |
tree | 5bb05854970d90cc7a11a0750c5d2f5e97f74fde /lib/Pod | |
parent | a092bcfd0f738c1ea0511ee4fa058ee96e488fcb (diff) | |
download | perl-72e5dea67722deb16f01b7f031b918a1919efc18.tar.gz |
Upgrade to Pod::LaTeX 0.57
p4raw-id: //depot/perl@22912
Diffstat (limited to 'lib/Pod')
-rw-r--r-- | lib/Pod/LaTeX.pm | 93 | ||||
-rw-r--r-- | lib/Pod/t/user.t | 104 |
2 files changed, 154 insertions, 43 deletions
diff --git a/lib/Pod/LaTeX.pm b/lib/Pod/LaTeX.pm index 6979666e9b..95be1b301d 100644 --- a/lib/Pod/LaTeX.pm +++ b/lib/Pod/LaTeX.pm @@ -33,7 +33,7 @@ use Carp; use vars qw/ $VERSION %HTML_Escapes @LatexSections /; -$VERSION = '0.55'; +$VERSION = '0.56'; # Definitions of =headN -> latex mapping @LatexSections = (qw/ @@ -856,7 +856,9 @@ on what these methods require. =item B<begin_pod> -Writes the C<latex> preamble if requested. +Writes the C<latex> preamble if requested. Only writes something +if AddPreamble is true. Writes a standard header unless a UserPreamble +is defined. =cut @@ -881,40 +883,42 @@ __TEX_COMMENT__ # If the caller has supplied one then we just use that my $preamble = ''; - if (defined $self->UserPreamble) { - $preamble = $self->UserPreamble; + if ($self->AddPreamble) { - # Add the description of where this came from - $preamble .= "\n$comment"; - + if (defined $self->UserPreamble) { - } elsif ($self->AddPreamble) { - # Write our own preamble + $preamble = $self->UserPreamble; - # Code to initialise index making - # Use an array so that we can prepend comment if required - my @makeidx = ( - '\usepackage{makeidx}', - '\makeindex', - ); + # Add the description of where this came from + $preamble .= "\n$comment\n%% Preamble supplied by user.\n\n"; - unless ($self->MakeIndex) { - foreach (@makeidx) { - $_ = '%% ' . $_; - } - } - my $makeindex = join("\n",@makeidx) . "\n"; + } else { + + # Write our own preamble + + # Code to initialise index making + # Use an array so that we can prepend comment if required + my @makeidx = ( + '\usepackage{makeidx}', + '\makeindex', + ); + unless ($self->MakeIndex) { + foreach (@makeidx) { + $_ = '%% ' . $_; + } + } + my $makeindex = join("\n",@makeidx) . "\n"; - # Table of contents - my $tableofcontents = '\tableofcontents'; + # Table of contents + my $tableofcontents = '\tableofcontents'; - $tableofcontents = '%% ' . $tableofcontents - unless $self->TableOfContents; + $tableofcontents = '%% ' . $tableofcontents + unless $self->TableOfContents; - # Roll our own - $preamble = << "__TEX_HEADER__"; + # Roll our own + $preamble = << "__TEX_HEADER__"; \\documentclass{article} \\usepackage[T1]{fontenc} \\usepackage{textcomp} @@ -929,6 +933,7 @@ $tableofcontents __TEX_HEADER__ + } } # Write the header (blank if none) @@ -942,7 +947,8 @@ __TEX_HEADER__ =item B<end_pod> -Write the closing C<latex> code. +Write the closing C<latex> code. Only writes something if AddPostamble +is true. Writes a standard header unless a UserPostamble is defined. =cut @@ -952,23 +958,23 @@ sub end_pod { # End string my $end = ''; - # Use the user version of the postamble if deinfed - if (defined $self->UserPostamble) { - $end = $self->UserPostamble; + # Use the user version of the postamble if defined + if ($self->AddPostamble) { - $self->_output($end); + if (defined $self->UserPostamble) { + $end = $self->UserPostamble; - } elsif ($self->AddPostamble) { + } else { - # Check for index - my $makeindex = '\printindex'; + # Check for index + my $makeindex = '\printindex'; - $makeindex = '%% '. $makeindex unless $self->MakeIndex; + $makeindex = '%% '. $makeindex unless $self->MakeIndex; - $end = "$makeindex\n\n\\end{document}\n"; + $end = "$makeindex\n\n\\end{document}\n"; + } } - $self->_output($end); } @@ -1837,20 +1843,21 @@ L<Pod::Parser>, L<Pod::Select>, L<pod2latex> =head1 AUTHORS -Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt> +Tim Jenness E<lt>tjenness@cpan.orgE<gt> Bug fixes and improvements have been received from: Simon Cozens E<lt>simon@cozens.netE<gt>, Mark A. Hershberger E<lt>mah@everybody.orgE<gt>, Marcel Grunauer E<lt>marcel@codewerk.comE<gt>, Hugh S Myers E<lt>hsmyers@sdragons.comE<gt>, Peter J Acklam -E<lt>jacklam@math.uio.noE<gt>, Sudhi Herle E<lt>sudhi@herle.netE<gt> -and Ariel Scolnicov E<lt>ariels@compugen.co.ilE<gt>. +E<lt>jacklam@math.uio.noE<gt>, Sudhi Herle E<lt>sudhi@herle.netE<gt>, +Ariel Scolnicov E<lt>ariels@compugen.co.ilE<gt> and +Adriano Rodrigues Ferreira E<lt>ferreira@triang.com.brE<gt>. =head1 COPYRIGHT -Copyright (C) 2000-2003 Tim Jenness. All Rights Reserved. +Copyright (C) 2000-2004 Tim Jenness. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -1859,7 +1866,7 @@ it under the same terms as Perl itself. =head1 REVISION -$Id: LaTeX.pm,v 1.17 2003/04/05 21:25:49 timj Exp $ +$Id: LaTeX.pm,v 1.18 2004/03/08 02:22:43 timj Exp $ =end __PRIVATE__ diff --git a/lib/Pod/t/user.t b/lib/Pod/t/user.t new file mode 100644 index 0000000000..04776de5ac --- /dev/null +++ b/lib/Pod/t/user.t @@ -0,0 +1,104 @@ +#!perl + +# Purpose: test UserPreamble and UserPostamble +# It's a minor variation of 'pod2latex.t', +# subject to the same limitations. +# Variant provided by +# Adriano Rodrigues Ferreira <ferreira@triang.com.br> + +use Test; +use strict; + +BEGIN { plan tests => 17 } + +use Pod::LaTeX; + +# The link parsing changed between v0.22 and v0.30 of Pod::ParseUtils +use Pod::ParseUtils; +my $linkver = $Pod::ParseUtils::VERSION; + +# Set up an END block to remove the test output file +END { + unlink "test.tex"; +}; + +ok(1); + +# First thing to do is to read the expected output from +# the DATA filehandle and store it in a scalar. +# Do this until we read an =pod +my @reference; +while (my $line = <DATA>) { + last if $line =~ /^=pod/; + push(@reference,$line); +} + +my $user_preamble = <<PRE; + +\\documentclass{article} + +\\begin{document} +PRE + +my $user_postamble = <<POST; +\\end{document} + +POST + +# Create a new parser +my %params = ( + UserPreamble => $user_preamble, + UserPostamble => $user_postamble +); + +my $parser = Pod::LaTeX->new(%params); +ok($parser); + +# Create an output file +open(OUTFH, "> test.tex" ) or die "Unable to open test tex file: $!\n"; + +# Read from the DATA filehandle and write to a new output file +# Really want to write this to a scalar +$parser->parse_from_filehandle(\*DATA,\*OUTFH); + +close(OUTFH) or die "Error closing OUTFH test.tex: $!\n"; + +# Now read in OUTFH and compare +open(INFH, "< test.tex") or die "Unable to read test tex file: $!\n"; +my @output = <INFH>; + +ok(@output, @reference); + +for my $i (0..$#reference) { + next if $reference[$i] =~ /^%%/; # skip timestamp comments + ok($output[$i], $reference[$i]); +} + +close(INFH) or die "Error closing INFH test.tex: $!\n"; + + +__DATA__ + +\documentclass{article} + +\begin{document} + +%% Latex generated from POD in document (unknown) +%% Using the perl module Pod::LaTeX +%% Converted on Wed Jan 14 19:04:22 2004 + +%% Preamble supplied by user. + +\section{POD\label{POD}\index{POD}} + + +This is a POD file, very simple. \textit{Bye}. + +\end{document} + +=pod + +=head1 POD + +This is a POD file, very simple. I<Bye>. + |