groff
[Top][All Lists]
Advanced

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

Re: gropdf(1)'s 'Font installation' section is opaque to me


From: G. Branden Robinson
Subject: Re: gropdf(1)'s 'Font installation' section is opaque to me
Date: Thu, 18 Apr 2024 14:03:50 -0500

Hi Alex,

At 2024-04-18T18:00:09+0200, Alejandro Colomar wrote:
> Hi,
> 
> I find the following section very opaque.
> 
> Font installation
>      The following  is  a  step‐by‐step  font  installation  guide  for
>      gropdf.
> 
>      •  Convert  your  font  to something groff understands.  This is a
>         PostScript Type 1 font in PFA or PFB format, together  with  an
>         AFM file.  A PFA file begins as follows.
>                %!PS-AdobeFont-1.0:
>         A  PFB file contains this string as well, preceded by some non‐
>         printing bytes.  In the following steps, we will  consider  the
>         use of CTAN’s BrushScriptX‐Italic font in PFA format.
> 
> This mention of an AFM file is the first mention in the page, and has
> no information about it at all.

It's background that experienced users of PostScript Type 1 fonts would
be expected to have.  This is one of those situations where the
oft-repeated principle "man pages are a reference, not a tutorial"
frustrates people.  As a system, groff cares nothing for PFA, PFB, or
AFM files except insofar as it needs to prepare PostScript or PDF
output.

Here is some foundational material from groff(7).  I wrote this shortly
before the groff 1.23.0 release.

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.  (Terminals and some typesetters have fonts that render at
     only one or two sizes.  As examples, take the groff lj4 device’s
     Lineprinter, and lbp’s Courier and Elite faces.)  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, bold, italic, and bold‐italic.  For linguistic text, GNU
     troff groups typefaces into families containing each of these
     styles.  (Font designers prepare families such that the styles
     share esthetic properties.)  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; instead it works with a font
     description file that characterizes it, including its glyph
     repertoire and the metrics (dimensions) of each glyph.  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, TB, TI, TBI, and a special font S.

     The default family used with abstract styles can be changed at any
     time; initially, it is 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).

     The ft request and \f escape sequence select a typeface by name,
     abstract style, or mounting position.  The fam request and \F
     escape sequence set the default font family.  The ftr request
     translates one font name to another; fzoom magnifies a resolved
     one.  sty and fp associate abstract styles and font names with
     mounting positions.

Of course if you read that in your terminal emulator, you'll enjoy the
benefit of bold and italic faces to set literals and instances of jargon
into relief.

> Nope.  Can you please explain what I need to do to generate a TINOR
> file (or TinosR, or whatever it's called; I'm confused by the naming
> inconsistency)

Font description file names in groff are like file extensions in Unix
file names; they can look however you like, but following certain
conventions makes things more convenient.  I believe this point is
covered in the quoted material above.

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

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