groff-commit
[Top][All Lists]
Advanced

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

[groff] 03/03: [ms]: Revise paragraph and list documentation.


From: G. Branden Robinson
Subject: [groff] 03/03: [ms]: Revise paragraph and list documentation.
Date: Mon, 29 Mar 2021 07:02:27 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit f403182054f30af479fc1e7a59a95b4cf75b49fa
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon Mar 29 13:24:15 2021 +1100

    [ms]: Revise paragraph and list documentation.
    
    * doc/groff.texi (Body text):
    * doc/ms.ms (Body text): Recast introduction; stop being
      self-referential ("This section...")
    
    * doc/groff.texi (Paragraphs in ms):
    * doc/ms.ms (Paragraphs):
    * tmac/groff_ms.7.man (Paragraphs):
      - Recast introduction, summarizing what the macros have in common and
        how they differ.
      - Shift macro descriptions from sentence fragments to imperative mood.
      - Introduce LP macro first--it is in a sense the most "vanilla" of the
        paragraphing macros.
      - <LP>: Avoid misleading reader; the macro imposes no _additional_
        indentation.
      - <PP>: Clarify that indentation is on the first line and the left.
      - <IP>: Document macro here (instead of in "Lists") since it is in
        fact a paragrphing macro and shares properties with the others.
        Correct claim of how long an indentation width persists.  Note
        (in comment) Savannah ticket number regarding Unix ms behavior
        difference, possibly a bug.
      - <QP>: Document as a Berkeley extension.
      - <QS, QE>: Document as GNU extensions.
      - <XP>: Document as a Berkeley extension.  Mention "exdented" and
        "hanging indent" when describing for readers seeking this function
        under those names.
    
    * doc/groff.texi (Paragraphs in ms): Discuss PORPHANS in lead paragraph
      since it is formally documented in another node.
    
    * doc/groff.texi (Paragraphs in ms):
    * doc/ms.ms (Paragraphs):
      - <PORPHANS>: Move register description to precede example.
      - Revise example to illustrate use of IP macro as well.
    
    * doc/groff.texi (Lists in ms):
    * doc/ms.ms (Lists):
      - Recast introductory paragraph to emphasize application of
        already-introduced IP macro.
      - Supply "n" scaling indicator in examples of IP macro call to
        minimize ambiguity with a numeric marker (or "tag").
      - Coalesce adjacent one-sentence paragraphs.
      - Break input lines in examples after commas.
      - Revise glossary-style examples of forced break after marker to be
        informal "diffs" against the previous example to conserve space and
        increase focus on the syntactical changes required.
      - Add \h escape technique for forcing break in tagged list.
      - Supply example of resulting output from any of the three techniques.
    
    * doc/ms.ms:
      - Use two empty requests where vertical space is expected.
      - Use groff-style special character escape syntax.
      (Paragraphs):
      - Bracket "Paragraphs" heading and first paragraph in a keep.
      - Place macro descriptions in boxed tables.
      - Use \[aq] for neutral apostrophes in code example.
      (Lists):
      - Use \[rs] instead of \\ to get a backslash glyph.
      - Assemble the three tag break workarounds and output example into a
        single table.
    
    * tmac/groff_ms.7.man (Paragraphs): Present macro descriptions in tagged
      paragraphs.
      (Lists): Delete subsection; with the IP macro moved to subsection
      "Paragraphs" and no examples in the man page, it had no remaining
      content.
---
 doc/groff.texi      | 192 ++++++++++++++++---------------
 doc/ms.ms           | 316 +++++++++++++++++++++++++++++++++++-----------------
 tmac/groff_ms.7.man | 179 +++++++++++++++--------------
 3 files changed, 401 insertions(+), 286 deletions(-)

diff --git a/doc/groff.texi b/doc/groff.texi
index 2864439..2c37e88 100644
--- a/doc/groff.texi
+++ b/doc/groff.texi
@@ -3018,8 +3018,9 @@ added features are more in line with user demand.
 @subsection Body text
 @cindex @code{ms} macros, body text
 
-This section describes macros used to mark up the body of your document.
-Examples include paragraphs, sections, and other groups.
+A variety of macros, registers, and strings can be used to structure and
+style the body of your document.  Examples include paragraphs, headings,
+footnotes, and inclusions of material such as tables and figures.
 
 @menu
 * Paragraphs in ms::
@@ -3040,75 +3041,89 @@ Examples include paragraphs, sections, and other groups.
 @subsubsection Paragraphs
 @cindex @code{ms} macros, paragraph handling
 
-The following paragraph types are available.
+Several paragraph types are available, differing in how indentation is
+applied: to left, right, or both margins; to the first output line of
+the paragraph, all output lines, or all but the first.  All paragraphing
+macro calls cause the insertion of vertical space in the amount stored
+in the @code{PD} register, except at page breaks.  The @code{PORPHANS}
+register (@pxref{ms Document Control Settings}) operates in conjunction
+with each of these macros to inhibit the printing of orphaned lines at
+the bottom of any page.
+
+@Defmac {LP, , ms}
+Set a paragraph without any (additional) indentation.
+@endDefmac
 
 @Defmac {PP, , ms}
-Sets a paragraph with an initial indentation.
+Set a paragraph with a first-line left indentation in the amount stored
+in the @code{PI} register.
 @endDefmac
 
-@Defmac {LP, , ms}
-Sets a paragraph without an initial indentation.
+@Defmac {IP, [@Var{marker} [@Var{width}]], ms}
+Set a paragraph with a left indentation.  The optional @var{marker} is
+not indented and is empty by default.  It has several applications;
+see @ref{Lists in ms}.  @var{width} overrides the default indentation
+amount stored in the @code{PI} register; its default unit is @samp{n}.
+Once specified, @var{width} applies to further @code{IP} calls until
+specified again or a different paragraphing
+@c or heading (Savannah #60222)
+macro is called.
 @endDefmac
 
 @Defmac {QP, , ms}
-Sets a paragraph that is indented at both left and right margins by the
-amount of the register @code{QI}.  The next paragraph or heading returns
-margins to normal.  @code{QP} inserts vertical space of amount set by
-register @code{PD} before the paragraph.
+Set a paragraph indented from both left and right margins by the amount
+stored in the @code{QI} register.  This is a Berkeley extension.
 @endDefmac
 
 @DefmacList {QS, , ms}
 @DefmacListEndx {QE, , ms}
-These macros begin and end a quoted region.  The @code{QI} register
-controls the amount of indentation.  Both @code{QS} and @code{QE} insert
-inter-paragraph vertical space set by register @code{PD}.  The text
-between @code{QS} and @code{QE} can be structured further by use of the
-macros @code{LP} or @code{PP}.
+Begin (@code{QS}) and end (@code{QE}) a region where each paragraph is
+indented from both margins by the amount stored in the @code{QI}
+register.  The text between @code{QS} and @code{QE} can be structured
+further by use of other paragraphing macros.  These macros are GNU
+extensions.
 @endDefmac
 
 @Defmac {XP, , ms}
-Sets a paragraph whose lines are indented, except for the first line.
-This is a Berkeley extension.
+Set an ``exdented'' paragraph---one with a left indentation in the
+amount stored in the @code{PI} register on every line @emph{except} the
+first (also known as a hanging indent).  This is a Berkeley extension.
 @endDefmac
 
-The following markup uses all four paragraph macros.
+The following example illustrates several different paragraph macros.
 
 @CartoucheExample
 .NH 2
-Cases used in the study
+Cases used in the 2001 study
 .LP
-The following software and versions were
-considered for this report.
-.PP
-For commercial software, we chose
-.B "Microsoft Word for Windows" ,
-starting with version 1.0 through the
-current version (Word 2000).
+Two software releases were considered for this report.
 .PP
-For free software, we chose
-.B Emacs ,
-from its first appearance as a standalone
-editor through the current version (v20).
+The first is commercial software;
+the second is free.
+.IP \[bu]
+Microsoft Word for Windows,
+starting with version 1.0 through the current version
+(Word 2000).
+.IP \[bu]
+GNU Emacs,
+from its first appearance as a standalone editor through
+the current version (v20).
 See [Bloggs 2002] for details.
 .QP
 Franklin's Law applied to software:
-software expands to outgrow both
-RAM and disk space over time.
-.LP
-Bibliography:
+software expands to outgrow both RAM and disk space over
+time.
+.SH
+Bibliography
 .XP
 Bloggs, Joseph R.,
 .I "Everyone's a Critic" ,
 Underground Press, March 2002.
-A definitive work that answers all questions
-and criticisms about the quality and usability of
-free software.
+A definitive work that answers all questions and
+criticisms about the quality and usability of free
+software.
 @endCartoucheExample
 
-The @code{PORPHANS} register (@pxref{ms Document Control Settings})
-operates in conjunction with each of these macros to inhibit the
-printing of orphaned lines at the bottom of any page.
-
 @c ---------------------------------------------------------------------
 
 @node Headings in ms, Highlighting in ms, Paragraphs in ms, ms Body Text
@@ -3348,22 +3363,11 @@ Text enclosed with @code{\*<} and @code{\*>} is printed 
as a subscript.
 @subsubsection Lists
 @cindex @code{ms} macros, lists
 
-The @code{IP} macro handles duties for all lists.
-
-@Defmac {IP, [@Var{marker} [@Var{width}]], ms}
-The @var{marker} is usually a bullet glyph (@code{\[bu]}) for unordered
-lists, a number (or auto-incrementing register) for numbered lists, or a
-word or phrase for indented (glossary-style) lists.
-
-The @var{width} specifies the indentation for the body of each list
-item; its default unit is @samp{n}.  Once specified, the indentation
-remains the same for all list items in the document until specified
-again.
-
-The @code{PORPHANS} register (@pxref{ms Document Control Settings})
-operates in conjunction with the @code{IP} macro, to inhibit the
-printing of orphaned list markers at the bottom of any page.
-@endDefmac
+The @var{marker} argument to the @code{IP} macro can be employed to
+present a variety of lists; for instance, you can use a bullet glyph
+(@code{\[bu]}) for unordered lists, a number (or auto-incrementing
+register) for numbered lists, or a word or phrase for glossary-style or
+definition lists.
 
 The following is an example of a bulleted list.
 @cindex example markup, bulleted list [@code{ms}]
@@ -3371,7 +3375,7 @@ The following is an example of a bulleted list.
 
 @CartoucheExample
 A bulleted list:
-.IP \[bu] 2
+.IP \[bu] 2n
 lawyers
 .IP \[bu]
 guns
@@ -3398,7 +3402,7 @@ The following is an example of a numbered list.
 @CartoucheExample
 .nr step 1 1
 A numbered list:
-.IP \n[step] 3
+.IP \n[step] 3n
 lawyers
 .IP \n+[step]
 guns
@@ -3418,9 +3422,8 @@ A numbered list:
 3. money
 @endExample
 
-Note the use of the auto-incrementing register in this example.
-
-The following is an example of a glossary-style list.
+Note the use of the auto-incrementing register @var{step} in the
+foregoing example.  The next illustrates a glossary-style list.
 @cindex example markup, glossary-style list [@code{ms}]
 @cindex glossary-style list, example markup [@code{ms}]
 
@@ -3429,8 +3432,8 @@ A glossary-style list:
 .IP lawyers 0.4i
 Two or more attorneys.
 .IP guns
-Firearms, preferably
-large-caliber.
+Firearms,
+preferably large-caliber.
 .IP money
 Gotta pay for those
 lawyers and guns!
@@ -3450,42 +3453,53 @@ money
       Gotta pay for those lawyers and guns!
 @endExample
 
-In the last example, the @code{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 @code{br} request to force a break after
-printing the term or label.
+In the previous example, observe how the @code{IP} macro places the
+definition on the same line as the term if it has enough space.  If this
+is not what you want, there are a few workarounds we will illustrate by
+modifying the example.  First, you can use a @code{br} request to force
+a break after printing the term or label.
 
 @CartoucheExample
-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!
+Firearms,
 @endCartoucheExample
 
-The second workaround uses the @code{\p} escape to force the break.
-Note the space following the escape; this is important.  If you omit the
-space, @code{groff} prints the first word on the same line as the term
-or label (if it fits) @emph{then} breaks the line.
+Second, you could apply the @code{\p} escape to force a break.  The
+space following the escape is important; if you omit it, @code{groff}
+prints the first word of the paragraph text fits) on the same line as
+the term or label (if it fits) @emph{then} breaks the line.
 
 @CartoucheExample
-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!
+\p Firearms,
+@endCartoucheExample
+
+Finally, you may append unbreakable horizontal space to the term or
+label with the @code{\h} escape; using the same amount as the
+indentation will ensure that it's too wide for @code{groff} to treat it
+as ``fitting'' on the same line as the paragraph text.
+
+@CartoucheExample
+.IP guns\h'0.4i'
+Firearms,
 @endCartoucheExample
 
+In each case, the result is the same.
+
+@Example
+A glossary-style list:
+
+lawyers
+      Two or more attorneys.
+
+guns
+      Firearms, preferably large-caliber.
+
+money
+      Gotta pay for those lawyers and guns!
+@endExample
+
 @c ---------------------------------------------------------------------
 
 @node Indented regions in ms, Tab stops in ms, Lists in ms, ms Body Text
diff --git a/doc/ms.ms b/doc/ms.ms
index 99263fa..ae64ff4 100644
--- a/doc/ms.ms
+++ b/doc/ms.ms
@@ -604,42 +604,151 @@ Body text
 .XS
 Body text
 .XE
+.
+.
 .LP
-This section describes macros 
-used to mark up the body of your document.
-Examples include paragraphs, sections, and
-other groups.
+A variety of macros,
+registers,
+and strings can be used to structure and style the body of your
+document.
+.
+Examples include paragraphs,
+headings,
+footnotes,
+and inclusions of material such as tables and figures.
+.
+.
+.KS
 .NH 2
 Paragraphs
 .XS
        Paragraphs
 .XE
+.
+.
 .LP
-Use the
-.CW .PP
-macro to create indented paragraphs
-(like the next paragraph),
-and the
-.CW .LP
-macro to create paragraphs with no initial indent (like this one).
+Several paragraph types are available,
+differing in how indentation is
+applied:
+to left,
+right,
+or both margins;
+to the first output line of the paragraph,
+all output lines,
+or all but the first.
+.
+All paragraphing macro calls cause the insertion of vertical space in
+the amount stored in the
+.CW PD
+register,
+except at page breaks.
+.KE
+.
+.
 .PP
 The
-.CW .QP
-macro indents its text at both left and right margins.
-The effect is identical to the
-.Acr HTML
-.CW <BLOCKQUOTE>
-element.
-The next paragraph or heading
-returns margins to normal.
+.CW PORPHANS
+register defines the minimum number of initial lines of any paragraph
+that must be kept together to avoid orphaned lines at the bottom of a
+page.
+.
+If a new paragraph is started close to the bottom of a page,
+and there is insufficient space to accommodate
+.CW \[rs]n[PORPHANS]
+lines before an automatic page break,
+then a page break is forced before the start of the paragraph.
+.
+This is a GNU extension.
+.
+.
+.TS H
+box;
+lb lb
+lf(CR) lx.
+Macro  Description
+_
+.TH
+\&.LP  Set a paragraph without any (additional) indentation.
+_
+\&.PP  T{
+Set a paragraph with a first-line left indentation in the amount stored
+in the
+.CW PI
+register.
+T}
+_
+\&.IP \f[R][\f[]\f[I]marker\f[] \f[R][\f[]\f[I]width\f[]\f[R]]]\f[]\
+       T{
+Set a paragraph with a left indentation.
+.
+The optional
+.I marker
+is not indented and is empty by default.
+.
+It has several applications;
+see subsection \[lq]Lists\[rq] below.
+.
+.I width
+overrides the default indentation amount stored in
+.CW \[rs]n[PI] ;
+its default unit is
+.CW n \[rq]. \[lq]
+.
+Once specified,
+.I width
+applies to further
+.CW .IP
+calls until specified again or a different paragraphing
+.\" or heading (Savannah #60222)
+macro is called.
+T}
+_
+\&.QP  T{
+Set a paragraph indented from both left and right margins by
+.CW \[rs]n[QI] .
+.
+This is a Berkeley extension.
+T}
+_
+T{
+\&.QS
+.br
+\&.QE
+T}     T{
+Begin
+.CW QS ) (
+and end
+.CW QE ) (
+a region where each paragraph is indented from both margins by
+.CW \[rs]n[QI] .
+.
+The text between
+.CW .QS
+and
+.CW .QE
+can be structured further by use of other paragraphing macros.
+.
+These macros are GNU extensions.
+T}
+_
+\&.XP  T{
+Set an \[lq]exdented\[rq] paragraph\[em]one with a left indentation of
+.CW \[rs]n[PI]
+on every line
+.I except
+the first
+(also known as a hanging indent).
+.
+This is a Berkeley extension.
+T}
+.TE
 .
 .
 .KS
 .PP
-The following markup uses all three paragraph macros.
+The following example illustrates several different paragraph macros.
 .
 .
-.\" Wrap lines in the code example below at 64 columns.
 .TS
 box center;
 l.
@@ -647,25 +756,32 @@ T{
 .nf
 .CW
 \&.NH 2
-Cases used in the study
+Cases used in the 2001 study
 \&.LP
-The following software and versions were considered for this
-report.
+Two software releases were considered for this report.
 \&.PP
-For commercial software,
-we chose
-\&.B "Microsoft Word for Windows" ,
+The first is commercial software;
+the second is free.
+\&.IP \[rs][bu]
+Microsoft Word for Windows,
 starting with version 1.0 through the current version
 (Word 2000).
-\&.PP
-For free software,
-we chose
-\&.B Emacs ,
+\&.IP \[rs][bu]
+GNU Emacs,
 from its first appearance as a standalone editor through the
 current version (v20).
+See [Bloggs 2002] for details.
 \&.QP
-Franklin's Law applied to software:
+Franklin\[aq]s Law applied to software:
 software expands to outgrow both RAM and disk space over time.
+\&.SH
+Bibliography
+\&.XP
+Bloggs, Joseph R.,
+\&.I "Everyone\[aq]s a Critic" ,
+Underground Press, March 2002.
+A definitive work that answers all questions and criticisms
+about the quality and usability of free software.
 .R
 .fi
 T}
@@ -1184,34 +1300,24 @@ Lists
 .XS
        Lists
 .XE
-.LP
-The
-.CW .IP
-macro handles duties for all lists.
-Its syntax is as follows:
-.PP
-.CW .IP
-.I marker "" [
-.I width ]] [
+.
+.
 .LP
 The
 .I marker
-is usually a bullet character
-.CW \\\\(bu ) (
+argument to the
+.CW IP
+macro can be employed to present a variety of lists;
+for instance,
+you can use a bullet glyph
+.CW \[rs][bu] ) (
 for unordered lists,
-a number (or auto-incrementing number register) for numbered lists,
-or a word or phrase for indented (glossary-style) lists.
-.PP
-The
-.I width
-specifies the indent for the body of each list item.
-Once specified, the indent remains the same for all
-list items in the document until specified again.
+a number
+(or auto-incrementing register)
+for numbered lists,
+or a word or phrase for glossary-style or definition lists.
 .
 .
-.PP
-The following are examples of each type of list.
-.
 .TS H
 box center;
 cb cb
@@ -1222,7 +1328,7 @@ _
 T{
 .nf
 A bulleted list:
-\&.IP \[rs][bu] 2
+\&.IP \[rs][bu] 2n
 lawyers
 \&.IP \[rs][bu]
 guns
@@ -1243,7 +1349,7 @@ T{
 .nf
 \&.nr step 1 1
 A numbered list:
-\&.IP \\n[step] 3
+\&.IP \\n[step] 3n
 lawyers
 \&.IP \\n+[step]
 guns
@@ -1288,86 +1394,86 @@ T}
 .
 .
 .PP
-The second example sets up an auto-incrementing register,
-.CW step .
-.
-In the last example,
+In the last example above,
 observe how the
 .CW IP
 macro places the definition on the same line as the term if it has
 enough space.
 .
 If this is not what you want,
-there are a couple of workarounds.
+there are a few workarounds we will illustrate by modifying the example.
+.
+First,
+you can use a
+.CW br
+request to force a break after printing the term or label.
+.
+Second,
+you could apply the
+.CW \[rs]p
+escape to force a break.
+.
+The space following the escape is important;
+if you omit it,
+.I groff
+prints the first word of the paragraph text on the same line as the term
+or label
+(if it fits)
+.I then
+breaks the line.
+.
+Finally,
+you may append unbreakable horizontal space to the term or label with
+the
+.CW \[rs]h
+escape;
+using the same amount as the indentation will ensure that it's too wide
+for
+.I groff
+to treat it as \[lq]fitting\[rq] on the same line as the paragraph text.
 .
 .
 .TS
 box center;
-cb cb
-lf(CR) l .
-Input  Result
+cb | cb | cb
+lf(CR) | lf(CR)  | lf(CR).
+Approach #1    Approach #2     Approach #3
 _
 T{
 .nf
-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!
 .fi
 T}     T{
-A glossary-style list:
-.IP lawyers 0.4i
-Two or more attorneys.
-.IP guns
-.br
+.nf
+\&.IP guns
+\[rs]p Firearms,
+.fi
+T}     T{
+.nf
+\&.IP guns\[rs]h\[aq]0.4i\[aq]
 Firearms,
-preferably large-caliber.
-.IP money
-Gotta pay for those lawyers and guns!
+.fi
 T}
 _
+.T&
+cb s s
+l s s.
+Result
+_
 T{
-.nf
-A glossary-style list:
-\&.IP lawyers 0.4i
-Two or more attorneys.
-\&.IP guns\[rs]h\[aq]0.4i\[aq]
-Firearms, preferably
-large-caliber.
-\&.IP money
-Gotta pay for those
-lawyers and guns!
-.fi
-T}     T{
 A glossary-style list:
+.
 .IP lawyers 0.4i
 Two or more attorneys.
-.IP guns\h'0.4i'
+.IP guns\h\[aq]0.4i\[aq] 0.4i
 Firearms,
 preferably large-caliber.
 .IP money
 Gotta pay for those lawyers and guns!
 T}
 .TE
-.PP
-The first example uses the
-.CW .br
-request to force a break after printing the term or label.
-The second example uses the
-.CW \\\\p
-escape to do the same thing.
-Note the space following the escape; this is important.
-If you omit the space,
-.I groff
-prints the first word on the same line as the term or label (if it fits)
-.B then
-breaks the line.
 .
 .
 .NH 2
diff --git a/tmac/groff_ms.7.man b/tmac/groff_ms.7.man
index 20bdbe7..b82532b 100644
--- a/tmac/groff_ms.7.man
+++ b/tmac/groff_ms.7.man
@@ -450,87 +450,114 @@ End the abstract.
 .SS Paragraphs
 .\" ====================================================================
 .
-Use the
-.B PP
-macro to create indented paragraphs,
-and the
-.B LP
-macro to create paragraphs with no initial indent.
+Several paragraph types are available,
+differing in how indentation is
+applied:
+to left,
+right,
+or both margins;
+to the first output line of the paragraph,
+all output lines,
+or all but the first.
+.
+All paragraphing macro calls cause the insertion of vertical space in
+the amount stored in the
+.B PD
+register,
+except at page breaks.
 .
 .
 .PP
 The
-.B QP
-macro indents all text at both left and right margins
-by the amount of the register
-.BR QI .
+.B PORPHANS
+register defines the minimum number of initial lines of any paragraph
+that must be kept together to avoid orphaned lines at the bottom of a
+page.
 .
-The next paragraph or heading returns the margins to normal.
+If a new paragraph is started close to the bottom of a page,
+and there is insufficient space to accommodate
+.B \[rs]n[PORPHANS]
+lines before an automatic page break,
+then a page break is forced before the start of the paragraph.
 .
-.B .QP
-inserts the vertical space specified in register
-.B PD
-as inter-paragraph spacing.
+This is a GNU extension.
 .
 .
-.PP
-A paragraph bracketed between the macros
-.B QS
-and
-.B QE
-has the same appearance as a paragraph started with
+.TP
+.B .LP
+Set a paragraph without any (additional) indentation.
+.
+.
+.TP
+.B .PP
+Set a paragraph with a first-line left indentation in the amount stored
+in the
+.B PI
+register.
+.
+.
+.TP
+.B .IP\c
+.RI \~[ marker \~[ width ]]
+Set a paragraph with a left indentation.
+.
+The optional
+.I marker
+is not indented and is empty by default.
+.
+.I width
+overrides the default indentation amount of
+.BR \[rs]n[PI] ;
+its default unit is
+.RB \[lq] n \[rq].
+.
+Once specified,
+.I width
+applies to further
+.B .IP
+calls until specified again or a different paragraphing
+.\" or heading (Savannah #60222)
+macro is called.
+.
+.
+.TP
 .B .QP
-and a following paragraph started with
-.BR .LP .
+Set a paragraph indented from both left and right margins by
+.BR \[rs]n[PI] .
+.
+This is a Berkeley extension.
+.
 .
-Both
+.TP
 .B .QS
-and
+.TQ
 .B .QE
-insert the inter-paragraph spacing specified in
-.B PD
-and the text is indented on both sides by the amount of register
-.BR QI .
+Begin
+.RB ( QS )
+and end
+.RB ( QE )
+a region where each paragraph is indented from both margins by
+.BR \[rs]n[QI] .
 .
 The text between
 .B .QS
 and
 .B .QE
-can be split into further paragraphs by using
-.B .LP
-or
-.BR .PP .
-.
-.
-.PP
-The
-.B XP
-macro produces an \[lq]exdented\[rq] paragraph;
-that is,
-one with a hanging indent.
+can be structured further by use of other paragraphing macros.
 .
-The first line of the paragraph begins at
-the left margin,
-and subsequent lines are indented
-(the opposite of
-.BR .PP ).
+These macros are GNU extensions.
 .
 .
-.PP
-For each of the above paragraph types,
-and also for any list entry introduced by the
-.B IP
-macro
-(described later),
-the document control register
-.B PORPHANS
-sets the minimum number of lines which must be printed after the start
-of the paragraph before any page break occurs.
+.TP
+.B .XP
+Set an \[lq]exdented\[rq] paragraph\[em]one with a left indentation of
+.B \[rs]n[PI]
+on every line
+.I except
+the first
+(also known as a hanging indent).
 .
-If there is insufficient space remaining on the current page to
-accommodate this number of lines,
-a page break is forced before the first line of the paragraph is
-printed.
+This is a Berkeley extension.
 .
 .
 .\" ====================================================================
@@ -891,38 +918,6 @@ as a subscript.
 .
 .
 .\" ====================================================================
-.SS Lists
-.\" ====================================================================
-.
-The
-.B IP
-macro handles duties for all lists.
-.
-Its syntax is as follows:
-.
-.TP
-.B .IP\c
-.RI " [" marker " [" width ]]
-The
-.I marker
-is usually a bullet character
-.B \[rs](bu
-for unordered lists,
-a number
-(or auto-incrementing register)
-for numbered lists,
-or a word or phrase for indented (glossary-style) lists.
-.
-.IP
-The
-.I width
-specifies the indent for the body of each list item.
-.
-Once specified, the indent remains the same for all list items in the
-document until specified again.
-.
-.
-.\" ====================================================================
 .SS "Indented regions"
 .\" ====================================================================
 .



reply via email to

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