@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}.

It is also used in MediaWiki, the software behind Wikipedia and many 
other wikis out there. Dvipng is used to render mathematical formulae 
(in image mode) from version 1.8.0 of MediaWiki, see 
@url{http://www.mediawiki.org}.

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 Lesser General Public License
version 3, see the COPYING file in the dvipng distribution or
@url{http://www.gnu.org/licenses/}.

Copyright @copyright{} 2002-2014 Jan-@AA{}ke Larsson

@section Todo

@itemize @bullet
@item
Use gs interpreter library for speed and possibly for functionality.

@item
Add more color models for xcolor compatibility

@item
Enable a named pipe as DVI

@item
Further speed improvements.

@item
Other output specials and source specials.

@item
Clean internal structures. Overhaul file handling.

@item
Fix the SELFAUTO stuff at runtime rather than at build time
@end itemize


@end ifset
