На цій сторінці показано неперевірені зміни
MetaPost | |
---|---|
![]() | |
Парадигма | імперативне програмування і декларативне програмування ![]() |
Дата появи | 1994 ![]() |
Система типізації | качина типізація, динамічна типізація[d] і строга типізація ![]() |
Під впливом від | Metafont ![]() |
Мова реалізації | C ![]() |
Ліцензія | GNU Lesser General Public License ![]() |
MetaPost —мова програмування, схожа на мову програмування системиMETAFONT, та єдина відома система, яка реалізує цюмову програмування. Призначенням мови та системи є створення технічних ілюстрацій для включення в документи. Основною відмінністю відMETAFONT є те, що MetaPost видає файли у форматіEncapsulated PostScript, а не растрові зображення.
MetaPost є потужною мовою програмування для підготовки ілюстрацій для документів конвертованих в форматPostScript, або для безпосереднього включення вLaTeX документи. Також, в системі є засоби для включення текстів програмTeX, або математичних виразів у форматіTeX в зображення.
Ще однією можливістю, запозиченою уMETAFONT є наявність засобів розв'язання явно (символічно) заданихлінійних рівнянь, що створює умови для написання програм у декларативному стилі.
Хоча, як правилоpdfTeX[en] не здатен обробляти графічні файли у форматіPostScript, MetaPost створює настільки прості файли що pdfTeX може обробляти їх без зайвих проблем (використовуючи код, запозичений уConTeXt[en]).
Як стверджують самі розробники системи, найкраща галузь застосування MetaPost — підготовка різноманітних технічних та наукових ілюстрацій, зображень, які мають відповідати певним математичним рівнянням або правилам. Наприклад, зображеннятрикутника із наперед заданими кутами, або відображення станумашини Тюрінга.
Після обробки наведеного нижче тексту програми, MetaPost створитьEPS файл, назва якого складатиметься із назви вихідного файлу, плюс аргумент макросаbeginfig.
beginfig(1);pathp;p = (-1 cm,0)..(0,-1 cm)..(1 cm,0);fillp{up}..(0,0){-1,-2}..{up}cycle;drawp..(0,1 cm)..cycle;endfig;end