T1ASM(1)
π T1ASM π
okay bestie, welcome to t1asm β the General Commands Manual entry for the little tool that assembles PostScript Type 1 fonts π. yes she's niche. yes she's iconic. let's get into it β¨
β¨ NAME β¨
t1asm β assemble PostScript Type 1 font π¦
πΈ SYNOPSIS πΈ
t1asm [-a|-b] [-l length] [input [output]]
π DESCRIPTION π
so what does she actually do?? t1asm takes Adobe Type 1 font programs and assembles them into either PFA (hexadecimal) or PFB (binary) formats, starting from a human-readable form. glow-up, basically π
- If the file output is not specified, output goes to the standard output.
- If the file input is not specified, input comes from the standard input.
t1asm tokenizes the charstring data and performs eexec and charstring encryption as specified in the ``black book,'' Adobe Type 1 Font Format π no cap, that's the actual spec.
π«Ά the input rules (yes there are rules)
The input must have a line of the form:
/-|{string currentfile exch readstring pop}executeonly def
which defines the command β in this case -| β that is to start charstring data. It is an error not to define such a command. π Another common name for this command is RD.
After the start of the Subrs array in the input, all open braces { not in a comment begin a charstring. Such a charstring is terminated by the next non-comment close brace }.
Within such a charstring, only comments, integers, and valid charstring commands are allowed. Valid charstring command names can be found in Adobe Type 1 Font Format and other documents describing the newer Type 2 opcodes.
The format within a charstring is unimportant as long as integers and commands are separated by at least a one whitespace (space, tab, newline) character. π seriously, she does not care about your spacing aesthetic.
β οΈ Note that within charstrings, comments are discarded because they cannot be encoded. sorry babe, your little notes are not making it to the font π
β¨ OPTIONS β¨
--pfa,-aβ Output in PFA (ASCII) format. β¨--pfb,-bβ Output in PFB (binary) format. This is the default. π--block-length=num,-l numβ PFB only: Set the maximum output block length to num. The default length is as large as memory allows. π§--line-length=num,-l numβ PFA only: Set the maximum length of encrypted lines in the output to num. (These are the lines consisting wholly of hexadecimal digits.) The default is64. π
π«Ά heads up bestie: both of those last two use -l. yes, literally both. it's giving "read the docs" energy. iykyk.
π EXAMPLES π
% t1asm Utopia-Regular.raw > Utopia-Regular.pfb
% t1asm -a Utopia-Regular.raw > Utopia-Regular.pfa
look at her go. ate that. π
π₯ SEE ALSO π₯
Adobe Type 1 Font Format is available free from Adobe as a PDF file. http://partners.adobe.com/asn/developer/PDFS/TN/T1_SPEC.PDF
The Type 2 Charstring Format, also available from Adobe as a PDF file, describes the newer Type 2 operators, which are also used in some multiple-master Type 1 fonts like Adobe Jenson and Kepler. http://partners.adobe.com/asn/developer/PDFS/TN/5177.Type2.pdf
π AUTHORS π
- Lee Hetherington (
ilh@lcs.mit.edu) - Eddie Kohler (
ekohler@gmail.com)
and that's the whole page, bestie π¦ this was Version 1.42 of the T1ASM(1) manual, brought to you from the General Commands Manual corner of the universe. go assemble something gorgeous πβ¨π
π¦ where this page comes from
- alpine 3.24: t1utils-doc 1.42-r0 Β· custom
- arch rolling: t1utils 1.42-3 Β· custom
- epel 10: t1utils 1.42-9.el10_0 Β· MIT
- epel 9: t1utils 1.42-3.el9 Β· MIT
- fedora 43: t1utils 1.42-11.fc43 Β· MIT
- fedora 44: t1utils 1.42-12.fc44 Β· MIT
- nixos 26.05: t1utils 1.42
- nixpkgs unstable: t1utils 1.42
- opensuse-leap 16.0: t1utils 1.42-160000.2.2 Β· ISC
- opensuse-leap 16.0: t1utils 1.42-160000.2.2 Β· ISC
- opensuse-leap 16.0: t1utils 1.42-160000.2.2 Β· ISC
- opensuse-leap 16.0: t1utils 1.42-160000.2.2 Β· ISC
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms