MetaPost

MetaPost мова програмування, схожа на мову програмування системи METAFONT, та єдина відома система, яка реалізує цю мову програмування. Призначенням мови та системи є створення технічних ілюстрацій для включення в документи. Основною відмінністю від METAFONT є те, що MetaPost видає файли у форматі Encapsulated PostScript, а не растрові зображення.

MetaPost
Парадигма Імперативне програмування і Декларативне програмування
Дата появи 1994
Система типізації качина типізація, динамічна типізація і строга типізаціяd
Під впливом від Metafont
Ліцензія GNU Lesser General Public License
 MetaPost у Вікісховищі

Призначення та застосування

MetaPost є потужною мовою програмування для підготовки ілюстрацій для документів конвертованих в формат PostScript, або для безпосереднього включення в LaTeX документи. Також, в системі є засоби для включення текстів програм TeX, або математичних виразів у форматі TeX в зображення.

Ще однією можливістю, запозиченою у METAFONT є наявність засобів розв'язання явно (символічно) заданих лінійних рівнянь, що створює умови для написання програм у декларативному стилі.

Хоча, як правило pdfTeX не здатен обробляти графічні файли у форматі PostScript, MetaPost створює настільки прості файли що pdfTeX може обробляти їх без зайвих проблем (використовуючи код, запозичений у ConTeXt).

Як стверджують самі розробники системи, найкраща галузь застосування MetaPost — підготовка різноманітних технічних та наукових ілюстрацій, зображень, які мають відповідати певним математичним рівнянням або правилам. Наприклад, зображення трикутника із наперед заданими кутами, або відображення стану машини Тюрінга.

Приклад роботи

Після обробки наведеного нижче тексту програми, MetaPost створить EPS файл, назва якого складатиметься із назви вихідного файлу, плюс аргумент макросу beginfig.

Отримане зображення після інтерпретації програми та растеризації.
beginfig(1);
  path p;
  p = (-1 cm,0)..(0,-1 cm)..(1 cm,0); 
  fill p{up}..(0,0){-1,-2}..{up}cycle;
  draw p..(0,1 cm)..cycle;
endfig;
end

Джерела інформації

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.