mkfontscale(1) mkfontscale(1)
NAME
mkfontscale - enable PostScript Type 1 outline font use for
the UnixWare X server and lp
SYNOPSIS
mkfontscale [directory] [. . .]
DESCRIPTION
The mkfontscale command allows Type 1 outline fonts installed
on the system to be used for both display and printing: by
both the UnixWare X server and the lp subsystem. For display,
mkfontscale allows the X Window System, when the Adobe Type
Manager package is installed, to use the Type 1 outline fonts
by mapping the PostScript font name information to the XLFD
name required by the X server. For printing, mkfontscale
allows the lp command to download installed Type 1 fonts to a
PostScript printer via the download utility, by mapping the
PostScript font name to the file name of the installed Type 1
font.
If no arguments are given, mkfontscale works with the Type 1
outline font files in the current directory; otherwise, it
processes the fonts in each directory given as arguments. For
each directory, it reads all Type 1 font files in the
directory and maps the font naming information contained
therein to XLFD names in the file fonts.scale, which it
creates or updates as necessary, in the same directory; the
mkfontdir command uses fonts.scale as input and creates the
file fonts.dir, which X uses directly on startup. In
addition, mkfontscale updates the file
/usr/share/lib/hostfontdir/map to associate PostScript font
names with the file in which they are located, to allow
download to download them to PostScript printers.
The Type 1 font files may be either the ASCII form of Type 1
fonts or the binary form; they are recognized by mkfontscale
if their names have one of the following suffixes: .PFA, .pfa,
.PFB, .pfb, .PS, or .ps. Files whose names have any other
suffix are ignored by mkfontscale.
XLFD Mapping: Family Name and Style
There are five XLFD fields for font name and style. They are
mapped as follows from the PostScript names (literals) in the
Type 1 font file:
Copyright 1994 Novell, Inc. Page 1
mkfontscale(1) mkfontscale(1)
XLFD Field Type 1 PostScript name used
________________________________________________________________________
FAMILY_NAME Set directly from the value of the /FamilyName literal.
WEIGHT_NAME Set directly from the value of the /Weight literal.
SLANT Set to i if the pattern [Ii]ta appears in the literal
/FontName; set to o if the pattern [Oo]bl appears in
the literal /FontName; set to r otherwise.
SETWIDTH_NAME Set from the /FullName literal as follows:
if the pattern [Cc]ond appears, set to Condensed;
if the pattern [Cc]omp appears, set to Compressed;
if the pattern [Nn]arr appears, set to Narrow;
if the pattern [Tt]hin appears, set to Thin;
if the pattern [Uu]lt appears, Ultra added as prefix;
if the pattern [Ee]xt appears, Extra added as prefix.
ADD_STYLE_NAME Set from the /FullName literal: if any of a series of
qualifying names appear as part of the FullName, they
are placed in the ADD_STYLE_NAME field. These include
Capitals, Expert, Alternate, and Old Style.
XLFD Mapping: Character Set Registries and Encodings
If the Type 1 font contains the literal definition /Encoding
StandardEncoding, then two XLFD names are created for the
font, one with a CHARSET_ENCODING of 1 and the other with a
CHARSET_ENCODING of adobe; the CHARSET_REGISTRY is set to
iso8859 in both cases. Otherwise, a single XLFD name is
created for the font, with a CHARSET_ENCODING of fontspecific
and a CHARSET_REGISTRY of adobe.
XLFD Mapping: Other XLFD Fields
There are seven other XLFD fields, set as follows:
XLFD Field manner set from Type 1 PostScript information
_____________________________________________________________
FOUNDRY Set to a limited number of well-known digital
font foundries (Adobe, Bitstream, IBM,
Linotype, Monotype), based on the presence of
their name in the /Notice literal.
PIXEL_SIZE Set to 0, per X11R5 XLFD conventions.
POINT_SIZE Set to 0, per X11R5 XLFD conventions.
RESOLUTION_X Set to 0, per X11R5 XLFD conventions.
RESOLUTION_Y Set to 0, per X11R5 XLFD conventions.
SPACING Set to m if the literal /isFixedPitch is set
to true;
otherwise set to p.
AVERAGE_WIDTH Set to 0, per X11R5 XLFD conventions.
Copyright 1994 Novell, Inc. Page 2
mkfontscale(1) mkfontscale(1)
XLFD Field manner set from Type 1 PostScript information
_____________________________________________________________
XLFD Creation: Derived Instance Pointsizes
To allow pre-X11R5 applications to take limited advantage of
outline fonts, XLFD names that have a specific size in the
POINT_SIZE field may be created for outline fonts. By doing
this for sizes 10 and 12, for example, an X11R4 application,
can be informed by X that the font Hobo (from the Adobe Type
Set 2 collection) is available in pointsizes 10 and 12; the
X11R4 application assumes the fonts are bitmapped, but the X
server just renders the outlines at the sizes available via
these ``derived'' XLFD names. This is a limited capability:
sizes of the font other than 10 and 12 are not available to
the pre-X11R5 application, since it does not know how to
request an outline to be scaled to any size. Nonetheless, it
is a mechanism by which some use of outline fonts may be made
by older X applications.
The pointsizes for which this is desired are specified as a
comma-separated list in the environment variable
DERIVED_INSTANCE_PS when mkfontscale is executed. An XLFD
name for each size specified is generated for each character
set encoding of each font in the directory; a scalable name,
with a POINT_SIZE field of 0, is of course also generated for
each encoding of each Type 1 font file.
Note that when the Integrity Check selection on the Actions
menu button of the Fonts application in the Preferences folder
of the UnixWare Desktop causes mkfontscale to run, the
DERIVED_INSTANCE_PS environment variable is set to the value
of the derived-instance-pointsizes option in the Type 1 font
configuration file /usr/X/lib/fonts/type1/config.
lp Mapping
The first column of the file /usr/share/lib/hostfontdir/map is
the font name as given in the /FontName literal in the Type 1
program. This is the name of the font that must be specified
in the %%DocumentFonts: comment of PostScript output files
from applications if the font is to be downloaded to a
PostScript printer. It is the name of the font dictionary
created in the PostScript interpreter in the printer when that
font is used. Note that an application must obtain the
PostScript font name (as coded in the /FontName literal in the
Type 1 font file) from a font structure in the X server, when
the font is open, to be able to place it in the
Copyright 1994 Novell, Inc. Page 3
mkfontscale(1) mkfontscale(1)
%%DocumentFonts: comment in a generated PostScript output
file; see download(1).
If the ``Fonts Disk'' of the DOS retail package for Adobe Type
Manager is installed, the 13 base fonts there are not placed
into the hostfontdir/map file, since it is assumed that all
PostScript printers have at least these 13 fonts. If this
assumption is untrue, the map file must be updated manually;
see download(1).
Files
/usr/X/lib/fonts/type1/config
/usr/X/lib/fonts/type1/fonts.scale
/usr/share/lib/hostfontdir/map
/etc/lp/printers/printer/residentfonts
Environment Variables
XWINHOME
specifies where the X libraries are located; if not set,
it defaults to /usr/X.
DERIVED_INSTANCE_PS
is a comma-separated list of point sizes for which
individual XLFD font names are to be generated for each
character encoding of each Type 1 font.
USAGE
Examples
The file CP31A___.pfa on the fonts diskette from the Adobe
TypeSet 2 package contains the following PostScript literals:
/Notice (Copyright (c) 1989, 1990 Adobe Systems Incorporated.\
All Rights Reserved.)
/FullName (Copperplate Gothic 31AB)
/FamilyName (Copperplate Gothic)
/Weight (Bold)
/ItalicAngle 0
/FontName /Copperplate-ThirtyOneAB
This is mapped to the following two scalable XLFD names in the
fonts.scale file:
CP31A___.pfa -adobe-Copperplate Gothic-Bold-r-normal--0-0-0-0-p-0-iso8859-1
CP31A___.pfa -adobe-Copperplate Gothic-Bold-r-normal--0-0-0-0-p-0-iso8859-adobe
The PostScript font name Copperplate-ThirtyOneAB would be
placed into the map file for use for downloaded fonts.
Copyright 1994 Novell, Inc. Page 4
mkfontscale(1) mkfontscale(1)
The file SNOWTHIN.pfa from another font vendor contains the
following PostScript font literals:
/Notice (Copyright (c) 1989, Acme Fonts Inc.)
/FullName (Acme Snow-Thin)
/FamilyName (Snow Thin)
/Weight (Thin)
/ItalicAngle 0
/FontName /SnowThin
This is mapped to the following scalable XLFD name in the
fonts.scale file:
SNOWTHIN.pfa -unknown-Snow Thin-Thin-r-normal--0-0-0-0-p-0-iso8859-1
Note that ``Thin'' is used in both the FamilyName literal and
the Weight literal, and so is used twice in the XLFD name.
This means that the word will appear twice in the Fonts
application, once under Family Name and once under Style.
This is due to a lack of regularized font naming conventions
in the industry.
NOTICES
XLFD is the acronym for the X Logical Font Description and
more information on it can be obtained from the X Consortium
document X11R5: X Logical Font Description Conventions,
Version 1.4.
The mkfontscale command is run automatically by the Fonts
application of the desktop whenever Type 1 fonts are installed
from diskette. It is also run when the Integrity Check option
of the Actions button of the Fonts application is used.
REFERENCES
desktop(1), download(1), lp(1), mkfontdir(1), pfb2pfa(1),
type1.config(4)
Copyright 1994 Novell, Inc. Page 5