--- doc/help/texxml2latex.pl 2003/07/18 20:42:27 1.5 +++ doc/help/texxml2latex.pl 2003/07/21 15:22:14 1.7 @@ -81,16 +81,29 @@ while (my $token = $p->get_token()) my $file = $attr->{'file'}; my $section = $attr->{'section'}; if (!defined($section)) { $section = ''; } - else { $section = "-section $section"; } + else { + $section = "-section $section"; + # Escape the pipes so they are considered ORs in the + # RE for podselect's "section" option, and not + # pipes by the shell: + $section =~ s/\|/\\\|/g; + } $file = '../../loncom/' . $file; my $tempfile = 't' . substr($file, rindex($file, '/') + 1); system ("cp $file $tmpdir"); # The "echo" command is necessary; pod2latex can't # handle a perl file that *starts* with pod. - system ("echo > $tmpdir/$tempfile; cat $file | podselect $section >> $tmpdir/$tempfile; cd $tmpdir; pod2latex $tempfile"); + system ("echo > $tmpdir/$tempfile; cat $file | podselect $section >> $tmpdir/$tempfile; cd $tmpdir; pod2latex -h1level 2 $tempfile"); my $latexFile = substr($tempfile, 0, rindex($tempfile, '.')) . '.tex'; open LATEX_FILE, $tmpdir . '/' . $latexFile; - print ; + # pod2latex inserts \labels and \indexs for every section, + # which is horrible because the section names tend to get + # reused a lot. This filters those out, so we need to do + # create our own indexes. + for () { + $_ =~ s/\\([^{]*)section(\*?)\{([^\\]+)\\label\{[^\\]+\}\\index\{([^\\]+)\}\}/\\\1section\2\{\3\}/g; + print $_; + } print "\n\n"; } }