groff
[Top][All Lists]
Advanced

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

Re: [groff] vertical resolution and page location traps


From: Werner LEMBERG
Subject: Re: [groff] vertical resolution and page location traps
Date: Sat, 16 Jun 2018 00:01:49 +0200 (CEST)

> I'm having trouble understanding the .V register and how it
> interacts with page location traps.
> 
> The info manual's sole phrase describing this register is "Vertical
> resolution in basic units."  This is less than illuminating because
> it doesn't address: basic units per what?  A resolution should have
> two units to be meaningful, unless the term is being used in some
> unconventional way (in which case, that should be explained).

What about looking up `basic units' (using info's `i' key)?

  5.2 Measurements
  ================

  'gtroff' (like many other programs) requires numeric parameters to
  specify various measurements.  Most numeric parameters may have a
  "measurement unit" attached.  These units are specified as a single
  character that immediately follows the number or expression.  Each
  of these units are understood, by 'gtroff', to be a multiple of its
  "basic unit".  So, whenever a different measurement unit is
  specified 'gtroff' converts this into its "basic units".  This basic
  unit, represented by a 'u', is a device dependent measurement, which
  is quite small, ranging from 1/75th to 1/72000th of an inch.  The
  values may be given as fractional numbers; however, fractional basic
  units are always rounded to integers.

> The actual numbers returned under various conditions add only more
> confusion.
> 
> $ groff -Tascii <<< '.tm \n(.V' > /dev/null
> 40
> $ groff -Tps <<< '.tm \n(.V' > /dev/null
> 1
> $ groff -Tpdf <<< '.tm \n(.V' > /dev/null
> 1
> 
> I don't see how the vertical resolution of the ascii device can be
> 40 times that of the ps and pdf devices.

It's the opposite.  A ps driver has 40 times larger resolution than
the ASCII device.

> [...]I don't understand why some of the traps never get triggered.

Reason is that traps are not recursive, IIRC: Traps are not handled
while another trap is active (this seems to be missing in the info
file).  In other words, while your first trap is active, it moves down
one line, which passes some traps without triggering them.  Below is
an example that triggers all defined traps if called with the -Tps
device.


    Werner


======================================================================


.de trap1
.nop trap 1
.sp -1.1v
..
.de trap2
.nop trap 2
.sp -1.1v
..
.de trap3
.nop trap 3
.sp -1.1v
..
.de trap4
.nop trap 4
.sp -1.1v
..
.de trap5
.nop trap 5
.sp -1.1v
..
.de trap6
.nop trap 6
.sp -1.1v
..
.wh 2.1i trap1
.wh 2.2i trap2
.wh 2.3i trap3
.wh 2.4i trap4
.wh 2.5i trap5
.wh 2.6i trap6
.nf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20



reply via email to

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