gbranden pushed a commit to branch master
in repository groff.
commit ff2fa896c43cbdb0937583eb8a67aaa4974d58c1
Author: G. Branden Robinson <[email protected]>
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
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit