t1tools is a collection of programs and batch files useful for handling type 1 fonts on MSDOS and Unix systems. Documentation is ad-hoc to get the package out at last - sorry for any inconvenience this may impose. The package is not meant for people without knowledge about type 1 font and metrics stuff. If you detect any incompleteness or have any suggestions for improvement, please tell me. Thomas Wolff@inf.fu-berlin.de The package is available by anonymous ftp: ftp.fu-berlin.de: pub/postscript/t1tools.zip The package contains the following tools: makeafm.bat (MSDOS) makeafm (Unix) Generates an .afm font metrics file from a .pfb font file. The information is taken directly from the font itself by first disassembling it using an appropriate program. If pair kerning information is available from any previously existing .afm or .pfm file for that font it will be included in the generated .afm file. Syntax: makeafm font-file-base Don't include .pfb / .pfa suffix in file name. Examples: makeafm photina Disadvantage: character bounding box information will not be included. This does not matter for use with FrameMaker (which I originally wrote the script for), but for some Tex-ps adaptations. The MSDOS version, however, does at least include simulated character bounding box information derived from other font information to enable Adobe's makepfm to work on the .afm file. Required: 1. To disassemble the type 1 font (.pfb file): the program t1disasm from the package t1utils posted by I. Lee Hetherington with the following modification to t1disasm.c: look up the line output(" {\n"); at the beginning of the routine do_charstring and remove the \n . 2. To extract pair kerning information from .pfm files on MSDOS: a) either the program pfm2afm b) or the program dumppfm (version 1.5.3) (Extraction from .pfm files works without additional software on Unix.) getmetri.bat (MSDOS) getmetric (Unix) Generates an .afm font metrics file by interpretation of the font using GhostScript. Like makeafm, this script will try to include kerning information from previous sources. Syntax: getmetric font-file-base [/FontName] Don't include .pfb / .pfa suffix in file name. Explicit /FontName can choose among several fonts in file. Examples: getmetric photina getmetric hvn_____ /Helvetica-Narrow Disadvantage: GhostScript in its current version still has a bug which causes incorrect width information to be calculated for characters composed by seac and having a different width from their base character - actually, this should not be allowed according to the type 1 font specification, but to accomodate existing fonts to work, rather Adobe's "Do what we implement" semantics should be realized. The problem especially occurs with fonts bundled with Micrografx Designer (which even compose characters like double qoute marks from single quote marks etc), so don't apply getmetri on them. Required: GhostScript getmetri.ps (enclosed), which is a corrected and enhanced version of the PostScript program posted by W.T. Roberts and Bryan Bayerdorffer. pfbshow.bat (MSDOS) gpreview (Unix) preview (Unix) pfbpr.bat (MSDOS) preprint (Unix) [preview and preprint differ from gpreview only by their name and can be created by setting respective links.] Generates a sample text and character set listing of up to four fonts (preferably of one family). The latter two print, the first three display on screen. Syntax: pfbshow fontfile1 [fontfile2 [fontfile3 [fontfile4]]] pfbpr fontfile1 [fontfile2 [fontfile3 [fontfile4]]] preview (fontfile|fontname) ... Up to four fonts make sense. The Unix scripts can accept FontNames instead of file names to explicitly select a font which must then be previously known to the interpreter. Examples: pfbshow photina.pfb pfbshow photina photinai photinab gpreview Times-Roman.pfb /Hershey-Roman Required: one of several .pfb/.pfa converters (e.g. from t1utils) pfbshow.bat, pfbpr.bat: pfshow.ps (enclosed) pfbshow, gpreview, pfbpr: GhostScript preprint: a PostScript printer preview: a type 1 font emulation package for OpenWindows and a font disassembler (e.g. from t1utils) (or maybe, native type 1 font interpretation in OpenWindows 3.1 which I don't have) pcs.bat (MSDOS) Display the character set of a font in comparison with that of an installed reference font (or a second font) including a coloured width and slant angle box. It can be used to judge quality, similarity, and correct/incorrect character set assignment of fonts. Syntax: pcs filename [filename2] Examples: pcs gocmase_.pfb pcs agar agarsc pfblist.bat (MSDOS) Generates a list of file and font names of the current directory. Requires: pfbnames.pas/.exe (enclosed) afm-pfm.bat (MSDOS) Generates .pfm from .afm files using Adobe's makepfm program. Generates .inf information as needed for makepfm. Also tries to extract the correct Bold/Italic combination from .afm information. Can be called with explicit information about the Windows menu font name and Bold/Italic combination to be used. Syntax: afm-pfm fontfile [MSMenuName | - ] [N | I | B | T] Don't include .afm suffix in fontfile. MSMenuName selects a name under which the font should appear in MS Windows menus for most programs if this is different from the FamilyName in the .afm file. (Annoyingly, only 4 fonts can be grouped under one name in MS Windows.) N forces the generated style information to be normal, I italic, B bold, T bold-italic. Examples: afm-pfm agar afm-pfm agarb AGaramondBold N If the MS menu name to be generated should contain blanks, an .inf file must be generated first and the name inserted there. Required: makepfm.exe from Adobe's "font foundry". afm-inf.bat (MSDOS) Part of afm-pfm, can also be called separately. Example: afm-inf agar afm-sort.bat (MSDOS) Sorts the pair kerning list within an .afm file. Needed for some .afm files to prevent Adobe's simple-minded makepfm program from crashing. Example: afm-sort agar pfb-abf.bat (MSDOS) Generate .abf files for 72x72 resolution as required to generate FrameMaker screen font files for use on Sun workstations. Syntax: pfb-abf fontname [outnam [resolutionx [resolutiony [encoding]]]] Don't include .pfb suffix in fontname. If fontname is longer than 6 characters a unique outnam with at most 6 characters must additionally be specified (five if you should generate point sizes > 99). Screen resolution defaults to 72x72 (for Sun workstations) but can be changed. The encoding vector to be applied (to be given without its .enc suffix) defaults to fontname.ENC if that exists, C:\Adobe\APPLE.ENC otherwise (adapt the path in the script to where you place the APPLE.ENC file enclosed). The set of point sizes to be generated defaults to 10 12 14 18 24 but may changed by the environment variable SIZES, e.g. (for display fonts) set SIZES=18 24 36 Note that FrameMaker needs at least sizes 18 and 24. Required: makebit.exe, makeabf.exe from Adobe's "font foundry". pfb-sfp.bat (MSDOS) Generate HP Laserjet soft fonts from .pfb fonts. Syntax: pfb-abf fontname [outnam [resolutionx [resolutiony [encoding]]]] Don't include .pfb suffix in fontname. If fontname is longer than 6 characters a unique outnam with at most 6 characters must additionally be specified (five if you should generate point sizes > 99). Printer resolution defaults to 300x300. The encoding vector to be applied (to be given without its .enc suffix) defaults to fontname.ENC if that exists, C:\Adobe\foundry\W.ENC otherwise (adapt path in the script). The set of point sizes to be generated defaults to 10 12 but may changed by the environment variable PSIZES, e.g. set PSIZES=9 10 12 14 18 Required: makebit.exe, makeljf.exe from Adobe's "font foundry". pfb-enc.bat (MSDOS) Extracts an .ENC encoding description from a font specific encoding vector for use with pfb-abf or pfb-sfp. Example: pfb-enc agarexp fm.ps A one-liner. Prepended to FrameMaker generated PostScript files it makes them work with GhostScript. compose.bat (MSDOS) (not included) This script calculates positions of accent marks and other character parts to be composed for composed characters. It can be used as batch file or interactively, enabling visual correction of character slant values, accent distance, etc. The program (actually, compose.ps) generates output usable by my "t1tidy" program which will then generate according characters into the font. Since the interactive version has not been developed to a state I would like to see posted publically (I have only used it myself for a few fonts) it is not included in the ftp-able package but I will mail it to anyone who states interest. Debugging: All MSDOS scripts accept an additional first parameter "-" in which case they do not delete their intermediate files. Remark: Due to that silly MSDOS path restriction, all my MSDOS scripts (.bat files) contain full path names for several programs. These will have to be adapted to your installation. Also, for pcs, a reference font will have to be chosen and installed in the script.