MetaPost: Язык векторной графики на основе Metafont
MetaPost
MetaPost: язык программирования для создания векторной графики. Основан на Metafont, генерирует EPS, SVG, PNG. Отличия от Metafont: цвет, векторный формат.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Язык программирования
Programming language
MetaPost относится как к языку программирования, так и к интерпретатору языка программирования MetaPost. Оба они основаны на языке и интерпретаторе Metafont, разработанных Дональдом Кнутом. MetaPost генерирует векторные графические диаграммы на основе геометрического/алгебраического описания. Язык использует декларативный синтаксис Metafont для работы с линиями, кривыми, точками и геометрическими преобразованиями. Однако,
MetaPost refers to both a programming language and the interpreter of the MetaPost programming language. Both are derived from Donald Knuth's Metafont language and interpreter. MetaPost produces vector graphic diagrams from a geometric/algebraic description. The language shares Metafont's declarative syntax for manipulating lines, curves, points and geometric transformations. However,
Metafont предназначен для создания шрифтов в виде файлов изображений (в формате gf) с соответствующими файлами метрик шрифта (в формате tfm), в то время как MetaPost генерирует файлы EPS, SVG или PNG. Вывод Metafont представляет собой шрифты с фиксированным разрешением в растровом формате, тогда как вывод MetaPost – векторную графику (линии, кривые Безье). Вывод Metafont монохромный, а MetaPost использует цвета RGB или CMYK. Язык MetaPost позволяет включать текстовые метки на диаграммах, используя строки из указанного шрифта или любой другой текст, который можно набрать с помощью TeX. Начиная с версии 1.8, Metapost поддерживает арифметику с плавающей точкой с 64 битами (по умолчанию: 32-битная арифметика с фиксированной точкой).
Metafont is set up to produce fonts, in the form of image files (in gf format) with associated font metric files (in tfm format), whereas MetaPost produces EPS, SVG, or PNG files
The output of Metafont consists of the fonts at a fixed resolution in a raster based format, whereas MetaPost's output is vector based graphics (lines, Bézier curves)
Metafont output is monochrome, whereas MetaPost uses RGB or CMYK colors. The MetaPost language can include text labels on the diagrams, either strings from a specified font, or anything else that can be typeset with TeX. Starting with version 1.8, Metapost allows floating point arithmetic with 64 bits (default: 32 bit fixed point arithmetic)
Многие ограничения MetaPost унаследованы от Metafont. Например, MetaPost не поддерживает все возможности PostScript. В частности, пути могут содержать только один сегмент (что обеспечивает просто связность областей), а области могут быть заполнены только однородными цветами. PostScript уровня 1 поддерживает текстурные заливки, а PostScript 3 – плавные градиенты Gouraud.
Many of the limitations of MetaPost derive from features of Metafont. For instance, MetaPost does not support all features of PostScript. Most notably, paths can have only one segment (so that regions are simply connected), and regions can be filled only with uniform colours. PostScript level 1 supports tiled patterns and PostScript 3 supports Gouraud shading.
Доступность и использование
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.
MetaPost is distributed with many distributions of the TeX and Metafont framework, for example, it is included in the MiKTeX and the TeX Live distributions. The encapsulated postscript produced by Metapost can be included in LaTeX, ConTeXt, and TeX documents via standard graphics inclusion commands. The encapsulated postscript output can also be used with the PDFTeX engine, thus directly giving PDF. This ability is implemented in ConTeXt and in the LaTeX graphics package, and can be used from plain TeX via the supp pdf. tex macro file. ConTeXt and LuaTeX supports the inclusion of MetaPost code within the input file. Inclusion of MetaPost code in LaTeX is also possible by using LaTeX packages, for example gmp or mpgraphics.