Re: Longtable

#55370
Up
0
Down
::

Tutto questo però sarebbe inutile o sprecato se la lunga tabella avesse solo due colonne magroline come quelle dell’esempio; ci sarebbe sicuramente qualche altro modo per riportare l’informazione di una tabella lunga e stretta, che è già brutta di per sé, figuriamoci con testa e piede che la slargano in modo orribile come succede con la tabella del tuo esempio.

Naturalmente, quell’esempio era fittizio.

Però potrebbe succedere davvero (anche se nella pratica raramente, certo) di dover mettere i dati in una longtable. Per esempio, immagina un lunghissimo elenco di materiali, che riporti accanto a ciascuno di essi delle informazioni come densità, calore specifico, resistività, eccetera. Se l’elenco è davvero lungo, e se le voci per ogni materiale sono tante, una longtable può essere utile o addirittura necessaria.

Riporto l’esempio (farlocco: serve solo per evidenziare il problema):
`documentclass[12pt]{article}
\usepackage{booktabs,longtable}
\begin{document}
\begin{longtable}{ll}
% didascalia ed etichetta
\caption{Un esempio di tabella ripartita su più pagine.}
\label{tab:longtable} \\ [color=red]% <--- se tolgo questo \\ c'è un errore![/color] % intestazione iniziale \toprule Comando & Effetto \\ \midrule \endfirsthead % intestazione normale \multicolumn{2}{l}{\footnotesize\itshape Continua dalla pagina precedente} \\ \toprule Comando & Effetto \\ \midrule \endhead % piede normale \midrule \multicolumn{2}{r}{\footnotesize\itshape Continua nella prossima pagina} \\ \endfoot % piede finale \bottomrule \multicolumn{2}{r}{\footnotesize\itshape Si conclude dalla pagina precedente} \\ \endlastfoot % corpo della tabella a & a \\ ... & ... \\ \end{longtable} \end{document} ` La cosa strana è che se tolgo quel `\\` dopo \caption{…} \label {…}, ottengo un errore:
`! Misplaced \noalign.
\toprule ->\noalign
{\ifnum 0=`}\fi \@aboverulesep =\abovetopsep \global \@b…
l.11 \toprule

? `
Perché?

Grazie,
L.

Mi pareva di averlo chiarito: se dopo \caption e l’eventuale \label c’è subito \endfirsthead non occorre un \\; se ci metti \toprule è evidente che ci va. Dov’è il problema? Non c’è alcuna differenza rispetto a
`\begin{longtable}{ll}
Codice & Effetto
\endfirsthead`
che non ha bisogno di \\.

TUTTO ciò che va dal preambolo di tabella al comando \endfirsthead fa parte del “firsthead”. Anche \caption, che viene risolto, come spiegavo nella prima risposta, come un \multicolumn.

Ciao
Enrico

Go to top