[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Groff] The bottom is always ok, the head never is
From: |
Werner LEMBERG |
Subject: |
Re: [Groff] The bottom is always ok, the head never is |
Date: |
Sat, 25 Feb 2006 14:04:57 +0100 (CET) |
> I use me (the macro package, I mean) to produce these things and
> more.
I can't comment on -me since I've never used it.
> The program also draws text at .sp |19.7c, that is 10 cm from the
> bot of page, and the text's top is really at 10 cm height. A
> smaller font at the same .sp |19.7c height plots something below the
> 10 cm mark. How do I explain this?
This one I can explain. From groff.info, after the explanation of the
.vs request (section `Changing Type Sizes'):
The effective vertical line spacing consists of four components.
Breaking a line causes the following actions (in the given order).
* Move the current point vertically by the "extra pre-vertical line
space". This is the minimum value of all `\x' escapes with a
negative argument in the current output line.
* Move the current point vertically by the vertical line spacing as
set with the `vs' request.
* Output the current line.
* Move the current point vertically by the "extra post-vertical
line space". This is the maximum value of all `\x' escapes with
a positive argument in the line which has just been output.
* Move the current point vertically by the "post-vertical line
spacing" as set with the `pvs' request.
[This information is quite hidden in groff.texinfo, I know -- patches
are welcome to move it to a separate (sub)subsection, with proper
links from various places to this new node.]
BTW, this isn't new code; groff has always been working like this.
For your example it means that groff, after the `.sp |19.7c'
instruction, moves down the current amount of the vertical spacing as
set with .vs, *then* outputting the `HELLO' string.
You probably get a better understanding if you use this code fragment,
setting the vertical spacing to zero:
.ps 51.54
.sp |19.7c
.vs 0
HELLO
.br
.ps 25.75
.sp |19.7c
\m[red]HELLO\m[]
.br
.vs
Werner