Введение

Язык программирования

MetaPost относится как к языку программирования, так и к интерпретатору языка программирования MetaPost. Оба они основаны на языке и интерпретаторе Metafont, разработанных Дональдом Кнутом. MetaPost генерирует векторные графические диаграммы на основе геометрического/алгебраического описания. Язык использует декларативный синтаксис Metafont для работы с линиями, кривыми, точками и геометрическими преобразованиями. Однако,

Metafont предназначен для создания шрифтов в виде файлов изображений (в формате gf) с соответствующими файлами метрик шрифта (в формате tfm), в то время как MetaPost генерирует файлы EPS, SVG или PNG. Вывод Metafont представляет собой шрифты с фиксированным разрешением в растровом формате, тогда как вывод MetaPost – векторную графику (линии, кривые Безье). Вывод Metafont монохромный, а MetaPost использует цвета RGB или CMYK. Язык MetaPost позволяет включать текстовые метки на диаграммах, используя строки из указанного шрифта или любой другой текст, который можно набрать с помощью TeX. Начиная с версии 1.8, Metapost поддерживает арифметику с плавающей точкой с 64 битами (по умолчанию: 32-битная арифметика с фиксированной точкой).

Многие ограничения MetaPost унаследованы от Metafont. Например, MetaPost не поддерживает все возможности PostScript. В частности, пути могут содержать только один сегмент (что обеспечивает просто связность областей), а области могут быть заполнены только однородными цветами. PostScript уровня 1 поддерживает текстурные заливки, а PostScript 3 – плавные градиенты Gouraud.

Доступность и использование

MetaPost распространяется вместе со многими дистрибутивами TeX и Metafont, например, он входит в состав MiKTeX и TeX Live. Инкапсулированный PostScript, генерируемый MetaPost, можно включать в документы LaTeX, ConTeXt и TeX с помощью стандартных команд для включения графики. Этот инкапсулированный PostScript также может использоваться с движком PDFTeX, что позволяет напрямую получать PDF. Эта возможность реализована в ConTeXt и пакете graphics для LaTeX, а также может быть использована из обычного TeX через макрофайл supp pdf.tex. ConTeXt и LuaTeX поддерживают включение кода MetaPost непосредственно в исходный файл. Включение кода MetaPost в LaTeX также возможно с помощью пакетов LaTeX, таких как gmp или mpgraphics.