%* % * Header.py Implementa un mini lenguaje de bloques para crear % * cabeceras con fancyhdr % * % * Copyright (C) Manuel Gutierrez Algaba, 2000 % * % * This program is free software% you can redistribute it and/or modif %y % * it under the terms of the GNU General Public License as published b %y % * the Free Software Foundation% either version 2 of the License, or % * (at your option) any later version. % * % * This program is distributed in the hope that it will be useful, % * but WITHOUT ANY WARRANTY% without even the implied warranty of % * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % * GNU General Public License for more details. % * %*/ \documentclass[10pt,a4paper]{article} \begin{document} \title{Documentacion de MiniBloquiHeader 1.0} \author{ Manuel Gutierrez Algaba, irmina@ctv.es } \date{ Enero 2000 } \maketitle \section{Copyright issues} Header.py y este documentos son ambos GPL, es decir, puedes copiarlos y reusarlos indefinidamente, basicamente. Por cierto, por cuestiones de tiempo este documento esta en Espanyol, sin acentos y sin nada, en cualquier caso explica a la perfeccion de que va MiniBloquiHeader. Por cierto, la pagina ``gueb'' de este proyecto es: \verb|www.ctv.es/USERS/irmina/MiniBloquiHeader.html| \section{El problema} El problema es que en Informatica se generan documentacion que suele tener unas cabeceras de pagina muy ricas y complejas, del tipo: \begin{verbatim} ----------------------------------------------- | | Nombre capitulo | | | | |Adornos|--------------------------------------| | | Nombre Seccion | Fecha | | | | Hora | |---------------------------------------------- \end{verbatim} Dado mi desconocimiento de TeX y las pocas ganas que tengo de bregar con TeXnicismos he encontrado que la solucion mas simple pasa por usar fancyhdr y dibujar con Pstricks , insertando alli donde convenga los letreros. Esto se traduce por ejemplo en: \begin{figure} \caption{Ejemplo de uso } \label{fig1} \begin{verbatim} \documentclass[10pt]{article} \usepackage{fancyhdr} \usepackage{pstricks} \usepackage{pst-node} \begin{document} \voffset=0cm \headheight=1cm \lhead{ \psline{-}(-3, 0) (-3, 3) (1, 3) (1, 0) (-3, 0) \rput(-2.16, 0.3) {\Asunto} \psline{-}(1, 0) (1, 1.5) (13, 1.5) (13, 0) (1, 0) \psline{-}(1, 1.5) (1, 3.0) (13, 3.0) (13, 1.5) (1, 1.5) } \rhead{} \chead{} \lfoot{} \rfoot{} \cfoot{} \renewcommand{\footrulewidth}{0.4 pt} \renewcommand{\headrulewidth}{0.0 pt} \newcommand{\Asunto}{Asi manualmente. Capitulo 1} .... ... \renewcommand{\Asunto}{Capitulo 2} \end{document} \end{verbatim} \end{figure} Efectivamente el macro \verb|\Asunto| es la prueba de que puedo insertar en los cuadros y que puedo ir variando lo que inserto en cada pagina. Lo ideal seria hacerlo de manera automatica con un section mark o le que fuese, pero carezco del conocimiento y del tiempo. \subsection{Como dibujar los cuadros} Ahora el problema queda reducido a encontrar una manera facil de dibujar esos cuadros. Aqui entra en accion \verb|Header.py|. Esta escrito en python (\verb|www.python.org|) Esta miniherramienta hace lo que tiene que hacer dibujar cuadros y poner letreros. Para ver como funciona lo mejor es hacer pruebas. Basicamente es un lenguaje formado por los siguientes comandos: \begin{itemize} \item{Bloque: Esto crea un bloque de tamanyo (y,x), generalmente yo suelo crear un bloque principal y los demas son descritos en funcion de este, } \item{lado: Indica que un bloque se ha anyadido a uno de los lados del bloque en cuestion, c.lado(``inf'',''der'') devuelve un Bloque del mismo tamanyo que c, pero situado en la esquina inferior derecha de c. } \item{tamanyo\_y(o \_x): Estos varian la dimension del cuadrado derivado. c.tamanyo\_x(0.3) devuelve un cuadrado cuya longitud es un tercio la de c } \item{traslada: Desplaza al cuadrado y a todos sus derivados} \item{escribe\_hacia: Escribe en cierto lugar del rectangulo, siempre ``dentro'' de el, escribe\_hacia(0.5, 0.5, ``Alfa''), escribe ``Alfa'' en el ``medio'' del rectangulo. } \end{itemize} El ejemplo de \ref{fig1} ha sido generado con la secuencia: \begin{verbatim} b = Bloque(3,4) c= b.anyade(b.lado("inf","der").tamanyo_y(0.5).tamanyo_x(3)) b.escribe_hacia(0.12, 0.1, "\\Asunto") d = b.anyade(c.lado("sup", "izq")) b.traslada_x(-3) b.genera_bloque() \end{verbatim} Como se puede ver, se generan tres rectangulos y un letrero ( que en este caso es un macro). Es facil imaginar lo que se puede llegar a hacer de manera simple. \section{Translation issues} If you want to you can translate this, I lack the time. \end{document}