2013/3/18 Jordi Burguet Castell <jordi.burguet.castell@xxxxxxxxx> > Buenas! > > De poner a parir nada, qué forma más chula de sacar presentaciones > resultonas y semiautomáticas! > > Como he visto aparecer a gnuplot, al que he sufrido muchos años, no me > he podido resistir a hacer una alternativa con matplotlib, de quien > estoy enamorado... > Efectivamente, con matplotlib quedan más resultonas. Yo lo uso para presentaciones "de enseñar fuera", y dejo gnuplot para las internas / periódicas, que no sé dónde se va a ejecutar, y en la imagen base que instalamos en los servidores va gnuplot pero no matplotlib. > > Requisitos: > apt-get install latex-beamer python-matplotlib > > De paso hay cambios mínimos, como usar tildes y ñ directamente, que > hace tiempo que se puede. Ya, pero entre llevaba años sin usar tildes en latex, y en el linux no tenía cargado el idioma, y.... vamos, que soy vago y me era más rápido :) Y he metido todo en presentacion.tex para no > ir con here-documents o similares. Así se edita con sintax > highlighting más mona, hay menos ficheros intermedios y nimiedades así > (que van según gustos!). Sí, eso ya va a depender de cómo lo uses. En mi caso el uso principal es sacar estadísticas de simulaciones, y como prefiero hacerlo genérico para que me valga en varias situaciones, el "fichero" final tiene más partes que diapositivas. MIA++ > Pero sobre todo, matplotlib hace plots muy > monos en dos patadas, mucho más configurables y con una calidad que ya > le gustaría al gnuplot. > > Ahí va compartida mi versionilla, con lo que he podido aprender de > Mia++ más los bugs que yo haya metido. > > J. > > > > 2013/3/18 Mia++ <mhiper3+list.bofhers@xxxxxxxxx>: > > Greetings, Earthlings!! > > > > TL;DR: Adjunto va un script ejemplo de llamadas a gnuplot y uso de Beamer > > > > Hace unos días hablando por twitter de los maravillosos poderes de awk y > > grep se me ocurrió mencionar (nunca aprenderé) que yo tengo scripts que > me > > generan presentaciones automáticamente. En aproximadamente 2.1 segundos > > alguien me tomó la palabra y exigió pruebas. > > > > Así que, con retraso para buscar un ejemplo sencillito, aquí va un > ejemplo. > > En el tgz adjunto están los ficheros "de usuario" necesarios para el > > ejemplo: > > - Un access_log de apache "limpio" de IPs y contenido real (sólo vamos > a > > user el código HTTP y el tamaño de la respuesta). > > - Dos ficheros de latex que usaremos de cabecera y como contenido de la > > presentación generado fuera del script. > > - Un fichero logo.png que usaremos como logo corporativo (obtenido de > > > http://meta.serverfault.com/questions/3368/bofh-gravatar-week-lets-keep-going > ). > > - Un script the bash que nos generará la presentación. > > > > El script está hecho y probado en CentOS 6.3. Aunque no lo he probado en > > otras distros, los scripts "reales" que uso funcionan en Fedoras, > Debians, > > Archs y cygwins con ajustes mínimos. > > > > DISCLAIMER: Esto es un ejemplo. Hay muchas cosas hechas de forma > ineficiente > > y sucia, y probablemente un mono borracho lo haría mejor. El problema es > que > > el último mono borracho que tuve me dejó por otro. > > > > VERSIÓN CORTA (para impacientes) > > =========================== > > - Necesitaréis latex, Beamer y pdflatex > > - Ejecutando el script > > - Se crearán gráficas a partir del log de apache usando gnuplot. > > - Se generarán dos ficheros "dinámicos" de latex para incluir esas > > gráficas en la presentación > > - Se creará la presentación final en PDF con el nombre main.pdf > > > > VERSIÓN LARGA: > > ============== > > - Necesitaréis latex, Beamer y pdflatex > > - Ejecutando el script > > - Se crearán gráficas a partir del log de apache usando gnuplot. > > - Se generarán dos ficheros "dinámicos" de latex para incluir esas > > gráficas en la presentación > > - Se creará la presentación final en PDF con el nombre main.pdf > > > > No, en serio. El script no es complicado. Lo que hace es: > > - Parsear el log de apache para generar los ficheros de datos para > > gnuplot. > > - Generar el fichero con los comandos de gnuplot de forma dinámica. > Para > > cosas rutinarias es más fácil crear el fichero a mano y simplemente > > invocarlo. Si se van a tener rangos de ejes, etiquetas, títulos,etc... > > dinámicos, aquí va un ejemplo de cómo hacerlo. > > - Genera un fichero de latex para cada imagen generada. > > - Genera un fichero de latex que invoca a los ficheros .tex estáticos > que > > van en el adjunto y los dinámicos que hemos generado. > > - Invoca a "pdflatex" para generar la presentación. > > > > > > PREGUNTAS MÁS FRECUENTES > > ========================= > > "He visto que al final de script....." > > No, no es un error. Hay que llamar a pdflatex dos veces. Si usas > latex > > ya sabes por qué. Si no, te da igual. > > > > "Esto es una mierda y no funciona en la realidad" > > A lo primero no lo puedo poner remedio. En cuanto a lo de usarlo > en la > > realidad, totalmente de acuerdo. Para hacer un ejemplo autocontenido ha > > habido que haber varias pirulas (como lo de generar los ficheros de > gnuplot > > dinámicamente (éso sólo lo uso cuando no sé cuántas imágenes voy a > generar; > > por ejemplo, cuando volcamos logs de aplicaciones a un servidor para > generar > > las gráficas y no sé de antemano cuántas hay). > > La otra cosa que cambia mucho del ejemplo a la realidad es cómo > > generar el contenido "texto" de la presentación. El objetivo del script > no > > es evitarme poner el texto, sino el generar los ficheros de datos (csv o > lo > > que sean), pasarlos a un windows, generar las gráficas, pegarlas en > > powerpoint, pegarme 2 horas con powerpoint porque las está colocando > como le > > da la gana y luego volver a pasar el ppt al servidor web y mandar el > correo > > a todo el mundo. > > Con eso claro, antes de lanzar el script edito a mano un fichero > .tex > > con el contenido de texto de cada sección y los pongo en un directorio. > > También creo en otro directorio un fichero de texto por cada imagen con > el > > texto que irá en la diapositiva de la imagen correspondiente. El script > lo > > que realmente hace es generar un main.tex que carga la cabecera (siempre > la > > misma), carga todos los .tex que ya he creado, y pone las diapositivas > con > > las imágenes (y el texto correspondiente) en la sección que les toca. > > Jugando con la nomenclatura de los ficheros (pista: el nombre del > fichero es > > la sección en la que va) es muy fácil. > > De esta forma una vez creo los .tex con el texto, sólo con > ejecutar el > > script me genera el PDF, lo sube al servidor y manda el correo de aviso a > > todo el mundo. > > > > "Esta presentación es una basura. No tiene efectos, ni animaciones ni > > sonidos..." > > Lo siento, Mario, pero tu princesa está en otro Sistema Operativo. > > > > > > "Podías haber hecho todo el primer comando en el mismo awk" / "Con > Latex > > es mejor usar eps, no png" / "Tienes faltas de ortografía" / "Se escribe > > LaTeX" > > Sí, ¿y? > > > > "Me da un error al ejecutar el script, con el comando XXX" > > Es posible. Si dices qué error, se mirará a ver qué se puede hacer. > > > > "Me da un error al ejecutar pdflatex" > > La vida es dura. Y con Latex, aún más. Prueba usando "latex" en > vez > > de pdflatex y mira a ver si el dvi resultante se ve bien. Si no, que > $DEITY > > tenga piedad de ti. > > > > Hala, ya podéis ponerme a parir. > > > > > > MIA++ > > >