MetaPost - MetaPost

MetaPost
MPlogo.svg
Парадигмаимператив, наборный
РазработаноДжон Д. Хобби
РазработчикТако Хуквотер, Луиджи Скарсо
Впервые появился1994 (1994)
Стабильный выпуск
1.8 / 17 июня 2013; 7 лет назад (2013-06-17)
Предварительный выпуск
2.0rc2 / 19 февраля 2018; 2 года назад (2018-02-19)
Печатная дисциплинаутка, динамичный, сильный
Операционные системыКроссплатформенность
ЛицензияLGPL
Интернет сайтбуксир.org/ метапост
Под влиянием
Метафонт

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

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

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

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

MetaPost распространяется со многими дистрибутивами TeX и Метафонт framework, например, он включен в MiKTeX и TeX Live раздачи.

Инкапсулированный постскриптум, созданный Metapost, может быть включен в Латекс, КОНТЕКСТ, и TeX документы с помощью стандартных команд включения графики. Инкапсулированный вывод PostScript также можно использовать с PDFTeX двигатель, таким образом непосредственно давая PDF. Эта возможность реализована в КОНТЕКСТ и в Латекс графический пакет и может использоваться из обычного TeX через файл макроса supp-pdf.tex.

ConTeXt и LuaTeX поддерживает включение кода MetaPost во входной файл. Включение кода MetaPost в LaTeX возможно также с помощью LaTeX-пакетов, например gmp или же mpgraphics.

Примеры

Это один файл example.mp который при обработке интерпретатором MetaPost (через команду mpost на Linux ) создает три файла eps пример.1, пример 2, пример 3. Они изображены справа.

примеры выходов
преобразовать pagecoords;pagecoords:=личность масштабированный 10мм сдвинут (100мм,150мм);beginfig (1)    наполнять ((0,0)--(2,0)--(2,1)--(1,1)--(1,2)--(0,2)--цикл)        преобразованный pagecoords с цветом зеленый;    рисовать ((2,0)..(2,1)..(1,1)..(1,2)..(0,2))        преобразованный pagecoords;    стрелка ((0,0)--(2,2)) преобразованный pagecoords;конец;beginfig (2)    рисовать (за я=0 вплоть до 7: реж (135я)-- конец цикл)        преобразованный pagecoords;конец;pagecoords:=личность масштабированный 15мм сдвинут (100мм,150мм);beginfig (3);    % объявить пути, которые будут использоваться    дорожка п[],п[]т;    % установить точки путем определения отношений    z1=(0,0);   z2=z1+2вверх;    z3=z1+что бы ни*реж (60)=z2+что бы ни*реж (-50);    z4=z3+(-1.5,-.5);    z5=z1+реж (135);    z0=что бы ни[z1,z2]=что бы ни[z3,z4];    % настроить пути    p0=полный круг масштабированный .5 повернутый 45 сдвинут z0 ;    p1=z2---z4..z0..z3---z1;    p2=p1 отрезать перед p0 отрезанный p0;    p3=p0 отрезать перед p1 отрезанный p1;    p4=p2---p3---цикл;    % определить преобразованные версии путей и точек    за я=0 вплоть до 4: п[я]т=п[я] преобразованный pagecoords; конец    за я=0 вплоть до 5: z[я]т=z[я] преобразованный pagecoords; конец    % рисовать    наполнять p4t с цветом (1,1,0.2);    рисовать z1t---z2t с цветом .5белый;    рисовать z3t---z4t с цветом .5белый;    подбирать карандаш;    рисовать p0t пунктирная с точками масштабированный .3;    рисовать p1t пунктирная равномерно;    рисовать p2t с цветом синий;    рисовать p3t с цветом красный;    метка.lrt (btex $z_0$ etex, z0t);    метка.llft (btex $z_1$ etex, z1t);    метка.верх (btex $z_2$ etex, z2t);    метка.rt (btex $z_3$ etex, z3t);    метка.llft (btex $z_4$ etex, z4t);    за я=0 вплоть до 4:        розыгрыш z[я]т закрытый карандаш масштабированный 2;    конецконец;до свидания

Полученные три файла eps можно использовать в TeX через Латекс с includegraphics команда КОНТЕКСТ с externalfigure, Обычный TeX's epsfbox команда или (в обычном pdftex) convertMPtoPDF команда от supp-pdf.tex. Чтобы просмотреть или распечатать третью диаграмму, это включение необходимо, поскольку шрифты TeX (Компьютер Модерн ) по умолчанию не включаются в файлы eps, создаваемые MetaPost.

Смотрите также

Рекомендации

  • Хаген, Ганс. «МетаФан» (модули для Metapost).
  • Кнут, Дональд (1986). В МЕТАФОНТбук. Компьютеры и набор текста. C. Эддисон-Уэсли. ISBN  0-201-13444-6.
  • "Комплексный ТEX Archive Network " (CTAN ). Репозиторий TEX, а также сотни надстроек и файлов стилей.
  • "(La) TeX Navigator предоставляет 305 простых примеров MetaPost". Архивировано из оригинал на 2013-07-27. Получено 2006-11-17.
  • Хукуотер, Тако (2006). «События MetaPost - осень 2006» (PDF). ТУГбоат. 27 (1).

внешняя ссылка