MMAFM(1)

πŸ“¦
version 70015 Β· 2 versions
, in arch rolling, debian trixie, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– MMAFM β€” the mmafm manual, bestie edition πŸ’–

okay so this is mmafm(1) from the General Commands Manual, and honestly? it's giving font-math main character energy and i'm obsessed. it makes AFM font metrics for multiple master fonts, and by the end of this you're gonna be a whole expert. no cap. ✨


🌸 NAME 🌸

mmafm β€” creates AFM font metrics for multiple master fonts


πŸŽ€ SYNOPSIS πŸŽ€

mmafm [OPTIONS...]  font

πŸ¦‹ DESCRIPTION πŸ¦‹

okay bestie, listen. Mmafm creates AFM font metrics for PostScript multiple master fonts by interpolation. that's the whole vibe. you hand it an AMFM file (which is literally just multiple master font metrics) plus some options telling it which design point you want, and it writes the resulting AFM file straight to standard output. slay.

so like, each font argument is either the filename of an AFM or AMFM font metrics file, or a PostScript font name. if you give it a font name, mmafm will go look up the actual font metrics file using the PSRESOURCEPATH environment variable. that's a colon-separated path that gets searched for PSres.upr files β€” 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_. Mmafm will parse the font name and create that instance for you. but heads up: PSres.upr files must be set up for this to work. periodt.

now, any multiple master font should be distributed with a single AMFM file and several AFM files (one for each master). for Myriad, for example, the AMFM file is MyriadMM.amfm and the AFM files are MyriadMM-LightCn.afm, MyriadMM-LightSemiEx.afm, MyriadMM-BlackCn.afm, and MyriadMM-BlackSemiEx.afm. Mmafm needs to find all these files to function, fr fr. for fonts in the Adobe type library, you can download the necessary files from <http://www.lcdf.org/type>; look for the mm-metrics package. 🫢

you must always supply the AMFM file (or its font name) on the command line, but mmafm will look for any required AFM files you don't supply yourself. it tries the PSRESOURCEPATH environment variable, and it also looks for files named FontName.afm or FontName.AFM in the directory that contained the AMFM file. (the Myriad filenames given above fit this pattern, cute right?)

Mmafm supports fonts with intermediate masters, like Adobe Jenson and Kepler. if your PSRESOURCEPATH environment variable is set up, it will handle these fonts automatically. otherwise, you must first run mmpfb --amcp-info on the font outline files to create auxiliary AMCP files for these fonts. each AMCP file should be in the same directory as its corresponding AMFM file and should have the same root filename, but with a .amcp extension instead of .amfm. see mmpfb(1) for more information. πŸ’…


🌈 EXAMPLE 🌈

% mmafm --weight=400 --width=600 MyriadMM.amfm > MyriadMM_400_600_.afm

✨ OPTIONS ✨

okay so quick note before we dive in: long options may be abbreviated to their unique prefixes. very demure, very mindful.

  • --output=file, -o file β€” send output to file instead of standard output. πŸ“
  • --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 β€” round output numbers so they have at most N digits after the decimal point. smaller numbers are less precise; -p 0 rounds all numbers to integers. the default precision is 3.
  • --min-kern=N, -k N β€” only output kerning pairs whose absolute value is N or larger. smaller minimum kerns make kerning more precise and the output AFM file bigger. the default minimum kern is 2.0.

😭 TROUBLESHOOTING 😭

some programs, such as TeX's fontinst, can choke on AFM files that include fractional numbers. so if you have trouble with an AFM file, try rerunning mmafm with the --precision=0 option. that's the fix, bestie. 🩹


πŸ”₯ SEE ALSO πŸ”₯

mmpfb(1)


πŸ’€ DIAGNOSTICS πŸ’€

  • Font requires intermediate master conversion programs β€” you haven't yet created an AMCP file for Font.

πŸ‘‘ AUTHOR πŸ‘‘

Eddie Kohler, ekohler@gmail.com

the latest version is available from: http://www.lcdf.org/type/ AMFM and AFM files for Adobe Type Library fonts are also available at that URL.

thanks to Melissa O'Neill for suggestions and patient debugging. 🫢


and that's the whole page, bestie!! you ate that. go interpolate some fonts. πŸ’–

this was mmafm(1), Version 2.110, from LCDF Typetools, and it lives in the General Commands Manual. βœ¨πŸŽ€πŸ¦‹