Frequently Asked Question List for TeX


What is MetaPost?

The MetaPost system (by John Hobby) implements a picture-drawing language very much like that of MetaFont; the difference is that MetaPost outputs vector graphic files instead of run-length-encoded bitmaps; output formats available are PostScript and SVG.

Around 2007, MetaPost was separated into a frontend program and backend library named MPlib (which was then linked into LuaTeX) by Taco Hoekwater. This gives LuaTeX some graphical capabilities and forms an alternative to macro based drawing packages such as TikZ and PSTricks.

MetaPost is a powerful language for producing figures for documents to be printed on PostScript printers, either directly or embedded in (La)TeX documents. MetaPost is able to integrate text and mathematics, marked up for use with TeX, within the graphics. (Knuth says that he uses nothing but MetaPost for diagrams in text that he is writing.)

Although pdfLaTeX cannot ordinarily handle PostScript graphics, the output of MetaPost is sufficiently simple and regular that pdfLaTeX can handle it direct, using code borrowed from ConTeXt — see Graphics in pdfLaTeX.

Much of MetaPost’s source code was copied from MetaFont’s sources, with Knuth’s permission.

A mailing list discussing MetaPost is available; subscribe via the TUG mailman interface. The TUG website also hosts a MetaPost summary page, and the tex-overview document gives you a lot more detail (and some explanatory background material).

Last updated: 2018-05-28