Jump to content

МетаПост

(Перенаправлено с МЕТАПОСТ )
МетаПост
Парадигма императив , набор текста
Разработано Джон Д. Хобби
Разработчик Тако Хукуотер, Луиджи Скарсо
Впервые появился 1994  ( 1994 )
Стабильная версия
1,8 / 17 июня 2013 г .; 11 лет назад ( 17.06.2013 )
Предварительный выпуск
2.0rc2 / 19 февраля 2018 г .; 6 лет назад ( 19 февраля 2018 )
Дисциплина набора текста утка , динамичная , сильная
ТЫ Кросс-платформенный
Лицензия LGPL
Веб-сайт парень .org /метапост
Под влиянием
Метафонт

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 поддерживает затенение по Гуро .

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

[ редактировать ]

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

Инкапсулированный постскриптум, созданный Metapost, может быть включен в документы LaTeX , ConTeXt и TeX с помощью стандартных команд включения графики. Инкапсулированный вывод postscript также можно использовать с движком PDFTeX , таким образом напрямую создавая PDF . Эта возможность реализована в ConTeXt и графическом пакете LaTeX и может использоваться из простого TeX через файл макроса supp-pdf.tex.

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

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

пример выходных данных
transform pagecoords;
pagecoords:=identity scaled 10mm shifted (100mm,150mm);
beginfig (1)
    fill ((0,0)--(2,0)--(2,1)--(1,1)--(1,2)--(0,2)--cycle)
        transformed pagecoords withcolor green;
    draw ((2,0)..(2,1)..(1,1)..(1,2)..(0,2))
        transformed pagecoords;
    drawarrow ((0,0)--(2,2)) transformed pagecoords;
endfig;
beginfig (2)
    draw (for i=0 upto 7: dir (135i)-- endfor cycle)
        transformed pagecoords;
endfig;
pagecoords:=identity scaled 15mm shifted (100mm,150mm);
beginfig (3);
    % declare paths to be used
    path p[],p[]t;
    % set up points by defining relationships
    z1=(0,0);   z2=z1+2up;
    z3=z1+whatever*dir (60)=z2+whatever*dir (-50);
    z4=z3+(-1.5,-.5);
    z5=z1+dir (135);
    z0=whatever[z1,z2]=whatever[z3,z4];
    % set up paths
    p0=fullcircle yscaled .5 rotated 45 shifted z0 ;
    p1=z2---z4..z0..z3---z1;
    p2=p1 cutbefore p0 cutafter p0;
    p3=p0 cutbefore p1 cutafter p1;
    p4=p2---p3---cycle;
    % define transformed versions of paths and points
    for i=0 upto 4: p[i]t=p[i] transformed pagecoords; endfor
    for i=0 upto 5: z[i]t=z[i] transformed pagecoords; endfor
    % do some drawing
    fill p4t withcolor (1,1,0.2);
    draw z1t---z2t withcolor .5white;
    draw z3t---z4t withcolor .5white;
    pickup pencircle;
    draw p0t dashed withdots scaled .3;
    draw p1t dashed evenly;
    draw p2t withcolor blue;
    draw p3t withcolor red;
    label.lrt (btex $z_0$ etex, z0t);
    label.llft (btex $z_1$ etex, z1t);
    label.top (btex $z_2$ etex, z2t);
    label.rt (btex $z_3$ etex, z3t);
    label.llft (btex $z_4$ etex, z4t);
    for i=0 upto 4:
        drawdot z[i]t withpen pencircle scaled 2;
    endfor
endfig;
bye

Полученные три файла eps можно использовать в TeX через LaTeX . \includegraphics , ConTeXt команда \externalfigure, Обычный TeX \epsfbox команду или (в формате Plain pdftex) \convertMPtoPDF команда от супп-pdf.tex . Для просмотра или печати третьей диаграммы это включение необходимо, так как шрифты TeX ( Computer Modern ) по умолчанию не включены в файлы eps, создаваемые MetaPost.

См. также

[ редактировать ]
  • Хаген, Ганс. «МетаФун» (модули для Метапоста).
  • Кнут, Дональд (1986). Книга МЕТАФОНТ . Компьютеры и набор текста . Том. К. Аддисон-Уэсли . ISBN  0-201-13444-6 .
  • «Комплексная сеть архивов T E ( CTAN ). Репозиторий исходного кода T E X и сотен дополнений и файлов стилей.
  • «(La)TeX Navigator предоставляет 305 простых примеров MetaPost» . Архивировано из оригинала 27 июля 2013 г. Проверено 17 ноября 2006 г.
  • Хукуотер, Тако (2006). «Развития MetaPost — осень 2006 г.» (PDF) . БУКСИР . 27 (1).
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 970e19a90170474ce25a17e90d134c69__1716642360
URL1:https://arc.ask3.ru/arc/aa/97/69/970e19a90170474ce25a17e90d134c69.html
Заголовок, (Title) документа по адресу, URL1:
MetaPost - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)