There are many packages to do pictures in (La)TeX itself (rather than
importing graphics created externally), ranging from simple use of
picture environment, through enhancements like
sophisticated (but slow) drawing with PicTeX. Depending on your type
of drawing, and setup, here are a few systems you may consider:
pictureenvironment provides rather primitive drawing capabilities (anything requiring more than linear calculations is excluded, unless a font can come to your help). The environment’s tedious insistence on its own
\unitlength, as the basic measurement in a diagram, may be avoided by use of the
picturepackage, which detects whether a length is quoted as a number or as a length, and acts accordingly.
epicwas designed to make use of the LaTeX
pictureenvironment somewhat less agonising;
eepicextends it, and is capable of using
\specialcommands to improve printing performance. (If the
\specials aren’t available, the
eepicemuwill do the business, far less efficiently.
pict2e; this was advertised in the LaTeX manual, but didn’t appear for nearly ten years after publication of the book! It removes all the petty restrictions that surround the use of the
pictureenvironment. It therefore suffers only from the rather eccentric drawing language of the environment, and is a far more useful tool than the original environment has ever been. (Note that
pict2esupersedes David Carlisle’s stop-gap
PSTricks gives you access to the (considerable) power of
PostScript via a set of TeX macros, which talk to PostScript using
\special commands. Since PostScript is itself a
pretty powerful programming language, many astounding things can in
principle be achieved using
PSTricks (a wide range of
contributed packages, ranging from world mapping to lens design
diagrams, is available).
by default specific to
dvips, but there is
Pstricks “driver” that allow
operate under XeTeX. pdfTeX users may use
epstopdf — see
pdfLaTeX graphics) generates
PDF files using an auxiliary program, from
pst-pdf also requires a recent installation of
pstricksis very powerful and convenient from “traditional” TeX, using it with pdfLaTeX is pretty tiresome: if you simply want the graphical capabilities,
pgf, together with its “user-oriented” interface
tikz, may be a good bet for you. While PDF has (in essence) the same graphical capabilities as PostScript, it isn’t programmable;
pgfprovides LaTeX commands that will utilise the graphical capabilities of both PostScript and PDF equally.
Pgfhas extensive mathematical support, which allows it to rival
PSTricks’ use of the computation engine within PostScript. The
pgfmanual is enormous, but a simple introduction which allows the user to get a feel for the capabilities of the system, is available at http://cremeronline.com/LaTeX/minimaltikz.pdf
MetaPost; you liked MetaFont, but never got to grips with font files? Try MetaPost — all the power of MetaFont, but it generates PostScript figures; MetaPost is nowadays part of most serious (La)TeX distributions. Knuth uses it for all his work…
Note that you can “embed” MetaPost source in your document (i.e., keep it in-line with your LaTeX code).
Mfpicmakes up MetaFont or MetaPost code for you using familiar-looking (La)TeX macros. Not quite the full power of MetaFont or MetaPost, but a friendlier interface, and with MetaPost output the results can be used equally well in either LaTeX or pdfLaTeX.
dratex: it is just as powerful, but is an entirely new implementation which is not as hard on memory, is much more readable, as well as in the author’s book “TeX and LaTeX: Drawing and Literate Programming”, which remains available from on-line booksellers.
In addition, there are several means of generating code for your
graphics application (
MetaPost, at least) in-line in your document, and then have them
processed in a command spawned from your (La)TeX run. For details,
FAQ ID: Q-drawing