[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
signature.asc
Description: PGP signature
- gropdf(1)'s 'Font installation' section is opaque to me, Alejandro Colomar, 2024/04/18
- Re: gropdf(1)'s 'Font installation' section is opaque to me, Jan Eden, 2024/04/18
- Re: gropdf(1)'s 'Font installation' section is opaque to me,
G. Branden Robinson <=
- Re: A primer on font installation for groff (was: gropdf(1)'s 'Font installation' section is opaque to me), Alejandro Colomar, 2024/04/19
- Re: A primer on font installation for groff (was: gropdf(1)'s 'Font installation' section is opaque to me), Alejandro Colomar, 2024/04/19
- Re: A primer on font installation for groff (was: gropdf(1)'s 'Font installation' section is opaque to me), G. Branden Robinson, 2024/04/19
- Re: A primer on font installation for groff (was: gropdf(1)'s 'Font installation' section is opaque to me), Alejandro Colomar, 2024/04/19