diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-24 16:02:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-24 16:02:10 +0000 |
commit | c56636b114c0aa62facb8d8cff9a23af24c957ce (patch) | |
tree | dff5b73ee745f91b122446a87cd6588f7800eeef /Build/source/texk/makeindexk/tests | |
parent | 54aaaeae8a91ae3f70ada46c5b4baf3430ded227 (diff) |
do not output spurious \( when open range is re-opened
git-svn-id: svn://tug.org/texlive/trunk@24079 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/makeindexk/tests')
5 files changed, 143 insertions, 0 deletions
diff --git a/Build/source/texk/makeindexk/tests/nested-range-bb.idx b/Build/source/texk/makeindexk/tests/nested-range-bb.idx new file mode 100644 index 00000000000..6575c81ab54 --- /dev/null +++ b/Build/source/texk/makeindexk/tests/nested-range-bb.idx @@ -0,0 +1,6 @@ +\indexentry{random text|(}{1} +\indexentry{periodic Hilbert transform|(}{1} +\indexentry{periodic Hilbert transform|(}{2} +\indexentry{random text|(}{2} +\indexentry{periodic Hilbert transform|)}{2} +\indexentry{random text|)}{2} diff --git a/Build/source/texk/makeindexk/tests/nested-range-bb.tex b/Build/source/texk/makeindexk/tests/nested-range-bb.tex new file mode 100644 index 00000000000..d2366dd6ccf --- /dev/null +++ b/Build/source/texk/makeindexk/tests/nested-range-bb.tex @@ -0,0 +1,72 @@ +% Copyright 2011 Barbara Beeton <tex-live@tug.org> +% You may freely use, modify and/or distribute this file. +% This is the original annotated test report, with various extra info. +% See below \end{document}. +\documentclass{amsbook} +\usepackage{verbatim} + +\makeindex + +\begin{document} + +\chapter{Demonstration of a Makeindex bug} + +\index{random text|(}% +Here we open an index span for ``random text''. + +\index{periodic Hilbert transform|(}% +How could we define the \emph{periodic Hilbert transform}? +Here is an open index span for ``periodic Hilbert transform''. + +(lots more text omitted) +\newpage + +We defined in Section~3 the +\index{periodic Hilbert transform|(}% +\emph{periodic Hilbert transform} or \emph{conjugate function}. +A second open index span for ``periodic Hilbert transform''. + +\index{random text|(}% +(more omitted text and a second open index span for ``random text'') + +Closing index spans for the two opened entries. +\index{periodic Hilbert transform|)}% +\index{random text|)}% + +\vspace{1\baselineskip} +\verbatiminput{\jobname.tex} +\newpage +\noindent This is the .idx file from the previous run: +\verbatiminput{\jobname.idx-prev} +\vspace{2\baselineskip} +This is the resulting .ilg file: +\verbatiminput{\jobname.ilg} +\vspace{2\baselineskip} +And the resulting .ind file; note spurious \verb+\(+ inclusions. +\verbatiminput{\jobname.ind} +\end{document} + + +Date: Thu, 22 Sep 2011 12:23:48 -0400 +From: Barbara Beeton +Subject: a makeindex bug + +[...] + +to get the desired output, run latex, then makeindex. +copy or rename <jobname>.idx to <jobname>.idx-prev, +rerun latex, and take a look at the output. (the +reason for the rename is that i've included in the +output listings of the .idx(-prev), .ilg, and .ind +files, all small, but very interesting.) + +the problem is that if a span is begun for a string +and then a second span is begun for the same string +without the first one being closed, the |( in the +input is put into the output as \( -- with the +result that an attempt to print the index will get +an unmatched $ error. the unmatched span is noted +in the .ilg file with a warning, but since most +people ignore warnings the first time around (i +certainly do), the unrecoverable (la)tex error in +the index can really throw them into a tizzy. diff --git a/Build/source/texk/makeindexk/tests/nested-range-test.pl b/Build/source/texk/makeindexk/tests/nested-range-test.pl new file mode 100755 index 00000000000..b4882ce9d0e --- /dev/null +++ b/Build/source/texk/makeindexk/tests/nested-range-test.pl @@ -0,0 +1,29 @@ +#!/usr/bin/env perl +# $Id: bibtex-openout-test.pl 17384 2010-03-08 18:49:47Z karl $ +# Public domain. Originally written 2011, Karl Berry. +# Check that makeindex doesn't create spurious output from nested ranges. +# See nested-range.tex and -bb.tex. + +# srcdir = tetex (in the source tree) +BEGIN { chomp ($srcdir = $ENV{"srcdir"} || `cd \`dirname $0\`/.. && pwd`); } +require "$srcdir/../tests/common-test.pl"; + +exit (&main ()); + +sub main { + my $ret = &test_run ("makeindex", "$srcdir/tests/nested-range.idx", + "-o", "nested-range.ind", + "-t", "nested-range.ilg"); + + # The test fails if the output contains \(. + my $bad = 0; + local *IND; + $IND = "nested-range.ind"; + open (IND) || die "open($IND) failed: $!"; + while (<IND>) { + $bad = 1 if /\\\(/; + } + close (IND) || die "close($IND) failed: $!"; + + return $bad; +} diff --git a/Build/source/texk/makeindexk/tests/nested-range.idx b/Build/source/texk/makeindexk/tests/nested-range.idx new file mode 100644 index 00000000000..a1154a3d5dc --- /dev/null +++ b/Build/source/texk/makeindexk/tests/nested-range.idx @@ -0,0 +1,3 @@ +\indexentry{bad range|(}{1} +\indexentry{bad range|(}{2} +\indexentry{bad range|)}{2} diff --git a/Build/source/texk/makeindexk/tests/nested-range.tex b/Build/source/texk/makeindexk/tests/nested-range.tex new file mode 100644 index 00000000000..15be5e519a8 --- /dev/null +++ b/Build/source/texk/makeindexk/tests/nested-range.tex @@ -0,0 +1,33 @@ +% Copyright 2011 Barbara Beeton <tex-live@tug.org> +% You may freely use, modify and/or distribute this file. +% +% This is the minimal version that reproduces the bug. +% Some commented-out lines are some variations. +% For all the details, see nested-range-bb.tex. +% +\documentclass{article} + +\makeindex + +\begin{document} +\index{bad range|(}% +%\index{ok range|(}% +start. + +\newpage +\index{bad range|(}% +second page. + +\index{bad range|)}% +%\index{ok range|)}% +close. + +\end{document} + +\index{bad range|)}% +second close. + +\index{bad range|)}% +third close. + +\end{document} |