hopp@nbs-amrf.UUCP (Ted Hopp) (08/14/85)
I posted this several months ago, but got no responses. I still could use help, so I am posting it again. By way of preface, we are running version 2.15 of the -me macros. I am having a problem with indexes inside floating keeps (iifk's). Actually, I am having two problems, but I have (I think) a workaround for one of them. Problem 1. The first problem (with a workaround) is that there seems to be an environment conflict between iifk and the equation macros. I'm not sure exactly what's going on, but I have gathered several symptoms. For one, equations seems to screw up the following index entries. As far as I can tell, it causes text diverted to the index to be indented as it is diverted. This is not consistent, however. Not every equation screws up the index, and not every index entry is screwed up. Whatever is going on gets reset by a new chapter (.+c). Also, in a paper I am writing, not every equation has an effect on the next entry; sometimes the entry is screwed up the way a previous entry was screwed up. Once things are bad, though, they stay bad until the next chapter. The workaround here is to put ".in 0" just after ".(x", as shown in the example below. This "fixes" the indent problem, but not the next problem. Problem 2. Index entries from inside floating keeps don't fill. Even in the same index as entries that do fill! It doesn't make any difference whether the floating keep is filled or not. This is really screwy. The example below shows the contents of the index just before printing and as it is printed. Am I missing something? What keeps entry 2 (which appears third in the index because it got floated past entry 3) from getting filled? I have tried putting ".fi" after ".(x", inspired by the success of ".in 0", but that just screws things up further. (It still doesn't fill, and I only get the first line of the entry text.) Does anyone know of a fix for these problems? -- Ted Hopp {seismo,umcp-cs}!nbs-amrf!hopp ------------------------------------------------------------------------ What follows is the text and resulting output of an example showing the problems I am having. The output text has had multiple blank lines eliminated for the sake of brevity. The problem appears even when the eqn preprocessor isn't used. Just the .EQ/.EN macros are enough to cause the problem. ------------------------------------------------------------------------ .pp .(x This is the first index entry into index f. It is made outside any keeps, floating or otherwise. We will see if the three input lines become one output line. .)x This is a test of indexing inside a floating keep. We will first have an equation: .EQ a~=~b .EN And now we start a floating keep diversion. .(z F This is a floating keep. .(x .in 0 This is an entry into index x. It is an attempt to see what gives here. We will try to find out what the fill, etc. stuff is. .)x We continue the floating keep. .)z The floating keep is over. .pp This is the second paragraph. .(x This is the third (in the input) index into x. We will see where this one comes out, and whether it gets floated correctly. .)x That was the end of the third index entry. .pa .pp We are now on a new page. .(x This is the fourth index entry. It should be the last, since the floating keep for the second entry has had a chance to come out. .)x And that ends the normal text. .pa The contents of index f are: .br .sp .hl .nf .eo .cc # #c2 ~ #%x #c2 #cc .ec .fi .hl .pa The index as printed is: .sp .xp ------------------------------------------------------------------------ This is the output from the above text, with blank lines crushed. I have also changed the escape characters at the page boundaries to the text <ESC> for the sake of your terminal. (If you've read this far.) ------------------------------------------------------------------------ This is a test of indexing inside a floating keep. We will first have an equation: a = b And now we start a floating keep diversion. The floating keep is over. This is the second paragraph. That was the end of the third index entry. This is a floating keep. We continue the floating keep. We are now on a new page. And that ends the normal text. <ESC>9 <ESC>9 The contents of index f are: ____________________________________________________________ . sp 8u . ti -120u . .rm @U This is the first index entry into index f. It is made outside any keeps, floating or otherwise. We will see if the three input lines become one output line. . if \w"">(1440-0-0) . ti +120u \a\t1 . sp 8u . ti -120u . This is the third (in the input) index into x. We will see where this one comes out, and whether it gets floated correctly. . if \w"">(1440-0-696) . ti +120u \a\t1 . sp 8u . ti -120u . This is an entry into index x. It is an attempt to see what gives here. We will try to find out what the fill, etc. stuff is. . if \w"">(1440-0-0) . ti +120u \a\t1 . sp 8u . ti -120u . This is the fourth index entry. It should be the last, since the floating keep for the second entry has had a chance to come out. . if \w"">(1440-0-600) . ti +120u \a\t2 ____________________________________________________________ <ESC>9 <ESC>9 The index as printed is: This is the first index entry into index f. It is made outside any keeps, floating or otherwise. We will see if the three input lines become one output line. .................................... 1 This is the third (in the input) index into x. We will see where this one comes out, and whether it gets floated correctly. ...................... 1 This is an entry into index x. It is an attempt to see what gives here. We will try to find out what the fill, etc. stuff is. .......... 1 This is the fourth index entry. It should be the last, since the floating keep for the second entry has had a chance to come out. ............. 2 <ESC>9 <ESC>9 ------------------------------------------------------------------------ Here are the relevant portions of the output when .in 0 is removed from the iifk. ------------------------------------------------------------------------ . . same text as above . . sp 8u . ti -120u . This is an entry into index x. It is an attempt to see what gives here. We will try to find out what the fill, etc. stuff is. . if \w"">(1440-0-0) . ti +120u \a\t1 . . same text as above . The index as printed is: This is the first index entry into index f. It is made outside any keeps, floating or otherwise. We will see if the three input lines become one output line. .................................... 1 This is the third (in the input) index into x. We will see where this one comes out, and whether it gets floated correctly. ...................... 1 This is an entry into index x. It is an attempt to see what gives here. We will try to find out what the fill, etc. stuff is. .................................................. 1 This is the fourth index entry. It should be the last, since the floating keep for the second entry has had a chance to come out. ............. 2 ------------------------------------------------------------------------ Ted Hopp {seismo,umcp-cs}!nbs-amrf!hopp -- Ted Hopp {seismo,umcp-cs}!nbs-amrf!hopp