Menu

#54 Fail on consecutive indexes, the second spanning multiple pages

v2.4
open
nobody
None
5
2018-07-20
2013-09-18
kamil-s
No

The followind .idx file:

\indexentry{a|(}{1}
\indexentry{a|)}{1}
\indexentry{a|(}{1}
\indexentry{a|)}{2}

results in

WARNING: Found a :close-range in the index that wasn't opened before!
Location-reference is 2 in keyword (a)
I'll continue and ignore this.

Discussion

  • kamil-s

    kamil-s - 2013-09-18

    PS. The following:

    \indexentry{a|(}{1}
    \indexentry{a|)}{2}
    \indexentry{a|(}{2}
    \indexentry{a|)}{2}

    also returns a warning:

    WARNING: Found no :close-range matching an already opened one!
    Location-reference is 1 in keyword (a).
    Maybe I lost some of the regular location-references.

     
  • Tobi

    Tobi - 2018-07-20

    Is there any news on this? The bug semms still to exist in the current version:

    $ xindy -V
    xindy release: 2.5.1
    xindy script version: 1.18
    xindy kernel version: 3.0
    

    Here’s an MWE showing the problem in Test A and B. While in A the ref on p. 2 is dropped in B als page refs are missing in the index. Two possible workarounds are to either not use rages at all (Test C) or to add an (unknown) page attribute for the second range (Test D)

    \documentclass{article}
    
    \usepackage[xindy]{imakeidx}
       \makeindex[options = -C utf8]
    
    \usepackage{lipsum}
    
    \begin{document}
    Test A
    \index{Test A|(}
    \index{Test A|)}
    \index{Test A|(}
    \newpage
    Test A
    \index{Test A|)}
    
    \newpage
    Test B
    \index{Test B|(}
    \newpage
    Test B
    \index{Test B|)}
    \index{Test B|(}
    \index{Test B|)}
    
    \newpage
    Test C
    \index{Test C}
    \newpage
    Test C
    \index{Test C}
    
    \newpage
    Test D
    \index{Test D|(}
    \newpage
    Test D
    \index{Test D|)}
    \index{Test D|(x}
    \index{Test D|)x}
    
    \printindex
    \end{document}
    
     

    Last edit: Tobi 2018-07-20

Log in to post a comment.