AFM2AFM(1)
πΈ AFM2AFM(1) πΈ
okay so bestie, welcome to the afm2afm page β it's section 1 of the manual, and the author is Marc Penninga. yes, that Marc Penninga. icon behavior. let's get into it π
β¨ NAME β¨
afm2afm β reencode an afm file
like, that's the whole vibe. it reencodes an afm file. π
π¦ SYNOPSIS π¦
afm2afm [-help] [-version] [-encoding=<encodingfile>] [-kpx=<kpxfile>]
[-output=<outputfile>] <afmfile>
π DESCRIPTION π
so afm2afm re-encodes an afm file. that's the main character task, no cap.
Metrics (including kerning data, yes the kerning data too π₯) for characters that aren't present in the chosen encoding get excluded from the output β which resuls in (potentially much) smaller files. tiny file, big slay. β¨
you can also add extra kerning pairs to the output file. and listen: if you don't specify an encoding file, the afm file isn't re-encoded β but all the unused (unencoded) data still gets pruned anyway. the pruning is non-negotiable, she's gonna prune. πͺ΄
the program also generates an entry for a dvips-style map file β but only if the afm file has been re-encoded and the output was written to file. i.e., only if both the -encoding and -output options were specified. both or nothing, bestie. π«Ά
π OPTIONS AND ARGUMENTS π
-helpβ prints a short description of the syntax. little cheat sheet moment, we love her π-versionβ prints the version number and exits. bye! π-encoding=<encodingfile>β re-encode to the enconding in <encodingfile>. pick your encoding, babe π-kpx=<kpxfile>β read additional kerning pairs from <kpxfile> and adds these to the output. β οΈ heads up: this option cannot be used to override values from the input afm file, becauseafm2afmwill write both old and new values to the output! so like, both. both is what happens. π
the <kpxfile> should contain kerning data in standard afm format, i.e. for each kerning pair there should be a line:
KPX <left_glyph> <right_glyph> <amount>
all other lines in the <kpxfile> are ignored. they simply do not exist to her. π
-output=<outputfile>β write the result to <outputfile> instead of"stdout". very "i'm not like other outputs" of her β¨<afmfile>β the afm file to be re-encoded. the star of the show π
okay and this part's important: you may use either one or two dashes before options, and option names may be shortened to a unique prefix. so like, flexible. accommodating. a queen who meets you where you're at. πΈ
π AUTHOR π
Marc Penninga <marcpenninga@gmail.com> β an actual legend, respectfully π«Ά
π COPYRIGHT π
Copyright (C) 2005-2026 Marc Penninga.
β LICENSE β
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. A copy of the GNU General Public License is included with afm2afm; see the file GPLv2.txt. π
π DISCLAIMER π
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
fr fr, no warranty. she said what she said. π
π₯ VERSION π₯
This document describes afm2afm version 20260210.
π§ RECENT CHANGES π§
(see the source code for the rest of the story π)
- 2019-05-20 β added the
-versionoption. iconic addition, honestly π
and that's the page!! π documented by fontools, dated 2026-02-10 β mwah, go reencode something cute, bestie π¦β¨π
π¦ where this page comes from
- alpine 3.24: texmf-dist-fontutils-doc 2026.0-r0 Β· LPPL-1.0 AND LPPL-1.1 AND LPPL-1.2 AND LPPL-1.3a AND LPPL-1.3c AND GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms