MMPFB(1)
π MMPFB β the mmpfb(1) glow-up π
okay bestie, buckle up, because this is the manual page for mmpfb, from the General Commands Manual section of your local man setup. she's a little tool with big main character energy: she takes your multiple master fonts and β¨interpolatesβ¨ them into regular single-master fonts. no cap.
πΈ NAME πΈ
mmpfb β creates single-master fonts from multiple master fonts
π¦ SYNOPSIS π¦
mmpfb [OPTIONS...] font
β¨ DESCRIPTION β¨
Mmpfb creates a normal, single-master PostScript font from a multiple master font by interpolation. you hand it a PFB or PFA font plus the options that say which design point you want, and it writes the resulting PFB or PFA font straight to the standard output. iconic behavior honestly.
the fonts mmpfb creates are interpolated at a low level to remove multiple master instructions from individual characters. so basically they can be used by programs that don't normally understand multiple master fonts, like ps2pk(1). slay.
Mmpfb supports fonts with intermediate masters, like Adobe Jenson and Kepler. it can also create AMCP (Adobe Multiple Master Conversion Program) files for use by mmafm(1); peep --amcp-info down below for that one. π
the font argument is either the name of a PFA or PFB font file, or a PostScript font name. if you give it a font name, mmpfb will find the actual outline file using the PSRESOURCEPATH environment variable. this colon-separated path is searched for PSres.upr files, which is an Adobe method for indexing PostScript resources. iykyk.
you can also give the name of a multiple master font instance, like MinionMM_367_400_12_. Mmpfb will parse the font name and create that instance for you. PSres.upr files must be set up for this to work tho β no shortcuts. π
π EXAMPLE π
% mmpfb --weight=400 --width=600 MyriadMM.pfb > MyriadMM_400_600_.pfb
π OPTIONS π
heads up: long options may be abbreviated to their unique prefixes. cute and efficient.
--output=file,-o fileβ send output to file instead of standard output.--pfb,-bβ output a PFB font. this is the default, bestie.--pfa,-aβ output a PFA font.--amcp-infoβ do not create a font; instead, output an AMCP file for use bymmafm(1). a message is printed if the font doesn't have intermediate masters, in which case no AMCP file is necessary.--weight=N,-w Nβ set the weight axis to N.--width=N,-W Nβ set the width axis to N.--optical-size=N,-O Nβ set the optical size axis to N.--style=Nβ set the style axis to N.--1=N(--2=N,--3=N,--4=N) β set the first (second, third, fourth) axis to N.--precision=N,-p Nβ set the output precision to N. higher values mean the control points in the output font will be more exactly aligned; lower values (1or2) create smaller output font files, and are close enough for most purposes. a precision of N means that each point will be within1/Nfont units of the exact interpolated value. (a font unit is generally1/7200inch for a 10-point font.) the default is5.--subrs=Nβ limit the output font to at most N subroutines.256is a good value for N.--no-minimizeβ do not minimize the output font definition. by default,mmpfbremoves extra PostScript code and dictionary definitions from the font. supply the--no-minimizeoption to avoid this behavior.
π TROUBLESHOOTING π
the "IBM" Type 1 font interpreter shipped as part of the X font server and ps2pk (among others) is inappropriately strict about PostScript code embedded in a font. the --minimize option (now the default) fixes this problem. periodt.
some versions of Adobe Acrobat Distiller may report Warning: unable to embed font X. Invalid character outline data when distilling an instance generated by mmpfb. this is due to a limitation in the number of font subroutines Distiller can accept. (multiple master fonts, and the single-master fonts generated by mmpfb, tend to have a lot of subroutines.) try limiting the number of subroutines in the generated font with the --subrs option. π«Ά
π SEE ALSO π
π DIAGNOSTICS π
reducing font to minimum number of subroutines (N)β you tried to reduce the number of subroutines to less than N using the--subrsoption, but the font needs at least N to function. the output font will have N subroutines.
π AUTHOR π
Eddie Kohler, ekohler@gmail.com
the latest version is available from: http://www.lcdf.org/type/
thanks to Melissa O'Neill for suggestions and patient debugging. π
and that's the whole vibe check, bestie π¦ this was Version 2.110 of the page, brought to you by LCDF Typetools β go interpolate something gorgeous, you absolute icon ππ
π¦ where this page comes from
- arch rolling: texlive-doc 2026.1-1 Β· GPL
- debian trixie: lcdf-typetools 2.110-1 Β· GPL-2.0-only
- fedora 44: texlive-lcdftypetools 12:svn70015-105.fc44 Β· GPL-1.0-or-later
- fedora 44: texlive-lcdftypetools 12:svn70015-111.fc44 Β· GPL-1.0-or-later
- nixos 26.05: lcdf-typetools 2.110
- nixpkgs unstable: lcdf-typetools 2.110
- opensuse-leap 16.0: lcdf-typetools 2.110-bp160.1.13 Β· GPL-2.0-only
- opensuse-leap 16.0: lcdf-typetools 2.110-bp160.1.13 Β· GPL-2.0-only
- opensuse-leap 16.0: lcdf-typetools 2.110-bp160.1.13 Β· GPL-2.0-only
- opensuse-leap 16.0: lcdf-typetools 2.110-bp160.1.13 Β· GPL-2.0-only
- opensuse-leap 16.0: texlive-lcdftypetools 2025.222.svn70015-160000.3.1 Β· GPL-2.0-or-later
- ubuntu noble: lcdf-typetools 2.110-1build1 Β· GPL-2.0-only
- ubuntu questing: lcdf-typetools 2.110-1build1
- ubuntu resolute: lcdf-typetools 2.110-1build2 Β· GPL-2.0-only
- ubuntu stonking: lcdf-typetools 2.110-1build2 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms