%*
% * 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}
