Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.99k stars 559 forks source link

pod2latex incorrectly handles index entries #12883

Closed p5pRT closed 10 years ago

p5pRT commented 11 years ago

Migrated from rt.perl.org#117365 (status was 'rejected')

Searchable as RT117365$

p5pRT commented 11 years ago

From brian.samek@gmail.com

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\X\

Here is a minimal example of the structure in perlfaq4.pod that causes the problem​:

=head1 Heading X\ X\

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

p5pRT commented 10 years ago

From @jkeenan

On Tue Mar 26 09​:15​:25 2013\, brian.samek@​gmail.com wrote​:

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​:

[snip]

As of Perl 5.019\, Pod-LaTeX is no longer distributed with the Perl 5 core. So I have moved this bug report into that distribution's bug queue​: https://rt.cpan.org/Ticket/Display.html?id=96929.

Closing this particular ticket.

Thank you very much. Jim Keenan

perldoc -u perlfaq4 > perlfaq4.pod pod2latex -full perlfaq4.pod latex perlfaq4.tex

Here is a minimal example that works​:

=head1 Heading X\X\

Here is a minimal example of the structure in perlfaq4.pod that causes the problem​:

=head1 Heading X\ X\

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

p5pRT commented 10 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 10 years ago

@jkeenan - Status changed from 'open' to 'rejected'