martes, 2 de junio de 2009

HAL y la burocracia (VI)

Antes de dar un paso más en la elaboración de nuestro guión, conviene que el lector lo ponga a prueba, si no lo ha hecho ya por cuenta propia.

Creamos, para empezar un directorio informe_suspensos bajo nuestro subdirectorio de guiones:

mkdir ~/guiones/informe_suspensos

Conviene recordar los ficheros recién creados para nuestra prueba [en caso de que el lector no los haya creado todavía, deberá hacerlo ahora con cualquier editor de texto plano]:

  • informe_plantilla.tex (la plantilla para generar el fichero .tex por alumno [Añado un preámbulo adecuado, modifico ligeramente la sección correspondiente a los datos del alumno y suprimo la sección correspondiente a las propuestas, que ha quedado pendiente, como se recordará]):

    \usepackage[spanish]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{bera}
    \usepackage[usenames,dvipsnames]{color}
    \usepackage{framed}
    \usepackage{enumitem}

    \newenvironment{datosAlumno}%
    {\begin{framed}%
    \begin{center}%
    \begin{tabular*}{\textwidth}%
    {@{\extracolsep{\fill}}lr}}%
    {\end{tabular*}\end{center}\end{framed}}

    \newenvironment{Objetivos}%
    {\begin{framed}%
    \section*{Objetivos}%
    \end{framed}%
    \begin{framed}%
    \begin{itemize}[label=\fbox{\textcolor{white}{X}}]}%
    {\end{itemize}\end{framed}}

    \newenvironment{Contenidos}%
    {\begin{framed}%
    \section*{Contenidos}%
    \end{framed}%
    \begin{framed}%
    \begin{itemize}[label=\fbox{\textcolor{white}{X}}]}%
    {\end{itemize}\end{framed}}

    \newenvironment{Propuestas}%
    {\begin{framed}%
    \section*{Propuestas}%
    \end{framed}%
    \begin{framed}%
    \begin{itemize}}%
    {\end{itemize}\end{framed}}

    \begin{document}
    \begin{datosAlumno}
    Alumno: ALUMNO & CURSO
    \end{datosAlumno}
    \begin{Objetivos}
    OBJETIVOS
    \end{Objetivos}
    \begin{Contenidos}
    CONTENIDOS
    \end{Contenidos}

  • 1-ge-objetivos.tex (el fichero con los objetivos del curso 1-ge):

    \item Reconocer la diferencia entre los refranes y el buen decir.
    \item Adquirir el hábito del buen decir.
    \item Refrenar el hábito malsano del refraneo sin ton ni son.

  • 1-ge-minimos.tex: (el fichero con los contenidos mínimos del curso 1-ge):

    \item El refrán y sus muchos peligros.
    \item El decir del caballero versus el decir del bufón.
    \item Síntomas alarmantes de la verborrea refranil.

  • notas: (el fichero con las notas):

    Sancho-Panza:1-ge:3

  • generar_informes: (el guión propiamente dicho [Unimos lo que obtuvimos en el análisis de datos y en el esbozo del modelo simple, con las comillas corregidas]):

    # Directorio que contiene la programación del curso
    PROGRAMACION="$HOME/guiones/informe_suspensos"

    # Fichero que contiene la plantilla LaTeX del informe
    PLANTILLA=informe_plantilla.tex

    # Fichero que contiene las notas de los alumnos
    NOTAS=notas

    # Sufijo de los ficheros de objetivos por cursos
    OBJETIVOS=objetivos.tex

    # Sufijo de los ficheros de contenidos por cursos
    CONTENIDOS=minimos.tex

    # La nota mínima para aprobar el curso
    NOTA_MINIMA=5

    # El nombre del alumno y curso con el formato que tendrán en la salida impresa
    ALUMNO_OUTPUT=$(cut -d':' -f1 $NOTAS | sed -e 's/-/ /g')
    CURSO_OUTPUT=$(cut -d':' -f2 $NOTAS | sed -e 's/\([[:digit:]]*\)-\(.*\)/\1\.º \2/' \
    -e 's/ge/EE/' \
    -e 's/gm/EP/')


    sed -e "s/ALUMNO/$ALUMNO_OUTPUT/" \
    -e "s/CURSO/$CURSO_OUTPUT/" \
    -e 's/OBJETIVOS/\\input{1-ge-objetivos}/' \
    -e 's/CONTENIDOS/\\input{1-ge-minimos}/' $PLANTILLA > Sancho-Panza.tex

    pdflatex Sancho-Panza.tex

(Nótese que en este último fichero hemos modificado la variable PROGRAMACIÓN para que tenga en cuenta la nueva ubicación de nuestros ficheros de objetivos y mínimos, aunque no la vayamos a usar en las órdenes que hemos producido hasta ahora. También hemos añadido una línea al final, para que, al ejecutarse el guión, pdflatex procese el fichero .tex resultante de la orden sed que le precede.)

Todos estos ficheros deben estar ahora bajo el subdirectorio $HOME/guiones/informe_suspensos

Queda cambiar el modo del guión:

chmod u+x informe_suspensos

y ejecutarlo:

./informe_suspensos

El resultado, aparte de otros ficheros temporales generados por pdflatex, es el fichero Sancho-Panza.pdf, que, en un lector de pdfs como okular, se muestra con el siguiente aspecto:

2 comentarios:

  1. Esta serie sobre la burocracia me está haciendo replantearme mi forma de trabajar. Ya conocía y utilizaba LaTeX desde hace tiempo (algunos años, aunque muy poco y a veces con LyX), aunque el poder de los guiones puede simplificar mucho las tareas. Nunca me interesó aprender a crear guiones, porque pensaba que para lo que hacía sería mayor el coste que el beneficio, aunque ahora me lo replantée. Markdown me pareció algo utilísimo a la hora de realizar documentos cortos y sencillos, y ahora los guiones pueden ayudarme a simplificar tareas repetitivas.

    Enhorabuena por estas conversaciones.

    ResponderEliminar
  2. Me alegro, Juan, de que te animes en la escritura de guiones. Aunque parezca mentira, escribir un guión que funcione suele llevar bastante menos tiempo que realizar año tras año las mismas aburridas y repetitivas tareas. Y, además, es mucho más divertido :-)

    ResponderEliminar