<HTML> <HEAD> <!-- Created with AOLpress/2.0 --> <!-- AP: Created on: 7-Nov-2000 --> <!-- AP: Last modified: 14-Feb-2002 --> <TITLE>PfaEdit</TITLE> </HEAD> <BODY> <H1 ALIGN=Center> <A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?group_id=25752&type=1" width="88" height="31" border="0" alt="SourceForge Logo" ALIGN=right> </A> PfaEdit </H1> <P> <FONT COLOR="Red"><STRONG>PfaEdit</STRONG></FONT> -- A postscript font editor that lets you create your own postscript, truetype, opentype, cid-keyed and bitmap (bdf) fonts, or edit existing ones. Also lets you convert one format to another. <P> Contents <UL> <LI> <A HREF="overview.html">User manual</A>. <LI> <A HREF="http://sourceforge.net/projects/pfaedit/">SourceForge Project page</A> <LI> <A HREF="#downloads">Downloads</A> <UL> <LI> <A HREF="index.html#binary">Binary</A> <LI> <A HREF="index.html#source">Source</A> <UL> <LI> <A HREF="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/pfaedit/pfaedit/">Access to the CVS tree</A> </UL> <LI> <A HREF="#image-libs">External libraries used (but not required)</A> <LI> <A HREF="#cidmaps">Helper files for editing CID keyed fonts</A> <LI> <A HREF="index.html#suggested-fonts">Suggested fonts</A> <LI> <A HREF="#docs">Documentation</A> <LI> <A HREF="sfds/index.html">A library sfd fonts</A> </UL> <LI> <A HREF="#license">License</A> <LI> <A HREF="future.html">Future Improvements</A> <LI> <A HREF="#change-log">Change Log</A> <LI> <A HREF="index.html#Lacks">Things missing...</A> <LI> <A HREF="#known-bugs">Known Bugs</A> <LI> <A HREF="#bugs">Reporting Bugs</A> <LI> <A HREF="#assistance">How else you can help</A> <LI> <A HREF="#Acknowledgements">Acknowledgements</A> <LI> <A HREF="index.html#Formats">Font File Formats </A>(standards) <LI> <A HREF="index.html#Unicode">Unicode</A> <LI> <A HREF="#tools">Similar tools</A> </UL> <P> I have no one to do QA for me except users on the net, so this is essentially beta software. Expect to find bugs. <A HREF="#bugs">Please let me know when you do</A>. <H2> <A NAME="binary">Binary</A> distributions: </H2> <UL> <LI> <A HREF="pfaedit-020214.tgz">Download pfaedit linux-i386 Redhat 7.1 </A><A NAME="downloads">executable</A> Version: 14-Feb-2002 <LI> <A HREF="pfaedit_ppc-020208.tgz">Download pfaedit linux-ppc SUSE 7.1 </A>executable Version: 8-Feb-2002 <LI> <A HREF="pfaedit-solaris-020212.tgz">Download pfaedit Solaris 8.0 </A>executable Version: 12-Feb-2002 <LI> <A HREF="pfaedit-020208-1.i386.rpm">Download pfaedit linux-i386 binary rpm</A>. Version: 8-Feb-2002 (Redhat 7.1) <LI> <A HREF="http://packages.debian.org/unstable/x11/pfaedit.html">A debian package is available at the debian site.</A> <LI> <A HREF="Problems-MacOSX.html#binary">A Mac OS/X distribution</A> (with Caveats). Version 8-Feb-2001 <LI> <A HREF="pfaedit_cygwin-020208.tgz">A cygwin version</A>. Version: 8-Feb-2002 <LI> <A HREF="ftp://nchrem.tnw.tudelft.nl/pub/pfaedit/">An OpenVMS executable </A>(by Jacob Jansen): Version Approximately 23-Sept-2001<BR> </UL> <P> If you want to do autotracing around character images you should also download Martin Weber's <A HREF="http://sourceforge.net/projects/autotrace/">autotrace program.</A> (there's a new version as of Dec 2001) <P> If you want to edit CID keyed fonts you probably need these <A HREF="cidmaps.tgz">character set descriptions</A>. (These were last updated 25-Nov-2001) <H2> <A NAME="source">Source</A> distribution </H2> <P> You can download a <A HREF="pfaedit-020208-1.src.rpm">source RPM</A>: Version: 8-Feb-2002<BR> Or you can download the <A HREF="pfaedit_full-020214.tgz">entire source tree </A>in one .tgz file: Version 14-Feb-2002<!-- Or you can download the following three packages. Version: 19-Jan-2002 <UL> <LI> <A HREF="libgunicode-020117.tgz">Unicode library source</A> (17-Jan-2002)<BR> -- <A HREF="http://bibliofile.mc.duke.edu/gww/FreeWare/LibGUnicode/index.html">docs</A> <LI> <A HREF="libgdraw-020119.tgz">Unicode widget library source</A> (19-Jan-2002)<BR> -- <A HREF="http://bibliofile.mc.duke.edu/gww/FreeWare/LibGDraw/index.html">docs</A> <LI> <A HREF="pfaedit_src-020119.tgz">Pfaedit source</A> (19-Jan-2002)<BR> -- <A HREF="overview.html">docs</A> </UL>--> <P> If you want to do autotracing around character images you should also download Martin Weber's <A HREF="http://sourceforge.net/projects/autotrace/">autotrace program.</A>(there's a new version as of Dec 2001) <P> If you want to edit CID keyed fonts you need these <A HREF="cidmaps.tgz">character set descriptions</A>. (These were last updated 25-Nov-2001) <P> With the appropriate <A NAME="image-libs">libraries</A>, PfaEdit can import png, tiff, and gif images to act as character backgrounds for tracing purposes (PfaEdit can import bmp and xbm formats without external libraries). With the freetype library PfaEdit will do a better job making bitmap characters for you. None is required for the proper compilation/execution of PfaEdit, if the libraries are not present they will not be used. If your machine doesn't have them and you want them they are available from: <UL> <LI> <A HREF="http://www.libpng.org/pub/png/libpng.html">libpng</A> (and required helper <A HREF="http://www.gzip.org/zlib/">zlib</A>) <LI> <A HREF="http://www.libtiff.org/">libtiff</A> <LI> <A HREF="http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml">libungif</A> <LI> <A HREF="http://www.ijg.org/">libjpeg</A> <LI> <A HREF="http://freetype.sf.net/">freetype</A> </UL> <P> PfaEdit has been ported to the following systems (at some point in its life) <UL> <LI> Linux (obviously, (redhat, debian, suse), 386,spark,arm,alpha,ia64,m68k,mips,mipsel,powerpc,s390) <LI> Solaris <LI> Irix <LI> FreeBsd <LI> NetBsd <LI> Mac OS/X <LI> OpenVMS7.3 for Alpha <LI> <A HREF="http://cygwin.com/">cygwin</A> with X running on top of MS windows. </UL> <P> If you are editing <A NAME="cidmaps">CID keyed fonts </A>you should pull down the following file <UL> <LI> <A HREF="cidmaps.tgz">cidmaps.tgz</A> </UL> <P> <A NAME="suggested-fonts">You</A> might also want to pull down some unicode bitmap fonts that pfaedit uses <UL> <LI> <A HREF="http://bibliofile.mc.duke.edu/gww/fonts/Monospace/index.html">my monospace fonts</A> <LI> <A HREF="http://bibliofile.mc.duke.edu/gww/fonts/Caliban/index.html">my sans-serif font</A> <LI> <A HREF="http://czyborra.com/unifont/">The unifont</A> <LI> <A HREF="http://clr.nmsu.edu/~mleisher/cu.html">ClearlyU's font</A> <LI> <A HREF="http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html">X fixed</A> </UL> <H2> <A NAME="docs">Documentation</A> </H2> <P> All the documentation files in this directory bundled up into one <A HREF="pfaedit_htdocs-020208.tgz">tgz file</A> 8-Feb-2002.<BR> If you do the following then PfaEdit will find the docs for you when you press F1 (ie. PfaEdit it will look in /usr/share/doc/pfaedit before it looks on the web): <BLOCKQUOTE> <PRE>$ mkdir -p /usr/share/doc/pfaedit $ cd /usr/share/doc/pfaedit $ gunzip pfaedit_htdocs-*.tgz $ tar xf pfaedit_htdocs-*.tar $ rm pfaedit_htdocs-*.tar </PRE> </BLOCKQUOTE> <P> Or you can download an <A HREF="pfaedit-doc-020208-1.i386.rpm">rpm</A> which should install them properly for you. <P> Or you can just browse the <A HREF="overview.html">docs online</A>. <H2> License </H2> <BLOCKQUOTE> <BLOCKQUOTE> <A NAME="license">Copyright</A> © 2000,2001,2002 by George Williams <P> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: <P> Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. <P> Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. <P> The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. <P> THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </BLOCKQUOTE> </BLOCKQUOTE> <P> <P> <HR> <H2> <A NAME="change-log">Changes</A> <SMALL>(Enhancements & Bug Fixes)</SMALL> </H2> <UL> <LI> 14-Feb-2002 <UL> <LI> My TrueType parser will now read cmap subtable formats 8,10 and 12 (the 4 byte encoding tables) and will produce format 12 subtables for full unicode fonts. <LI> Cleaned up various encoding problems. <LI> Fixed display of SJIS. <LI> Added better commentary on unicode outside of BMP <LI> Cleaned up the spec file <LI> In pfb files subroutines for references didn't work if the first thing called was untranslated. <LI> The arrow keys can be used to move a control point. </UL> <LI> 12-Feb-2002 <UL> <LI> Added sjis and Wansung encodings <LI> Used freetype for a couple of other things (generating gdf files and exporting bitmaps) <LI> Textfields didn't respond to middle button clicks (to paste the primary selection). <LI> PfaEdit would sometimes fail to exit properly if you brought up a script dlg. <LI> Added a --version command line option. <LI> Fixed another bug in generating postscript. <LI> Added a user defined print command option to the print dlg. <LI> Fixed a bug in Simplify/Merge <LI> Fixed a bug in loading integer resources <LI> Cleaned up the help command line option. </UL> <LI> 9-Feb-2002 <UL> <LI> PfaEdit will now use freetype (if available) to generate bitmaps for the fonts (results are much better).<BR> It still does its own rasterizing for the fontview (there's a lot of overhead involved with freetype, and this needs to be fastish) <LI> Made the Generate Font dlg settings sticky across invocations of pfaedit. </UL> <LI> 8-Feb-2002 <UL> <LI> PfaEdit would crash when generating a PostScript font from ARIAL.TTF. <LI> Changed the bitmap dlgs so that they allow you to specify some control over interesting screen resolutions. (before just support X standard res. of 75 and 100, now support MS 96&120 and Mac 72). <LI> Oops, Apple now documents that the bdat and bloc tables should have version number 0x20000. But when I last looked it said 0x10000 and that didn't work. <LI> Put the docs in their own rpm file. </UL> <LI> 7-Feb-2002 <UL> <LI> I think I've figured out how Apple does asian bitmaps now. They don't use NFNTs at all (or they do, but those NFNT are tiny stubs with no real data in them). All the data are in the sfnt. I should produce them properly now.<BR> -- Except I don't. <LI> I've also added the ability to create bitmap only sfnts for the mac.<BR> -- Which also isn't recognized by the mac. <LI> Made it possible for scripts to generate bitmaps without generating an outline font <LI> Fixed some problems loading bitmaps from ttf files. <LI> Fixed some problems loading bitmaps from anything... <LI> Allowed importation of eps files from the font view (to the extent that I can parse eps files, that is) <LI> Oops, scripting didn't support importation of pcf files. </UL> <LI> 5-Feb-2002 <UL> <LI> Sometimes popup windows (tool tips) would show up with nothing in them. That should be fixed now. <LI> Added icons for pcf files <LI> Started work on 32 bit unicode. <LI> Oops. Scripting handled the caligraphic pen angle incorrectly. <LI> Put something into the about box. </UL> <LI> 4-Feb-2002 <UL> <LI> Oops. PfaEdit was misusing the type1 "seac" command in some cases. I had not realized that the character being built needed to have the same width as the base (non-accent) character. This has been fixed. <LI> When using the charinfo dlg to change the name of a char, and that name was in use, and you cancelled the dlg after being warned about it then PfaEdit would crash (it would muck up memory). <LI> PfaEdit wasn't always calling subroutines (in postscript) when a character was in a subr. <LI> PfaEdit will now read in X11 pcf font files (they can be compressed, if so PfaEdit will decompress them first). <LI> Bug in wildcard processing for file chooser window. </UL> <LI> 1-Feb-2002 <UL> <LI> Nifty! SUSE ships some greek (bitmap) fonts with iso8859-1 encodings rather than iso8859-7. PfaEdit is now alert and when it sees a bitmap font with foundary "greek" and encoding "iso8859-1" it will pretend it has encoding "iso8859-7". <LI> PfaEdit got confused by some fonts produced by type1fix.pl. Should be fixed. <LI> Build Composit Characters will now check the user defined ligature string to see what characters to use to build a ligature. </UL> <LI> 31-Jan-2002 <UL> <LI> Conversion tables between JIS0201 (Katakana) and Unicode were wrong. KANOU Hiroki provided correct ones. </UL> <LI> 30-Jan-2002 <UL> <LI> Oops. I'd left diagonal stems enabled in ttf generation. Caused problems. Disabled now. <LI> More work on accented characters. </UL> <LI> 29-Jan-2002 <UL> <LI> Sped up background image drawing (finally) </UL> <LI> 28-Jan-2002 <UL> <LI> Added <UL> <LI> Strtol <LI> Strskipint <LI> AskUser <LI> Error </UL> <LI> Added a menu of commonly used scripts which the user can specify with the preference dlg. </UL> <LI> 25-Jan-2002 <UL> <LI> Oops. Generate command in scripting language only generated pfb fonts <LI> PfaEdit would get confused if it loaded a font from a script when running with windows. Eventually it would crash, but perhaps not until you exited. <LI> Added <UL> <LI> $italicangle <LI> $cidfontname, $cidfamilyname, $cidfullname <LI> $weight, $copyright <LI> $cidweight, $cidcopyright <LI> SetItalicAngle </UL> <LI> Removed $cidname (replaced with $cidfontname) <LI> Added a Call... button to the execute script dlg to allow you to insert a call to a script file easily </UL> <LI> 24-Jan-2002 <UL> <LI> Added a way to scale dlgs in different languages. </UL> <LI> 23-Jan-2002 <UL> <LI> Fixed a crash in merge (caused by selecting all points on a path and merging it (to remove the path)) <LI> Improved positioning of ogonek and cedilla accents in Build Accented Character </UL> <LI> 22-Jan-2002 <UL> <LI> Added: <UL> <LI> SetCharCnt <LI> SetCharName <LI> SetUnicodeValue <LI> CIDChangeSubFont <LI> SetFontNames <LI> CIDSetFontNames <LI> $curcid, $nextcid, $firstcid, $cidname </UL> <LI> Cleaned up ligature handling in char info dlg <LI> Cleaned up array freeing in scripting. <LI> Fixed a crash in FontInfo introduced yesterday </UL> <LI> 21-Jan-2002 <UL> <LI> Import will now allow you to import background images from the font view<BR> (and the default setting of "Background" for "pk" files has been set to true) <LI> Added a scripting command to access <UL> <LI> Import <LI> strlen <LI> strstr <LI> strcasecmp <LI> strsub <LI> arrays <LI> access to the postscript names of the font <LI> access to information about individual characters </UL> <LI> Cleaned up some display oddities in the fontview. <LI> Added a Set Width command to the bitmap view IF there is no outline font. <LI> Added a menu item to invoke a script <LI> Added a "Comment" field to FontInfo. This does not correspond to any postscript or truetype entity. It is to be used for a changelog within the sfd file (or something similar). </UL> <LI> 19-Jan-2002 <UL> <LI> Initial version of <A HREF="scripting.html">scripting</A>. <LI> Optimizer caused rounding errors which caused test for divide by zero to fail leading to errors in Simplify and Merge commands. <LI> bdf fonts with an encoding which did not itself include "-1" (or similar) failed to get the implied "-0" added. </UL> <LI> 17-Jan-2002 <UL> <LI> PfaEdit used to crash (sometimes anyway) if a list popup were active when a window was destroyed. <LI> TextFields within tabsets (like Font Info) responded to some events twice. <LI> Bug in the new TTF hinting routines could cause a crash (and did cause glyph programs which were erroneous) <LI> Crash caused by long names in /etc/passwd when creating a new font <LI> Redid fontname handling in Font Info dlg to allow URW names to pass through unscathed <UL> <LI> Recognize "Regu" as meaning "Regular" <LI> Only updates the fullname (human readable name) if it were previously in sync <LI> Recognize "-" as starting the modifiers rather than trying to find the end of the family name <LI> If you don't change the family or the modifiers then pfaedit will now leave the fontname untouched </UL> </UL> <LI> 14 Jan 2002 <UL> <LI> The 9 Jan metrics view fix caused crashes when changing the last character displayed. <LI> The outline view now will display points at extrema in a different color from other points if you want that. <LI> Added a command to the font view to clear out the backgrounds of all selected characters. <LI> Fixed one more image freeing problem (see 29-Dec-2001) <HR> <LI> bdf fixes of 9&11 Jan did not work on bdf files with character encodings of "-1" <LI> Fixed several bugs with ttf bitmap tables. <LI> Added a mechanism for specifying a font inside a truetype collection from the command line:<BR> <CODE> $ pfaedit "gulim.ttc(GulimChe)"</CODE><BR> will load the GulimChe font within the collection file. </UL> <LI> 12 Jan 2002 <UL> <LI> Russian ui had an unexpected space in it which confused makenomenh. Have fixed both (makenomenh & nomen.ru) <LI> Last fix to Merge made most merges return straight lines <LI> Added an elide command which allows the slopes of the endpoints to change <LI> Releasing the control or super key when in one of the palettes did not update the tool cursor. <LI> The point info dlg now comes up beside (rather than on top of) the selected point. </UL> <LI> 11 Jan 2002 <UL> <LI> bdf "fix" of 9 Jan. lost the encoding of the font. <LI> PfaEdit source included "ushort" in a couple of places. Linux must define this but some systems don't. It has been changed to uint16 which I define. <LI> Worked around some imaging bugs of the X server under cygwin (PfaEdit seems to work under cygwin now) <LI> Using the arrow keys to scroll only worked if something were selected. should always work now. <LI> The fontview now contains an indication of which characters have backgrounds <LI> Minor improvements to merge when given an impossible problem. </UL> <LI> 9 Jan 2002 <UL> <LI> destroy window fix on 2 Jan was not enough, it popped up again. Hope I've killed it this time <LI> PfaEdit had trouble reading bdf fonts that <UL> <LI> did not have standard X font names (-vendor-family-weight-italic-...) <LI> had the same name used for different characters </UL> <LI> The metrics view got confused by characters with negative lbearings. <LI> Added some Japanese (Kanji) text samples. </UL> <LI> 8 Jan 2002 <UL> <LI> Fixed a bug in gdf output </UL> <LI> 7 Jan 2002 <UL> <LI> Added a traditional chinese sample <LI> In the metrics view, the kerning offset was not rescaled when the size of the window changed. <LI> Added a preference item to control the amount by which the arrow keys move selected points <LI> Changed the behavior of the grid layer so that now points will snap to any spline in the grid layer, not just horizontal and vertical splines <LI> Added a preference item to control this snap distance. <LI> Added a couple new outline display sizes to the fontview <LI> Use the "super" modifer to simulate a mouses middle button. If the super key (the one with a windows flag on it on pc keyboards) is depressed then any mouse click will be treated as if it were mouse button 2 that was used. <LI> Minor improvements in truetype hinting </UL> <LI> 4 Jan 2002 <UL> <LI> if a dfont (or other mac resource file) contains multiple truetype fonts, pfaedit will let you pick one (before it would read in the first and ignore the others) <LI> The tools palette now shows the mouse bindings. <LI> Next/Prev control points are drawn in different colors now, and those colors are reflected in the point get info dlg. <LI> Merge and Simplify will now retain the slope of curve points. <LI> Simplify will no longer remove points at the extrema of their curves (PostScript fonts are supposed to have points at the extrema) <LI> New command in Element menu to <A HREF="elementmenu.html#Add-Extrema">add points at extrema</A> to a spline or set of splines. <LI> Next/Prev Point commands will shift the screen so the newly selected point is visible. <LI> Metrics View now allows for anti aliased character display. <LI> Metrics View View menu was broken and was missing half its entries. <LI> Revert Font would leave pfaedit in a state where some commands would cause a crash. Should be fixed now. <LI> TextFields did not scroll properly with the arrow keys. <LI> The outline and bitmap views may be scrolled with the arrow keys by holding down either the control or meta key. <LI> When reading a ttf file with an encoding pfaedit doesn't recognize which has some glyphs which are refered to from multiple code points, then pfaedit used to crash. <LI> Support Menu key on windows keyboard <LI> Use the Windows "flag" key as a modifier to indicate mouse button 2 (so if that key is depressed, and a mouse button is pressed/released pretend it was button2) </UL> <LI> <A HREF="oldchangelog.html">Earlier Changes </A> </UL> <H2> <A NAME="Lacks">Lacks</A> </H2> <P> PfaEdit is by no means complete. And probably doesn't work very well. Be prepared to save frequently and always work on a copy of the original. <UL> <LI> No attempt has been made to be efficient. <LI> No attempt has been made to read truetype instructions (hints) <LI> No attempt has been made to retain the change-over points for hint substitution. PfaEdit will refigure this when it saves the font. <LI> Many type 3 fonts will not be read in correctly (those generated by pfaedit should always be acceptable) <LI> Importing a type0 font loses the encoding. PfaEdit only imports simple type0 fonts (such as those made by itself), will get confused if there's more than one font with a chars dictionary. </UL> <H2> <A NAME="known-bugs">Bugs</A> </H2> <UL> <LI> After adding the Johab encoding, any old fonts which had a unicode encoding will suddenly claim to have a Johab encoding. I don't see a way around this at the moment. Just reencode them as unicode and all should be well. <LI> When reading in TrueType PfaEdit will not get the correct offset for composit glyphs where offsets are specified by point matching rather than as x,y values. (some mac fonts) <LI> My truetype hinting is still bad. Especially for diagonals. <LI> Some truetype fonts (kaiu and mingliu) do not store the correct outline. Instead they rely on using the instructions to move points around to generate the outline. The outline does not appear to be grid-fit at all, just positioned. PfaEdit will not read the instructions. In most fonts this would be the wrong thing to do, and I don't know how I could tell when it needs to be done... <LI> PfaEdit's support for the GPOS table output is limitted. Currently it only recognizes latin,cyrillic,greek,arabic and hebrew scripts. It assumes everything it doesn't recognize is latin. It makes at most two lookup tables for kerning one for left to right scripts, one for right to left scripts. If you want to work with a different script let me know, and let me know something about it. It should be easy enough to add (I hope). Furthermore I don't know what to do about digits which appear in arabic/hebrew in l2r ordering, so I shall give the r2l scripts access to both lookups. <LI> I'm told AutoKern doesn't work too well. <LI> PfaEdit is confused by small splines, on the order of one em unit. If you need something that small, scale the font up by a factor of 2 or more (including the ascent and descent). <LI> The MetaFont command doesn't work well. <LI> ??? </UL> <H2> Installing it </H2> <P> The executable tarball contains the pfaedit executable and a man page. Put it wherever you'd like. <P> The build script will do an install to /usr/local/bin if you want it to. <H2> Running it </H2> <P> <KBD>$ pfaedit font.pfa font2.pfb font3.sfd font4.ttf font5.otf font6.gsf font7.bdf</KBD> <BR> will start pfaedit looking at the fonts you specify on the command line. It can read either pfb or pfa fonts, and some ps fonts (type 0 fonts based on a type 1 dictionary) as well as truetype fonts, non-CID open type fonts and bitmap fonts.<BR> <KBD>$ pfaedit -new</KBD><BR> will cause pfaedit to create a new font (in iso-8859-1 encoding)<BR> <KBD>$ pfaedit</KBD><BR> will open up a file picker dialog and allow you to browse till you've found a font file (or have created a new one). <H2> Reporting <A NAME="bugs">bugs</A>... </H2> <P> I'm sure you'll find some. If you can isolate it and come up with a reproduceable minimal case, that would be great. The executable has symbols in it so if you run it in gdb you should be able to get a stack trace... Do what you can. <P> <A HREF="mailto:gww@silcom.com">gww@silcom.com</A> <H2> <A NAME="assistance">How else you can help.</A> </H2> <UL> <LI> <EM>My writing leaves much to be desired</EM>. Anyone who can make my documentation more readable is encouraged to do so. (or who wishes to translate it into other languages) <LI> <EM>The UI can be translated into different languages.</EM> Unfortunately it does not use gnu gettext. <UL> <LI> English I take care of <LI> Russian Valek handles <LI> I've also created very minimal French & German translations that lapse into English, anyone who wants to take these on is encouraged to do so. <LI> Anything other language additions would be great (the entire UI does not need to be translated) </UL> <LI> <EM>Different font formats</EM><BR> PfaEdit supports Type1, truetype and opentype fonts (to greater and lesser extents), also bdf and NFNT for bitmaps<BR> But there are other formats out there that I can't find descriptions of: <UL> <LI> Microsoft FON files (bitmap font resource files for windows) </UL> <LI> There are certain c<EM>ommands which don't work very well </EM>and if someone else wanted to they might code them better than I... <UL> <LI> Remove overlap <LI> Autohint <LI> Metafont <LI> generating instructions to do hinting in truetype (especially hints for diagonal stems) </UL> </UL> <H2> <A NAME="Acknowledgements">Acknowledgements</A> </H2> <P> The following people have helped debug pfaedit. Many thanks! <UL> <LI> Tom Harvey <LI> Ken Chilton <LI> <A HREF="http://www.killesreiter.de/">Gerhard Killesreiter</A> <LI> Alexander Kotelnikov <LI> <A HREF="http://ucsb.edu/">University of California, Santa Barbara</A><BR> (which has several times let me use some of their machines to do builds and find bugs if I didn't have the requisit system at home). <LI> <A HREF="http://rcswww.urz.tu-dresden.de/~koloska/">Uwe Koloska</A> <LI> Max Neunhoeffer <LI> Martin Giese <LI> E.J. Neafsey <LI> Norvell Spearman <LI> Stefan Fendt <LI> <A HREF="http://www.mp3.com/aurora-australis/">Harald ?Gleis?</A> <LI> Valek Filippov <LI> Pasi Eronen <LI> <A HREF="http://jeff.cs.mcgill.ca/~luc/">Luc Devroye</A> <LI> <A HREF="http://www-csag.cs.uiuc.edu/individual/pakin">Scott Pakin</A> <LI> Robert Brady <LI> Dung Ta Quang <LI> Sivan Toledo <LI> Gerhard Schellhorn <LI> MinGyoon <LI> Olaf Rogalsky <LI> <A HREF="http://baruch.ev-en.org/">Baruch Even</A> <LI> Volker Gering <LI> Torsten Bronger <LI> Jacob Jansen <LI> Ulrich Klauer <LI> <A HREF="http://canopus.iacp.dvo.ru/~panov/">Andrey V. Panov</A> <LI> Edward G.J. Lee <LI> Werner LEMBERG <LI> Kuniko Arakawa<BR> <LI> And many others! </UL> <P> PfaEdit was inspired by AltSys's <A HREF="http://www.macromedia.com/software/fontographer/">Fontographer</A> now placed in graceful retirement by MacroMedia. <H2> Font File <A NAME="Formats">Formats</A> </H2> <UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/T1_SPEC.PDF">Postscript Type1</A> <UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5015.Type1_Supp.pdf">Supplement</A> (discussion of multiple master fonts & counter hints) <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/T1Format.pdf">Format</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/type/unicodegn.html">Postscript unicode character names</A> </UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5004.AFM_Spec.pdf">AFM</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5005.BDF_Spec.pdf">BDF</A> <UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5006.ABF_Spec.pdf">ABF</A> -- Binary format </UL> <LI> True Type Standard<BR> (Sadly different sources have slightly different definitions of less important parts of the standard, be warned) <UL> <LI> <A HREF="http://fonts.apple.com/TTRefMan/">Apple</A> <LI> <A HREF="http://www.microsoft.com/typography/tt/tt.htm">Microsoft</A> <LI> <A HREF="http://www.truetype.demon.co.uk/ttspec.htm">random useful site</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/opentype/otff.html">TTC</A> -- True Type Font Collection </UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/type/opentype.html">OpenType</A> (postscript embedded in a truetype wrapper) <UL> <LI> Postscript <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5177.Type2.pdf">Type2</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5176.CFF.pdf">CFF</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/opentype/">Adobe's version of file format</A> <LI> <A HREF="http://www.microsoft.com/typography/otspec/default.htm">Microsoft's version</A> </UL> <LI> <A HREF="macformats.html">Macintosh font formats</A> <LI> X11 pcf format <UL> <LI> Sadly there is no real standard for this. <A HREF="http://ftp.x.org/pub/R6.4/xc/lib/font/bitmap/">There's the source code used by X11</A>. <LI> <A HREF="pcf-format.html">So I wrote my own description...</A> </UL> <LI> TeX font formats <UL> <LI> <A HREF="http://www.ctan.org/tex-archive/systems/knuth/local/mfware/pktype.web">pk bitmap format</A> <LI> <A HREF="http://www.ctan.org/tex-archive/systems/knuth/texware/tftopl.web">tfm metrics format</A> <LI> To make these viewable you probably want to do something like:<BR> $ weave pktype.web<BR> $ pdftex pktype.tex </UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5014.CMap_CIDFont_Spec.pdf">CID keyed fonts</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5012.Type42_Spec.pdf">Postscript Type42</A> (the opposite of opentype, it's truetype embedded in postscript) <LI> <A HREF="http://www.bitstream.com/categories/developer/truedoc/pfrspec.html">OpenDoc</A>. Sadly Proprietary so I shan't support it. </UL> <P> Other font links <UL> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/5040.Download_Fonts.pdf">Adobe's downloadable font spec</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/">Adobe's technical notes</A> <LI> <A HREF="http://www.fonts.com/hp/panose/greybook/frame.htm">Panose font classification scheme</A> <LI> <A HREF="http://www.adobe.com/print/postscript/pdfs/PLRM.pdf">Postscript reference manual</A> <UL> <LI> (old<A HREF="http://partners.adobe.com/asn/developer/pdfs/tn/psrefman.pdf"> reference manual</A>) </UL> <LI> <A HREF="http://www.microsoft.com/typography/fontpack/default.htm">Microsoft's downloadable fonts</A> <LI> <A HREF="ftp://ftp.ora.com/pub/examples/nutshell/ujip/adobe/samples/">Downloadable PS CID CJK fonts</A> (this site also has cmap files) <LI> <A HREF="http://www.adobe.com/products/acrobat/acrrasianfontpack.html">Downloadable OTF CID CJK fonts</A> (this site also has cmap files) </UL> <H2> <A NAME="Unicode">Unicode</A> </H2> <UL> <LI> <A HREF="http://www.unicode.org/">Unicode consortium</A> <UL> <LI> <A HREF="http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT">Apple's corporate use extensions</A> (0xF850-0xF8FE) <LI> <A HREF="http://partners.adobe.com/asn/developer/type/corporateuse.txt">Adobe's corporate use extensions</A> (0xF634-0F7FF) (also includes some of Apple's codes above) <LI> <A HREF="corpchar.html">PfaEdit's corporate use extensions </A>(0xF500-0xF580) </UL> <LI> <A HREF="http://www.unicode.org/roadmaps/bmp-3-1.html">Pictures of the characters</A> <LI> <A HREF="http://partners.adobe.com/asn/developer/type/unicodegn.html">Postscript Unicode names</A> </UL> <P> Other Encodings <UL> <LI> <A HREF="http://www.microsoft.com/globaldev/reference/wincp.asp">Microsoft's Codepages</A>, and at the <A HREF="http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/">unicode site</A> <LI> <A HREF="http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/">Mac Encodings</A> <LI> <A HREF="http://devworld.apple.com/techpubs/mac/Text/Text-516.html">MacRoman</A> <LI> <A HREF="http://www2.arts.gla.ac.uk/IPA/fullchart.html">IPA</A> </UL> <H2> Other <A NAME="tools">Tools</A> </H2> <UL> <LI> BDF editors <UL> <LI> <A HREF="http://crl.nmsu.edu/~mleisher/xmbdfed.html">xmbdfed</A> -- bdf editor. <LI> <A HREF="http://www.gnu.org/software/gfe/gfe.html">gfe</A> -- GNU font editor. Eventually supposed to support other formats </UL> <LI> Postscript/ttf font editors <UL> <LI> <A HREF="http://www.gh.cs.su.oz.au/~matty/Spif/">spif</A> -- under development (open source) <LI> <A HREF="http://www.levien.com/gfonted/">gfonted</A> -- under development (open source) <LI> <A HREF="http://cgm.cs.mcgill.ca/~luc/editors.html">Luc Devroye's page of links to font creation programs</A> <HR> <LI> <A HREF="http://www.macromedia.com/software/fontographer/">Fontographer</A> -- my favorite, no longer updated (<FONT COLOR="Red"><STRONG>proprietary</STRONG></FONT>) <LI> <A HREF="http://www.fontlab.com/">FontLab</A> -- Said to have really good tools for hinting truetype. (<FONT COLOR="Red"><STRONG>proprietary</STRONG></FONT>) </UL> <LI> MetaFont the original computer vector font editor & other TeX utilities <UL> <LI> <A HREF="http://www.tug.org/">(available with the TeX package)</A> <LI> <A HREF="http://textrace.sf.net/">TeXTrace</A>, generates pfb fonts from TeX fonts by rasterizing at high res and then autotracing them <LI> <A HREF="ftp://ftp.radio-msu.net/pub/tex/tex-archive/fonts/utilities/mf2ps/">mftops</A>, similar <LI> <A HREF="http://www.cs.uu.nl/~hanwen/pktrace/index.html">pktrace</A>, traces pk fonts (bitmap images) and creates pfb/pfa files. </UL> <LI> Postscript utilities <UL> <LI> <A HREF="http://gfontview.sourceforge.net/">gfontview</A> -- displays a postscript/ttf font <LI> <A HREF="http://rpmfind.net/linux/RPM/contrib/libc6/i386/gglyph-0.1.3-1.i386.html">gglyph</A> -- another font displayer <LI> <A HREF="http://www.lcdf.org/type/">t1utils</A> -- Type 1 utility programs & multiple master utilities <LI> <A HREF="ftp://metalab.unc.edu/pub/Linux/X11/xutils/type1inst-0.6.1.tar.gz">Type1inst</A> -- helps to install type 1 fonts under X and ghostscript <LI> <A HREF="http://ttf2pt1.sourceforge.net/">ttf2pt1</A> -- Converts truetype to type1 postscript fonts and generates hints <LI> <A HREF="http://textrace.sf.net/">type1fix</A> -- (part of the TeXtrace package). Used to make some Type1 fonts work with ATM. <LI> <A HREF="http://bibliofile.mc.duke.edu/gww/FreeWare/MyToys.html">my stuff </A>-- Type 1 decoders and converters. True Type & open type decoder. </UL> <LI> TrueType utilities <UL> <LI> Microsoft provides a bunch of stuff (for windows only of course) <UL> <LI> <A HREF="http://www.microsoft.com/typography/tools/tools.htm">Various tools</A> <LI> <A HREF="http://www.microsoft.com/typography/property/fpedit.htm">Font Properties Editor</A> <LI> <A HREF="http://www.microsoft.com/typography/creators.htm">Font instructors</A> <LI> <A HREF="http://www.microsoft.com/typography/developers/dsig/dsig.htm">Font signer</A> (will produce a DSIG (digital signature) table for the font. You need to get a key from verisign first) </UL> <LI> <A HREF="http://developer.apple.com/fonts/Tools/">And Apple does too</A> (mac only) </UL> <LI> Rasterizers <UL> <LI> <A HREF="http://freetype.sourceforge.net/">FreeType's Rasterizer</A> (used to be just truetype, handles almost anything now) <LI> <A HREF="http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html">t1lib</A> -- Type1 Rasterizer </UL> <LI> <A HREF="otherlinks.html">Other related links...</A> </UL> <P ALIGN=Center> <P ALIGN=Center> <A HREF="http://bibliofile.mc.duke.edu/gww/FreeWare/MyToys.html"><IMG SRC="http://bibliofile.mc.duke.edu/gww/FreeWare/../uparrow.gif" WIDTH="30" HEIGHT="30"></A> <A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=25752&type=1" width="88" height="31" border="0" alt="SourceForge Logo"> </A> </BODY></HTML>