@c readme.texi
@c
@c Part of the dvipng distribution
@ifclear man
@include macros.texi
@ifset rawfile
@chapter dvipng
@end ifset
@end ifclear
@c -----------------------
This program makes PNG and/or GIF graphics from DVI files as obtained from @TeX{} and its relatives.
If GIF support is enabled, GIF output is chosen by using the @samp{dvigif} binary or with the @samp{--gif} option.
@ifclear man
It is intended to produce anti-aliased screen-resolution images as fast as is possible. The target audience is people who need to generate and regenerate many images again and again. The primary target is the @previewlatex{} (X)Emacs package, a package to preview formulas from within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs buffer, see @url{http://www.gnu.org/software/auctex/preview-latex.html}.
Another example is WeBWorK, an internet-based method for delivering homework problems to students over the internet, giving students instant feedback as to whether or not their answers are correct, see @url{http://webwork.math.rochester.edu}.
Other applications may also benefit, like web applications as latex2html and WYSIWYG editors like LyX.
@ifset rawfile
@section Benefits of dvipng
@end ifset
@end ifclear
The benefits of @samp{dvipng}/@samp{dvigif} include
@itemize @bullet
@item
Speed. It is a very fast bitmap-rendering code for DVI files, which
makes it suitable for generating large amounts of images on-the-fly,
as needed in @previewlatex{}, WeBWorK and others.
@item
It does not read the postamble, so it can be started before @TeX{}
finishes. There is a @samp{--follow} switch that makes dvipng wait at
end-of-file for further output, unless it finds the POST marker that
indicates the end of the DVI.
@item
Interactive query of options. dvipng can read options interactively
through stdin, and all options are usable. It is even possible to change
the input file through this interface.
@item
Supports PK, VF, PostScript Type1, and TrueType fonts, subfonts (i.e.,
as used in CJK-@LaTeX{}), color specials, and inclusion of PostScript,
PNG, JPEG or GIF images.
@item
and more...
@end itemize
@ifset rawfile
@section Installation
Read @file{INSTALL}, included in the distribution.
@section Usage
To use dvipng at its simplest, simply type
@example
dvipng foo
@end example
@noindent
where @file{foo.dvi} is the output of @TeX{} that you want to convert to
PNG format. If there are four pages in @file{foo.dvi}, those pages will
be output as @file{foo1.png}, @file{foo2.png}, @file{foo3.png}, and
@file{foo4.png}, respectively.
Many options are available (see the info manual). For a brief summary of available options, just type
@example
dvipng --help
@end example
@section Availability
The dvipng package is available at Savannah, the GNU project site. Since
dvipng is not part of the GNU project, although released under the GNU
GPL, the web address is
@url{http://savannah.nongnu.org/projects/dvipng}. Instructions for
anonymous CVS access can be found at
@url{http://savannah.nongnu.org/cvs/?group=dvipng}.
@section Contacts
Bug reports should be sent to
@email{dvipng@@nongnu.org}.
Questions, suggestions for new features, pleas for help, and/or praise should go to @email{dvipng@@nongnu.org}. For more information on this mailing list, send a message with just the word `help' as subject or body to @email{dvipng-request@@nongnu.org} or look at @url{http://lists.nongnu.org/mailman/listinfo/dvipng}.
Offers to support further development will be appreciated. For developer access, ask on @email{dvipng@@nongnu.org}.
@section Copying
This program is released under the GNU General Public License, see the COPYING file in the dvipng distribution or @url{http://www.gnu.org/licenses/gpl.html}.
Copyright @copyright{} 2002-2006 Jan-@AA{}ke Larsson
@section Todo
@itemize @bullet
@item
Fix T1lib and PK rendering so it is on par with Freetype.
@item
Further speed improvements.
@item
Other output specials and source specials.
@item
Clean internal structures. Overhaul file handling.
@end itemize
@end ifset
