groff
[Top][All Lists]
Advanced

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

Re: Is decreasing top margin with mm macros broken?


From: Tadziu Hoffmann
Subject: Re: Is decreasing top margin with mm macros broken?
Date: Mon, 17 May 2021 22:26:58 +0200
User-agent: Mutt/1.11.4 (2019-03-13)

> Does anyone how to decrease the top margin with mm macros?
> There is VM macro that is supposed to change it, however it
> has no effect on the top margin, when one wants to decrease
> it.  Looks like the top margin can only be increased.

This is possibly a bug.  In groff's mm, the option -T *does*
set pg*header-size, but this does not appear to be used in
the page header macro, only pg*extra-header-size.

As a workaround, you could use the advice from an old MM manual
(http://www.bitsavers.org/pdf/altos/3068/690-15844-001_Altos_Unix_System_V_Documenters_Workbench_Vol_2_Jul85.pdf),
which says:

  The .VM (vertical margin) macro allows the user to specify
  additional space at the top and bottom of the page.  This
  space precedes the page header and follows the page footer.

and also:

  Default spacing at the top of the page may be decreased by
  redefining .TP.

and:

              Generalized Top-of-Page Processing

      Note: This part is intended only for users accustomed
      to writing formatter macros.

  During header processing, MM invokes two user-definable macros:

   * The .TP (top of page) macro is invoked in the environment
     (refer to .ev request) of the header.

   * The .PX is a page header user-exit macro that is invoked
     (without arguments) when the normal environment has been
     restored and with the "no-space" mode already in effect.

  ...

  To obtain more specialized page titles, the user may redefine
  the .TP macro to cause the desired header processing.



So, if you define

  .de TP
  ..

there will be no space at all at the top, and

  .de TP
  .sp
  .tl \\*(}t
  .sp
  ..

will give you three lines of top margin, with the default
header in the middle.





reply via email to

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