%
%	MACRO PER TESTI INFORMATICI
% 
% storie di licenze
\def\licenza{%
Copyright (c)  2007  packz.
\`e garantito il permesso di copiare, distribuire e/o modificare
questo documento seguendo i termini della Licenza per
Documentazione Libera GNU, Versione 1.1 o ogni versione
successiva pubblicata dalla Free Software Foundation; con le
senza Sezioni Non Modificabili, con i Testi
Copertina (ELENCO), e senza nessun Testo di Retro Copertina.  Una
copia della licenza è acclusa nella sezione intitolata "Licenza
per Documentazione Libera GNU".
}
\def\stampalicenza{\footnote{}{{\sevenbf Licenza sotto la quale \`e
rilasciato questo documento:} \licenzafont\licenza}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% font
% causa linee troppo lunghe, per il codice preferisco font piccolo
\font\codicefont=cmtt10 at 8pt
\font\titolofont=cmr10 at20pt
\font\licenzafont=cmr10 at 8pt
% parametri generali
%\parskip=10pt
% intestazione
\def\titolo#1\par{%
	\vbox{%
		\line{\titolofont #1\hfil}%
		\line{\fiverm typeset by packz with \TeX\ in date \the\day/\the\month/\the\year\hfill}%
	}%
}%
% sezione
\def\sezione#1\par{%
	\bigskip%
	\line{\!#1!\hfil}%
	\noindent%
}
% cose importanti
\def\!#1!{{\bf #1}}
% codice
% 
% prima testo verbatim ('TeX for impatient' pg 277)
\def\deactivate{%
	\catcode`\\=\other
	\catcode`\{=\other
	\catcode`\}=\other
	\catcode`\$=\other
	\catcode`\&=\other
	\catcode`\#=\other
	\catcode`\%=\other
	\catcode`\~=\other
	\catcode`\^=\other
	\catcode`\_=\other
}
\def\makeactive#1{\catcode`#1=\active\ignorespaces}%
{\makeactive\^^M\gdef^^M{\par}}%
{\makeactive\^^I\gdef^^I{\ \ }}% imposto <tab> = 2 spazi
\chardef\other=12%
\font\sourcecodefont=cmtt10 at 8pt
\def\sourcecode{
	\vfil
	\bgroup%
		\sourcecodefont% font per il sourcecode
		\catcode`\_=\other% ridefinisco il 
		\catcode`\}=\other% category code 
		\catcode`\{=\other% relativamente a quei
		\catcode`\#=\other% caratteri che hanno 
		\catcode`\&=\other% 
		\catcode`\&=\other% significato in TeX
		\catcode`\%=\other% 
		\catcode`\\=\other% 
		\def\par{\leavevmode\endgraf}% Permette di conservare linee vuote
		\makeactive\^^M% imposto il carattere di fine linea
		\makeactive\^^I% e il tab come comandi
		\obeyspaces% facciamogli seguire gli spazi
		\catcode`\|=0% | è il nuovo carattere di controllo
}
{\obeyspaces\global\let =\ }%
% chiamarlo con |endsourcecode
\def\endsourcecode{\egroup\bigskip\noindent}
% FIXME
\edef\codice#1{{\tt\catcode`\_=\other #1}}
\def\iniziacodice{\begingroup\tt\catcode`\_=\other\obeyspaces}
\def\finecodice{\endgroup}
\def\setdisplaycode{%
	\bigskip%
	\iniziacodice%
}%
\def\unsetdisplaycode{\finecodice\bigskip\noindent}
\def\iniziaurl{%
	\allowbreak
	\bgroup%
	\tt%
	\catcode`\_=\other%
	\catcode`\%=\other%
	\catcode`\-=\other%
	\def\/{/\unskip\hfil\break\hfil\hbox{}\nobreak\hfill}%
	%\goodbreak%
}
\def\fineurl{\egroup}
% i numeri delle pagine li voglio in esadecimale
\newcount\tmpcount
\def\hex#1{%
	{%
		\count0=#1%
		\count1=#1%
		\divide\count0 by 16%
		\count2=\count0%
		\multiply\count2 by -16%
		\advance\count1 by \count2%
		\ifnum\count0>0\hex{\count0}\fi%
		\hexdigit{\count1}%
	}%
}%
\def\hexdigit#1{%
	\count0=#1\relax%
	%\message{\string\hexdigit->\string\count0:\the\count0 }%
	\ifnum\count0<10%
		\message{FIXME: se non metto \string\message non funge}%
		\the\count0%
	\else%
		\advance\count0 by -10%
		\advance\count0 by `A%
		\char\count0%
	\fi%
}%
% impostiamo la footline
\footline{\hfil\tt0x\hex{\folio}}
