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