[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] The future redux

From: Ted Harding
Subject: Re: [Groff] The future redux
Date: Sat, 08 Mar 2014 20:33:31 -0000 (GMT)

[see at end]

On 08-Mar-2014 19:23:18 Peter Schaffter wrote:
> On Sat, Mar 08, 2014, Pierre-Jean wrote:
>> Peter Schaffter <address@hidden> 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

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

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,

E-Mail: (Ted Harding) <address@hidden>
Date: 08-Mar-2014  Time: 20:33:25
This message was sent by XFMail

reply via email to

[Prev in Thread] Current Thread [Next in Thread]