%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % TopFloat e` un pacchetto per LaTeX2e di Macchia Angelo che rappresenta % una modifica del comando caption e crea un ambiente per impaginare fino a % 2 elementi mobili in alto nella pagina. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \typeout{TopFloat, Version 1.0 Sep. 99, di Macchia Angelo} % %% Registri usati dal pacchetto: % \newdimen\@toplarghezza\newdimen\@topdefault\newcount\@topcount \let\@topbox\@tempboxa % %% Definizione caratteri % \font\@toptipo=cmti7 at 10pt % testo del tipo (esempio "Figura 1") \font\@topdidascalia=cmti10 % testo della didascalia % %% definizione di @supercap: #1=tipo ; #2=testo della didascalia %% #3=larghezza didascalia (se e` 0 => la larghezza e` quella della didascalia) % \long\def\@supercap#1#2#3{% \gdef\@captype{#1}\refstepcounter{#1}% \addcontentsline{\csname ext@#1\endcsname}{#1}% {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}% \@toplarghezza=#3 \normalsize \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces \it#2}% } % %% Definizioni didascalie per ogni tipo di elemento mobile % % % \tabcap[larghezza]{didascalia} % \newcommand{\tabcap}[2][\@topdefault]{% \@supercap{table}{#2}{#1}% } % \newcommand{\figcap}[2][\@topdefault]{% \@supercap{figure}{#2}{#1}% } % \long\def\@makecaption#1#2{% \sbox\@topbox{{\@toptipo#1}{\@topdidascalia: #2}}% \ifdim\@toplarghezza=0pt\@toplarghezza=\wd\@topbox\fi \ifdim \wd\@topbox >\@toplarghezza \hbox{\vbox{\kern0.5cm\parshape=1 0pt \@toplarghezza% {\@toptipo#1}{\@topdidascalia: #2}}} \else \hbox to\@toplarghezza{\hss\vbox to0.5cm{\vss}% \hbox{{\@toptipo#1}{\@topdidascalia: #2}}\hss} \fi} % % %% Ambiente per floats % \newenvironment{topfloat}[1]{% \begin{figure}[t] \@topcount=#1 \ifnum#1>2\PackageError{TOPFLOAT}% {posso impaginare fino a 2 elementi}{}% \else\@topdefault=\linewidth\divide\@topdefault by#1% \fi% \hbox to\linewidth\bgroup\hss\vbox\bgroup}% {\egroup\hss\egroup\end{figure}} \def\topI{\setbox\@topbox=\hbox\bgroup} \def\endtopI{\egroup\@topdefault=\wd\@topbox\box\@topbox} \def\topII{\ifnum\@topcount=1\PackageError{TOPFLOAT}% {Probabilmente stai cercando di impaginare 2 elementi pero` a me hai detto che ne dovevo impaginare solo uno!}{}% \fi% \egroup\hss\vbox\bgroup% \setbox\@topbox=\hbox\bgroup} \def\endtopII{\egroup\@topdefault=\wd\@topbox\box\@topbox} \endinput