[see at end] On 08-Mar-2014 19:23:18 Peter Schaffter wrote: > On Sat, Mar 08, 2014, Pierre-Jean wrote: >> Peter Schaffter <pe...@schaffter.ca> wrote: >> >> [ about heirloom troff paragraph at once adjustment ] >> >> > > I believe that Groff will face this kind of problems. >> > >> > FWIW, the mom macros solved this thorny some time ago. I won't >> > say it was easy--I still recall the hair-pulling six weeks I spent >> > getting it right. And, to be honest, I'm not sure the mom solution >> > is 100% robust, though no one has ever reported a problem. And, >> > again being honest, when I look at the macros these days, I'm not >> > certain even I can untangle all the hoops I had to jump through. :) >> >> >> Do you mean that you've worked on mom so that it can be used >> with heirloom troff and its paragraph at once adjustment >> activated ? > > No. I meant that the problem of outputting footnotes on the correct > page when they're embedded in diversions that span pages had been > addressed in mom. I wasn't refering to interoperability with HT's > par-at-once, rather suggesting that if groff were to implement something > similar, partial solutions to the issue you raise might be found in > mom's way of attacking the problem. > > -- > Peter Schaffter > http://www.schaffter.ca
Whichever way you try to output footnotes in the correct page, there is one situation which will cause problems. Namely, the in-text reference to the footnote is in what would (say) be printed as the last line but three on the page (i.e. 4th line from the bottom). Printing the footnote on the bottom line would take out four lines from the text at the bottom of the page. So either the footnote goes on the original page, and the line that refers to it gets carried to the next page (so now is on the wrong page); or else the referring line gets carried to the next page (so now the footnote is on the same page), but the current page is four lines short, which does not look good. The natural solution for this is to split the footnote, so that part of it fits on the original page and leaves room for the line which refers to the footnote, the remainder of the footnots being continued on the next page. For example, the start of the footnote on page A would be like [1] This footnote .... .... .... [cont. on next page] and the continuation on the next page would be a footnote starting [1 cont.] .... Does mom (or other macro packages) handle this automatically and correctly? I have to say that when (some time ago) I looked into this issue in detail, I could not think of a good way to handle it using a general macro. It got expecially complicated, in texts with many footnotes, when the carry-over to the next page interacted with footnotes initiated on the next page! In the end (as a rather dedicated user of the ms macros, which for the most part are not complicated and which also are well documented in the macro definition file itself), I decided that the best way to handle this sort of thing was what I always do with awkward cases: Wait until the document (text-wise) is final (i.e. you won't be doing any more insertion or deletion of text), and then work through it dealing with each infelicity by hand until it all comes out right). In particular, a "split footnote" becomes two footnotes: The first as in "[1] This footnote ...." above, with an in-text reference; the second on the next page which does not have an in-text footnote reference but is simply inserted using ".FS"...".FE2 Of course, this final clean-up may suggest that a bit of re-wording (if it can be appropriaterly done) may be suggested at that stage. Just a further thought! My basic attitude to using [gt]roff is that you can let the built-ins do their job so long as it comes out right, but for the "final run" you may need to get those tweezers, leadings and wedges out and shift stuff around by hand! Best wishes to all, Ted. ------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@wlandres.net> Date: 08-Mar-2014 Time: 20:33:25 This message was sent by XFMail -------------------------------------------------