summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/topfloat
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/topfloat
Initial commit
Diffstat (limited to 'macros/latex/contrib/topfloat')
-rw-r--r--macros/latex/contrib/topfloat/topfloat.pdfbin0 -> 51224 bytes
-rw-r--r--macros/latex/contrib/topfloat/topfloat.sty80
-rw-r--r--macros/latex/contrib/topfloat/topfloat.tex203
3 files changed, 283 insertions, 0 deletions
diff --git a/macros/latex/contrib/topfloat/topfloat.pdf b/macros/latex/contrib/topfloat/topfloat.pdf
new file mode 100644
index 0000000000..2aeab21e0a
--- /dev/null
+++ b/macros/latex/contrib/topfloat/topfloat.pdf
Binary files differ
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
diff --git a/macros/latex/contrib/topfloat/topfloat.tex b/macros/latex/contrib/topfloat/topfloat.tex
new file mode 100644
index 0000000000..19df1b3247
--- /dev/null
+++ b/macros/latex/contrib/topfloat/topfloat.tex
@@ -0,0 +1,203 @@
+\documentclass[a4paper,twoside]{article}
+\usepackage{topfloat}
+
+\renewcommand\figurename{Fig.}
+\renewcommand\tablename{Tab.}
+
+\begin{document}
+
+\centerline{\huge Topfloat.sty}\vskip1cm
+\centerline{\Large pacchetto di A. Macchia (sett. '99)}\vskip1.5cm
+
+Topfloat \`e un pacchetto che permette di impaginare fino a due elementi
+mobili (``{\sl floats\/}'') nella parte superiore della pagina. Il pacchetto
+consiste principalmente di un ambinete {\tt topfloat} al quale si deve dare
+un parametro rappresentane il numero di elemeni da impaginare (cio\`e 1 o 2).
+Nell'ambiente vanno inseriti gli elemeti mobili racchiusi dai comandi
+\verb!\topI<...>\endtopI! e se c'\`e il secondo elemento da impaginare, lo
+si deve racchiudere tra i comandi \verb!\topII<...>\endtopII!; le eventuali
+didascalie sono inserite grazie ai comandi \verb!\tabcap{...}! per le tabelle
+e \verb!\figcap{...}! per le figure inseriti tra un \verb!\endtopI! e un
+\verb!\topII! oppure tra un \verb!\endtopII! ed un \verb!\end{topfloat}!
+oppure ancora tra un \verb!\endtopI! ed un \verb!\end{topfloat}!.
+
+I comandi \verb!\tabcap! e \verb!\figcap! ammettono un parametro opzionale
+che se \`e settatto ad una misura maggiore di $0\,$pt allora si \`e dichiarato
+quanto deve essere larga la didascalia. Se si specifica un $0\,$pt allora
+il pacchetto assumer\`a una larghezza in modo che la didascalia entri in una
+sola riga. Se non si specificher\`a nulla, la larghezza della didascalia
+sar\`a quella dell'elemento mobile impaginato.
+
+\noindent Le fonts che si usano per impaginare le didascalie sono:
+
+\begin{tabular}{ r l}
+ \verb!\@topdidascalia! &: per il testo della didascalia \\
+ \verb!\@toptipo! &: per il tipo e il numero dell'elemento
+ (per esempio: \\ & ``figura 1'' o ``tabella II.2'')
+\end{tabular}
+
+\vskip.5cm\noindent Ricapitolando le sintassi dell'ambiente e dei comandi:
+
+\begin{tabular}{ l p{6cm}}
+ \verb!\begin{topfloat}!$\{numero\}$
+ & impagina $numero$ elementi mobili \\
+ \verb!\topI!
+ & marca l'inizio del I$^o$ el. da impaginare \\
+ \verb!\endtopI!
+ & marca la fine del I$^o$ el. da impaginare \\
+ \verb!\topII!
+ & marca l'inizio del II$^o$ el. da impaginare \\
+ \verb!\endtopII!
+ & marca la fine del II$^o$ el. da impaginare \\
+ \verb!\tabcap![{\it larghezza}\/]$\{didascalia\}$
+ & inserice una didascalia per tabelle con
+ una larghezza di ``$larghezza$\/'' se \`e specificata ed \`e
+ maggiore di $0\,$pt, pari alla lunghezza della didascalia intera se
+ \`e specificato $0\,$pt oppure pari alla larghezza dell'elemento
+ impaginato se il parametro opzionale non viene specificato;
+ comunque se la larghezza dedicata per la didascalia \`e maggiore
+ della didascalia stessa, allora questa viene centrata \\
+ \verb!\figcap![{\it larghezza}\/]$\{didascalia\}$
+ & stesso discorso visto per \verb!\tabcap! \\
+\end{tabular}
+
+\vskip.5cm\noindent Ora per chiarire meglio i concetti, vediamo alcuni esempi:
+
+\begin{verbatim}
+\begin{topfloat}{1} % impagina un solo elemento
+ \topI
+ \begin{tabular}{|c|c|}
+ \hline
+ Nome & Et\`a \\ \hline
+ Angelo & 24 anni \\
+ Maria & 29 anni \\
+ Luigi & 30 anni \\
+ Andrea & non mi ricordo proprio \\
+ \hline
+ \end{tabular}
+ \endtopI
+ \tabcap{questo \`e un esempio di tabella impaginata
+ con una lunga didascalia}\label{tab:1}
+\end{topfloat}
+\end{verbatim}
+
+\begin{topfloat}{1} % impagina un solo elemento
+ \topI
+ \begin{tabular}{|c|c|}
+ \hline
+ Nome & Et\`a \\ \hline
+ Angelo & 24 anni \\
+ Maria & 29 anni \\
+ Luigi & 30 anni \\
+ Andrea & non mi ricordo proprio \\
+ \hline
+ \end{tabular}
+ \endtopI
+ \tabcap{questo \`e un esempio di tabella impaginata con una lunga
+ didascalia}\label{tab:1}
+\end{topfloat}
+
+\noindent Questo esempio produce una impaginazione come si pu\`o vedere nella
+tabella \ref{tab:1} (pagina \pageref{tab:1}); nota che non \`e stato
+specificato nessun parametro opzionale per \verb!\tabcap!.
+Nella tabella \ref{tab:2} il comando \verb!\tabcap! \`e stato cos\`\i\
+specificato:
+
+\begin{verbatim}
+ \tabcap[0pt]{questo \`e un esempio di tabella impaginata
+ con una lunga didascalia}\label{tab:2}
+\end{verbatim}
+
+\begin{topfloat}{1} % impagina un solo elemento
+ \topI
+ \begin{tabular}{|c|c|}
+ \hline
+ Nome & Et\`a \\ \hline
+ Angelo & 24 anni \\
+ Maria & 29 anni \\
+ Luigi & 30 anni \\
+ Andrea & non mi ricordo proprio \\
+ \hline
+ \end{tabular}
+ \endtopI
+ \tabcap[0pt]{questo \`e un esempio di tabella impaginata con una lunga
+ didascalia}\label{tab:2}
+\end{topfloat}
+
+\noindent mentre nella tabella \ref{tab:3}:
+
+\begin{verbatim}
+ \tabcap[7cm]{questo \`e un esempio di tabella impaginata
+ con una lunga didascalia}\label{tab:3}
+\end{verbatim}
+
+\begin{topfloat}{1} % impagina un solo elemento
+ \topI
+ \begin{tabular}{|c|c|}
+ \hline
+ Nome & Et\`a \\ \hline
+ Angelo & 24 anni \\
+ Maria & 29 anni \\
+ Luigi & 30 anni \\
+ Andrea & non mi ricordo proprio \\
+ \hline
+ \end{tabular}
+ \endtopI
+ \tabcap[7cm]{questo \`e un esempio di tabella impaginata con una lunga
+ didascalia}\label{tab:3}
+\end{topfloat}
+
+\noindent Vediamo, per concludere un esempio pi\`u complesso:
+
+\begin{verbatim}
+\begin{topfloat}{2} % impagina due elementi
+ \topI
+ \begin{tabular}{ cc }
+ \hline
+ Statistiche & giocate \\ \hline
+ ambi & 124 \\
+ terni & 24 \\
+ quaterne & 13 \\
+ cinquine & 2 \\
+ \hline
+ \end{tabular}
+ \endtopI
+ \figcap{statistiche}\label{fig:1}
+ \topII
+ \fbox{$\displaystyle f(x)=\sum_{i=0}^\infty {(-1)^n\over n!}
+ x^n$}
+ \endtopII
+ \figcap{formula}\label{fig:2}
+\end{topfloat}
+\end{verbatim}
+
+\begin{topfloat}{2} % impagina due elementi
+ \topI
+ \begin{tabular}{ cc }
+ \hline
+ Statistiche & giocate \\ \hline
+ ambi & 124 \\
+ terni & 24 \\
+ quaterne & 13 \\
+ cinquine & 2 \\
+ \hline
+ \end{tabular}
+ \endtopI
+ \figcap{statistiche}\label{fig:1}
+ \topII
+ \fbox{$\displaystyle f(x)=\sum_{i=0}^\infty {(-1)^n\over n!}x^n$}
+ \endtopII
+ \figcap{formula}\label{fig:2}
+\end{topfloat}
+
+che produce il risultato prodotta nella figura \ref{fig:1} e nella figua
+\ref{fig:2}; nota che anche se la figura \ref{fig:1} \`e in realt\`a una
+tabella, siccome la didascalia \`e stata trattata con \verb!\figcap!
+allora verr\`a trattata in tutto e per tutto come una figura: dunque
+nella didascalia comparir\`a la scritta ``figura'' e le informazioni
+sull'elemento sar\`a inserita nella {\sl list of figures} piuttosto che nella
+{\sl list of tables\/}.
+Inoltre in queste 2 figure si vede come, se la didascalia \`e piu` corta
+della figura, allora il testo viene centrato.
+
+\end{document}