## TTF2PT1 - CHANGES history

#### 3.4.4 -- December 31, 2003

New features:

- Improved the auto-vectoring (-OV) alrogithm.
- Allow use of any encoding table of format 4 in the ttf parser.
- Take the first available format 4 encoding table if no known table is found in the ttf parser.
- The ttf parser lists the available encodings if no supported encoding table is found. This can be used to list the encodings in any font by specifying a bogus explicit PID/EID, such as with option -l plane+pid=50,eid=50.

Bug fixes:

- Fix to build all the features on Windows MS C++, by Tomoo Amano.
- Fix for a null pointer in the encodings, bad inner loop variable.
- Unified the parsing of font name strings and improved the checks against invalid characters.

#### 3.4.3 -- December 2, 2002

New features:

- `scripts/forceiso` got an optional argument to select the format of the names for glyphs without standard Latin-1 names.

Bug fixes:

- Changed the glyph names in scripts/forceiso to match those in ttf2pt1.
- Included the missing directory app/TeX.

#### 3.4.2 -- August 30, 2002

New features:

- New map for T2A_compat encoding (for Cyrillic LaTeX) by Mikhail Umorin.
- Scripts supporting font conversion for CJK-LaTeX, by Mike Fabian from SuSE.

Bug fixes:

- Explicit owner/group/permissions are used to install directories.
- In scripts/convert fixed the addition of encoding name to the font name for the external encoding maps, was missing "/" at the start.
- Fixed the divergence between two copies of UniqueID.
- Fixed the recovery after defective empty contours.

#### 3.4.1 -- June 13, 2002

New features:

- Added Autotrace support for the bitmap fonts (-OZ). It's horrible.
- Added vectorization of bitmap fonts (-OV) - functionally the same thing as autotrace but home-grown. Works mostly decently but still with large space for impprovement.
- Relaxed the conditions for warnings about long glyphs.

Bug fixes:

- Fix by Rob Kolstad for a crash in the new outline smoothing code (on small thin contours) and diagnostic for another crash.
- Fix by Holger Huesing for a crash on degenerate contours.
- Fix for bitmaps of zero dimensions.
- The BDF reader does not fail on redefintion of the properties.
- Fix for reading of BDF glyphs with 0 size.
- Fix for a hang when guessing the boldness of some fonts.
- Fix by Adriano Konzen for scaling coefficients in composite glyphs.

#### 3.4.0 -- November 24, 2001

New features:

- Parser for the BDF bitmap fonts.
- Vastly improved the smoothing of the outlines.
- The options are saved as a comment in the output file.
- New script `other/showdf` for visual comparison of the fonts.
- New option -G to select the file types to generate.
- Creation of the dvips encoding files (by Rigel).
- More glyphs in the Chinese maps (by Rigel).
- Made the assignment of ISO8859/1 glyph names to the glyphs in the fonts without PostScript names in them dependent on the original encoding: no change for the 8-bit encodings, for the Unicode encoding the names are assigned to the glyph with the codes 0-255 in Unicode, and for the other 16-bit encodings the 8859/1 names are not assigned at all.

Bug fixes:

- Added a check for spaces in the PostScript font name in the FreeType parser.
- Made "-" a valid character in the glyph names.
- Fixed handling of the Unicode names returned by FreeType, though not perfectly.
- Changed the build for FreeType-2.0.4.
- Fixed the handling and printing of bad glyph names.
- Fixed the bug with duplicated glyph names when more than 256 glyphs are extracted from a font that has no PostScript glyph names defined.
- Added ability to map a glyph to more than one code when unisng the native parser (-pttf).

#### 3.3.5 -- September 12, 2001

Packaged by Sergey Babkin.

Bug fixes:

- Fixed the scaling of Ascender and Descender in the AFM file.
- Fixed the brekage of "-l adobestd".

#### 3.3.4 -- June 4, 2001

Packaged by Sergey Babkin.

New features:

- Cyrillic (full set of glyphs) language tables (by Zvezdan Petkovic). Now the languages "russian" and "bulgarian" are provided for compatibility only, use the common language "cyrillic" instead.
- More information in FONTS on using Cyrillic fonts with Netscape (by Zvezdan Petkovic)
- In the Netscape print filter added removal of the clipping path command: otherwise Netscape tends to cut off a large piece of the rightmost column of the tables.
- One more script for printing from Netscape (by Zvezdan Petkovic).
- Added selection of the base TTF encoding by pid/eid in the external maps.
- Improved the recognition of substituted stems for intersecting contours.
- Improved the substituted hints to make the horizontal positioning of the points at the same height more uniform at small pixel sizes.
- Made the algorithm for calculation of standard stem widths more selective.
- Added link to the GnuWin32 project.

Bug fixes:

- TH: Print out metrics of un-encoded glyphs even without "-a" option.
- Added missing "/" in Fontmap generation in convert (by Zvezdan Petkovic).
- Removed unneccessary "\n" in messages in x2gs.
- Removed the broken overoptimisation of "0 0 rmoveto".
- Removed the useless warnings about multiple codes for a glyph.
- Changed the FreeType2 include directory in the Makefile to match the FreeType's default.

#### 3.3.3 -- March 4, 2001

Packaged by Sergey Babkin.

New features:

- TH: Added printing of front-end parser in the header of the font file.
- Tested build with FreeType 2.0 Release.

Bug fixes:

- Changed the installation script which on some versions of bash copied all files into the share directory.
- Fixed the close sequences of html2man comments in the HTML files, now they should display correctly with `lynx`.
- Restored the ability to include un-encoded characters into the customised maps (those with codes over 255).
- Fixed the Unicode mapping of the Cyrillic letters "YO" and "yo" (by Yuri Shemanin).
- Fixed the spurious aborts when the conversion-by-plane function gets called for auto-guessing of encoding.

#### 3.3.2 -- November 20, 2000

Packaged by Sergey Babkin.

New features:

- Added generation of man pages.
- Added "make install" and "make uninstall".
- Added language option "-l plane".
- In `other/showg` added better support of comparison files:
  - printing of the comparison file legend;
  - guessing of missing glyph names in a comparison file by code;
  - bounding boxes of all comparison files are used for page layout.
- Added ability to use external t1asm instead of compiling it in.
- Renamed the fonts installation guide from INSTALL*html to FONTS*html to avoid confusion with installation of ttf2pt1 itself.

Bug fixes:

- Removed erroneous extra fclose(pfa_file).
- Fixed random memory corruption that manifested with crash on Linux when converting fonts not containing glyph names.
- Removed from the output file the comments that confused dvips. Changed `other/showg` to work without them.
- In `other/showg` added better checks for missing glyphs, now it gives warnings about them and the output file does not crash PostScript.

Other:

- `ttf2pfa` is no longer included, people interested in history should look for it in the older versions.

#### 3.3.1 -- October 22, 2000

Packaged by Sergey Babkin.

New features:

- Added front-end parser based on the FreeType-2 library. See Makefile for build instructions.
- Changed the handling of encodings to accomodate the FreeType model.
- Further cleaned up the front-end parser interface.

Bug fixes:

- Fixed a bug that caused core dump on Alpha machines.
- Fixed a bug in the outline smoothing that occasionally caused core dump.
- Cleaned up warnings from picky compilers
- Fixed more bugs in the Windows port (by Stefan Bauer).
- Fixed the RPM spec file (suggested by Brian Armstrong).

#### 3.3.0 -- September 22, 2000

Packaged by Sergey Babkin.

New features:

- Converted most of the outlines' processing to floating point arithmetic.
- Added splitting of curves crossing the quadrant boundaries (no gross damage is done any more to the Marvosym font and others like it).
- Added modular interface for front-end font parsers and option to control their selection at run time.
- Grouped the outline processing control options into one to reduce the options namespace pollution.
- Thomas moved the Chinese maps into a separate module, chinese-maps.
- Thomas added option -V to print version number. In addition, the version number is put in the header of the font file.
- Added long option names (suggested by Thomas).
- Added support for multi-level composite glyphs.
- TH: Made <fontname> command-line argument optional; default to <ttf-file> with suffix replaced.
- In `other/showg` added more ways to specify glyphs and the comparison option.

Bug fixes:

- Fixed the VC++ batch file, added batch file for Cygnus GCC on Windows.
- Removed parentheses from the Version string in AFM files because it does not help StarOffice anyway. StarOffice 5.2 has been reported to have this bug fixed. Added paragraph on StarOffice in FONTS.html.
- Made messages on the '?' option parameter more meaningful (by Johan Vromans).
- Changed the latin1 encoding table to include the Euro sign, Z and z with caron (by Thomas Henlich).
- Improved the smoothing code which occasionally had problems with joining curves. Also fixed a few minor bugs in it.

#### 3.22 -- May 23, 2000

Packaged by Sergey Babkin.

New features:

- Included windows support by Frank Siegert (somewhat amended)
- Added control over verbosity of warnings.
- Added arguments and initialization functions to the language translation routines.
- Added support of planes determined by arguments to the external maps.
- Added compact external maps format (primarily for Eastern fonts).
- Added external maps for Chinese GBK and Big5 encodings (converted from ttf2pfb) as well as maps for other Chinese encodings by Wang Lei.
- Added the idea of buckets to speed up the search in external maps.
- Changed the grouping algorithm for substituted hints: now it creates a bit bigger files but requires smaller hint stack when being rendered.
- Added maximal limit of hint stack depth, glyphs requiring bigger stack get generation of substituted hints disabled. This makes substituted hints safe to use, no more lost glyphs due to hint stack overflow.
- Added the font dump program `other/dumpf`.
- Changed the testing HTML generator `other/lst.pl` to use tables.
- Added debugging script `other/cntstems.pl` to count required hint stack depth for the glyphs.

Bug fixes:

- Fixed printing of UID in script/trans. Changed the auto-generated UID to be in range 4000000-4999999 which is reserved by Adobe for private use.
- Fixed handling of "cleartomark" in built-in t1asm.
- Added handling of "can't happen" case in straighten() routine which actually happened on strange fonts and caused failure on assertion.
- Made it always include the glyph .notdef in the resulting font.
- Placed the version string in AFM file in parentheses, hopefully that would fix the problem with StarOffice.
- Improved the smoothing code which occasionally had problems with joining curves.

#### 3.21 -- March 1, 2000

Sergey Babkin: committed the changes by Petr Titera and my bugfixes.

New features:

- New Unicode map format with glyph names, by Petr Titera.
- Option to force the Unicode encoding by Petr Titera (I changed it to work on any MS encoding, not only Symbol).
- Slightly tweaked the calculation of hints, should be better now.

Bug fixes:

- The unicode-sample.map with description of the map formats was lost in the release process, restored and enhanced.
- Renamed the table ISOLatin1Encoding to Fmt3Encoding to reflect the way it is used. Saved the original one for reference purposes. In the new table renamed "quoteright" to "quotesingle" as Thomas Henlich suggested (and he were right).
- In the ISOLatinEncoding table renamed the glyph "grave" at octal 0140 to "quoteleft", "quotesingle" at octal 047 to "quoteright" to conform to the standard as suggested by Martin Trautner).
- Fixed bug in scripts/trans that corrupted the UniqueID record in the translated fonts.
- Fixed bug in interaction of substituted hints with BlueZones. Now the fonts with hint substitution seem to be always at least not worse than without it (well, when they fit in the X11 file size limit).

#### 3.2 -- January 15, 2000

Sergey Babkin: combined my changes with the changes by Thomas Henlich. The result deserves a not-so-minor version increase.

New features:

- Support of the external Unicode re-encoding maps (by Thomas).
- Support for inclusion of all the glyphs from the source file into the resulting file (inspired by Thomas but I re-implemented it to remove the limitation of his implementation: not more than 1024 glyphs).
- The hints substitution. It's an experimental feature yet and needs further work.
- Support for UniqueID and its auto-generation.
- Support for the name-based conversions from Unicode in general and the adobestd "language" in particular.
- Started the split of the source code into multiple files. This needs more work to do it in a cleaner way.
- Better framework for the debugging printout in the converter.
- Utilities to install the fonts in Netscape Navigator/Communicator 4.x.
- Patches for bigger font files in the X11 rasterizer.
- Linux RPM spec-file (by Johan Vromans).
- Added the COPYRIGHT file (BSD-style, as we discussed on the mailing list earlier) and the CHANGES file.
- Creation of the `.pfb` files from the `convert` script.
- Changed the `.notdef`-s in the built-in ISOLatin1Encoding table to some valid names (by Thomas). Thomas also suggested replacing ``quoteright`' by ``quotesingle`' but this seems to be against the Adobe ISOLatin1 table.
- New aliases `windows-1251` and `cp-866` for the Russian encodings: those are expected by Netscape navigator.
- The font comparison program `other/cmpf`.
- The "magnifying glass" program for glyph outlines: `other/showg`.
- Other updates of the tools in the ``other`' subdirectory.
- Added a link to T1LIB in README.
- A few new options in `convert.cfg`.

Bux fixes:

- A bug in the outline smoothing code that corrupted some of the fonts (for example, Microsoft Verdana).
- Added explicit ``cleartomark`' to the end of file, this seems to be compatible with both old and new version of `t1asm` (suggested by Thomas).
- Added the `FontEncoding` statement to the AFM files (techincally this was not a bug because this statement is optional but some programs want it).
- A coredump when the converter tried to print a warning (rather ironically) about a weird glyph width.
- Changed the underscores in the font names to dashes (this has been proposed long time ago by Johan Vromans).
- No more glyph names of font names staring with a digit.
- The names of the fonts in font and AFM files are now the same as in the generated Ghostscript `Fontmap` file.
  Warning: the names in `Fontmap` have been changed.
- The `forceiso` script does not corrupt the character and kerning pairs counts any more, and is optional at all.
- Fix for a loop going to 254 instead of 255 (by Thomas).
- Added ':' in the font header (by Thomas).
- A coredump when wrong language name is given (this was also fixed by Thomas but I noticed it too late, after I already fixed it by myself).
- Fixed the links to the Adobe documents in README.

#### 3.13 -- October 18, 1999

Packaged by Sergey Babkin.

New features:

- New option -v for automatic re-scaling based on the vertical size of the font
- Changed the code to use getopt() instead of a home-made version of it.
- Latin2 language support by Szalay Tamas.

Bux fixes:

- Fix for the bug that made possible calls of malloc(0).
- Refinement of the option -w to prevent extra wide spacing

#### 3.12 -- October 2, 1999

Packaged by Sergey Babkin.

New features:

- Added support for the Bulgarian language (actually, for now just an alias of Russian).
- Added option -w that tries to make sure that the character widths are not too narrow.
- Added the concept of aliased encodings.
- Now the conversion scripts create and install the .afm files too.
- The conversion script removes the intermediate files after installation.
- Added tunables to the conversion script.
- Installation of the Ghostscript fonts can now be done automatically together with the X11 fonts.

Bux fixes:

- (FINALLY!!!) A correct fix for the infamous Red Hat 6.0 stdio "feature".
- A number of little bugs discovered by a picky SGI compiler (well, maybe some day I'll try to run it through the UnixWare lint and see what happens).
- A diagnostic message about the empty encodings in the convert script was made less cryptic and a bug in the awk sub-script was fixed.
- The .afm creation code now considers the option -t.

#### 3.11 -- May 24, 1999

Packaged by Sergey Babkin.

New features:

- It includes the Turkish (Latin5, ISO8859/9) language support by Turgut Uyar and Baltic (ISO8859/4) languages support by Rihardas Hepas.
- Also the installation script got updated: the configuration parameters are moved to a separate file and the generated fonts.dir files should now be compatible with Xfsft.

#### 3.1 -- March 28, 1999

Packaged by Sergey Babkin.

New features:

- Improved the interaction of the character-level hints and font-level hints

#### 3.0 -- March 6, 1999

Packaged by Sergey Babkin.

New features:

- Added HTML documents.

#### 3.0beta2 -- February 14, 1999

Packaged by Sergey Babkin.

New features:

- Added ability to print the .afm file instead of the font to STDOUT.
- Added the guessing of the /ForceBold parameter that proved to be useful.

Bux fixes:

- Removed the force-fixed option that proved to be troublesome.

#### 3.0beta1 -- December 11, 1998

By Andrew Weeks.

New features:

- Added option (passed to t1asm) to create a compressed binary version of the font (A PFB file).

Bux fixes:

- Versions of handle_post and handle_cmap that deal with some problems with buggy fonts.
- Minor Bug Fixes.

#### 3.0beta-afm -- December 5, 1998

By Thomas Henlich.

New features:

- Integration of AFM file creation.

#### 3.0beta -- November 15, 1998

By Sergey Babkin.

New features:

- Added the auto-calculation of the italic angle.

Bux fixes:

- Fixed a couple of bugs.

#### 3.0alpha -- October 19, 1998

By Sergey Babkin.

New features:

- Improved (although still not perfect) handling of scaling in composite glyphs
- Automatic correction of outlines to make them more smooth (to correct both rounding errors introduced during conversion and present in the original font)
- Automatic generation of hints (still has lots of space for improvement)
- Automatic generation of BlueValues etc.

Bux fixes:

- Scaling of fonts to 1000x1000 M-square required by Type1 standard
- Printing out the contours in reverse direction, because TTF directions are different from Type1 ones (that was the major reason why the fonts generated by version 2.2 were rendered so badly in small sizes)

#### June 22, 1998 (AKA 2.2)

By Thomas Henlich.

Bux fixes:

- "width" should be "short int" because otherwise: characters with negative widths (e.g. -4) become *very* wide (65532)
- The number of /CharStrings is numglyphs and not numglyphs+1

#### February 13, 1998

By Mark Heath.

Bux fixes:

- An original Bug Reported by Frank, which was just incorrect syntax in the Type 1 header, managed to creep back into the Feb 04 Version. This has been Fixed in the Feb 13 Version.

#### February 4, 1998

By Mark Heath.

Bux fixes:

- A workaround was implemented in ttf2pfa by altering the matrix. I suspect I will have to calculate the correct values, as matrix ops are probably not allowed in Type 1 format.

#### The older history seems to be lost.

(S.B.: The story how we got the version numbers is rather funny. Initially there were no version umbers, the releases were marked by dates. The version from June 22 1998 untarred itself into a directory "`ttf2pt1-22`". When I made my changes to it I assumed that this was the version number meaning version 2.2. Since Mark asked me to send him a complete archive I supposed that I have to bump the version number. And I bumped it to 3.0 because the changes were rather extensive. Mark silently agreed and released the new version as 3.0. And that's the end of the story about how we got this Microsoft-like high version number.)