gbranden pushed a commit to branch master
in repository groff.

commit ff2fa896c43cbdb0937583eb8a67aaa4974d58c1
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Fri Aug 1 00:08:10 2025 -0500

    doc/*,man/*: Reform recent terminological reform.
    
    "Integral points" is an unsustainable term, partly because one has
    always been able to express fractional values with it; ".sp 10.5p" was
    meaningful in AT&T troff and remains so in groff.
    
    Also we can get by without it, by more frankly confessing AT&T troff's
    design error in type size handling.  Ignoring scaling units with respect
    to type sizes was a bad call.  (In AT&T troff, this may have been a bug
    only in the `ps` and `cs` requests, since no other _request_ configured
    the type size, and no escape sequence, like `\s` or `\H`, took anything
    but an integer as an argument.  Also the C/A/T typesetter supported only
    integral sizes anyway.)
    
    Also explicitly expand the dyad of measurement equality to a triad of
    co-equality: \n[.ps]s = \n[.s]z = 1m.
---
 doc/groff.texi.in    | 49 ++++++++++++++++++++++++++++---------------------
 doc/ms.ms            |  6 +++---
 man/groff.7.man      |  8 +++-----
 man/groff_diff.7.man | 24 ++++++++++++------------
 4 files changed, 46 insertions(+), 41 deletions(-)

diff --git a/doc/groff.texi.in b/doc/groff.texi.in
index 7e4283070..fc39c157d 100644
--- a/doc/groff.texi.in
+++ b/doc/groff.texi.in
@@ -4858,9 +4858,9 @@ at the shell prompt is equivalent to placing
 at the beginning of the document.
 @c Note to document maintainers:
 @c
-@c We use the integral point scaling unit `p` instead of the
-@c typographical point `z` because this is a register assignment; the
-@c value gets converted to scaled points automatically.
+@c We use the scaling unit `p` instead of the typographical point `z`
+@c because this is a register assignment; the value gets converted to
+@c scaled points automatically.
 @c Observe:
 @c    $ printf '.nr PS 10.5p\n.pnr PS\n' | groff # 1.24 or later
 @c    PS      10500   +0      0
@@ -6405,10 +6405,6 @@ Centimeter; a centimeter is about 0.3937@tie{}inches.
 @cindex scaling unit @code{p}
 Point; a typesetter's unit used for measuring type size.
 There are 72@tie{}points to an inch.
-Also called an ``integral'' point because historical
-@code{roff}
-systems used only integral values of
-@code{p}.
 
 @item P
 @cindex pica scaling unit (@code{P})
@@ -6435,7 +6431,9 @@ Scaled point; see @ref{Using Fractional Type Sizes}.
 Typographical point;
 like
 @code{p},
-but permits non-integral quantities.
+but used only with type sizes,
+to overcome a limitation of AT&T
+@command{troff}. @c AT&T
 @c TODO: Make "p" truncate to integer like AT&T if -C?
 
 @item f
@@ -13020,7 +13018,7 @@ It supports a variety of syntax forms.
 @table @code
 @item \s@var{n}
 Set the type size to
-@var{n}@tie{}integral
+@var{n}@tie{}typographical
 points.
 @var{n}@tie{}must
 be a single digit.@footnote{In compatibility mode only, a non-zero
@@ -13034,14 +13032,14 @@ restore the previous size.
 @item \s+@var{n}
 @itemx \s-@var{n}
 Increase or decrease the type size by
-@var{n}@tie{}integral
+@var{n}@tie{}typographical
 points.
 @var{n}@tie{}must be exactly one digit.
 
 @item \s(@var{nn}
 Set the type size to
 @var{nn}
-integral points.
+typographical points.
 @var{nn}
 must be exactly two digits.
 If
@@ -13055,7 +13053,7 @@ restore the previous size.
 @itemx \s(-@var{nn}
 Alter the type size in scaled points by the
 @var{nn}
-integral points.
+typographical points.
 @var{nn}
 must be exactly two digits.
 @end table
@@ -13199,12 +13197,20 @@ interpolates the post-vertical spacing.
 @cindex point sizes, fractional
 @cindex sizes, fractional type
 
-AT&T @code{troff} interpreted all type size measurements in points.
-Combined with integer arithmetic, this design choice made it impossible
-to support, for instance, ten and a half-point type.  In GNU
-@code{troff}, an output device can select a scaling factor that
-subdivides a point into ``scaled points''.  A type size expressed in
-scaled points can thus represent a non-integral size in points.
+When configuring the type size,
+AT&T
+@command{troff} @c AT&T
+ignored scaling units and intepreted all measurements in points.
+Combined with integer arithmetic,
+this design choice made it impossible to support,
+for instance,
+ten-and-a-half-point type.
+In GNU
+@command{troff}, @c GNU
+an output device can select a scaling factor
+that subdivides a point into ``scaled points''.
+A type size expressed in scaled points
+can thus represent a non-integral size in points.
 
 @cindex scaled point scaling unit (@code{s})
 @cindex point, scaled, scaling unit (@code{s})
@@ -13278,10 +13284,11 @@ or 10.5@tie{}typographical points.
 
 @Defreg {.ps}
 This read-only register interpolates the type size in scaled points.
-@samp{\n[.ps]s}
-is equal to
+@samp{\n[.ps]s},
+@samp{\n[.s]z},
+and
 @samp{1m}
-by definition.
+are co-equal by definition.
 @endDefreg
 
 @Example
diff --git a/doc/ms.ms b/doc/ms.ms
index 6494e4f8b..eeac3057e 100644
--- a/doc/ms.ms
+++ b/doc/ms.ms
@@ -4138,9 +4138,9 @@ at the shell prompt is equivalent to placing
 at the beginning of the document.
 .\" Note to document maintainers:
 .\"
-.\" We use the integral point scaling unit `p` instead of the
-.\" typographical point `z` because this is a register assignment; the
-.\" value gets converted to scaled points automatically.
+.\" We use the scaling unit `p` instead of the typographical point `z`
+.\" because this is a register assignment; the value gets converted to
+.\" scaled points automatically.
 .\" Observe:
 .\"    $ printf '.nr PS 10.5p\n.pnr PS\n' | groff # 1.24 or later
 .\"    PS      10500   +0      0
diff --git a/man/groff.7.man b/man/groff.7.man
index caf0daaf9..74c9f5fb5 100644
--- a/man/groff.7.man
+++ b/man/groff.7.man
@@ -891,10 +891,6 @@ Point;
 a typesetter's unit used for measuring type size.
 .
 There are 72\~points to an inch.
-Also called an \[lq]integral\[rq] point because historical
-.I roff
-systems used only integral values of
-.BR p .
 .
 .TP
 .B P
@@ -908,7 +904,9 @@ There are 6\~picas to an inch and 12\~points to a pica.
 Typographical point;
 like
 .BR p ,
-but permits non-integral quantities.
+but used only with type sizes,
+to overcome a limitation of AT&T
+.IR troff . \" AT&T
 .\" TODO: Make "p" truncate to integer like AT&T if -C?
 .
 .TP
diff --git a/man/groff_diff.7.man b/man/groff_diff.7.man
index 1eaab76c0..5e43b653a 100644
--- a/man/groff_diff.7.man
+++ b/man/groff_diff.7.man
@@ -358,22 +358,21 @@ but produces no hyphen if the word breaks at that 
location.
 .
 .\" BEGIN Keep (roughly) parallel with groff.texi node "Using Fractional
 .\" Type Sizes".
+When configuring the type size,
 AT&T
 .I troff \" AT&T
-interpreted all type size measurements in points.
-.
+ignored scaling units and intepreted all measurements in points.
 Combined with integer arithmetic,
 this design choice made it impossible to support,
 for instance,
-ten and a half-point type.
+ten-and-a-half-point type.
 .
 In GNU
-.IR troff , \" GNU
-an output device can select a scaling factor that subdivides a point
-into \[lq]scaled points\[rq].
-.
-A type size expressed in scaled points can thus represent a non-integral
-size in points.
+.I troff \" GNU
+an output device can select a scaling factor
+that subdivides a point into \[lq]scaled points\[rq].
+A type size expressed in scaled points
+can thus represent a non-integral size in points.
 .
 .
 .P
@@ -434,10 +433,11 @@ whereas the register
 interpolates it in scaled points
 .RB ( s ).
 .
-.RB \[lq] \[rs]n[.ps] \[rq]
-is equal to
+.RB \[lq] \[rs]n[.ps]s \[rq],
+.RB \[lq] \[rs]n[.s]z \[rq],
+and
 .RB \[lq] 1m \[rq]
-by definition.
+are co-equal by definition.
 .
 .
 .P

_______________________________________________
groff-commit mailing list
groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to