groff
[Top][All Lists]
Advanced

[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




reply via email to

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