bug-groff
[Top][All Lists]
Advanced

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

[bug #64155] [troff] specifying -fZD on command line generates warnings


From: G. Branden Robinson
Subject: [bug #64155] [troff] specifying -fZD on command line generates warnings
Date: Fri, 3 May 2024 00:43:19 -0400 (EDT)

Follow-up Comment #33, bug #64155 (group groff):

[comment #32 comment #32:]
> [comment #28 comment #28:]
> > [comment #27 comment #27:]
> > Specifically, am I correct to claim either of the following?
> > 
> > A.  "[G]iven that mom has her own system of managing fonts, and part of
her contract with the user [...] is that [the] user will not go behind her
back and start invoking *roff requests." is a false statement.  (Possibly an
exaggeration.)
> 
> Oversimplification, possibly my fault.  You got the idea from this bit of
the documentation:
> 
> "In some cases, mom’s typesetting macros merely imitate groff primitives.
In others, they approach typesetting concerns in conceptually new ways (for
groff, at least). This should present no problem for newcomers to groff who
are learning mom. Old groff hands should be careful. Just because it looks
like a duck and walks like a duck does not, in this instance, mean that it is
a duck. When using mom, stay away from groff primitives if mom provides a
macro that accomplishes the same thing."

Yes.  I haven't read anything like all of _mom_'s documentation, but the
foregoing sounds a fairly large bell in my head.  I likely did overinterpret
it.

> That's not a contract, it's a recommendation.  I don't want users imagining.
for example, that they can use either .ps or .PT_SIZE interchangeably (or
.ft/.FT) and expect the same results.  E.g. if AUTOLEAD is enabled, .PT_SIZE
changes the pointsize and updates the leading.  Plain .ps only changes the
size, hence the recommendation to stay away from groff primitives *if mom
provides a macro that accomplishes the same thing.*  There a number of macros
where the documentation explicitly states that using a primitive instead of a
macro is fine.

Acknowledged.
 
> I'm not comfortable with the statement "mom has her own system of managing
fonts."  Other than that .FAM and .FT perform checks and set registers needed
by other macros, and the inclusion of pre-defined supplementary styles (none
loaded in positions 1-4), there is nothing unique about mom's font
management.

No indeed; given your clarification above, item A is greatly overstated.

> > B.  The statement "By issuing appropriate formatter instructions, you can
override these defaults before your document writes its first glyph." in our
manual should be dropped, or revised to stipulate that some macro packages
(namely _mom_), will assume that that before a document requests a glyph to be
formatted, mounting position 1 will be assigned to a style named 'R'.
> 
> I'm confused.  The docs currently say, "The default mounting position, and
therefore style, is always '1' ('R')"  Why would this suddenly only apply to
"some" macro packages?  I don't think the B. statement should be dropped, but
I would change "these defaults" because the only formatter flag pertinent to
that section of the documentation is -f <family>.

I think I can probably leave this item as-is.  I certainly should not add any
special caveat about _mom_, but I think the "these defaults" sentence can stay
once the larger context, an introduction to _groff_'s font concept, is
considered.

Here is that context.


5.19 Using Fonts
================

In digital typography, a "font" is a collection of characters in a
specific typeface that a device can render as glyphs at a desired
size.(1)  (*note Using Fonts-Footnote-1::) A 'roff' formatter can change
typefaces at any point in the text.  The basic faces are a set of
"styles" combining upright and slanted shapes with normal and heavy
stroke weights: 'R', 'I', 'B', and 'BI'--these stand for roman, italic,
bold, and bold-italic.  For linguistic text, GNU 'troff' groups
typefaces into "families" containing each of these styles.(2)  (*note
Using Fonts-Footnote-2::) A "text font" is thus often a family combined
with a style, but it need not be: consider the 'ps' and 'pdf' devices'
'ZCMI' (Zapf Chancery Medium italic)--often, no other style of Zapf
Chancery Medium is provided.  On typesetters, at least one "special
font" is available, comprising "unstyled" glyphs for mathematical
operators and other purposes.

   Like the AT&T 'troff' formatter, GNU 'troff' does not itself load or
manipulate a digital font file;(3) (*note Using Fonts-Footnote-3::)
instead it works with a "font description file" that characterizes it,
including its glyph repertoire and the "metrics" (dimensions) of each
glyph.(4)  (*note Using Fonts-Footnote-4::) This information permits the
formatter to accurately place glyphs with respect to each other.  Before
using a font description, the formatter associates it with a "mounting
position", a place in an ordered list of available typefaces.  So that a
document need not be strongly coupled to a specific font family, in GNU
'troff' an output device can associate a style in the abstract sense
with a mounting position.  Thus the default family can be combined with
a style dynamically, producing a "resolved font name".  A user-specified
font name that combines family and style (or refers to a font that is
not a member of a family) is already "resolved".

   Fonts often have trademarked names, and even Free Software fonts can
require renaming upon modification.  'groff' maintains a convention that
a device's serif font family is given the name 'T' ("Times"), its
sans-serif family 'H' ("Helvetica"), and its monospaced family 'C'
("Courier").  Historical inertia has driven 'groff''s font identifiers
to short uppercase abbreviations of font names, as with 'TR', 'TI',
'TB', 'TBI', and a special font 'S'.

   The default family used with abstract styles is initially 'T'.
Typically, abstract styles are arranged in the first four mounting
positions in the order shown above.  The default mounting position, and
therefore style, is always '1' ('R').  By issuing appropriate formatter
instructions, you can override these defaults before your document
writes its first glyph.

   Terminals cannot change font families and lack special fonts.  They
support style changes by overstriking, or by altering ISO 6429/ECMA-48
"graphic renditions" (character cell attributes).


I've set the status back to "Confirmed" because my way forward--for the time
being--seems clear.

I think Dave's point in comment #31 is worthwhile and demands further
consideration.  I don't relish the labor or I/O expense of making a `fam`
request hit the file system repeatedly, speculatively loading every registered
style for the family being switched to, but maybe that is what is warranted.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64155>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

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