Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bug in postscript output of -me macro .(b

1 view
Skip to first unread message

Dave Kemper

unread,
Dec 26, 2012, 10:46:40 PM12/26/12
to bug-...@gnu.org
This bug appears in GNU groff version 1.21.

In the -me reference manual, the description for .(b says:

If the block will not fit on the current page a new page is begun,
unless that would leave more than \n(bt [0] white space at the bottom
of the text. If \n(bt is zero, the threshold feature is turned off.

This is not what happens in the edge case, however. Consider:

------------------------------
.mso me.tmac \" -me macros
.nr bs 0 \" no extra space before or after blocks
.nf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
.(b
forty-six
forty-seven
forty-eight
forty-nine
fifty
fifty-one
fifty-two
.)b
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
------------------------------

On the first page, this outputs lines 1 to 45, then the seven-line block,
then one more line, 53, before the page break. This tells us that the
block would fit exactly at the bottom of the page, if there were one
more line above it (which would take the place of line 53 below).

So add one line somewhere above the .(b.

Now, output to the ascii device does what's expected, putting line
"fifty-two" at the bottom of the first page, and 53 at the top of
the second. But output to the ps device puts the entire block on the
second page, even though there is room for it on the first page.

0 new messages