December 19, 2002

TransFig is a set of tools for creating TeX documents with graphics
which are portable, in the sense that they can be printed in a wide
variety of environments.

TransFig 3.2.4 is available from ftp://epb.lbl.gov/xfig and www.xfig.org and usually
from any CTAN (Comprehensive TeX Archive Network) site such as
ftp://ftp.cdrom.com/pub/tex/ctan/.
See http://math.nmu.edu/Web/TeXArchives/ctansite.html for a long list of CTAN sites.

Be sure to set binary mode when transferring.

************************************************************************
NOTE:
The tar files are a Linux/Unix source to be compiled with any competent C compiler.
The rpm files are for any Linux system that uses the RedHat Package Manager.

There is a port of xfig for the MacIntosh running Darwin (the MacIntosh
port of XFree86). See http://fink.sourceforge.net/pdb/package.php/xfig
There is a version of xfig which will run under Windows, but still needs
an X server (e.g. Hummingbird Exceed, or Cygwin http://www.cygwin.com/xfree/)
to run.  The URL is:
http://aquarius.franken.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-links.html
Another is: http://www.cs.usask.ca/grads/wew036/latex/xfig.html
************************************************************************

The transfig directory contains the source for the transfig command
which generates a Makefile which translates Fig code to various graphics
description languages using the fig2dev program.  In previous releases,
this command was implemented as a shell script.

The fig2dev directory contains the fig2dev program for translating from Fig code
to other graphics desciption languages.  The dev subdirectory contains a
library of output drivers used by fig2dev.

Drivers currently exist for the following graphics langauges:
AutoCad slide, BOX, (E)EPIC macros, LaTeX picture environment,
Encapsulated Postscript (with or without ASCII or TIFF (binary) previews), GIF,
IBM-GL (HPGL), EMF (Enhanced Metafile), JPEG, MF (METAFONT), MP & MMP (MetaPost
and Multi-MetaPost), PCX, PIC, PiCTeX, PNG, PostScript, SVG (scalable vector
graphics), TeXtyl, TIFF, TK (tcl/tk), TPIC, XBM (X11 Bitmap), and XPM (X11 Pixmap).

I have taken over the maintenance of TransFig from Micah Beck so please send any
bug notices, fixes, contributions etc to me at [email protected].

- Brian V. Smith
- Lawrence Berkeley Laboratory

Changes to Transfig/fig2dev for version 3.2.4:

NEW FEATURES
       o SVG (Scalable Vector Graphics) driver from Anthony Starks, modified
         by Brian Smith and greatly enhanced by Martin Kroeker
       o ASCII and Binary (TIFF) preview bitmap options for PostScript and EPS
         export.  The latter is useful for Microsoft products which require a
         TIFF preview to display EPS on the screen. Use -A for ASCII preview,
         use -C for color TIFF or -T for monochrome TIFF preview.  These all
         require ghostscript to work.  If you don't have ghostscript, the
         export will continue without a preview.
       o JPEG encoding (DCT) now used for EPS/PostScript output. This greatly
         reduces the size of the generated PostScript.  Gleaned with permission
         from jpeg2ps program written by Thomas Merz.
         As a result of this, the jpeg library is no longer needed, although xfig
         still needs it for JPEG support.
       o Background (-g) option for tk export honored now
       o Additional JPEG file format (EXIF) added. These usually come from
         digital cameras.
       o -N Option to convert colors to grayscale on export.
       o -b option for CGM export to produce binary CGM using ralcgm. You must,
         of course have ralcgm installed on your system to use this.
       o Translations of LATEX.AND.XFIG document into two popular Chinese
         encodings (GB2312 and Big5).  These are called LATEX.AND.XFIG.zh_CN
         and LATEX.AND.XFIG.zh_TW respectively.
         From Mendel Chan
       o The default for multi-page output (PostScript) is to NOT overlap pages
         now.  This is to allow multiple, independent pages of figures.
         The -O option has been added to force page overlap, e.g. to cut and
         paste pages together to make posters (the original use for multipage).
       o Added EMF (Enhanced MetaFile) conversion genemf.c
         from Mike Schrick (based on the CGM driver from Philippe Bekaert
       o New grid option (-G) to draw grid on page.  Specify minor and/or major
         tick spacing in one of several units.  For example, "-G .25:1cm" draws
         a thin, gray line every .25 cm and a thicker gray line every 1 cm.
         Specifying "-G 1in" draws a thin line every 1 inch.  See man pages for
         all units.  Fractions may be used, e.g. -G 1/16:1/2in will make a thin
         line every 1/16 (0.0625) inch and a thick line every 1/2 (0.5) inch.
         Only implemented in PostScript, EPS, PDF, and bitmap (GIF, JPEG, etc)
         drivers for now.
       o Perk/Tk driver from Slaven Rezic ([email protected])
       o Added options -B and -R to the EPS driver. This enables the user to
         clip out a region for display in the EPS file. Very convenient when
         using xfig via pstoedit as a postprocessor of ps files and one wants
         to maintain the preview of the file in lyx. See the man for additional
         information.  From Morten S. Nielsen <[email protected]>
       o New PostScript DSC directives to specify page size.  Doesn't select
         tray, which is device dependent, but works better with ghostscript,
         ghostview and other PostScript interpreters.
       o fig2dev now includes all "special" (LaTeX) texts that don't have any
         backslashes ("\") in them in the bounding box.
       o genepic and genpictex drivers updated for I18N (internationalization)
         From T. Sato
       o Glyphs for Hungarian, Polish, Romanian, Slovak and Slovenian
         are essentially the same as Czech (ISO-Latin 2) so symbolic links are
         created for those .ps files (hu_HU.ps, pl_PL.ps, ro_RO.ps, sk_SK.ps
         and sl_SI.ps are linked to cs_CZ.ps)
       o fig2dev prepends any path included in the .fig filename to imported
         image file paths (only if imported image path isn't already absolute).
       o transfig now reports when it is renaming an existing makefile or TeX
         macro file to a backup (e.g. Makefile to Makefile~)
       o now uses Thomas Merz' jpeg2ps for imported jpeg files when exporting
         to PS/EPS.  This is much more compact than the runlength encoding
         which is used for other bitmaps.  Many thanks to Thomas for his
         permission to use jpeg2ps.
       o New option for binary CGM export. The ralcgm program is required for
         this option.  See ftp://ftp.cc.rl.ac.uk/pub/graphics/ralcgm/
       o New -E option to set encoding for pictex, latex, pstex_t and epic
         text to ISO8859-1 (the default) or ISO8859-2
       o Added "install.all" option to make to install man pages in addition to
         executables etc.
       o If output file ends in ".fig", fig2dev prints error message to stderr
         and exits.
       o New encoding option (-E) for ISO-8859-1 or ISO-8859-2 from Tomas Kopal
       o Exporting to tk now supports imported PPM images in addition to GIF
         and XPM
       o Comments added to EPS and PostScript output so MetaPost can group parts of
         figure according to depths.  From Klaus Guntermann.
       o New -F, -R and -t options for epic output (do "fig2dev -h" for info).
         From Gabriel Zachmann.

BUGS FIXED
       o When importing multiple GIF or PCX images, fig2dev would segfault on
         Linux.  This happened for two reasons: the GIF file was closed and
         reopened, which would result in a different file structure being
         closed by the calling routine, and a palette was being allocated for
         the PCX image and never used.
       o In multi-page mode for PDF export, figure was shifted up too far.
       o The color gold was in the wrong place for LaTeX special text.
       o Various extraneous variables removed
       o In multipage mode (PostScript export), if the figure is smaller than
         0.1 page, nothing was generated or printed.
       o When exporting to EPS, the multipage flag was not cleared after
         reading the file (options are set before reading file).
       o Bug in the -D option (export or exclude certain depths) where it
         wouldn't accept 0 as a depth specifier.
       o Extra "char *c" definition in fig2dev/dev/readeps.c
       o Possible data type problem with result of floor() in readeps.c - now
         coerced with (int)
       o fig2dev would sometimes emit the "transparentimage" for JPEG images
         (it's only for GIF with a transparent color)
       o Minor adjustment made in tk driver which fixes problem where objects
         extend beyond the canvas, when the objects are very far away from the
         origin (50 inches or more)
       o Line join was not explicitely set to "miter" and line cap was not set
         to "butt" explicitely at the beginning.  This caused problems if the
         figure was imported into another figure because settings from
         importing document were used
       o PNGINC Imakefile variable wasn't used
       o Minimum length (MIN_LEN) for "LaTeX short lines" was calculated
         incorrectly (was using 13 pixels instead of 13 points as per Lamport)
         Also, actual length of line was compared instead of horizontal
         component (or vertical component for vertical lines)
         Fixed by Jacques Lefrere
       o The lines in three patterns: 45 degrees left, 45 degrees right and
         45 degrees crosshatch were too close together compared to the xfig
         (on-screen) version
       o Pagesize may have been one pixel too small when exporting to PDF
       o Text font sizes for latex, pic and tpic output were incorrectly scaled
         for metric Fig files (their units are points, not inches or cm)
       o Added "&& !defined(__CYGWIN__) && !defined(__DARWIN__)" to declaration
         of sys_errlist[], errno and sys_nerr.  The __DARWIN__ is for Mac OSX
         using X.
       o Font size was incorrect for CGM output when exporting Fig 2.x files
       o Bug introduced in 3.2.3d shifted rotated imported pictures
       o Missing % from \end{picture} in generated latex code. This caused bad
         extra spacing when the generated file is \input into a minipage or a
         framebox, for instance.
         Fix from Matthias Koeppe
       o Not really a bug, but the text() proc in fig2dev/dev/gengcm.c was
         renamed to cgm_text because of a bug in IBM's compiler which turns
         text() into a .text assembler directive
       o Options (fig2dev -h) incorrectly had "-p name" for pstex options
         instead of pstex_t
       o Updated language options in transfig to current set in fig2dev
       o Incorrect adjustment of scale and canvas offset for tk and ptk
         (perl/tk) export
       o In the PIC driver, the macro PICFONTMAG should return int, but was
         returning double, which then trashed following arguments to fprintf.
       o Extraneous semi-colon (;) after closing brace } and/or empty default
         case (no trailing semi-colon) causes HP ANSI compiler to complain
       o Moved landscape rotation of page and Y-flip scaling inside
         %%BeginPageSetup %%EndPageSetup block according to DSC, which says
         that page orientation code should be there.
       o ANSI style prototype for rgb2luminance did not match proc declaration
       o When a compound object included lines that have arrowheads and large
         coordinates (>= 100000), an incorrect bounding box was produced.
         This same bug was in xfig 3.2.3d and earlier.
       o Output file was being closed twice in CGM and PDF driver, causing
         segfault on some systems.
       o In the eepic driver, the thickness of a line may be incorrect if it a
         has backward arrowhead of different thickness.