Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
Paradigma | imperativo , tipografía |
---|---|
Diseñado por | Juan D. Hobby |
Revelador | Taco Hoekwater, Luigi Scarso |
Apareció por primera vez | 1994 ( 1994 ) |
Versión estable | 1.8 / 17 de junio de 2013 ( 17 de junio de 2013 ) |
Versión preliminar | 2.0rc2 / 19 de febrero de 2018 ( 19-02-2018 ) |
Disciplina de mecanografía | pato , dinámico , fuerte |
Sistema operativo | Multiplataforma |
Licencia | Licencia LGPL |
Sitio web | tug.org/metapost |
Influenciado por | |
Metafont |
MetaPost hace referencia tanto a un lenguaje de programación como al intérprete del lenguaje de programación MetaPost. Ambos se derivan del lenguaje e intérprete Metafont de Donald Knuth . MetaPost produce diagramas gráficos vectoriales a partir de una descripción geométrica/algebraica. El lenguaje comparte la sintaxis declarativa de Metafont para manipular líneas, curvas, puntos y transformaciones geométricas. Sin embargo,
Muchas de las limitaciones de MetaPost se derivan de las características de Metafont. Por ejemplo, MetaPost no es compatible con todas las características de PostScript . En particular, los trazados solo pueden tener un segmento (de modo que las regiones están simplemente conectadas ) y las regiones solo se pueden rellenar con colores uniformes. PostScript nivel 1 admite patrones en mosaico y PostScript 3 admite sombreado Gouraud .
MetaPost se distribuye con muchas distribuciones del framework TeX y Metafont, por ejemplo, está incluido en las distribuciones MiKTeX y TeX Live .
El postscript encapsulado producido por Metapost se puede incluir en documentos LaTeX , ConTeXt y TeX mediante comandos de inclusión de gráficos estándar. La salida del postscript encapsulado también se puede utilizar con el motor PDFTeX , lo que genera directamente PDF . Esta capacidad está implementada en ConTeXt y en el paquete de gráficos LaTeX, y se puede utilizar desde TeX simple mediante el archivo de macro supp-pdf.tex.
ConTeXt y LuaTeX admiten la inclusión de código MetaPost dentro del archivo de entrada. La inclusión de código MetaPost en LaTeX también es posible mediante el uso de paquetes LaTeX, por ejemplo gmp
o mpgraphics
.
Este es un solo archivoejemplo.mpque cuando es procesado por el intérprete de MetaPost (a través del comando mpost
en Linux ) produce tres archivos epsejemplo.1,ejemplo.2,ejemplo.3Estas se muestran a la derecha.
transformar pagecoords ; pagecoords := identidad escalada 10 mm desplazada ( 100 mm , 150 mm ); beginfig ( 1 ) rellenar (( 0 , 0 ) -- ( 2 , 0 ) -- ( 2 , 1 ) -- ( 1 , 1 ) -- ( 1 , 2 ) -- ( 0 , 2 ) -- ciclo ) transformar pagecoords concolor verde ; dibujar (( 2 , 0 ) ..( 2 , 1 ) ..( 1 , 1 ) ..( 1 , 2 ) ..( 0 , 2 )) transformar pagecoords ; dibujarflecha (( 0 , 0 ) -- ( 2 , 2 )) transformar pagecoords ; endfig ; beginfig ( 2 ) dibujar ( para i = 0 hasta 7 : dir ( 135 i ) -- fin del ciclo ) transformado pagecoords ; endfig ; pagecoords := identidad escalado 15 mm desplazado ( 100 mm , 150 mm ); beginfig ( 3 ); % declarar las rutas que se utilizarán path p [], p [] t ; % establecer puntos definiendo relaciones z1 =( 0 , 0 ); z2 = z1 + 2 up ; z3 = z1 + lo que sea * dir ( 60 )= z2 + lo que sea * dir ( - 50 ); z4 = z3 + ( - 1.5 , - . 5 ); z5 = z1 + dir ( 135 ); z0 = lo que sea [ z1 , z2 ] = lo que sea [ z3 , z4 ]; % establecer rutas p0 = círculo completo yscaled . 5 rotado 45 desplazado z0 ; p1 = z2 --- z4 .. z0 .. z3 --- z1 ; p2 = p1 cortar antes p0 cortar después p0 ; p3 = p0 cortar antes p1 cortar después p1 ; p4 = p2 --- p3 --- ciclo ; % definir versiones transformadas de rutas y puntos para i = 0 hasta 4 : p [ i ] t = p [ i ] transformadas pagecoords ; fin para i = 0 hasta 5 : z [ i ] t = z [ i ] transformadas pagecoords ; fin para % hacer un dibujo rellenar p4t concolor ( 1 , 1 , 0.2 ); dibujar z1t --- z2t concolor . 5 blanco ; dibujar z3t --- z4t concolor . 5 blanco ; recoger lápiz círculo ; dibujar p0t discontinuo conpuntos escalado . 3 ; dibujar p1t discontinuo uniformemente ; dibujar p2t concolor azul ; dibujar p3t concolor rojo; etiqueta . lrt ( btex $ z_0 $ etex , z0t ); etiqueta . llft ( btex $ z_1 $ etex , z1t ); etiqueta . top ( btex $ z_2 $ etex , z2t ); etiqueta . rt ( btex $ z_3 $ etex , z3t ); etiqueta . llft ( btex $ z_4 $ etex , z4t ); para i = 0 hasta 4 : dibujar punto z [ i ] t con pluma círculo de lápiz escalado 2 ; fin para fin de figura ; adiós
Los tres archivos eps resultantes se pueden usar en TeX mediante el comando de LaTeX\includegraphics
, el comando de ConTeXt\externalfigure
, el comando de Plain TeX \epsfbox
o (en Plain pdftex) el \convertMPtoPDF
comando deSupp-pdf.texPara ver o imprimir el tercer diagrama, esta inclusión es necesaria, ya que las fuentes TeX ( Computer Modern ) no están incluidas en los archivos eps producidos por MetaPost de forma predeterminada.