groff: Lists in ms

 
 4.3.5.4 Lists
 .............
 
 The 'IP' macro handles duties for all lists.
 
  -- Macro: .IP [marker [width]]
      The MARKER is usually a bullet glyph ('\[bu]') for unordered lists,
      a number (or auto-incrementing number register) for numbered lists,
      or a word or phrase for indented (glossary-style) lists.
 
      The WIDTH specifies the indentation for the body of each list item;
      its default unit is 'n'.  Once specified, the indentation remains
      the same for all list items in the document until specified again.
 
      The 'PORPHANS' register (⇒ms Document Control Registers)
      operates in conjunction with the 'IP' macro, to inhibit the
      printing of orphaned list markers at the bottom of any page.
 
    The following is an example of a bulleted list.
 
      A bulleted list:
      .IP \[bu] 2
      lawyers
      .IP \[bu]
      guns
      .IP \[bu]
      money
 
    Produces:
 
      A bulleted list:
 
      o lawyers
 
      o guns
 
      o money
 
    The following is an example of a numbered list.
 
      .nr step 1 1
      A numbered list:
      .IP \n[step] 3
      lawyers
      .IP \n+[step]
      guns
      .IP \n+[step]
      money
 
    Produces:
 
      A numbered list:
 
      1. lawyers
 
      2. guns
 
      3. money
 
    Note the use of the auto-incrementing number register in this
 example.
 
    The following is an example of a glossary-style list.
 
      A glossary-style list:
      .IP lawyers 0.4i
      Two or more attorneys.
      .IP guns
      Firearms, preferably
      large-caliber.
      .IP money
      Gotta pay for those
      lawyers and guns!
 
    Produces:
 
      A glossary-style list:
 
      lawyers
            Two or more attorneys.
 
      guns  Firearms, preferably large-caliber.
 
      money
            Gotta pay for those lawyers and guns!
 
    In the last example, the 'IP' macro places the definition on the same
 line as the term if it has enough space; otherwise, it breaks to the
 next line and starts the definition below the term.  This may or may not
 be the effect you want, especially if some of the definitions break and
 some do not.  The following examples show two possible ways to force a
 break.
 
    The first workaround uses the 'br' request to force a break after
 printing the term or label.
 
      A glossary-style list:
      .IP lawyers 0.4i
      Two or more attorneys.
      .IP guns
      .br
      Firearms, preferably large-caliber.
      .IP money
      Gotta pay for those lawyers and guns!
 
    The second workaround uses the '\p' escape to force the break.  Note
 the space following the escape; this is important.  If you omit the
 space, 'groff' prints the first word on the same line as the term or
 label (if it fits) *then* breaks the line.
 
      A glossary-style list:
      .IP lawyers 0.4i
      Two or more attorneys.
      .IP guns
      \p Firearms, preferably large-caliber.
      .IP money
      Gotta pay for those lawyers and guns!
 
    To set nested lists, use the 'RS' and 'RE' macros.  ⇒Indentation
 values in ms, for more information.
 
    For example:
 
      .IP \[bu] 2
      Lawyers:
      .RS
      .IP \[bu]
      Dewey,
      .IP \[bu]
      Cheatham,
      .IP \[bu]
      and Howe.
      .RE
      .IP \[bu]
      Guns
 
    Produces:
 
      o Lawyers:
 
        o  Dewey,
 
        o  Cheatham,
 
        o  and Howe.
 
      o Guns