summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/topfloat/topfloat.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/topfloat/topfloat.sty')
-rw-r--r--macros/latex/contrib/topfloat/topfloat.sty80
1 files changed, 80 insertions, 0 deletions
diff --git a/macros/latex/contrib/topfloat/topfloat.sty b/macros/latex/contrib/topfloat/topfloat.sty
new file mode 100644
index 0000000000..f1cfe90d87
--- /dev/null
+++ b/macros/latex/contrib/topfloat/topfloat.sty
@@ -0,0 +1,80 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% 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