CC: | jkeenan [...] cpan.org |
Subject: | pod2latex incorrectly handles index entries |
This bug report was originally filed in the Perl 5 bug queue at: https://rt.perl.org/Ticket/Display.html?id=117365. Since, as of Perl 5.019, Pod-LaTeX is no longer distributed with the Perl 5 core, I am moving the bug report to this queue.--jkeenan
##########
This is a bug report for perl from brian.samek@gmail.com,
generated with the help of perlbug 1.39 running under perl 5.14.2.
pod2latex incorrectly handles index entries following \sections or
\subsections in Pod files, so some correctly formatted Pod files will
not compile to DVI or PDF from LaTeX. For example, the following will
produce an error:
perldoc -u perlfaq4 > perlfaq4.pod
pod2latex -full perlfaq4.pod
latex perlfaq4.tex
Here is a minimal example that works:
=head1 Heading
X<Foo>X<Bar>
Here is a minimal example of the structure in perlfaq4.pod that causes
the problem:
=head1 Heading
X<Foo>
X<Bar>
When there is a new line between index entries, pod2latex nests the
index entries in the heading like this:
\section{Heading
\index{Foo}
\index{Bar}\label{Heading_Foo_Bar}\index{Heading
Foo
Bar}}
However, in LaTeX it is not legal to start a new paragraph within a
\section or \subsection. LaTeX therefore throws the error, "Paragraph
ended before \@[s]sect was complete."
If there are only a few index entries, they will be listed on the same
line following the \section or \subsection, so pod2latex will not create
a new paragraph within the \section or \subsection. But with a
sufficient number of index entries, they will be listed on multiple
lines, like those following the subsection "How do I find yesterday's
date?" in perlfaq4.pod.
\index entries should appear outside the closing brace for the prior
\section or \subsection.
---
Flags:
category=library
severity=low
module=Pod::LaTeX
---
Site configuration information for perl 5.14.2:
Configured by Debian Project at Mon Mar 18 19:35:03 UTC 2013.
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=linux, osvers=3.2.0-37-generic, archname=x86_64-linux-gnu-thread-multi
uname='linux allspice 3.2.0-37-generic #58-ubuntu smp thu jan 24 15:28:10 utc 2013 x86_64 x86_64 x86_64 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Dldflags= -Wl,-Bsymbolic-functions -Wl,-z,relro -Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.14.2 -Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.14.2 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.7.2', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.14.2
gnulibc_version='2.15'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'
Locally applied patches:
---
@INC for perl 5.14.2:
/etc/perl
/usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.14
/usr/share/perl/5.14
/usr/local/lib/site_perl
.
---
Environment for perl 5.14.2:
HOME=/home/brian
LANG=en_US.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PERL_BADLANG (unset)
SHELL=/bin/bash