[metapost] MetaPost 1.800 announcement
Taco Hoekwater
taco at elvenkind.com
Tue Mar 19 11:23:02 CET 2013
I am happy to announce a new release of MetaPost:
----------------------------------------------------------------------
MetaPost 1.800
----------------------------------------------------------------------
This version will be the one included in TeXLive 2013. The major
changes compared to MetaPost 1.504 that was in TeXLive 2012 are:
* Support for IEEE double (64 bit) internal calculations as well as
traditional 32-bit scaled arithmetic, by means of a command-line
switch (--numbersystem=double).
* Bitmap (png) output support.
* The C and lua APIs have been extended to allow path control point
resolution without going through the Metapost input language.
* The code for picture shipout now uses "double" for all floating point
values. This can give small differences in the actual output files in
traditional mode due to the required scaled -> double conversion, but
it was necessary to support the new numerical backend code.
The win32 binary as well as a source archive can be downloaded
immediately from the files section at
https://foundry.supelec.fr/projects/metapost/
If you want to build MetaPost yourself, you can also do an anonymous
subversion checkout:
$ svn checkout --username anonsvn
https://foundry.supelec.fr/svn/metapost/tags/1.800
The password is anonsvn
----------------------------------------------------------------------
What is new in MetaPost version 1.800:
----------------------------------------------------------------------
* A new string valued internal "outputformatoptions" is used by 'png'
output format to control the png file format. In the future, this
internal may become used for options to the other output formats
as well.
The syntax for "outputformatoptions" is a space-separated list of
settings. Individual settings are keyword+'='+value. The only
currently allowed ones are:
format=[rgba|rgb|graya|gray]
antialias=[none|fast|good|best]
No spaces are allowed on the left, nor on the right, of the equals
sign inside a setting.
The assignment that would match the compiled-in default setup is:
outputformatoptions := "format=rgba antialias=fast";
however, "outputformatoptions" is initially the empty string.
Some notes on the (new) PNG output formats:
- The 'rgb' and 'gray' subformats have a white background. The
'rgba' and 'graya' subformats have a transparent background.
- Bitdepth is always 8.
- In all cases, the image is initially created in 8-bit RGB
mode. For 'gray' and 'graya', the RGB colors are reduced just
before the actual PNG file is written, using a standard rule:
g = 0.2126*r + 0.7152*g + 0.0722*b
- CMYK colors are always converted to RGB during generation of
the output image using:
r = 1 - (c+k>1 ? 1 : c+k);
g = 1 - (m+k>1 ? 1 : m+k);
b = 1 - (y+k>1 ? 1 : y+k);
- If you care about color conversions, you should be doing a
"within <pic>" loop inside "extra_endfig". The built-in
conversions are more of a fallback.
* A new string-valued internal "outputfilename", which is set by
"shipout" to the value of the just created file name. Until the
first shipout has occurred, it is the empty string.
----------------------------------------------------------------------
What is fixed in MetaPost version 1.800:
----------------------------------------------------------------------
* Fixed a number of bugs where Metapost loaded the default font map
file multiple times, resulting in lots of "fontmap entry for
`<fontname>' already exists, duplicates ignored" warnings.
* The "glyph <> of <>" operation could crash on fonts with empty
subpaths in the charstrings.
* Fixed a bug in the postscript encoding reader that caused a buffer
overflow (fatal error) for encoding files that do not end with a
newline.
* Sped up png creation a bit by using smarter libpng options.
* In the 'double' numbersystem, lots of precision was lost due to a bad
internal conversion of fractions to scaled values. This affected the
"rotated by", "directiontime", "sind" and "cosd" primitives, as well
as internal dependency calculations.
* In the 'double' numbersystem, an internal rounding error caused
"directiontime" to return bad results for requests near zero.
* There was a big scaling miscalculation while outputting glyphs in SVG
mode with "prologues:=3". The output labels were so big that they
fell completely outside of the generated image.
* A problem resulting in 'This can't happen (endinput)' caused by a
missing "end" at the end of the run was fixed.
----------------------------------------------------------------------
Legal notice / license / bug reports
----------------------------------------------------------------------
MetaPost is a system for producing graphics developed by John Hobby
at AT&T, based on Donald Knuth's Metafont. The MetaPost home page
is http://tug.org/metapost.
MetaPost is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 2.1 of the License, or
(at your option) any later version.
The MetaPost development project is currently hosted at Supelec,
https://foundry.supelec.fr/projects/metapost; with a bug tracker
at http://tracker.luatex.org/. Please report bugs and
request enhancements through there if possible. Alternatively, you
can reach us through the <metapost at tug.org> mailing list as well.
Have fun!
Taco Hoekwater, for the MetaPost team, March 19, 2013.
More information about the metapost
mailing list