summaryrefslogtreecommitdiff
path: root/lib/Pod
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-06-08 18:51:03 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-06-08 18:51:03 +0000
commit72e5dea67722deb16f01b7f031b918a1919efc18 (patch)
tree5bb05854970d90cc7a11a0750c5d2f5e97f74fde /lib/Pod
parenta092bcfd0f738c1ea0511ee4fa058ee96e488fcb (diff)
downloadperl-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.pm93
-rw-r--r--lib/Pod/t/user.t104
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>.
+