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: Alejandro Colomar
Subject: Re: gropdf(1)'s 'Font installation' section is opaque to me
Date: Fri, 19 Apr 2024 00:29:37 +0200

Hi Branden,

On Thu, Apr 18, 2024 at 02:03:50PM -0500, G. Branden Robinson wrote:
> 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.

Indeed.

>  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.

While the above is interesting, I've already read similar explanations
from you in related threads.  However, I still have no clue of how to
drop TINOR from the Linux man-pages repo and generate it from something
coming from a package.  :(

Cheers,
Alex

> 
> Regards,
> Branden



-- 
<https://www.alejandro-colomar.es/>

Attachment: signature.asc
Description: PGP signature


reply via email to

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