LaTeX y compañía

Informacion sobre LaTeX y programas relacionados

11.11.03

Cómo crear figuras EPS desde Windows

Esta es una pregunta que se me hace muy a menudo. Y como la respuesta es larga, he decidido escribirla aquí de una vez por todas. La pregunta puede aparecer bajo formas diversas, siendo una de las más frecuentes ¿Cómo puedo incluir una gráfica Excel en LaTeX?

Tanto si se trata de una gráfica Excel como de cualquier otra gráfica generada con cualquier programa Windows, el procedimiento es el mismo (si bien la gráfica Excel a menudo presenta un problema particular que comentaré más adelante). Se trata de tener instalado un controlador de impresora PostScript (aunque no tengamos ninguna impresora real), y utilizar ese controlador para "imprimir a fichero". De este modo, el código que se enviaría a la impresora (PS) queda almacenado en un fichero que podrá ser usado como figura en LaTeX. Por desgracia, todos los controladores de impresora de windows que he podido probar (incluso los "oficiales" de Adobe) generan EPS malo, que requiere ser retocado posteriormente. Paso a describir el proceso.

  1. Instalar impresora PS. Supondré que tienes instalado Windows XP. En otras versiones de Windows el proceso es análogo.
    1. Ve a "Inicio->Configuracion->Impresoras y faxes" y añade una impresora nueva. Elige "Impresora conectada a este equipo", y cuando te pregunte el puerto al que está conectada, elige FILE: (imprimir a un archivo) En el modelo de impresora elige Apple Color LaserWriter 12/600. En realidad cualquier impresora PostScript sirve, pero yo siempre he usado esa y nunca he tenido problemas, así que ¿para qué cambiar? Finalmente ¡no la pongas como impresora predeterminada!
    2. Una vez instalada la impresora, desde el panel de gestión de impresoras pulsa en la nueva con el botón derecho y elige "Propiedades". En la ventana que sale, en la pestaña "General" hay un botón que dice "Preferencias de Impresión". Púlsalo, y en la ventana que sale, pulsa en "Opciones Avanzadas". Esto abrirá una ventana nueva en el que se nos presenta una vista como de "árbol" con las opciones de la impresora. En la rama llamada "Opciones de documento", hay una rama llamada "Opciones Postscript", y en ella una opción llamada "Opción de salida postscript", a la que por defecto windows le ha dado el valor "Optimizar para velocidad". Debes cambiar eso por "Postscript Encapsulado (EPS)".

  2. Generar el fichero PS. Ve a tu aplicación de dibujo favorita. Haz la figura y cuando la tengas lista, imprímela. Cuando te salga el diálogo de impresión, elige la impresora Apple que hemos instalado en el paso anterior, y dale a imprimir. En ese momento te pedirá un nombre para el fichero que va a generar. Dale el nombre que prefieras, y recuerda en qué carpeta lo has guardado. En unos segundos Windows habrá terminado la impresión, y en el fichero que has especificado tendrás la figura en formato EPS (si bien algunas versiones de windows insisten en ponerle al fichero una extensión .prn, sus contenidos son EPS, por lo que puedes renombrarlo sin problemas). Si los controladores no tuviesen bugs, aquí se terminaría la historia y el EPS resultante podría ser usado como figura en LaTeX. Por desgracia los controladores de windows tienen un importante bug, y es que no generan un BoundingBox correcto.

    El BoundingBox es un rectángulo que indica qué parte de la página es la que contiene realmente el dibujo. Para LaTeX esta información es importante, ya que calculará el espacio que ocupa la figura según su BoundingBox. Pero Windows incorrectamente hace el BoundingBox igual a la página completa, por lo que es necesario un paso adicional para arreglarlo.

  3. Arreglando el BoundingBox. Para este paso necesitas la aplicación Ghostview, pero si estás tratando de insertar figuras EPS en LaTeX seguro que ya la tienes ¿verdad?. Basta que abras con ghostview el fichero que hemos generado en el paso anterior, y que elijas en el menú "File" la opción "PS to EPS". Esto te creará un nuevo fichero que (al menos en teoría) ya tendrá el BoundingBox correcto. Para verificarlo puedes visualizarlo en el ghostview, activando la opción "Show BoundingBox", que te dibujará un rectángulo punteado alrededor del BoundingBox. Si este rectángulo incluye ajustadamente tu figura, todo está correcto. Ya puedes incluir este EPS en un documento LaTeX. Si vas a procesarlo con PDFlatex, debes convertirlo antes en PDF, lo cual también puede hacerse desde ghostview

  4. Otras consideraciones. Si el gráfico que intentas convertir ha sido creado con Excel, pueden aparecer problemas adicionales debidos a la propia aplicación Excel, ya que si se selecciona un gráfico en esta aplicación y se manda imprimir, el resultado muchas veces es incorrecto (zonas sin dibujar, zonas negras...), por lo que su conversión a PS también será incorrecta. La única solución que conozco a este bug consiste en copiar el gráfico desde Excel y pegarlo en otra aplicación (Word, por ejemplo), desde la cual se podrá imprimir ya sin problemas.

    Por otro lado, existe un programa (shareware) llamado wmf2eps que es de ayuda si tienes que hacer muchos gráficos. Habrás comprobado que el método anterior de imprimir a fichero, renombrar resultado, abrirlo en ghostview y volver a guardarlo como EPS, puede resultar tedioso. El programa wmf2eps simplifica el proceso al permitirte seleccionar el gráfico en tu aplicación, "Copiarlo" y "Pegarlo" en el programa wmf2eps. Una vez allí pegado, pulsando un botón será convertido a EPS. En realidad este programa se limita a imprimir el gráfico a una impresora tipo PS (que por tanto debes tener instalada de todas formas), y seguidamente arreglar el BoundingBox.

Espero que esta información sea de ayuda a alguien. Si encuentras algún problema al tratar de seguir estos pasos o tienes dudas, deja un comentario en este blog.

Comentarios:

  1. Hola Jose, la verdad que he tenido problemas para insertar graficas en latex (winedt), ya que al seguir sus pasos, por ultimo al mirar el bounding box, este me aparece igual de grande a la pagina y en su comentario no dice nada de que es lo que hay que hacer si el bounding box todavia es mas grande que la grafica, le agradezco me ayuda lo mas pronto que pueda. gracias
     
  2. No entiendo muy bien tu problema. ¿Se trata de que el BoundingBox es mayor que el tamaño de la página? Creo que este caso también lo arregla Ghostview de la misma forma, es decir, eligiendo la opción "PS to EPS".

    Si no fuera el caso, la única solución que se me ocurre es que desde tu herramienta de dibujo reduzcas el tamaño del mismo hasta que quepa en la página, antes de generar el PS.
     
  3. saludos:

    Excelente el consejo, me ha funcionado muy bien. Eso sí, bien engorroso hacer todo el proceso cada vez, lo malo es que no se puede evitar aunque uses WMF2EPS ya que éste sólo sirve para TIFF o vectorizados. La única duda que me queda es: puedo alcanzar una resolución mayor de los 600 dpi?

    Saludos reiterados
     
  4. Hola, primero agradecerte porque segui tus pasos y me sirvio lo malo es que ahora pa compilar en latex primero tengo que pasarlo a dvi y despues a pdf, he leido mucho (por eso llegue hasta aca) y con \includegraphics en el entorno figure deberia salir lo malo es que a mi no y lo otro como puedo usar las fuentes ams de teoria de grupos (es decir lois signos de grupo normal, contenido y todo eso) necesito un paquete adicional?
    cual es? probe con \usepackage{fonts} y no me sale.
    eso no mas si pudieras resolverme estod puntos te estare muy agradecido.
    Enrique.
     
  5. Gracias José, tu información me ha servido para poder incluir imágenes en mis informes (programo sobre linux en un lenguaje del cuaternario). Solo me queda un problema, solo puedo incluir una imagen por hoja porque me provoca un salto de página. ¿como puedo solucionar esto?

    Saludos y gracias.
     
  6. hola, necesito que alguien me colabore pues no se como importar graficas por ejemplo de word a latex, como hago donde las guardos no tendo ni idea
     
  7. Jose tengo un problema yo creo mi imagen en Adobe Photoshop cs2 he seguido tus consejos al momento de compilar me sale error cannot determine size in ....eps (no bounding box )siempre me sale ese error me podrias ayudar=? t estare muy agradecido
     
  8. Si usas Photoshop para crear las imágenes, obtendrás mapas de bits en lugar de gráficos vectoriales. En este caso el camino que mejores resultados te dará consiste en guardar la imagen en formato jpg y despues convertirla a EPS con ayuda del programa jpeg2ps (http://www.ctan.org/tex-archive/nonfree/support/jpeg2ps/) o bmeps (http://bmeps.sourceforge.net/)
    Cualquiera de estas dos herramientas crearán cun eps con el bounding box correcto y además sin incrementar apenas el tamaño del fichero con respecto al que ocupa el jpg.
     
  9. hola jose : siguiendo tus pasos para instalar una impresora para crear eps me a funcionado y muy bien.
    pero tengo un inconveniente que las figuras eps que salen la impresora me salen inversas .. aún no se como solucionarlo .. bueno todo sale bien hasta que veo la figurita y esta a la inversa..¿ sera algun problema con la impresora? .. espero me ayudes con ese problema gracias .. atte carlos
     
  10. ¿A qué te refieres con "inversas"? ¿Aparecen giradas 180 grados (o sea "boca abajo")? ¿O como reflejadas en un espejo? ¿O te refieres a los colores invertidos, como en un negativo fotográfico? Esa imagen inversa ¿la ves al visualizar el EPS con Ghostview o sólo después de incluirlo en el documento LaTeX? Y si es en éste último caso ¿con qué lo visualizas? ¿Directamente el dvi o lo pasas a PS con dvips y después lo ves con Ghostview?

    En realdiad, no sé cuál podría ser la causa de este tipo de resultado (en ninguno de los casos anteriores), pero sí puedo decirte que al menos los dos primeros tendrían fácil solución desde LaTeX, sin más que poner opciones apropiadas en el includegraphics (rotar la figura al incluirla o cambiarle la escala X ó Y por -1 para reflejarla). Mírate la documentación de graphicx.
     
  11. Hola, me llamo Fernando y tengo un problema con Latex.
    Tengo gráficas hecas en excel que he pasado a ps con el ghosview, al pasarlas a pdf aparecen todas cortadas y no se que hacer, la verdad es que es muy urgente teneis idea de como corregir esto.
    Gracias.
     
  12. Hola, me llamo Daniel, recién me inicio con Latex y tengo un problema al insertar una figura. Cuando la inserto, me aparece en la parte superior del gráfico la ubicación del archivo (C:/.../../nombre.extensión)
    Cómo hago para que no me aparezca eso?
    Gracias.
     
  13. Excelente explicacion!! felicitaciones que bueno encotrar estas cosas por internet
     
  14. Hola.
    Mi impresora es una HP Deskjet F2100, y no me aparece la opción "Opciones Postscript".
    ¿Qué puedo hacer?

    Gracias.
     
  15. Naldo, independiemente de cuál sea realmente tu impresora, debes instalar una impresora adicional, que tenga opciones Postscript (por ejemplo, la Apple Color Laserjet Writer, como menciono en el blog). No importa que tu impresora real sea otra, ya que esta impresora postscript la usarás sólo para "imprimir a fichero" y de este modo generar el archivo postscript que necesitas.
     
  16. Jose,
    Yo tenía problemas al tratar de importar de convertir un archivo de Excel y lo pude resolver muy fácilmente con tu explicación. ¡Gracias!
     
  17. La verdad que te pasaste con el Post... llevo días tratando de que los fonts se vean bien y solo lo conseguí gracias a tu publicación
     
  18. Hola fijate que tengo un problema, como lo mencionas la impresora me guarde el archivo como Archivo PRN mencionas que solamente reenombarndo el archivo se vuelve EPS, la verdad es que al renombrarlo no me ha funcionado, ojala me puedas echar la mano y ayudarme poquito en esto.
     
  19. Ya pude resolver mi problema.

    Gracias por este Post
     
  20. necesito saber mas sobre Cómo crear figuras EPS desde Windows
     
  21. perfecto tu articulo gracias
     
  22. gracias por tu articulo Cómo crear figuras EPS desde Windows
    http://comunicaciones-bill.blogspot.com/
     
  23. Hola!!!
    Ya intente todo lo que dijiste con respecto a las imagenes, pero cada vez que intento insertarlas me sale la ruta del archivo, en vez de la imagen no se por que sucede esto y me gustaría encontrar el problema y solucionarlo, tienes alguna idea?
     
  24. Edward, posiblemente tu documento tiene puesta la opción [draft], o alguno de los paquetes que usas activa esta opción. Quítala y las figuras deberían aparecer
     
  25. Hola José, mira he intentado de diversas formas y he seguido los pasos que indicas al detalle, sin embargo, siempre me aparece este error cuando quiero abrir el archivo (bien generado) en GSview: (Failed to load gsdll32.dll, error 126
    No se puede encontrar el módulo especificado.
    Can't load Ghostscript DLL). Te agradecería mucho si pudieras ayudarme en conocer que falla. Saludos
     
  26. Eso de que no te carga una DLL es un error de instalación de ghostview. Prueba a instalarlo otra vez.
     
  27. José, tengo un graaan problema, estoy aprendiendo por mi cuenta el latex y quedé con una gran duda cunado hablas de ghostview ?¿debo instalarlo?¿como? está en el Window .....no sé....Agradecida
     
  28. @Betsabé Ghostview es una interfaz gráfica para ghostscript, el cual a su vez es un intérprete del lenguaje PostScript.

    Cuando no existía aún el PDF, PostScript (PS) era muy común para intercambiarse documentos "para imprimir". El problema es que sólo era posible imprimirlos en una impresora PostScript.

    El programa Ghostscript te permitía imprimirlos en cualquier impresora. El interfaz Ghostview te permitía además verlos en pantalla en lugar de imprimirlos.

    Ni ghotscript ni ghostview vienen instalados con Windows, pero puedes descargarlos desde http://pages.cs.wisc.edu/~ghost/

    Ten en cuenta que la implementación de GhostView para Windows se llama GSView.
     
  29. Que pasa cuando el gráfico de excel no coincide con los bordes del "boounding box"?? No hallo como cambiar el tamaño del bounding o arreglar que ambos queden encuadrados de algun modo... Mil gracias!
     
  30. UAMERO, siempre se puede arreglar el bounding box "a mano". Para ello tienes que usar ghostscript y mover el cursor del ratón hasta la esquina inferior izquierda de lo que sería tu bounding box, y tomar nota de las coordenadas de ese punto dentro de la página (te las da ghostscript). Llamémoslas (X1,Y1).

    Después mueves el ratón a la esquina superior derecha de lo qu sería tu bounding box y tomas nota de las coordenadas de ese otro punto, llamémoslas (X2,Y2).

    Finalmente, con un editor de texto como por ejemplo Notepad++, abres el archivo EPS y verás que al principio contiene una línea que dice:

    %%BoundingBox:

    seguido de cuatro números. Sustituye esos cuatro números por los que has averiguado antes, en orden X1 Y1 X2 Y2 y después guarda el fichero.

    Al abrirlo de nuevo desde ghostview ya deberías ver el bounding box correcto, y lo mismo al incluirlo en latex.
     
  31. Gracias!
     
  32. Gracias!
     
  33. genioo locooo esto si que me salvooo ahora si puedoo poner los grficos de excel en latex con calidad :D, ya sabia como guardar en .eps con la impresora pero lo que me retumbaba la cabeza ahce semana era como corregir el bug sobre boudingbox siempre me salia mal con la hoja completa o la mitad de la imagen uff tantas cosas era muy dificil evitarloo pero ahora :D con lo que explicaste sobre editar el codigo con el notepad y poner las coodernadas que queremos (bueno las coordenadas que copiamos de la imagen vista en el GSview)funcionooo!! de lujooo ahora siii cualqueir iamgennn :D graciasss por todooo
     
  34. Me interesa tener la posibilidad de usar mucho la computadora y por eso esta bueno disfrutar de ello. Cada vez que tengo la posibilidad de hacer ocio uso la pc o sino me divierto con el pes 2013
     
Publicar un comentario en la entrada
 
 

Powered by Blogger