> I think that the vertical position is initialized to -1 before any > text has been output is also by design, to be able to set page > margins on the first page with a ".wh 0 xx" trap. To quote the > Troff User's Manual: > > A pseudo-page transition onto the first page occurs either when > the first break occurs or when the first nondiverted text > processing occurs. Arrangements for a trap to occur at the top of > the first page must be completed before this transition.
Or to quote the info manual of groff: -- Register: \n[nl] This register contains the current vertical position. If the vertical position is zero and the top of page transition hasn't happened yet, `nl' is set to negative value. `gtroff' itself does this at the very beginning of a document before anything has been printed, but the main usage is to plant a header trap on a page if this page has already started. Consider the following: .de xxx . sp . tl ''Header'' . sp .. . First page. .bp .wh 0 xxx .nr nl (-1) Second page. Result: First page. ... Header Second page. ... Without resetting `nl' to a negative value, the just planted trap would be active beginning with the _next_ page, not the current one. Werner