viernes, 8 de noviembre de 2013

Insertar Graficos de Excel a Latex con alta calidad

Primero antes que nada tienen que saber como guardar una imagen en formato .eps esto se realiza a través de una impresora virtual, abajo se muestra como instalar una impresora virtual o si desean solo pueden instalar:

  •  (clic en la ultima versión, por ahora va por 9.10 y escoger  32 o 64 bits )
  •   (escoger 32 o 64 bits)


Que es el formato  .eps?
Los archivos eps son archivos PostCript encapsulados que mantienen la información de una imagen con mayor información de los colores, y curvas en los vectores.

Los archivos eps son los favoritos para descargar vectores de internet, pues al estar en ese formato sirven como vectores para Corel y vectores para Illustrator en cualquiera que sus versiones.

Para ver el post completo : http://ltx.blogspot.com/2003/11/cmo-crear-figuras-eps-desde-windows.html

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.
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!
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.

Bueno aunque en el blog de arriba da una solución para corregir el bug del BoundingBox a mi no me funciono y aunque intentara muchas veces no me salio, así que la otra manera para solucionar este problema es:
1) Abrir el archivo .eps con el GSView 

2)Aquí tenemos dos opciones ,primero si no se ve la imagen completa tratar de que encaje cambiando el formato de hoja o las dimensiones, la cosas es tratar de buscar que la imagen se vea completa aunque este en una hoja mas grande de lo normal.

3) lo siguiente sera posicionarse con el mouse en una de las esquinas de la imagen y tomar las coordenadas que se indican seran (x1 , Y1) luego irse al otro extremo opuesto arriba y tomar las otras coordenadas (x2 , Y2)

4)Teniendo estas coordenadas, las anotamos en un papel o algo, luego abrimos el archivo .eps con el notepapd, el cual se abrirá y veremos todo el código de la imagen, buscaremos al inicio donde dice %%BoundingBox: 12 45 51 23 que apaareceran 4 numeros al costado, los que puse aquí son arbitrarios, puse cualquiera, en el de uds les aparecerá otros, borraran esos números y copiaran las coordenadas que copiaron en el papel, luego dan guardar y cierran el notepad.

5)Vuelven a abrir el archivo con el GSView y vera que la imagen esta bien encuadrada (y) y listo ahora solo quedar insertarlo en latex. Abrimos nuestro Texmaker y con el siguiente código basta, damos en  compilar y veremos  la gráfica de excel con la mejor calidad que puedan conseguir :D



El código para colocar la imagen .eps es: 

\documentclass{article} \usepackage{graphicx} \usepackage{epstopdf}
\begin{document}
\begin{figure}[!th] \centering \includegraphics[width=1\textwidth]{mi_imagen.eps} \caption{Mi Figura1} \label{fig:ejemplo1} \end{figure}
\end{document}


8 comentarios:

  1. Que tal si haces un tutorial con Calc en lugar de Excel. Gracias.

    ResponderEliminar
    Respuestas
    1. hola que tal, este metodo sirve para cualquier imagen .eps lo unico que tienes que hacer es imprimir el archivo o imagen con la impresora virtual asi podras conseguir el archivo en formato .eps luego ya lo editas con los pasos que menciono aqui, lo puedes usar con excel, calc, incluso imprimir los planos de autocad etc...

      Eliminar
  2. no me funciona aun haciendo lo del video
    mi problema es que antes de cambiar las coordenadas la imagen se compila bien y al cambiar los datos de las coordenadas ya no y no aparce

    ResponderEliminar
    Respuestas
    1. quizas estas poniendo mal las coordenadas, copia bien las coordenadas y al editarlas con el notepad vuelvelo a abrir con el gsview si puedes ver la iamgen recortada entonces al compilarla tambien la podras verla

      Eliminar
  3. una consulta.. cuando abro en el gsview la grafico de excel, es mas grande que la misma hoja del gsview como hago para reducir su tamaño de la grafica para ver completo la grafica en gsview

    ResponderEliminar
  4. una consulta, cuando esta la grafica en el gsview, se ve que los numeros de los ejes x como y son de color cafe, y no asi de color negro. en el video vi que se transforma completo, pero de mi se convirtio en color cafe.

    ResponderEliminar
  5. eso se debe a la impresora virtual que estes usando, utiliza creando una impresora virtual de apple o usa el del gsview, no recuerdo muy bien pero una de ellas imprime de color cafe pero la otra imprime tal cual los colores reales

    ResponderEliminar
  6. Hola Jr Aguirre, que tal? quiero hacerte 2 preguntas. La primera: A pesar de que tengo instalada la version full 32bit de miktex, no sale el "paquete epstopdf", ¿como instalo ese paquete (o cualquier paquete)? he tratado de hacerlo pero no puedo. La segunda: leí que para usar tal "paquete epstopdf" debo habilitar "shell escape" lo cual tampoco lo he logrado, entonces ahora la pregunta es ¿como habilito shell escape en latex?. Segui tu tutorial y logre instalar la impresora virtual.... gracias por la ayuda.

    ResponderEliminar