Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 Троя Хендерсона