Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Парадигма | повелительный , наборный |
---|---|
Разработано | Джон Д. Хобби |
Разработчик | Тако Хуквотер, Луиджи Скарсо |
Впервые появился | 1994 г. |
Стабильный выпуск | 1.8 / 17 июня 2013 г . |
Предварительный выпуск | 2.0rc2 / 19 февраля 2018 г . |
Печатная дисциплина | утка , динамичная , сильная |
Операционные системы | Кроссплатформенность |
Лицензия | LGPL |
Интернет сайт | буксир |
Под влиянием | |
Метафонт |
MetaPost относится как к языку программирования, так и к интерпретатору языка программирования MetaPost. Оба являются производными от Дональда Кнута «s метафонта языка и переводчика. MetaPost создает векторные графические диаграммы из геометрического / алгебраического описания. Акции языка Metafont декларативный синтаксис «s для манипулирующих линий, кривых, точек и геометрических преобразований. Тем не мение,
- 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 framework, например, он включен в дистрибутивы 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. Они изображены справа.
преобразовать координаты страниц ; pagecoords : = идентичность масштабируется 10 мм сдвинуты ( 100 мм , 150 мм ); beginfig ( 1 ) fill (( 0 , 0 ) - ( 2 , 0 ) - ( 2 , 1 ) - ( 1 , 1 ) - ( 1 , 2 ) - ( 0 , 2)) - цикл ) преобразованные страницы с зеленым цветом ; draw (( 2 , 0 ) .. ( 2 , 1 ) .. ( 1 , 1 ) .. ( 1 , 2 ) .. ( 0 , 2 )) преобразованные координаты страниц ; drawarrow (( 0 , 0 ) - ( 2 , 2 )) преобразованные координаты страниц ; endfig ; beginfig (2 ) нарисовать ( для i = 0 до 7 : dir ( 135 i ) - endfor цикла ) преобразованные координаты страниц ; endfig ; pagecoords : = идентичность масштабируется 15 мм сдвинуты ( 100 мм , 150 мм ); beginfig ( 3 ); % объявить используемые пути path p [], p [] t ; % установить точки путем определения отношений z1 = ( 0 , 0 ); z2 = z1 + 2 вверх ; z3 = z1 + любой * dir ( 60 ) = z2 + любой * dir ( - 50 ); z4 = z3 + ( - 1,5 , - . 5 ); z5 = z1 + dir ( 135 ); z0 =любой [ z1 , z2 ] = любой [ z3 , z4 ]; % настроенных путей p0 = fullcircle yscaled . 5 повернуты на 45 смещены z0 ; p1 = z2 --- z4 .. z0 .. z3 --- z1 ; p2 = p1 вырезано до p0 вырезано после p0 ; p3 = p0 обрезать до p1 вырезать после p1 ; p4= p2 --- p3 --- цикл ; % определяют преобразованные версии путей и точек от i = 0 до 4 : p [ i ] t = p [ i ] преобразованные координаты страниц ; endfor для i = 0 до 5 : z [ i ] t = z [ i ] преобразованные координаты страницы ; endfor % рисовать заполните p4t цветом ( 1 , 1 , 0.2 ); рисовать z1t --- z2t с цветом . 5 белых ; рисовать z3t --- z4t с цветом . 5 белых ; круг пикапа ; нарисовать p0t пунктиром с масштабированными точками . 3 ; нарисуйте p1t пунктиром равномерно ; нарисуйте p2t синим цветом ; рисовать p3t цвет красный ; этикетка . LRT ( БТЭК $ 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 ); для i = 0 до 4 : точка рисования z [ i ] t с открытым карандашом, масштабируемая в 2 раза ; endfor endfig ; до свидания
В результате три EPS - файлы могут быть использованы в TeX с помощью LaTeX 's \includegraphics
команды, КОНТЕКСТ -х \externalfigure
, Plain TeX по \epsfbox
команде, или (в простом Pdftex) в \convertMPtoPDF
команде сsupp-pdf.tex. Это включение необходимо для просмотра или печати третьей диаграммы, поскольку шрифты TeX ( Computer Modern ) по умолчанию не включаются в файлы eps, создаваемые MetaPost.
См. Также [ править ]
- PSTricks
- PGF / TikZ
- Метафонт
- МЕТАТИП1
- Асимптота
Ссылки [ править ]
- Хаген, Ганс. «MetaFun» (модули для Metapost).
- Кнут, Дональд (1986). METAFONTbook . Компьютеры и набор текста . C . Эддисон-Уэсли . ISBN 0-201-13444-6.
- «Комплексная сеть архивов T E X» ( CTAN ). Репозиторий исходников T E X и сотни надстроек и файлов стилей.
- «(La) TeX Navigator предоставляет 305 простых примеров MetaPost» . Архивировано из оригинала на 2013-07-27 . Проверено 17 ноября 2006 .
- Хукуотер, Тако (2006). «События MetaPost - осень 2006» (PDF) . ТУГбоат . 27 (1).
Внешние ссылки [ править ]
- Группа пользователей TeX ( TUG ) http://www.tug.org/ имеет страницу, посвященную MetaPost: http://www.tug.org/metapost.html
- Активная разработка MetaPost продолжается по адресу https://web.archive.org/web/20070929092912/http://foundry.supelec.fr/projects/metapost/
- Функциональный MetaPost позволяет использовать MetaPost из функционального языка программирования Haskell.
- У Джона Д. Хобби есть домашняя страница https://web.archive.org/web/20131003040005/http://ect.bell-labs.com/who/hobby/index.shtml, а также некоторые другие страницы и публикации, посвященные MetaPost. , хотя сейчас они немного устарели
- Историческая домашняя страница MetaPost: https://web.archive.org/web/20081212090123/http://ect.bell-labs.com/who/hobby/MetaPost.shtml
- Руководство пользователя MetaPost Джон Д. Хобби. Доступен в виде файла mpman.ps, распространяемого с MetaPost, или с веб-сайта Bell Labs . Также доступен в формате PDF от CTAN .
- Онлайн-просмотрщик MetaPost Троя Хендерсона