Asymptote Changelog

What's new in Asymptote 2.43

Apr 6, 2018
  • The real modulo operator was fixed. Vector SVG output is now supported for PDF tex engines. Compilation under MacOS X was fixed.

New in Asymptote 2.35 (May 20, 2015)

  • A work around was implemented for a ghostscript eps2write bug that forces all postscript to the first page, breaking multiple 3D XeLaTeX and ConTeXt labels.

New in Asymptote 2.34 (May 18, 2015)

  • The readability of named pen colors was improved in the documentation. A surface cone(path3 base, triple vertex) routine was added for constructing an approximate cone over an arbitrary base. A test for Ghostscript 9.14 or later was added to the build process. The documentation was updated. A CYGWIN warning message under Windows 8 was fixed.

New in Asymptote 2.33 (May 15, 2015)

  • A work around was implemented for the missing epswrite driver in ghostscript-9.15. Deconstruction is now always done in the C locale. A work around for a unit change in dvisvgm-1.5.3 was implemented. The path arc(pair B, pair A, pair C, real r) function was fixed. The handling of the boolean condition in parametric surfaces was fixed. The default meshlight was changed to nolight so that mesh lines with positive width appear consistent with the default mesh lines. A nonsquare image dimension error was fixed. The definition of the SimpleHead arrowhead was fixed. The zoom/menu button and play option were fixed. An intersect(path, surface) function was implemented. A smoothcontour3 module written by Charles Staats and leminiscate example were added. The inline asymptote.sty option now works with xelatex. An obsolete workaround for an Adobe Reader transparency artifact was removed. An asylatexdir option was added to support the pdflatex -output-directory option. An aligndir option for aligning the picture to an arbitrary point of the page boundary was added. The garbage collector was updated to gc-7.4.2. The documentation was updated.

New in Asymptote 2.32 (May 23, 2014)

  • Allow overriding CXXFLAGS with CFLAGS so that make CFLAGS="-g" disables
  • optimization (for debugging).
  • Rename side(pair,pair,pair) to orient(pair,pair,pair).
  • Fix and update documentation of orient, incircle, and insphere.
  • Use gs instead of convert to generate latexusage.png.
  • Guard agains random() returning a 16-bit result.
  • Use random() instead of rand() everywhere.
  • Use RANDOM_MAX rather than nonportable RAND_MAX.
  • Fix version mismatches when releases are imported via svn.
  • Remove obsolete test for texi2dvi4a2ps.
  • Suppress compiler warnings.
  • Enable libc++ workaround also for FreeBSD.
  • Fix segment(bool[] b).

New in Asymptote 2.31 (May 17, 2014)

  • Fix hangs in 3D font generation and the "none" tex engine.
  • Disable the MacOS 10.9 libc++ workaround on other platforms.

New in Asymptote 2.29 (May 16, 2014)

  • The TeX bidirectional pipe was overhauled to support the context tex engine again.
  • The luatex and lualatex tex engines were enabled.
  • The inline option used by the asymptote.sty LaTeX package and the inlineimage option used for generating external PRC files were fixed.
  • Portability issues were addressed.

New in Asymptote 2.28 (May 13, 2014)

  • Reduce number of allowed bezulate refinements to maxrefinements (default 7).
  • Avoid numerical overflow in quadraticroots and cubicroots.
  • Update splitpatch example.
  • Install refs.bib with slidedemo.asy.
  • Fix locale bug.
  • Remove minimum window constraints (use viewportsize instead).
  • Fix discussion of new T.
  • Work around PRC viewport issue.
  • Simplify OpenGL minsize code.
  • Fix calculation of minimum width and height for OpenGL window.
  • Fix transform(u,v,O).
  • Add optional parameters to hsplit and vsplit.

New in Asymptote 2.27 (Apr 29, 2014)

  • Move Adobe transparency workaround to C++ code to allow use of texpreamble
  • again with the pdflatex tex engine.

New in Asymptote 2.26 (Apr 28, 2014)

  • Update flex patch.
  • Test for POSIX 2008.
  • Address portability issue.
  • Support c++11.
  • Use unordered_map if __GNUC_PREREQ is not set.
  • Update documentation.
  • Fix degenerate HookHead and SimpleHead arrows.
  • Remove unused files; update references.
  • Miscellaneous CTAN updates.

New in Asymptote 2.25 (Apr 22, 2014)

  • A superfluous play button in rendered 3D images embedded by recent versions of media9 is now suppressed.
  • The contour.asy module was reverted to a previous stable linearized version.
  • A numerical precision issue in makepen was fixed.
  • A routine for drawing braces was added. Deep recursion is now avoided in guide flattening.
  • A workaround for an Adobe Reader transparency artifact was implemented for the pdflatex and xelatex tex engines.
  • Raw PRC output can now be generated with the "-f prc" command-line option.
  • Vector patches are now sorted to work around opacity artifacts in many rendering engines.
  • The xasy code editor now accepts command-line options.
  • The FAQ and documentation were updated.

New in Asymptote 2.24 (Jul 13, 2013)

  • A segmentation fault in drawSphere was fixed.
  • Recursive calls to simpson are now supported.
  • The explicit libglapi dependency was removed.
  • A latexmkrc example file that shows how to store figures in a subdirectory is now included.

New in Asymptote 2.23 (May 21, 2013)

  • Compilation without the FFTW library is now supported again.

New in Asymptote 2.22 (May 20, 2013)

  • Self-defined unary operators are now allowed.
  • Formatted strings instead of real values are compared in OmitFormat.
  • The segment(bool[]) function was rewritten to use the more efficient segmentlimits(bool[]) call.
  • Unnecessary buffering of surface and path3 data was removed.
  • Portability tweaks were made.
  • References to out-of-date trembling examples were removed.
  • Vertex-colored triangles now work again in Adobe XI.
  • The transformation of normal vectors was fixed.
  • PostScript extend qualifiers were added for axial and radial shading.
  • The TEXMFMAN environment variable is now used to find the TeXLive sysdir.

New in Asymptote 2.21 (Oct 11, 2012)

  • Explicitly transformed billboard labels now work correctly again.
  • The alignment point of OpenGL billboard labels was fixed.
  • An extend parameter was added to the axes (default true) and axes3 (default false) routines.
  • A history recall bug was fixed.
  • A typo was corrected in the documentation of the Jacobi elliptic functions sncndn.

New in Asymptote 2.20 (Sep 28, 2012)

  • A work around was implemented for a dvipdfmx bug that prevents the xelatex tex engine from properly embedding PRC objects.
  • Billboard rotation is now disabled for explicitly transformed labels.

New in Asymptote 2.19 (Sep 26, 2012)

  • Fix warning messages.
  • Fix PRC viewportshift.
  • Fix lighting of NURBS surfaces.

New in Asymptote 2.18 (Sep 20, 2012)

  • A compilation issue on MacOSX was addressed.
  • Secondary axes pictures now inherit the size of the primary picture, so that the markthin marker works properly.
  • The special 8192 strlen NSIS build was reinstated to prevent the installer from overwriting extremely long Windows PATH environment variables.

New in Asymptote 2.17 (Sep 19, 2012)

  • Handle 3D degenerate arrows.
  • Fix warning message.
  • Remove obsolete file reference.
  • Add example and documentation for tessellations.
  • Add missing -P options to dvipdf (required for media9 support).
  • Implement improved workaround for media9 preview bug, as suggested by
  • Alexander Grahn.

New in Asymptote 2.16 (May 31, 2012)

  • Ticks are no longer autoscaled when the number of major intervals is specified and autoscale is false.
  • Manual tick scaling was fixed.
  • A bug in the palette range was fixed.
  • A division by zero in constructing curved arrows was fixed.
  • A numerical underflow was fixed.
  • A picture bound error was fixed.
  • The current value of currentpen is now always respected in default arguments.
  • A default viewportwidth is no longer imposed for attached images.
  • A routine for computing camera positions was added.
  • The format command is now more consistent with C++ printf formatting.
  • Named arguments can now appear in function calls after rest arguments.
  • The wheel example was improved to support PDF animations.
  • The erase command no longer resets the machine state.
  • Pipes are now used for xasy communication.
  • A new mode parameter to input and output replaces xinput, xoutput, binput, and boutput.
  • The icon directory path for 64-bit MS Windows systems was fixed.
  • Compilation of native CYGWIN binaries is now supported.

New in Asymptote 2.14 (Nov 16, 2011)

  • Minor problems in the geometry module were fixed.
  • Billboard interaction is now disabled for offscreen rendering.
  • A markthin(path) marker with opacity thinning was implemented.
  • A locale string was added to format(string,int).
  • The copy, map, and sequence functions were generalized to arbitrary depths.
  • Asymptote can now be compiled as a shared library.
  • A tuple operator was added.
  • The draw(revolution) function now defers drawing until the final camera position is known.
  • Nonrendered preview images can now be generated for fitted pictures.
  • String reads from binary files were fixed.
  • An int ascii(string) function and a bool isnan(real) function were implemented.
  • Jacobi elliptic functions were implemented.
  • A quick reference card was added.
  • Compilation and static initialization issues under MacOS X Lion were addressed.

New in Asymptote 2.13 (Jun 20, 2011)

  • Compilation and installation issues were addressed.

New in Asymptote 2.08 (Nov 4, 2010)

  • Legend markers now work again.

New in Asymptote 2.07 (Oct 31, 2010)

  • The -P option required by ghostscript 9.00 was added.
  • The limits command now works correctly with reversed axes.
  • The asyinclude command of asymptote.sty was improved so that asy source files do not need to be sent to publishers; the asy extension is now optional.
  • A mktemp function was implemented.
  • Further MSWindows installer problems were addressed.

New in Asymptote 2.06 (Oct 25, 2010)

  • Compilation problems and build issues were fixed.

New in Asymptote 2.05 (Oct 18, 2010)

  • Arbitrary depth array constructors were re-instated.
  • Profiling code was added.
  • Spaces within file names and eps file attachments are now supported in inlinetex mode, and interference from any pre-existing aux file is avoided.
  • A new auto-generated version (1.21) of asymptote.sty contributed by Will Robertson features a latexmk-compatible asyinclude command.
  • Path-overwriting bugs in the NSIS MSWindows installer were circumvented.

New in Asymptote 2.04 (Aug 20, 2010)

  • Subdivision cracks in transparent labels are no longer filled.
  • Warning messages from the FP package are suppressed.
  • MSDOS line terminators are now handled; DOSendl and DOSnewl line terminators were added.
  • Files generated in inlinetex mode can now be renamed without editing their
  • contents (using asymptote.sty version 1.19).
  • The man page was fixed.
  • The documentation of render.merge was fixed.

New in Asymptote 2.03 (Aug 4, 2010)

  • An optional asydir parameter that allows asy files to be generated in a subdirectory was added to version 1.18 of asymptote.sty; XeLaTeX support was fixed. Nonrendered preview images via render=0 are now implemented. Blank 3D labels were fixed. Problems with arc directions and ellipses in the geometry module were fixed. The definition of the Dotted linetype was improved. Missing pen and margin parameters were added to the blockconnector function calls. Virtual methods were optimized. Makefile dependencies were fixed and autogenerated files are cleaned up. The dependence of the source tarball on perl was removed. Minor improvements were made to the documentation and man page. The Asymptote installation directory is now automatically added to the MSWindows path.

New in Asymptote 2.02 (Jul 12, 2010)

  • Quote file argument.
  • Fix typo.
  • Changed extended for statement errors.
  • Better error reporting for extended for statement.

New in Asymptote 2.01 (Jul 5, 2010)

  • The normal vector for perspective projections was fixed.
  • Individual processing of each figure within a LaTeX document is now supported.
  • The fontsize package uses type1cm.sty again since fix-cm.sty does not
  • appear to work as advertised.
  • Uninitialized item bits are cleared.
  • Extended for statements now support the var type.
  • PenMargin is used in drawing a binarytree.
  • Minor optimizations were made.

New in Asymptote 2.00 (Jun 26, 2010)

  • The construction of 3D TeX labels was sped up greatly. Plain TeX page numbers were suppressed. Dotted 3D lines and 3D sizing problems were fixed. A general search function for sorted structures was implemented; the lexorder functions in math.asy now return strict partial orders. Additional GSL functions were added. The correct PRC units (PostScript pt units, properly called bp) are now displayed in Adobe Reader.

New in Asymptote 1.99 (Jun 18, 2010)

  • A segmentation fault was fixed.
  • Perspective animations were fixed.
  • A bug in the bezulate topological sorting algorithm was fixed.
  • A settings.framedelay parameter was added for working around OpenGL animation rendering buffer overruns.
  • Further optimizations were made.
  • A portability issue was addressed.

New in Asymptote 1.98 (Jun 14, 2010)

  • Memory usage and garbage collection were greatly improved, and many optimizations were made.
  • Labels are now aligned using the rotational instead of the shiftless part of the transform.
  • A portable CYGWIN memory limit fix was implemented.
  • Noncyclic stokepaths are discarded to work around a bug in gs 8.71.

New in Asymptote 1.97 (Jun 12, 2010)

  • A new render.labelfill option (enabled by default) fills subdivision cracks in
  • unlighted labels.
  • The dependence on gcc-4.3 was removed.
  • Offscreen detection and zoom bugs in the OpenGL renderer were fixed.
  • Three-dimensional grouping was improved.
  • The symbol table was replaced with a custom hash table.
  • Portability updates were made.
  • The Cygwin memory limit fix for MSWindows now works even on systems that lack a complete Cygwin installation.
  • The examples were updated to exploit the new PRC rendering options.

New in Asymptote 1.96 (Jun 7, 2010)

  • The viewpoint function and some examples were updated.

New in Asymptote 1.94 (May 5, 2010)

  • Work arounds for MSWindows registry problems and obsolete runtime libraries
  • were implemented.
  • The SimpleHead arrowhead was fixed.
  • Additional matrix routines and casts were implemented.
  • The pair dir(path, path) routine now returns a unit vector.
  • Variable conflicts coming from the contour module were addressed.
  • A RadialShadeDraw filltype was implemented.
  • A guide bug was fixed.
  • Redundant mismatched version warnings are avoided.
  • Support for fitting one 3D picture within another was added.
  • The documentation was updated.

New in Asymptote 1.93 (Apr 19, 2010)

  • Portability issues were addressed.
  • Latticeshading bounds and behaviour under svgemulation were fixed. The initial SVG pen was fixed.
  • A parallelogram block was added to the flowchart module.
  • Temporary files are cleaned up even after TeX errors.
  • The GUI export function was fixed; an SVG export option was added.
  • The XeLaTex bounding box was fixed.
  • Spaces in output directory names are now allowed for supporting drivers.
  • One can cd to other directories, preserving the output directory.
  • All output files are written to the directory part of settings.outname; if this is empty, the current directory is used.

New in Asymptote 1.92 (Apr 12, 2010)

  • Labels work correctly with oblique projections.
  • Transformed Label alignment and pt scalings were fixed. Latticeshading is now properly clipped.
  • The normal and true Circle calculations were fixed.
  • The interface to the simpson integrator and an array index in contour.asy were fixed. In theflowchart module, the implicit cast from a pair to a virtual node was
  • removed in favour of a block constructor.
  • The ode integrationg routines now return a structure that includes the sampled time values; dynamic timestepping was implemented for solveBVP. New predefined tick modifiers were added.
  • The CLZ and CTZ bit functions were implemented.
  • PRC part names were fixed.
  • The GL library is now explicitly linked.
  • Memory usage was improved by configuring the garbage collector with --enable-large-config.
  • Null 3D paths are ignored. Non-pdf output is supported for PDF tex engines.
  • Portability changes for CYGWIN 1.7 were made.

New in Asymptote 1.91 (Jan 6, 2010)

  • The precision of the 3D perspective sizing routines were improved.
  • The offset in transformed 3D labels with render=0 was fixed.
  • 3D planar arrowhead gaps were fixed; a duplicate 3D arrow angle factor was removed.
  • Pen width contributions to the box and ellipse envelopes were fixed.
  • A more robust contour algorithm based on paraboloid approximation was implemented.
  • A polargraph routine for arrays was implemented.
  • Default font problems were fixed.
  • The pdfborder={0 0 0} option was added to settings.hyperrefOptions; the hypersetup command is now used to avoid hyperref option clashes.
  • The size of pngalpha images was fixed; the pngalpha driver is used only if antialias=2.
  • The -alpha Off default convert option was removed in favour of convertOptions="-alpha Off".
  • Inlinetex support for xelatex was updated.
  • Picture transformations are now respected by latticeshade.
  • The Bessel functions J and Y were renamed to Jn and Yn.
  • An operator --(block, block) was implemented to simplify the flowchart syntax.
  • The expression % expands to the last result returned at the interactive prompt.
  • The GLU-1.3 library included in the MSWindows distribution was fixed.

New in Asymptote 1.90 (Nov 16, 2009)

  • Document SVG output.

New in Asymptote 1.89 (Nov 9, 2009)

  • The draw, fill, and clip commands now pass raw SVG code directly to dvisvgm (version 0.8.6 required); zero-length paths are output as circles. Unsupported SVG elements are converted to PNG images; unimplemented SVG features such as Gouraud and tensor-patch shading can be (partially) emulated as vector elements using the -svgemulation option. The control point normalization of rational NURBS surfaces was fixed; 3D NURBS curves are now implemented. A problem with inlinemovie3 was fixed. The linetype pattern is now a real array: for backwards compatibility, a string is still accepted, but the return type of linetype(pen) is now real[] instead of string (backwards incompatible). The split routine was changed so that an empty delimiter splits on spaces, discarding duplicates. The palette routines are now guaranteed to generate at least the specified number of colours. PNG output produces a transparent background. Surface and path3 garbage collection was fixed.

New in Asymptote 1.88 (Oct 3, 2009)

  • Compilation without OpenGL was fixed. PRC billboard labels were implemented; settings.billboard was renamed to settings.autobillboard and by default enabled for all 3D labels. The surface constructor for embedding labels on surfaces now draws both the top and bottom faces by default. The meshpen, knot, weight, and color arrays are now properly cached. The example fequlogo.asy illustrates how to draw an arbitrary 3D background plane. The intermediate dvi file is now removed when producing SVG output.
  • Improvements were made to the tutorial.

New in Asymptote 1.86 (Sep 7, 2009)

  • PRC polygons were optimized. Surface memory usage was reduced.
  • The automatic sizing of NURBS surfaces was fixed. A bug in the radius of curvature computation at nodes was fixed. The configuration test for the GNU readline library was improved. The naming of PRC parts was implemented.

New in Asymptote 1.85 (Aug 22, 2009)

  • Move remaining picture operations.

New in Asymptote 1.84 (Aug 20, 2009)

  • Fix readline conditionals.

New in Asymptote 1.83 (Aug 15, 2009)

  • Embed parametric equations on Klein bottle.
  • Add new example.

New in Asymptote 1.82 (Jul 20, 2009)

  • Threaded exports were fixed. The texpath fontsize was fixed for PDF tex engines.
  • A default currentprojection argument was added to transform3(projection).
  • The -gray and -bw settings are now respected in PRC output.
  • A consistent approximation is now used for drawing tube centers.
  • Missing pt units were added to all fontsize examples.

New in Asymptote 1.81 (Jul 14, 2009)

  • A boolean targetsize option can now be used to draw 3D labels with the apparent
  • size they would have on the target plane.
  • The camera adjustment algorithms were fixed; the autoadjust flag is respected.
  • Missing path3 functions such as endpoint(path3) were added. The doubleclick timeout under MSWindows was fixed.
  • A workaround for a ConTeXT small font bug is illustrated in contextfonts.asy.
  • File associations are now used under MSWindows for psviewer, pdfviewer, display, and animate.
  • Single quotation marks are now allowed in filenames.
  • Deconstruction is now only supported in PNG format; the xformat setting was removed. The example lmfit illustrates Levenberg-Marquardt nonlinear least-squares fitting.

New in Asymptote 1.80 (Jul 8, 2009)

  • The interface for changing the precision for XDR/binary files was simplified; file parameters can now be queried as virtual members.
  • The zoom/menu action was improved to emulate a double-click and assigned again to the right mouse button; a left-button binding bug was fixed.
  • New settings zoomfactor, zoomstep, spinstep, arcballradius, resizestep, and doubleclick were added. The OpenGL thread is now exited gracefully; idle state and other parameters are properly reset on quitting. Lighting is now initialized only in home(). Animations with global=false were fixed.
  • An improved (and free) psview PostScript viewer is now suggested for MSDOS users. A mechanism for disabling annoying warnings like "writeoverloaded" was implemented. The documentation directory under TeXLive was fixed.

New in Asymptote 1.79 (Jul 3, 2009)

  • The perp vector calculation in the solids module was fixed. A bug in the mouse motion functions was fixed. A pan action (which differs from shift due to perspective distortion) was added to the OpenGl renderer; the Camera (c) menu item now outputs all camera settings. The default right mouse button mouse binding was changed from "zoom/menu" to "zoom". User-initiated exports no longer cause the renderer to quit. Dynamic time stepping was fixed in the ode module; the "integrate" routines now return the array of computed values. Operators == and != were added for all built-in arithmetic 2D arrays; a segmentation fault was fixed. The etc/fstab kludge for Cygwin 1.7 was removed. The configuration directory under TeXLive is now $TEXMFCONFIG/asymptote.

New in Asymptote 1.78 (Jun 26, 2009)

  • Changed paths:
  • M /trunk/asymptote/asymptote.spec
  • M /trunk/asymptote/glrender.cc
  • Fix title message (assuming zoom/menu button is unmodified).

New in Asymptote 1.77 (Jun 19, 2009)

  • Splined parametric surfaces were implemented; a bug in the Cartesian
  • splined surface routines was fixed.
  • An ode module for solving ordinary
  • differential equations was added.
  • A bug in maxtimes and mintimes was fixed.
  • A Levenberg-Marquardt nonlinear fitting routine was added.
  • The format command now returns TeX compatible output only in math mode. A path3 label alignment problem was fixed.
  • The MSWindows support for TeXLive 2009 was fixed.

New in Asymptote 1.76 (Jun 6, 2009)

  • Changed paths:
  • M /trunk/asymptote/drawclipend.h
  • M /trunk/asymptote/drawfill.cc
  • M /trunk/asymptote/settings.cc
  • M /trunk/asymptote/settings.h
  • M /trunk/asymptote/texfile.cc
  • Remove texunits (not required).

New in Asymptote 1.75 (Jun 1, 2009)

  • Issues with 3D labels and texpath, both in inlinetex mode and with the ConTeXt TeX engine, were resolved. A bug in bezulate was fixed. A partial workaround was added for the unimplememented -output-directory ConTeXt option (the current directory must still be writeable). The aspect ratio and viewportmargin calculation in module three was improved, with tighter 3D bounds. A bug in the intersectionpoints(path3, surface) routine was fixed.

New in Asymptote 1.72 (May 15, 2009)

  • PostScript calculator function shading was implemented. Interactive camera
  • parameters of the native OpenGL renderer can now be queried.
  • The effective camera positions for oblique projections was fixed.
  • Philippe Ivaldi's geometry_dev module was merged into geometry.asy;
  • trembling_pi was added as trembling.asy. The GSL module was expanded.
  • An extrude routine for labels was implemented. Rotated path
  • label alignments were fixed. The alignment of 3D axis labels was fixed.
  • The basealign pen now always typesets "ace" and "acg" at the same location.
  • Arrow endpoint detection was fixed. A sysdir setting was added, along
  • with an --enable-tetex-build configure option. The store argument of
  • saveline is respected again. Left-justified trailingzero alignment was
  • fixed; a signedtrailingzero specifier was added. Boolean conditions on
  • linearly interpolated surfaces now suppress function evaluation.
  • The adaptive algorithm used for rendering thick lines and tubes was
  • improved. An ambiguity in the flowchart module was fixed.
  • A patch is included to work around an MSWindows XP problem with 3Dgetview
  • in the 2009/03/23 version of movie15.sty. A problem with spurious menu
  • interaction zooming was fixed. The asy.bat MSWindows batch file now
  • respects all command-line arguments.

New in Asymptote 1.70 (Apr 11, 2009)

  • A labelpath3 module for typesetting curved labels in 3D, contributed by Jens Schwaiger, was added.
  • PenMargin2 was defined for use with planar arrowhead types like DefaultHead2.
  • A center=false parameter was added to projections to allow one to automatically center the target within the bounding volume.
  • The ambiguity in the surface function was resolved.
  • Problems with spaces in filenames were fixed.

New in Asymptote 1.68 (Mar 23, 2009)

  • Support for 3D inline pdf movies was added.
  • Camera adjustment was fixed; the filesurface.asy example illustrates automated camera and target computation.
  • A deadlock in the export loop was fixed.
  • A new version of asymptote.sty (1.05) fixes the definition of ASYanimategraphics.
  • The handling of intersection fuzz was improved.
  • The baseline routine was generalized.
  • New paragraphs are now allowed in minipage labels.
  • Some minor errors in the documentation were fixed.

New in Asymptote 1.67 (Mar 19, 2009)

  • Spurious annotation question marks in 3D PDF attachments were fixed; attached images are now printable. The asy environment defined in the new (1.04) version of asymptote.sty supports keyval options width, height, viewportwidth, viewportheight, and attach; the obsolete asyattach environment was removed. The default viewportwidth is the linewidth in inline mode and 0 in attached mode. Planar projected arrows were fixed. Automatic camera adjustment was improved. A minimum viewportsize can now be specified. The control points for cyclic segments produced by texpath were fixed. Overlap issues in planar surface patches were fixed. Surface constructors were simplified: the routine planar has been replaced by surface(path, triple plane(pair)=XYplane) and in most cases there is no need to call bezulate directly. An Align constant was added. The parameter limits used in buildcycle were fixed. The intersection routines now respect the fuzz parameter. Segmentation faults involving null cyclic guides were fixed. Subpath now preserves the straight flag. Pictures containing graphs now transform correctly; unextended axes limits and tick selection were improved. Axial and radial shading respect now respect -gray. The animation prefix was fixed. An example of drawing a surface from irregular data was added. A work around was implemented for an intermittent hang on exit in the 3D native renderer. An auto3D option was added for controlling the poster option. The 2008/10/08 version of movie15.sty is now compulsory. The cd %USERPROFILE% command was removed from asy.bat.

New in Asymptote 1.66 (Feb 27, 2009)

  • An alignment problem with the pdflatex tex engine was fixed. Problems in the animations module were fixed, including a broken ImageMagick layers optimization. Optional direction arguments were added for three-dimensional bars. The appearance and alignment of the planar arrowheads DefaultHead2, HookHead2, and TeXHead2 was improved; they now accept an optional normal argument and respect the filltype. A transverse/longitudinal confusion was fixed in the solids module. The camera adjustment routine was improved and is now controlled by the autoadjust=true option for perspective projections; the user is notified when the camera is moved. The obsolete featpost3D.asy module was removed. Midpoint interpolation was reinstated for drawing contours.

New in Asymptote 1.65 (Feb 20, 2009)

  • The xelatex tex engine was implemented.
  • Bugs in pdflatex output and the xelatex alignment were fixed.

New in Asymptote 1.64 (Feb 19, 2009)

  • Support was added for XeLaTeX PDF specials. The target point is not forced to be part of the control volume for absolute projections. The directory is now stripped from the animation prefix; generated PDF animations are no longer automatically deleted. New parameters xsize and ysize of the asyinclude function of the slide module are illustrated in interactive 3D examples in intro.asy. A Protein Data Bank example was added to illustrate the generation of predefined views. The slidedemo example was fixed. The license of the PRC code and tools was upgraded from GPL to LGPL.

New in Asymptote 1.63 (Feb 18, 2009)

  • Support was added for XeLaTeX (which requires a modified version of movie15.sty; note however that PDF specials are not yet implemented in dvipdfmx). The 2D contour routines were generalized to handle nonuiform lattices; interpolation artifacts are now avoided when the midpoint function values are unknown. The ncell parameter for 3D contours was replaced by nmesh. The complex gamma function was implemented. Interactive rendering of preview images is now properly synchronized. The bounding volume is now automatically expanded to include the target position. An interactive 3D surface of revolution example was added to slidedemo; rendered images are now automatically included when fitting non-PRC pictures. Duplicate beginclip/endclip functions in pstoedit.asy were removed and the pstoedit-3.45 patch was updated to fix compilation errors. Errors on EOF after reading 0 values are no longer reported. One-column legends are now handled correctly. Old-style constructors were replaced with operator init. An electromagnetic spectrum example was added.

New in Asymptote 1.62 (Feb 9, 2009)

  • Outputting PDF format to other directories was fixed. An int hex(string) function that casts a hexidecimal string to an integer and a pen rgb(string) routine that returns a pen corresponding to a given 6-character RGB hexidecimal string were added. In the dot routines, Label arguments were added and minor bugs were fixed. A parametric version of markuniform was added.

New in Asymptote 1.61 (Feb 5, 2009)

  • A workaround was implemented for a dvips misconfiguration in TeXlive 2008 that introduces unwanted %�ginPaperSize commands into the EPS output. The -q option was reinstated; the asymptote.py Python module was fixed. The bezulate.asy module now enforces the same zerowinding fillrule as used by dvips. In solids.asy, a warning is issued if the silhouette routine is used in a fully 3d context. The freeglut extensions to support user-specified multisampling values were re-instated. A freeglut segmentation fault triggered by spurious window creation in the export loop was fixed. An aspect ratio problem was fixed. A string[] to int[] ecast was added. A Pentype function was added. The asydir() function was fixed under MSDOS.

New in Asymptote 1.60 (Jan 27, 2009)

  • An optional bool3 condition was added to the graph functions, allowing one to skip points or segment a graph into distinct branches, based on a user-supplied test (see the example gamma.asy). A gettriple routine was added. The interp function first promotes its pen arguments to the highest colorspace. Export exceptions are now caught gracefully. Under UNIX, xasy can now be run from a write-protected directory again. A work around was implemented for the inability of the movie15.sty package to handle spaces in filenames. Stack overflow diagnostics were improved. A read from pipe failure under MSDOS was fixed.

New in Asymptote 1.59 (Jan 19, 2009)

  • A missing filltype option for projected 2D arrowheads was added.
  • The scaling of plain TeX fonts was fixed.
  • Examples that mix 3D exporting and viewing now work properly.
  • With the -nothreads option, the main process now waits for 3D exports to finish before proceeding.
  • Conflicts in slide presentations were fixed; the asy(string) function assigns default filename correctly.
  • A bug in processing command-line options was fixed.

New in Asymptote 1.58 (Jan 12, 2009)

  • Two-dimensional arrowheads are now drawn automatically for 2D projections. ArcArrow3 routines were added. Standard pen arithmetic is now used in all colorspaces, so that interp(pen,pen,real) and Gradient(pen[] p) now work as expected. A Wheel palette was added and is used in the example gamma3 to indicate the phase of the complex Gamma function. A silhouette routine for solids of revolution is illustrated in the examples spheresilhouette.asy and hyperboloidsilhouette.asy. Problems with 3D axis label alignments were fixed. The example scaledgraph illustrates how to factor out an axis scaling. Interactive mode is now exited on EOF, unless exitonEOF=false. Support for open function signatures was added. A conflict between asymptote.sty and the breqn package was fixed. PNG images for the manual are now built in a separate directory so that they don't take precedence over PDF files. A problem with xasy under MSDOS was fixed.

New in Asymptote 1.57 (Dec 15, 2008)

  • The pdflatex texengine was fixed. The default MSDOS "start-in" directory is now %USERPROFILE%, for compatibility with the MSWindows Vista operating system. Temporary files are now generated in the directory specified by the -outname (-o) command-line option, so that write access to the current directory is no longer required. Various font size problems were fixed. The axis coverage calculation was improved. An object(Label, envelope, ...) constructor was added, along with support for object transformation and alignment. Clipping is now allowed across page boundaries; beginclip(picture, path[]) and endclip(picture) functions were implemented.

New in Asymptote 1.56 (Dec 12, 2008)

  • A bounding box bug in the latex texengine was fixed. The font scaling is now rounded to the nearest integer. The wait=true argument of shipout was fixed. The documentation of grid3 was fixed; examples of using grid3 with scale(true) were added. The handling of the asydef environment within Emacs lasy-mode was fixed. An asyinclude function for embedding 3D PRC graphs in slides was implemented.

New in Asymptote 1.55 (Dec 2, 2008)

  • A serious bug in drawing paths of length 0 that broke the dot(pair) routine was fixed. Problems in guide to path and path to guide conversions were fixed. A triple invert(pair) routine was added to invert a pair z onto the projection plane. The obsolete field of view factor was removed.

New in Asymptote 1.54 (Dec 2, 2008)

  • The filltype of three-dimensional labels is now respected when render=0. Multiple file batch mode under MSWindows was fixed. The reverse(guide) and guide examination routines were fixed. A reverse(guide3) routine was added. Curved cyclic paths of size 1 were fixed. Fork is now used by default under MSWindows pending stable CYGWIN POSIX thread support; this can be overridden with settings.threads=true. The need to remove latexusage_.pre along with latexusage-* and latexusage.aux when switching between latex and pdflatex usage was documented.

New in Asymptote 1.53 (Nov 28, 2008)

  • Forking problems under Windows 2000 were fixed and MS-DOS style path warnings were suppressed. Problems with PRC projection sizing and the rendering logic were fixed. The toolbar is now enabled by default within the asyattach environment. Two-dimensional transforms no longer prevent three-dimensional labels from being projected onto the initial viewing plane. Out-of-memory errors in the OpenGL renderer are caught again. The new tube module was documented and a trefoilknot example was added.

New in Asymptote 1.52 (Nov 26, 2008)

  • Support for generating PRC output on bigendian machines was added. Multisampling was improved: by updating the freeglut library to svn version 761, one can now specify an antialiasing pixel width with the parameter multisample, which is now an integer. The asymptote.sty and asycolors.sty files are now installed by default in $TEXMFLOCAL/tex/latex. The OpenGL renderer by default now uses POSIX threads instead of fork. A work around for the nonstandardized signature of gluNurbsCallback on various MacOS platforms was implemented. Planar vertex shading was fixed. A planar argument to surface was added. To work around rendering problems with some graphics cards, the window is now hidden only when iconify=true. A tube module was added. A setlocale segmentation fault was fixed. Now that we require a multithreaded version of the Boehm garbage collector, the installation instructions were updated for using the system version. An optional user=false argument was added to min(picture), max(picture), and size(picture). The dependency of asy-mode.el on the cc-mode.el source file was removed.

New in Asymptote 1.51 (Nov 11, 2008)

  • A separate multisample setting is used to control screen antialiasing; multisampling is now only enabled when viewing. The problem of multiple glInit calls is fixed. A more conservative multisampling patch for freeglut is supplied. The OpenGL process is now always forked for better performance. The last freeglut extension was removed.

New in Asymptote 1.50 (Nov 11, 2008)

  • Detection and support for the native glut library on MacOSX now allows Asymptote's adaptive OpenGL renderer to be used on all major platforms.
  • The OpenGL renderer now supports antialiasing; a race condition and export problems were fixed.
  • The new default value of maxtile=(0,0) denotes the screen dimensions.
  • Lighting problems due to incorrect normal orientations were fixed.
  • The up vector for embedded PRC output was fixed.
  • A viewportmargin parameter was added to allow for a larger viewport.
  • An iconify setting was added for UNIX systems that support rendering in an iconified state.
  • An embed option (default true) was added to allow one to suppress the embedding of a rendered preview image.
  • A new version of asymptote.sty (1.01) supports file attachments, which provide a better way of embedding 3D PRC files in a LaTeX document.
  • The latexusage file prefix was renamed from latexusage_ to latexusage-.
  • A numerical precision issue in the surface of revolution constructor was fixed.
  • Support for three-dimensional dimension bars was added; PenMargin3 and DotMargin3 were fixed.
  • The argument put=Above (put=Below) should now be replaced by above=true (above=false); this is a backwards incompatible change.

New in Asymptote 1.49 (Nov 3, 2008)

  • Make example look better with render=0.
  • Fix example; texpath currently only handles standard font sizes.
  • Fix handling of keep flag in texpath and strokepath.
  • Fix surface normal calculation.
  • Add patch reverse(patch) function.
  • Improve normal(path3); add normal(triple[]) for polygons.

New in Asymptote 1.48 (Nov 3, 2008)

  • High-resolution OpenGL tiled rendering was implemented. Support for vertex-dependent colors was added. Centering of perspective projections was improved. Rendering artifacts in planar surfaces and thick lines were fixed. A Gradient palette that varies linearly over a specified range of pens was added. An improved surface constructor for convex three-dimensional paths was added; the planar constructor should now only be used for nonconvex paths. A DefaultHead2(filltype filltype=Fill) arrowhead was implemented, along with an optional filltype argument for HookHead2. New maxheight, hstretch, and vstretch parameters were added to legend(). A boolean user=true argument was added to the point(picture, pair) function; the framepoint routine was removed in favour of truepoint(picture, pair, user=false). A roundbox envelope routine was added. An antialias setting (default true) was added. A bug in xasy and an incorrect precontrol bug in write(path) was fixed. Compilation with standard glut for systems without freeglut is now supported.

New in Asymptote 1.47 (Oct 24, 2008)

  • Support for simple obj files and patch-specific surfacepens and meshpens was added. Surface constructors for triangles were added. Three-dimensional margins were implemented. Flat 3D arrowhead types HookHead2 and TeXHead2 were implemented. By default, 3D arrowheads are now always drawn with currentlight. A missing angle parameter in HookHead3 was added. Functions that construct a pen array from a given function and palette were added, as illustrated in the example elevation.asy. A bug in the cyclic path write functions was fixed. A strokepath(path g, pen p) function was implemented. A missing put argument in grid3 and a missing transform for projected 3D mesh lines were fixed. File prefix problems were fixed. Spurious "camera too close" errors were fixed. Tighter three-dimensional bounds are generated.

New in Asymptote 1.46 (Oct 21, 2008)

  • Support was added for embedding 3D PRC files within LaTeX even when
  • settings.render=0. An error is now signalled if the user tries to render an
  • image without freeglut library support. The Klein bottle example was
  • updated to use lightgray instead of the new default surface color (black).
  • The sphere animation example was updated to work with the new skeleton
  • structure in the solids module.

New in Asymptote 1.44 (Oct 7, 2008)

  • Full interactive 3D support has been added to Asymptote, with the option ofgenerating and embedding 3D PRC data in PDF files or rendering scenesdirectly with Asymptote's own fast OpenGL-based renderer. The implicitcasts from 3D to 2D objects were removed (in favour of call explicit callsto project). A path[][] texpath(string s) routine was added to convertstring into the paths that TeX would fill. Add boolean stroke parameter wasadded for shading (and clipping to) stroked paths. The Circle and Arcroutines were fixed. Autoscaling of graph axes limits is now disabled bydefault. A path3 path3(path p, triple plane(pair)=XYplane) constructor wasadded; the path3 routines were moved to C++ code. Optimized and robustversions of the intersection, windingnumber, inside, and surface extremaroutines were implemented. The lighting routines were replaced by theOpenGL model. Each Asymptote process once again uses a separatecurrentpen. A segmentation fault and an incorrect parameter in theDelaunay triangulation routine were fixed. This major overhaul of thethree-dimensional graphics has necessitated a few backwardsincompatibilities.

New in Asymptote 1.43 (Jun 13, 2008)

  • A new array(n, value) function returns an array consisting of n copies of value. Conditional drawing of surfaces meshes was implemented. Vector field support was improved. Graph tick selection without autoscaling was improved. By default, all 2D axes are drawn below existing objects. An interface for drawing contours on arbitrary nonoverlapping meshes was added. Optional support for Jonathan Shewchuk's more robust triangulation routines was added. The file precision setting can now be queried. A beep() function was added. The partialsum function now returns an array of the same length as its argument (backwards incompatible). Dash offset and font selection bugs were fixed. Modules to redefine LaTeX named fontsizes for 10pt and 11pt article documentclasses were added. Problems in asy-mode.el were fixed. A problem with label alignment was fixed. The international inch is now used instead of the U.S. survey inch. The code now compiles cleanly under gcc-4.3.0.

New in Asymptote 1.42 (Feb 27, 2008)

  • A routine was added for projecting a Label onto a given plane;
  • an ambiguity in the three-dimensional scale routine was resolved.
  • An inside(path p, path q, pen fillrule=currentpen) routine was added to
  • determine if one path is strictly within another. Optional arrows were
  • added to the slopefield routines. The movie function now generates
  • multipage PDF animations when format="pdf" and global=true; a fit argument
  • was added to support an optional filled bounding box for each movie frame.
  • Casts were added between the hsv structure and pens. Bad casts from TeX
  • bidirectional pipe are now caught. In inline latex mode, TeX headers are
  • now output only when needed. A bug in the cancellation of text addition in
  • xasy was fixed. The sticky bit is no longer set when creating the ~/.asy
  • directory. The documentation and FAQ were updated.
  • The dot(real[] a, real[] b) routine now returns the dot product of the
  • vectors a and b; this introduced a backwards incompatibility:
  • dot(x,y) should now be replaced with dot(pairs(x,y)).