- Questo topic ha 3 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 1 mese fa da
letteracdp.
-
CreatoreTopic
-
4 Agosto 2019 alle 13:57 #116170::
Vorrei inserire delle note a piè pagina con riferimento multiplo all’interno di una tabella. Il codice che utilizzo è questo:`\begin{table}[h!]
\begin{tabular}{lcccccr}
\toprule
{ } & {mIOU (Fine)} & {FPS} & {Hardware} & {GFLOPS} & {n° PARAM} \\
\midrule
{Fast-SCNN} & {68,62} & {106,2} & {Titan Xp\footnote[3]{\url{https://www.nvidia.com/it-it/titan/titan-xp/}}} & {- } & {1,11 M} \\
{BiSeNet (Xception39)} & {68,4} & {105,8} & {Titan Xp\footnote[3]{\url{https://www.nvidia.com/it-it/titan/titan-xp/}}} & {2,9} & {5.8 M} \\
{BiSeNet (ResNet18)} & {74,7} & {65,5} & {Titan Xp\footnote[3]{\url{https://www.nvidia.com/it-it/titan/titan-xp/}}} & {10,9} & {49 M} \\
{ShuffleSeg} & {58,3} & {15,7} & {Jetson TX2\footnote[4]{\url{https://www.nvidia.com/it-it/autonomous-machines/embedded-systems/jetson-tx2/}}} & {2,03} & {-} \\
\bottomrule
\end{tabular}
\caption{Le prestazione delle 3 architetture misurate sul dataset Cityscapes\cite{Cordts_2016}}
\end{table}`Il compilatore non segnala nessun errore, compaiono i riferimenti nella tabella (vedi allegato), tuttavia non appaiono le note. Cliccando sul riferimento vengo reindirizzato all’inizio del documento.
Attachments:
You must be logged in to view attached files. -
CreatoreTopic
-
AutoreRisposte
-
-
4 Agosto 2019 alle 19:52 #116171::
Benvenuto nel forum.Non è in generale prudente mettere dei richiami di nota in una tabella perché di solito è flottante, e i=non sai dove va a finire, per cui se si mettere note, queste potrebbero apparire una o più pagine prima di quella dove comapre la tabella.
Tu pensi che avendo messo il codice di posizione !h compe opzione all’ambiente table, la tabella rimanga proprio lì; ma ! vuol dire ingora i limiti posti al parametri di posizione e h vuol dire possin=bilmente metti la tabella con la sua didascalia qui, se ci riesci, altrimenti, pazienza.Ma se LaTeX è costretto ad eseguire il ramo dell’ “altrimenti”, nelle pagine successive il parametro h non è più valido e non ci sono parametri alternativi, quindi quella tabella non flotta più, e viene emessa solo alla fine del capitolo, producendo nel frattempo un blocco della coda delle tabelle, con i risultati che ti puoi immaginare.
Ora le soluzioni sono due:
1) nella tabella usi il comando del nucleo di LaTeX (cioè non sono necessari pacchetti esterni) \footnotemark e fuori dell’ambiente table usi corrispondentemente i comandi \footnotetext; devi fare un po’ di attenzione ai numeri delle note, male note in calce appaiono; se poi la tabella flotta altrove, succedono gli incvenienti descritti sora.2) usi il pacchetto threeparttable, dopo averne letto la documentazione; dentro all’ambiente table viene ad avere una gerachia di ambienti a tre livelli
a) table, che contiene
b) threeparttable, che contiene
c) tabular, oppure tabular* oppure tabularx, oppure…Le note vanno scritte dentro un altro ambiente tablenotes come se fosse una listapuntata, ma, come ho scritto, non sono dentro itemiza, ma dentro tablenotes.
Il la tabella flotta con le solite regole e vi fai riferimento con il solito meccanismo di \label \ref e/o \pageref.
Ma la cosa impostante è che le note flottano insieme alla tabella e quindi l’accompagnano sempre anche se la tabella flottasse in una o più pagine successive.
Ora tu sai e puoi scegliere, ma io ti consiglierei di seguire la seconda soluzione.
Una cosa simile alla seconda soluzione ma che è un ibrido fra la prima e la seconda consiste in una struttura del genere`\begin{table}
\begin{minipage}{\textwidth}
\begin{tabular}{…}
cella\footnemark & ….\\
…
\end{tabular}
\footnotetext{…}
\footnotetext{…}
….
\end{minipage}
\caption{….}\label{…}
\end{table}`Dentro la minipage le note vengono numerate con lettere, non con cifre. Il bello di questa variante è che puoi usare \label dopo ciascuna nota, e quindi vi puoi fare rifermento con frasi del tipo “… come evidenziato dalla nota a della tabella 33,…”.Devi probabilmente aggiustare il contatore delle note e se occorre devi farlo dentro l’ambiente minipage. Non escludo che ti possa usare direttamente il comando solito \footnote, dentro al tabella senza dover separare il mark della nota dal suo testo. Ma questo sono cose da provare e da mettere a punto caso per caso, sperimentando e prendendo note per ricordare che cosa hai fatto e perché hai fatto così, invece che cosà. Questi appunti ti saranno utilissimi quando ti troverai in una situazione in cui devi ripetere l’operazione.
Il comando \footnote e i comandi \footnotemark e \footnotetex sono descritti nella guida tematiche “Il LaTeX Reference MAnual commentato”, che puoi scaricare dalla sezione Documentazione di questo forum; guarda il paragrafo 1.2.3 del manuale di Lamport, tradotto e commentato in italiano.
-
5 Agosto 2019 alle 5:59 #116172
-
7 Agosto 2019 alle 14:16 #116173::
Innanzitutto una precisazione: un comando [tt]\footnote[/tt] eseguito dentro un ambiente [tt]table[/tt] dà luogo all’emissione della primitiva TeX [tt]\insert[/tt] in modo verticale interno; il nodo omonimo prodotto da tale primitiva non riuscirà a migrare fino alla lista verticale principale, con il risultato che la nota che esso avrebbe dovuto far stampare sparisce del tutto nel nulla (anziché comparire su una pagina potenzialmente sbagliata).I rimedi sono vari; seguendo ciò che @OldClaudio ha già suggerito, si possono individuare le seguenti due strategie:
- Servirsi di note collocate all’interno della tabella stessa, usando un ambiente [tt]minipage[/tt] oppure un ambiente [tt]threeparttable[/tt], fornito dall’omonimo pacchetto;
- Usare i comandi [tt]\footnotemark[/tt] e [tt]\footnotetext[/tt], i quali fanno parte del nucleo del LaTeX (cioè, non richiedono di caricare alcun pacchetto); in questo caso, le note vengono posizionate a piè di pagina come al solito. L’utilizzo di tali comandi è descritto nel paragrafo C.3.3 del manuale originale (del 1994) di Leslie Lamport, che corrisponde al paragrafo 1.2.3 del LaTeX Reference Manual commentato di Claudio Beccari (scaricabile dalla sezione Documentazione di questo sito).
Il seguente codice compilabile fornisce degli esempi di quanto sopra; ulteriori informazioni si potranno leggere nel testo stesso che il codice produce.
`
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}\begin{document}
Testo con una nota.\footnote{Questa \`{e} la nota.}
\begin{table}[htbp]
\centering
Testo della tabella.\footnote{\ldots Con la sua nota.}
\caption{Tabella con nota che viene persa}
\label{tab:persa}
\end{table}La nota della tabella~\ref{tab:persa} \`{e} persa. Invece, quella della
tabella~\ref{tab:minipage} viene stampata all'interno della tabella
stessa, pi\`{u} precisamente dentro la \texttt{minipage}.\begin{table}[htbp]
\centering
\begin{minipage}{\linewidth}
Testo della tabella.\footnote{Nota dentro la \texttt{minipage}}
\end{minipage}
\caption{Tabella con nota dentro la \texttt{minipage}}
\label{tab:minipage}
\end{table}Si osservi che la nota utilizza un contatore indipendente da quello
usato dalle altre, precisamente usa il contatore \texttt{mpfootnote}
anzich\'{e} il contatore \texttt{footnote}: ci\`{o} si vede sia nel
fatto che esso viene stampato usando un formato differente
(\(
\verb|\alph{mpfootnote}| \leftrightarrow \verb|\arabic{footnote}|
\)),
sia nel fatto che esso viene fatto ripartire da uno. A questo riguardo,
per\`{o}, si osservi quanto segue:
\begin{itemize}
\item
Naturalmente, \`{e} possibile ridefinire il comando
\verb|\thempfootnote| in modo che stampi il valore del contatore
usando qualunque formato si desideri.\item
Si ricordi anche che, sebbene \LaTeX\ cambi sempre i valori dei
contatori in modo \emph{globale}, il contatore
\texttt{mpfootnote} viene espressamente azzerato all'inizio di
ciascuna \texttt{minipage}.
\end{itemize}Esiste un'altra possibilit\`{a} sostanzialmente diversa, e cio\`{e}
usare i due comandi separati \verb|\footnotemark| e
\verb|\footnotetext|, il secondo dei quali deve essere sempre impartito
\emph{al di fuori} di ambienti per oggetti mobili quali \texttt{figure}
e \texttt{table}; il problema \`{e} che, nel caso che l'oggetto mobile
venga effettivamente spostato su una pagina successiva, occorre trovare
per tentativi ed errori in quale punto del codice sorgente collocare il
comando \verb|\footnotetext| per far s\`{\i} che esso caschi sulla
pagina giusta. Inoltre, possono verificarsi problemi con l'ordine di
numerazione delle note.Facciamo un esempio.\footnote{Per verificare se l'ordine di numerazione
delle note \`{e} giusto oppure no, ne inserisco una qui, dove fa parte
del testo principale. Si ricordi che la nota della
tabella~\ref{tab:persa} \`{e} andata perduta.} Prima la tabella, che
\`{e} la tabella~\ref{tab:separati}.\begin{table}[htbp]
\begingroup % Teniamo confinato l'effetto di “\centering”…
\centeringTesto a cui \`{e} apposta la prima nota.\footnotemark
Testo a cui \`{e} apposta la seconda nota.\footnotemark
\endgroup % … solo fino a qui.
% \vspace{3cm}
%
% Decommentando questa parte, si impedisce a \LaTeX\ di piazzare
% questa tabella “qui'' (\texttt{h}\emph{ere}), obbligandolo quindi a
% spostarla su un'altra pagina. Si sono spostate automaticamente
% anche le note? (Risposta: no.)\caption{Tabella con comandi separati}
\label{tab:separati}
\end{table}\addtocounter{footnote}{-1}
\footnotetext{Prima nota della tabella~\ref{tab:separati}.}
\stepcounter{footnote}
\footnotetext{Seconda nota della tabella~\ref{tab:separati}.}I comandi che causano l'effettiva stampa delle note sono i due comandi
\verb|\footnotetext| che abbiamo appena impartito, e bisogna spostarli
in su o in gi\`{u} nel codice sorgente fino a che le note compaiono
sulla pagina giusta. Questo aggiustamento va purtroppo ripetuto
ogniqualvolta \LaTeX\ cambi l'impaginazione della tabella, e per questo
motivo \`{e} meglio rimandarlo al momento della redazione definitiva del
lavoro, quando si \`{e} assolutamente certi\footnote{Se mai si pu\`{o}
esserlo\ldots\space Incidentalmente, il numero di questa nota \`{e}
quello che dovrebbe essere?} di non dover pi\`{u} modificare il testo.La soluzione con l'ambiente \texttt{threeparttable}, fornito
dall'omonimo pacchetto, non \`{e} sostanzialmente diversa da quella che
usa \texttt{minipage}, sebbene sia pi\`{u} strutturata e fornisca una
stampa migliore nel caso di tabelle con un numero non piccolissimo di
note.\footnote{Attenzione, per\`{o}: in un singolo documento, si sia
coerenti! Si usi, cio\`{e}, la stessa soluzione per tutte le tabelle.}\end{document}
`Ciao.
—
Gustavo
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.