Changes to vpl2vpl between first (unnumbered) release and release 0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When I first wrote vpl2vpl I was under the impression that the vpl
file output by afm2tfm could never contain accented character
definitions. The first (unnumbered) release of vpl2vpl thus did not
implement the -b option allowed for mkt1font (to block the use of
predefined accented characters). I have since become aware that in
the rather rare case of an afm file containing composite character
information, afm2tfm uses that information to build definitions of
accented characters; I have therefore introduced a -b option in
version 0.1.

There were two bugs in the coding dealing with the -s option in the
first version of vpl2vpl. First, the shrink-factor specified by the
user was incorrectly applied to the underdot accent as well as to
dropped superscript accents. Second, the shrink-factor was not
correctly scaled in terms of the value of DESIGNUNITS (this chiefly
affected Computer Modern fonts). Both of these have been fixed in
version 0.1.

Another bug affected those characters (quotesingle, quotedbl,
backslash, underscore, braceleft, bar and braceright) which
dvips.enc places in the lower half of the character set, but which
vpl2vpl removes to make room for the normal TeX inhabitants of their
"slots"; in the first version of the program it was not possible to
include these characters in the output font. This has also been
fixed in version 0.1.

The handling of LIGTABLE information controlling kerning etc. has
been improved, to eliminate repeated instructions and "orphaned"
instructions with no LABEL.

In the first version of vpl2vpl I deliberately did not allow for
double superscript accents on tall characters such as capital
letters, on the grounds that this would be bad typographic practice.
A specific request for one such character has led me to modify
version 0.1 of the program to make the creation of such characters
possible, but I would still argue against their use.

Some minor improvements have been made to the code in various areas,
including checking for inappropriate input, calculation of italic
correction for characters with superscript accents, and placing of
dropped superscript accents. (However, it is likely that such
accents will still sometimes require manual intervention.)


Changes to mkt1font between first (unnumbered) release and release 0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In the first release of mkt1font, kerning information for predefined
accented characters was taken from the input font, even if the -b
option had been specified to force the redefinition of such
characters. This has been fixed in version 0.1: if the -b option is
used, kerns for characters such as "eacute" are generalised from the
kerns for "e" in just the same way as happens for "emacron" etc.

Similarly, predefined accented characters eliminated by the -b
option used to retain "ghost" entries among the unencoded characters
in the afm file. This too has been fixed in version 0.1.

As of version 0.1, any composite character definitions contained in
the afm file of the input font are eliminated from the output font,
since they will almost certainly be incomplete, and (if the user has
specified -b) will probably be wrong as well.

Version 0.1 can now properly process input fonts using MS-DOS file
format (with newline represented by CR/LF). It can also process
fonts in which the character "|" is used in the names of the
frequently used "noaccess def" and "noaccess put" definitions
(previously this fell foul of Perl's regular expression handler).

As with vpl2vpl, I have modified version 0.1 of mkt1font to permit
the creation of tall characters bearing double superscript accents,
though I do not recommend the use of such characters.

The "FontBBox" entries in the afm and pfb files now reflect any
increase in the maximum height or depth of characters in the output
font.

Various other minor improvements have been made to the code,
including the placing of dropped superscript accents. (As with
vpl2vpl, however, it is likely that such accents will still
sometimes require manual intervention.)


Changes to vpl2vpl and mkt1font between release 0.1 and release 0.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A. Changes common to both programs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I have implemented the candrabindu ("moon-dot") accent sometimes
used in Indian-language material. This is achieved by overprinting a
breve with a dotaccent; a new command-line option (-c) has been
introduced to allow for font-specific adjustments in the placing of
the dotaccent.

The user's command-line is now stored as a comment at the head of
the output file(s).

The constraint on the ordering of definitions in a definition file
has been removed: it is no longer necessary to ensure that a
character is defined before it is used.

Digraphs are now implemented: if the character specified as the
"accent" in a definition is not in fact a valid accent character,
the definition is interpreted as a request for a digraph formed from
the "character" followed by the "accent".

A bug which placed superscript accents incorrectly over tall
characters already bearing "under" accents has been fixed.

The vertical positioning of "under" accents has been adjusted: they
are now placed slightly lower than previously.


B. Changes to vpl2vpl
~~~~~~~~~~~~~~~~~~~~~

Fixed a bug which resulted in some accents in small caps fonts being
positioned at the wrong height.

Fixed a bug which resulted in small amounts of LIGTABLE information
being lost.


C. Changes to mkt1font
~~~~~~~~~~~~~~~~~~~~~~

The internal organisation of the program has been cleaned up in a
number of respects. In particular, various subroutines are now
called with the appropriate formal parameters, rather than relying
on the existence of equivalent global variables; the fetching and
storing of character metric information is tidier and more
efficient; and kerning information is dealt with in the course of
the main program loop, rather than in a private (double) loop
afterwards.

The -s option allowing "under" accents to be shrunk by a specified
factor, which was previously available only in vpl2vpl, has now been
implemented in mkt1font also.

The output afm file previously sometimes contained spurious entries
for unencoded characters that duplicated items in the list of
encoded characters. This has been fixed.

Despite the fix introduced in version 0.1, some predefined kerning
information continued to find its way into the afm file even when
the -b option was specified to block the use of predefined accented
characters. A new, improved fix is now in place to prevent this. An
error in a regular expression which generated some undesirable kerns
has also been corrected.

The "FontBBox" entries in the afm and pfb files now reflect any
increase in the maximum width of characters in the output font, as
well as increases in their maximum height or depth.

Fixed a bug causing the underbar accent to be too long.

Fixed a bug causing "under" accents to be assigned the wrong depth:
this could result in the bottom of the accent failing to print
properly.


Changes to vpl2vpl and mkt1font between release 0.2 and release 0.21
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Changes common to both programs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The vertical positioning of "under" accents has been adjusted again
(the previous adjustment was a little too enthusiastic). They have
been raised slightly.

The height at which characters are reckoned to be so tall that
superscript accents placed on them must be raised above the normal
level has been increased slightly (from 1.1 x xheight to 1.15 x
xheight).

Changes to vpl2vpl and mkt1font between release 0.21 and release 0.211
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A. Changes to vpl2vpl
~~~~~~~~~~~~~~~~~~~~~

A single minor change has been made to vpl2vpl: this has been
necessitated by a change in the format of the LIGTABLE information
produced by version 8.1 of afm2tfm, which now adds identificatory
comments to lines referring to characters by means of octal
notation. Vpl2vpl strips out such comments.


B. Changes to mkt1font
~~~~~~~~~~~~~~~~~~~~~~

Minor bugfixes have been put in place: extra spaces in the the
"noaccess def" and "noaccess put" definitions are now permitted, and
so is a character named ".null". An error message has been improved.

Changes to vpl2vpl and mkt1font between release 0.211 and release 0.212
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A. Changes to vpl2vpl
~~~~~~~~~~~~~~~~~~~~~

Fixed a bug in the "double superscript accent on small caps
character" routine.


B. Changes to mkt1font
~~~~~~~~~~~~~~~~~~~~~~

Fixed a bug which produced incorrect output in cases where the
character to be accented is defined as blank (e.g. space).

Changes to vpl2vpl and mkt1font between release 0.212 and release 0.22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Changes common to both programs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The programs now recognise "commaaccent" as a valid subscript
accent. Note that they cannot replace this subscript with the
superscript form used with the letter "g" (any more than they can
substitute the apostrophe-like form of the caron that is used with
"L", "d", "l" and "t"). Note also that as there is no position for
this accent in either the standard TeX encoding or the dvips.enc
variant, vpl2vpl will not actually be able to use it to build new
characters without further modification.

In the case where the definition file specifies, say, "z overdot"
and the font contains a predefined version named "zdotaccent", it
previously happened that the output font contained both characters.
This has been fixed: now only the character requested in the
definition file exists in the output.

Changes to vpl2vpl and mkt1font between release 0.22 and release 0.221
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A. Changes to mkt1font
~~~~~~~~~~~~~~~~~~~~~~

Fixed a bug which caused the program to fail after incorrectly
identifying CharStrings definitions.
