LaTeX y compañía

Informacion sobre LaTeX y programas relacionados

19.11.03

Pies de figura sin figure

He actualizado mi artículo "Quiero mi figura aquí", para incluir información de cómo colocar un pie de figura (caption) fuera de un entorno figure. El método que explicaba antes no es tan bueno como el que recomiendo ahora: usar el paquete capt-of o el captdef
 
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.
 
 

Powered by Blogger