manpagez: man pages & more
info groff
Home | html | info | man

File: groff.info,  Node: Miscellaneous,  Next: Gtroff Internals,  Prev: Postprocessor Access,  Up: GNU troff Reference

5.35 Miscellaneous
==================

We document here GNU 'troff' features that fit poorly elsewhere.

 -- Request: .nm [start [increment [space [indentation]]]]
 -- Register: \n[ln]
 -- Register: \n[.nm]
     Begin (or, with no arguments, cease) numbering output lines.  START
     assigns the number of the _next_ output line.  Only line numbers
     divisible by INCREMENT are marked (default: '1').  SPACE configures
     the horizontal spacing between the number and the text (default:
     '1').  Any given INDENTATION is applied to the numbers (default:
     '0').  The third and fourth arguments are reckoned in numeral
     widths ('\0').  START must be non-negative and INCREMENT positive.

     The formatter aligns the number to the right in a width of three
     numeral spaces plus INDENTATION, then catenates SPACE and the
     output line.  The line length is _not_ reduced.  Depending on the
     value of the page offset,(1) (*note Miscellaneous-Footnote-1::)
     numbers wider than the allocated space protrude into the left
     margin, or shift the output line to the right.

     Line numbering parameters corresponding to missing arguments are
     not altered.  After numbering is disabled, '.nm +0' resumes it
     using the previously active parameters.

     The parameters of 'nm' are associated with the environment (*note
     Environments::).

     While numbering is enabled, the output line number register 'ln' is
     updated as each line is output, even if no line number is formatted
     with it because it is being skipped (it is not a multiple of
     INCREMENT) or because numbering is suppressed (see the 'nn' request
     below).

     The '.nm' register tracks the enablement status of numbering.
     Temporary suspension of numbering with the 'nn' request does _not_
     alter its value.

          .po 5n
          .ll 44n
          Programming,
          when stripped of all its circumstantial irrelevancies,
          .nm 999 1 1 -4
          boils down to no more and no less than
          .nm +0 3
          very effective thinking so as to avoid unmastered
          .nn 2
          complexity,
          to very vigorous separation of your many
          different concerns.
          .br
          \(em Edsger Dijkstra
          .sp
          .nm 1 1 1
          This guy's arrogance takes your breath away.
          .br
          \(em John Backus
              =>      Programming,  when  stripped of all its cir-
              =>  999 cumstantial irrelevancies, boils down to  no
              =>      more  and no less than very effective think-
              =>      ing so as to avoid unmastered complexity, to
              =>      very vigorous separation of your  many  dif-
              =>      ferent concerns.
              => 1002 -- Edsger Dijkstra
              =>
              =>    1 This guy's arrogance takes your breath away.
              =>    2 -- John Backus

 -- Request: .nn [skip]
 -- Register: \n[.nn]
     Suppress numbering of the next SKIP output lines that would
     otherwise be numbered.  The default is 1.  'nn' can be invoked when
     line numbering is not active; suppression of numbering will take
     effect for SKIP lines once 'nm' enables it.

     The '.nn' register stores the count of output lines still to have
     their numbering suppressed.

     This count is associated with the environment (*note
     Environments::).

   To test whether the current output line will be numbered, you must
check both the '.nm' and '.nn' registers.

       .de is-numbered
       .  nop This line
       .  ie (\\n[.nm] & (1-\\n[.nn])) IS
       .  el                           ISN'T
       .  nop numbered.
       .  br
       ..
       Test line numbering.
       .is-numbered
       .nm 1
       .nn 1
       .is-numbered
       .is-numbered
       .nm
       .is-numbered
         => Test line numbering.  This line ISN'T numbered.
         => This line ISN'T numbered.
         =>   1 This line IS numbered.
         => This line ISN'T numbered.

 -- Request: .mc [margin-character [distance]
     Begin (or, with no arguments, cease) writing a "margin-character"
     to the right of each output line.  The DISTANCE argument separates
     MARGIN-CHARACTER from the right margin.  If absent, the most recent
     value is used; the default is 10 points.  If an output line exceeds
     the line length, the margin character is appended to it.  No margin
     character is written on lines produced by the 'tl' request.

     The margin character is a property of the output line; the margin
     character last configured when the line is output controls.  If the
     margin character is disabled before an output line breaks, none is
     output (but see below).

     The margin character is associated with the environment (*note
     Environments::).

          .ll 5i
          .nf
          .mc \[br]
          This paragraph is marked with a margin character.
          .sp
          As seen above, vertical space isn't thus marked.
          \&
          An output line that is present, but empty, is.
              => This paragraph is marked with a margin character.  |
              =>
              => As seen above, vertical space isn't thus marked.   |
              =>                                                    |
              => An output line that is present, but empty, is.     |

   For compatibility with AT&T 'troff', a call to 'mc' to set the margin
character can't be undone immediately; at least one line gets a margin
character.

     .ll 10n
     .nf
     .mc |
     .mc *
     .mc
     foo
     bar
         => foo        *
         => bar

   The margin character mechanism is commonly used to annotate changes
in documents.  The 'groff' distribution ships a program, 'gdiffmk', to
assist with this task.(2)  (*note Miscellaneous-Footnote-2::)

 -- Request: .psbb file
 -- Register: \n[llx]
 -- Register: \n[lly]
 -- Register: \n[urx]
 -- Register: \n[ury]
     Retrieve the bounding box of the PostScript image found in FILE,
     which must conform to Adobe's "Document Structuring Conventions"
     (DSC), locate a '%%BoundingBox' comment, and store the (upper-,
     lower-, -left, -right) values into the registers 'llx', 'lly',
     'urx', and 'ury'.  If an error occurs (for example, if no
     '%%BoundingBox' comment is present), the formatter sets these
     registers to 0.

     The search path for FILE can be controlled with the '-I'
     command-line option.

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.