De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

MetaPost se refiere tanto a un lenguaje de programación como al intérprete del lenguaje de programación MetaPost. Ambos se derivan de Donald Knuth 's Metafont lenguaje e intérprete. MetaPost produce diagramas de 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,

  • Metafont está configurado para producir fuentes, en forma de archivos de imagen (en formato .gf) con archivos de métrica de fuente asociados (en formato .tfm), mientras que MetaPost produce archivos EPS , SVG o PNG .
  • La salida de Metafont consiste en las fuentes con una resolución fija en un formato basado en raster, mientras que la salida de MetaPost son gráficos basados ​​en vectores (líneas, curvas de Bézier )
  • La salida de Metafont es monocromática, mientras que MetaPost usa colores RGB o CMYK .
  • El lenguaje MetaPost puede incluir etiquetas de texto en los diagramas, ya sea cadenas de una fuente específica o cualquier otra cosa que se pueda componer con TeX .
  • A partir de la versión 1.8, Metapost permite aritmética de punto flotante con 64 bits (predeterminado: aritmética de punto fijo de 32 bits)

Muchas de las limitaciones de MetaPost se derivan de las características de Metafont. Por ejemplo, MetaPost no es compatible con todas las funciones de PostScript . En particular, las rutas pueden tener solo un segmento (de modo que las regiones simplemente se conectan ) y las regiones solo se pueden rellenar con colores uniformes. El nivel 1 de PostScript admite patrones en mosaico y PostScript 3 admite sombreado Gouraud .

Disponibilidad y uso

MetaPost se distribuye con muchas distribuciones del marco TeX y Metafont , por ejemplo, está incluido en las distribuciones MiKTeX y TeX Live .

La posdata encapsulada producida por Metapost se puede incluir en documentos LaTeX , ConTeXt y TeX mediante comandos de inclusión de gráficos estándar. La salida postscript encapsulada también se puede utilizar con el motor PDFTeX , generando PDF directamente . Esta capacidad se implementa en ConTeXt y en el paquete de gráficos LaTeX , y se puede usar desde TeX simple a través del 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 .

Ejemplos

Este es un solo archivo ejemplo.mpque cuando es procesado por el intérprete MetaPost (a través del comando mposten Linux ) produce tres archivos epsEjemplo 1, ejemplo 2, ejemplo 3. Estos se muestran a la derecha.

salidas de ejemplo
transformar  pagecoords ; pagecoords : = identidad  escalada  10 mm  desplazada  ( 100 mm , 150 mm ); beginfig  ( 1 )  fill  (( 0 , 0 ) - ( 2 , 0 ) - ( 2 , 1 ) - ( 1 , 1 ) - ( 1 , 2 ) - ( 0 , 2) - ciclo )  transformadas  pagecoords  withcolor  verde ;  dibujar  (( 2 , 0 ) .. ( 2 , 1 ) .. ( 1 , 1 ) .. ( 1 , 2 ) .. ( 0 , 2 ))  pagecoords transformados  ; drawarrow (( 0 , 0 ) - ( 2 , 2 )) pagecoords transformados ; endfig ; beginfig (     2 )  dibujar  ( para  i = 0  hasta  a  7 :  dir  ( 135 i ) -  endfor  ciclo )  transformadas  pagecoords ; endfig ; pagecoords : = identidad  escalada  15 mm  desplazada  ( 100 mm , 150 mm ); beginfig  ( 3 );  % declara las rutas que se utilizarán  ruta  p [], p [] t ; % de puntos de configuración definiendo relaciones  z1 = ( 0 , 0 );  z2 = z1 + 2 arriba ;  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 ];  % configurar rutas  p0 = fullcircle  yscaled  . 5  girado  45  desplazado  z0  ;  p1 = z2 --- z4 .. z0 .. z3 --- z1 ;  p2 = p1  cutbefore  p0  cutafter  p0 ;  p3 = p0  cutbefore  p1  cutafter  p1 ;  p4= p2 --- p3 --- ciclo ;  % Definir versiones de caminos y puntos transformados  para  i = 0  hasta  a  4 :  p [ i ] t = p [ i ]  transformadas  pagecoords ;  endfor  para  i = 0  hasta  a  5 :  z [ i ] t = z [ i ]  transformadas  pagecoords ;  fin de % Hacer algún dibujo  de relleno  P4T  withcolor  ( 1 , 1 , 0,2 );  dibujar  Z1t --- z2t  withcolor  . 5 blanco ;  dibujar  Z3T --- z4t  withcolor  . 5 blanco ;  círculo de recogida  ; dibujar P0T discontinua withdots escalados . 3 ; dibujar P1T discontinua uniformemente ; dibujar p2t withcolor azul ; dibujar                P3T  withcolor  rojo ;  etiqueta . lrt  ( btex $ z_0 $ etex ,  z0t );  etiqueta . llft  ( btex $ z_1 $ etex ,  z1t );  etiqueta . arriba  ( btex $ z_2 $ etex ,  z2t );  etiqueta . rt  ( btex $ z_3 $ etex ,  z3t );  etiqueta .llft  ( btex $ z_4 $ etex ,  z4t );  para  i = 0  hasta  a  4 :  drawdot  z [ i ] t  withpen  pencircle  escala  2 ;  endfor endfig ; adiós

Los tres archivos EPS resultantes se pueden utilizar en TeX a través de LaTeX 's \includegraphicsde mando, Contexto ' s \externalfigure, Plain TeX \epsfboxde comandos, o (a plena pdftex) el \convertMPtoPDFcomando desdesup-pdf.tex. Para 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 por defecto.

Ver también

Referencias

  • Hagen, Hans. "MetaFun" (módulos para Metapost).
  • Knuth, Donald (1986). El METAFONTbook . Informática y tipografía . C . Addison-Wesley . ISBN 0-201-13444-6.
  • " Red completa de archivos T E X" ( CTAN ). Repositorio de la fuente de T E X y cientos de complementos y archivos de estilo.
  • "(La) TeX Navigator proporciona 305 ejemplos simples de MetaPost" . Archivado desde el original el 27 de julio de 2013 . Consultado el 17 de noviembre de 2006 .
  • Hoekwater, Taco (2006). "Desarrollos de MetaPost — otoño de 2006" (PDF) . Remolcador . 27 (1).

Enlaces externos

  • El grupo de usuarios de TeX ( TUG ) http://www.tug.org/ tiene una página dedicada a MetaPost: http://www.tug.org/metapost.html
  • El desarrollo activo de MetaPost continúa en https://web.archive.org/web/20070929092912/http://foundry.supelec.fr/projects/metapost/
  • Functional MetaPost permite utilizar MetaPost desde el lenguaje de programación funcional Haskell
  • John D. Hobby tiene una página de inicio en https://web.archive.org/web/20131003040005/http://ect.bell-labs.com/who/hobby/index.shtml y algunas otras páginas y publicaciones dedicadas a MetaPost , aunque estos ahora están un poco anticuados
    • Página de inicio histórica de MetaPost: https://web.archive.org/web/20081212090123/http://ect.bell-labs.com/who/hobby/MetaPost.shtml
    • Un manual de usuario para MetaPost John D. Hobby. Disponible como un archivo mpman.ps distribuido con MetaPost, o en el sitio web de Bell Labs . También disponible en formato PDF de CTAN .
  • Vista previa de MetaPost en línea de Troy Henderson