blob: f1cfe90d8738198550433a200e5fde16ee73de9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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
|