WikiDer > 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).

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