diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/topfloat |
Initial commit
Diffstat (limited to 'macros/latex/contrib/topfloat')
-rw-r--r-- | macros/latex/contrib/topfloat/topfloat.pdf | bin | 0 -> 51224 bytes | |||
-rw-r--r-- | macros/latex/contrib/topfloat/topfloat.sty | 80 | ||||
-rw-r--r-- | macros/latex/contrib/topfloat/topfloat.tex | 203 |
3 files changed, 283 insertions, 0 deletions
diff --git a/macros/latex/contrib/topfloat/topfloat.pdf b/macros/latex/contrib/topfloat/topfloat.pdf Binary files differnew file mode 100644 index 0000000000..2aeab21e0a --- /dev/null +++ b/macros/latex/contrib/topfloat/topfloat.pdf 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} |