Utilities for manipulating OpenType, PostScript Type 1, and Multiple Master fonts.
C++ C Groff Shell M4 Perl Other
Permalink
Failed to load latest commit information.
cfftot1 Whitespace, copyright year. Jan 11, 2017
include Adrian Devries reports this. Sep 25, 2016
libefont Whitespace, copyright year. Jan 11, 2017
liblcdf Whitespace, copyright year. Jan 11, 2017
m4 Move program selection options into an include. Mar 11, 2010
mmafm Whitespace, copyright year. Jan 11, 2017
mmpfb Whitespace, copyright year. Jan 11, 2017
otfinfo Whitespace, copyright year. Jan 11, 2017
otftotfm Add T1Secondary::force_unicode_encoding Jan 11, 2017
showings Add install.sh, which creates the font files for the features PDFs. Sep 6, 2010
t1dotlessj Whitespace, copyright year. Jan 11, 2017
t1lint Whitespace, copyright year. Jan 11, 2017
t1rawafm Whitespace, copyright year. Jan 11, 2017
t1reencode Whitespace, copyright year. Jan 11, 2017
t1testpage Whitespace, copyright year. Jan 11, 2017
ttftotype42 Whitespace, copyright year. Jan 11, 2017
.gitignore Combine .gitignores, remove obsolete .gitignores. May 18, 2013
7t.enc diagnostics work Jun 26, 2003
COPYING add explicit GPL to files Jun 24, 2003
INSTALL first version Jun 29, 1999
Makefile.am Copyright year, NEWS, to 2.106 Jun 21, 2016
NEWS.md Copyright year, NEWS, to 2.106 Jun 21, 2016
ONEWS to 2.0, and update copyrights Mar 22, 2004
README.md Whitespace, copyright year. Jan 11, 2017
bootstrap.sh Clean bootstrap.sh: the symbolic links are no longer appropriate. May 18, 2013
configure.ac Copyright year, NEWS, to 2.106 Jun 21, 2016
glyphlist.txt Update Adobe Glyph List to correctly licensed one. Oct 2, 2015
lcdf-typetools.spec Copyright year, NEWS, to 2.106 Jun 21, 2016
make-glyphtounicode.pl make-glyphtounicode.pl: Represent non-BMP code points in UTF16-BE, Sep 8, 2010
mkuniprop.pl Whitespace, copyright year. Jan 11, 2017
otf.com Reduce warnings, update to newer CLP. Jul 4, 2008
texglyphlist-g2u.txt Update glyphlist version numbers. Aug 8, 2012
texglyphlist.txt Update glyphlist version numbers. Aug 8, 2012

README.md

LCDF Typetools

LCDF Typetools comprises several programs for manipulating PostScript Type 1, Type 1 Multiple Master, OpenType, and TrueType fonts.

cfftot1 translates a Compact Font Format (CFF) font, or a PostScript-flavored OpenType font, into PostScript Type 1 format. It correctly handles subroutines and hints.

mmafm creates an AFM file (font metrics) corresponding to an instance of a Type 1 Multiple Master font. It reads the AMFM and AFM files distributed with the font.

mmpfb creates a normal, single-master font program which looks like an instance of a Type 1 Multiple Master font. It reads the multiple master font program in PFA or PFB format.

otfinfo reports information about OpenType and TrueType fonts, such as the OpenType features and Unicode code points they support, or the contents of their size optical size features.

otftotfm creates TeX font metrics and encodings that correspond to an OpenType or TrueType font. It interprets glyph positionings, substitutions, and ligatures as far as it is able. You can say which OpenType features should be activated.

t1dotlessj reads a Type 1 font, then creates a new Type 1 font whose only character is a dotless lower-case j matching the input font’s design.

t1lint checks Type 1 fonts for correctness. It tests most of the requirements listed in Adobe Systems’ Black Book (“Adobe Type 1 Font Format”), and some others.

t1rawafm creates an AFM font metrics file corresponding to a raw Type 1 font file (in PFA or PFB format).

t1reencode reencodes a Type 1 font, replacing its internal encoding with one you specify.

t1testpage creates PostScript test pages for a given Type 1 font. These pages show every character defined in the font.

ttftotype42 creates a Type 42 wrapper for a TrueType or TrueType-flavored OpenType font. This allows the font to be embedded in a PostScript file.

Each of these programs has a manual page; man PROGRAMNAME/PROGRAMNAME.1 for more information.

See NEWS in this directory for changes in recent versions. The LCDF Typetools home page is:

http://www.lcdf.org/type/

Installation

Type ./configure, then make.

If ./configure does not exist (you downloaded from Github), run ./bootstrap.sh first.

./configure accepts the usual options; see INSTALL for details. Some of the typetools programs can link with additional libraries. Otftotfm can use the Kpathsea library for integration with TeX directories; if your version of this library is in a nonstandard place, supply ./configure with the --with-kpathsea=PREFIX option to find it.

You can also disable individual programs by supplying ./configure with --disable-PROGNAME options. See ./configure --help for more information.

Mmafm and mmpfb

Run mmafm --help and mmpfb --help for a full option summary. Here are two example runs:

% mmafm MyriadMM.amfm --weight=300 --width=585 > MyriadMM_300_585_.afm
% mmpfb MyriadMM.pfb --weight=300 --width=585 > MyriadMM_300_585_.pfb

Mmafm expects the name of an AMFM file on the command line. It also needs an AFM file for each master (these should have been distributed with the AMFM file). You can give the AFM files’ names on the command line, along with the AMFM file, or you let mmafm find the AFM files automatically. For the automatic method, you must follow one of these 2 conventions:

  1. The AFM files are in the same directory as the AMFM file. They are named FONTNAME.afm -- MyriadMM-LightCn.afm, for example.

  2. There is a PSres.upr file that lists the AFMs by font name, and the PSRESOURCEPATH environment variable contains the directory with that PSres.upr file. (ps2pk comes with a sample PSres.upr file.)

Copyright and license

All source code is Copyright (c) 1997-2017 Eddie Kohler.

This code is distributed under the GNU General Public License, Version 2 (and only Version 2). The GNU General Public License is available via the Web at http://www.gnu.org/licenses/gpl.html, or in the COPYING file in this directory.

Author

Eddie Kohler ekohler@gmail.com, http://www.lcdf.org/

The current version of the lcdf-typetools package is available on the Web at http://www.lcdf.org/type/

LCDF stands for Little Cambridgeport Design Factory.