- Questo topic ha 17 risposte, 6 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 10 mesi fa da
robitex.
-
CreatoreTopic
-
16 Ottobre 2014 alle 13:57 #97638::
Buonasera.
Sto incontrando un problema con la compilazione del mio documento, ed il problema in questione riguarda la caption di una tabella.
L’errore in questione è \caption outside float.Ho caricato i seguenti pacchetti:
\usepackage{booktabs} %tabelle
\usepackage{caption} %tabelle
\captionsetup{tableposition=top,figureposition=bottom,font=small}e la mia tabella è di modesta entità:
\begin{center}
\begin{tabular}{l l}
\caption{Tabella}
\toprule
…
…
\end{tabular}
\end{center}Che il comando caption sia in testa o in coda il risultato non cambia, continuo a avere un messaggio di errore in uscita.
Sapreste darmi una dritta?
Cordiali saluti.
Vincenzo
-
CreatoreTopic
-
AutoreRisposte
-
-
16 Ottobre 2014 alle 14:22 #97639::
VincenzoF” post=97092Buonasera.
Sto incontrando un problema con la compilazione del mio documento, ed il problema in questione riguarda la caption di una tabella.
L’errore in questione è \caption outside float.Ho caricato i seguenti pacchetti:
\usepackage{booktabs} %tabelle
\usepackage{caption} %tabelle
\captionsetup{tableposition=top,figureposition=bottom,font=small}e la mia tabella è di modesta entità:
\begin{center}
\begin{tabular}{l l}
\caption{Tabella}
\toprule
…
…
\end{tabular}
\end{center}Che il comando caption sia in testa o in coda il risultato non cambia, continuo a avere un messaggio di errore in uscita.
Sapreste darmi una dritta?
Cordiali saluti.
Vincenzo
Usa \captionof (per i dettagli apri la documentazione di caption con il comando da terminale $ texdoc caption).
Ciao
R.
-
16 Ottobre 2014 alle 14:23 #97640::
Una qualunque guida di base ti spiega come dotare una tabella di una didascalia.http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf
Cerca “table”.
-
16 Ottobre 2014 alle 14:39 #97641::
Ho già letto la documentazione del comando caption, e provato ad usare il comando \captionof, ma il problema resta, ed ho già letto la guida di Lorenzo Pantieri.
Uso LaTex già da un bel po di tempo, ed ho stilato una marea di tabelle, alcune anche grandi e complesse, ma non mi sono mai trovato ad affrontare quoto problema.
-
16 Ottobre 2014 alle 14:54 #97642::
VincenzoF” post=97095Ho già letto la documentazione del comando caption, e provato ad usare il comando \captionof, ma il problema resta, ed ho già letto la guida di Lorenzo Pantieri.
Uso LaTex già da un bel po di tempo, ed ho stilato una marea di tabelle, alcune anche grandi e complesse, ma non mi sono mai trovato ad affrontare quoto problema.Ok.
Ah, non mi ero accorto che sei al tuo primo messaggio!
Benvenuto sul forum!Per il problema, intendi una cosa del genere?
`\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}\usepackage{booktabs}
\usepackage{caption}\begin{document}
\begin{center}
\begin{tabular}{cc}
\toprule
pippo & pluto\\
paperino & mister $X$\\
\bottomrule
\end{tabular}
\captionof{table}{Super tabella ah ah.}
\end{center}\end{document}
`?
R.
-
16 Ottobre 2014 alle 15:15 #97643::
VincenzoF” post=97092Buonasera.
Sto incontrando un problema con la compilazione del mio documento, ed il problema in questione riguarda la caption di una tabella.
L’errore in questione è \caption outside float.Ho caricato i seguenti pacchetti:
\usepackage{booktabs} %tabelle
\usepackage{caption} %tabelle
\captionsetup{tableposition=top,figureposition=bottom,font=small}e la mia tabella è di modesta entità:
\begin{center}
\begin{tabular}{l l}
\caption{Tabella}
\toprule
…
…
\end{tabular}
\end{center}Che il comando caption sia in testa o in coda il risultato non cambia, continuo a avere un messaggio di errore in uscita.
Sapreste darmi una dritta?
Cordiali saluti.
Vincenzo
Per forza hai quell’errore. Stai mettendo \caption dentro un ambiente non galleggiante. Per farlo funzionare devi darlo dentro table o figure.
Ciao
Tommaso
-
16 Ottobre 2014 alle 15:17 #97644
-
16 Ottobre 2014 alle 15:24 #97645
-
16 Ottobre 2014 alle 15:39 #97646::
Non ho capito, cosa intendi per un esempio minimo compatibile?
Se non vado errato il comando caption va davo nell’ambiente tabular, all’interno del \begin{tabular}, come nel listato che ho riportato prima.
Il comando ha sempre lavorato a dovere per tutti i miei lavori precedenti, e nello stesso documento che mi restituisce un errore per l’ambiente tabular lavora bene nell’ambiente figure.Vincenzo
-
16 Ottobre 2014 alle 15:51 #97647::
VincenzoF” post=97102Non ho capito, cosa intendi per un esempio minimo compatibile?
Se non vado errato il comando caption va davo nell’ambiente tabular, all’interno del \begin{tabular}, come nel listato che ho riportato prima.
Il comando ha sempre lavorato a dovere per tutti i miei lavori precedenti, e nello stesso documento che mi restituisce un errore per l’ambiente tabular lavora bene nell’ambiente figure.Vincenzo
Vai errando 🙂
Il comando va dato dentro table, non dentro tabular. Come hai fatto ad avere le tue tabelle senza errori, in passato? Guarda bene quello che hai scritto.
Ho parlato di esempio minimo compilabile, non compatibile. È codice che riproduce il tuo errore compreso il preambolo.
Ti sei risposto da solo. Figure è galleggiante, tabular no. Perciò caption funziona dentro figure.
Ciao
Tommaso
-
16 Ottobre 2014 alle 15:57 #97648::
Toptesi non esclude che chiunque possa caricarsi i pacchetti che ritiene opportuni; Quindi nel preambolo metti [tt]\usepackage{caption}[/tt] che ti da accesso al comando [tt]\captionof[/tt]Poi nel tuoe sorgente c’è un grosso altro errore: hai messo caption dentro l’ambiente tabular; a me risulta che debba stare fuori; che tu metta la didascalia prima o dopo la tabella il comando per la didascalia deve stare fuori dell’ambiente tabular.
Devi esprime re una adeguata opzione al pacchetto caption per mettere le didascalia prima delle tabelle e lasciaral invede dopo le figure. Leggi la documentazione.
Quindi, impostato caption con la sua opzione, defi usare \captionof nel modo seguente`\begin{center}
\captionof{table}{La mia bellissima tabella}
\begin{tabular}{ll}
\toprule
… & …\\
\midrule
…& …\\
…& …\\
…& …\\
\bottomrule
\end{tabular}
\end{center}`Ma detto questo, mi sorge una domanda: Perché vuoi mettere una tabella senza renderla “galleggiante” (o flottante, che poi vuol dire la stessa cosa, anche se sembra un forestierismo). Le tabelle come le figure, come i sistemi di equazioni sono oggetti di grandi dimensioni; grandi non culo dire immense, ma vuol dire che occupano l’equivalente di almeno 5 righe di testo; con la didascalia e lo soazio di separazione fra la didascalia e la tabella, le righe diventano almeno 7. È facilissimo che la tabella con la sua didascalia cada vicino ad un salto di pagina, quindi LaTeX la sposta all’inizio della pagina successiva, e allarga lo spazio fra tutti i capoversi della pagina che altrimenti risulterebbe mozza. Ecco perché le tabelle si rendono semrpe mobili, si assegna loro un numero, con \label e \ref si eseguono i riferimenti a ciacuna tabella usando prosa del tipo “…come si rileva dalla tabella~\ref{tab:LaMiaTabella}” invece di usare frasi del tipo ” … come si rileva dalla tabella seguente.”Tutto ciò non ha nulla a che vedere con LaTeX; ha a che vedere con la qualità della prosa e la qualità della tipografia. È certo che non puoi ottenere il galleggiamanto degli oggetti mobili con un word processor; am quello che vorresti fare tu lo si fa con i word processor, e il risultato lo si vede a colpo d’occho, perch quei programmi, piuttosto di avere una pagina mozza spezzano al tabella fra due pagine, oppure mettono la didasscalia al fondo della pagina n e la tabella all’inziio della paginia n+1. Tutte operazioni che gridano vendetta e fanno rivoltare Gutenberg nella tomba.
Con LaTeX si possono fare altri errori, ma certo non questo; quindi il mio suggerimento è quello di scrivere (senza chiamare il pacchetto caption)`\begin{table}
\caption{la mia bellissima tabella}\label{tab:LaMiaBellissimaTabella}
\bigskip
\beginin{tabular}{…}
…
\end{tabular}
\end{table}`e lasciare che LaTeX metta la tabella dove c’è lo spazio giusto per metterla.PS: Incidentalmente oggi è disponibile l’aggiornamento di TOPtesi alla versione 5.81. Il TeXLive manager di TeXLive 2014, già esegue l’aggiornamento; per MiKTeX non saprei dire.
-
16 Ottobre 2014 alle 16:28 #97649::
Come già riportato nel mio primo post, ho caricato il pacchetto caption.
Questi però continua a non funzionare, che stia dentro o fuori l’ambiente tabular.
Avrei certamente utilizzato i riferimenti incrociati, ma se non riesco a risolvere questo problema non posso continuare con il lavoro di stesura in generale.
Provo incollare tutti i pacchetti che ho dichiarato, magari salta fuori che ho fatto un errore:\documentclass[a4paper,12pt]{toptesi}
%PACCHETTI PER I FONT
\usepackage[T1]{fontenc} % codifica dei font in uscita
\usepackage[utf8]{inputenc} % lettere accentate da tastiera
\usepackage[italian]{babel} % lingua principale del documento
\usepackage{lmodern}
\usepackage{txfonts}%PACCHETTI PER OPZIONI DI STILE
\usepackage{url} % per scrivere gli indirizzi Internet
\usepackage[italian]{varioref} %inserisce l’indicazione del riferimento quando questi si trovi a pagine di distanza: ~\vref{}
\usepackage{showkeys} %se il documento contiene monti riferimenti incrociati, questo pacchetto aiuta a controllare la correttezza delle etichette
\usepackage[colorlinks]{hyperref} %crea i collegamenti ipertestuali all’interno del documento, rendendo cliccabili i riferimenti incrociati già creati.
\usepackage{xspace} %per le lettere accentate maiuscole
\blankpagestyle %elimina le testatine dalla eventuale pagina bianca a fine capitolo, lasciando solo il numero di pagina. Per una pagina completamente bianca \blankpagestyle{empty}%PACCHETTI TEBELLE E GRAFICI
\usepackage{booktabs} %tabelle
\usepackage{caption} %tabelle
\captionsetup{format=hang, tableposition=top,figureposition=bottom,font=small, labelfont={sf,bf}}
\usepackage{graphicx} %grafici
\usepackage{pgfplots} %grafici con input manuale o caricabile come .txtI commenti sono una indicazione per me per ricordarmi a cosa servono i vari pacchetti.
-
16 Ottobre 2014 alle 16:39 #97650::
Senti, a parte quanto ti ho detto nel messaggio rpecedente, se tu avessi letto la documentazione di toptesi scirta sia in itlaiano sia in inglese (da terminale texdoc toptesi-it oppure texdoc toptesi, perché se avessi letto la documentazione e se avessi l’abitodine di leggere quello che tu stesso scrivi, magari copiandolo da qualche altra aprte, non avresti caricato quei paccheti e in quell’ordine.Sapresti anche che TOPtesi ridefinisce il modo di comporre le didascalie; quindi non mi stupisco che caption possa essere incompatibile con TOPtesi.
Prima di procedere oltre documentati. Tra l’altro è uscita la nuova verisone 5.81, con una documentazione che spero sia ancora più chiara; c’è scritto anche di NON caricare pacchetti che possono modificare titoli e didasaclie. Non è detto che siano incompatibili, a l’avviso c’è. quindi usa una tabella flottante e non insistere a voler avere una tabella fissa.
-
16 Ottobre 2014 alle 16:46 #97651::
Partendo dal fatto che ho letto la documentazione del pacchetto Toptesi, e che a questo punto potrebbe essermi sfuggito qualcosa, sono sicuro di essere stato sempre educato nel corso di tutta la conversazione.
Trovo davvero fuori luogo ed offensiva la tua supponenza.
Nondimeno ti ringrazio per la disponibilitàCordiali saluti.
Vincenzo
-
16 Ottobre 2014 alle 18:00 #97652::
VincenzoF” post=97110Partendo dal fatto che ho letto la documentazione del pacchetto Toptesi, e che a questo punto potrebbe essermi sfuggito qualcosa, sono sicuro di essere stato sempre educato nel corso di tutta la conversazione.
Trovo davvero fuori luogo ed offensiva la tua supponenza.
Nondimeno ti ringrazio per la disponibilitàCordiali saluti.
Vincenzo
Ti ho chiesto un esempio minimo compilabile, e tu continui a non inviarlo. Non ce ne facciamo nulla del tuo preambolo se non incolli il codice della tabella che ti dà errore. Capirai anche tu che la sfera di cristallo esiste solo nelle leggende.
Ad ogni modo, ho provato a compilare il codice fatto del tuo preambolo più un ambiente [tt]document[/tt] più il codice che hai fatto vedere nel tuo primo messaggio: ovviamente ottengo l’errore di cui tu parli.
Sostituendo al codice della tua tabella questo, invece,
`\begin{table}
\centering
\caption{Tabella}
\begin{tabular}{ll}
\label{tab:tabella}
\toprule
a & b \\
\bottomrule
\end{tabular}
\end{table}
`
non ho più errori. Come ti ha detto @OldClaudio e io prima di lui, il comando [tt]\caption[/tt] dentro l’ambiente [tt]tabular[/tt] NON FUNZIONA. Guarda dove l’ho messo io nel codice qui sopra.Sarebbe interessante vedere il codice di una tabella presente in uno dei tuoi lavori passati per capire come ha fatto a funzionare.
Per la cronaca, visto che dici di aver letto la documentazione di toptesi:
1. toptesi è una classe di documento, non un pacchetto.
2. Il pacchetto xspace, che tu carichi, è sconsigliato perché non fa sempre quello che dice di fare e, soprattutto, NON serve certo per le lettere accentate maiuscole.
Ciao
Tommaso
-
16 Ottobre 2014 alle 19:15 #97653::
Tommaso, in verità in italiano non saprei come dirlo, ma TOPtesi è un bundle che contiene diversi file sia la classe, sia alcuni file .sty, sia un file di configurazione da usare come modello, sia una mezza dozzina di esempi con i loro file sorgente e i loro .pdf compilati, sia due documentazioni.
In inglese ci sono bundle e package; che distinguono un insieme di file impacchettati assieme, e i file .sty che la documentazione clsguide.pdf definisce pacchetti e che possono essere formati da un solo file o da diversi file.Ma quando ho tirato le orecchie a Vincenzo, l’ho fatto perché evidentemente se ha letto al documentazione toptesi-it, avrà anche letto che non deve caricare babel perché è già caricato con le opzioni english e italian, e che non può caricarlo due volete, pena un errore nella compilazione. C’è scritto di non caricare pacchetti di nessun genere fra quelli che interferiscono con hyperref, che ridefinisce i comandi di sezionamento e il comando \caption per le didascalie; non ha letto quello che lui stesso ha scritto vicino al caricamento di hyperref nel suo preambolo, cioè che deve essere caricato per ultimo, mentre lui nel suo preambolo ne carica ancora una mezza dozzina dopo hyperref. Non ha letto la documentazione di nessuno dei pacchetti che ha caricato, e quindi non sa che cosa fanno; vedi i commenti di fianco a xspace (che funziona abbastanza bene, ma non in modo infallibile). Egli ha evidentemente ripreso i preambolo di qualcun altro che anche lui aveva capito poco di quel che faceva.
Ora, io posso essermi arrabbiato ed essere andato oltre le righe, e me ne scuso, ma dopo avergli raccomandato di leggere la documentazione di TOPtesi e dopo aver visto il suo preambolo, mi è scappata la mano. Chiedo scusa, ma non desidero essere preso in giro in questo modo. E questa non è una frase di uno arrabbiato; è la frase di uno deluso. Vincenzo non sa quante ore ho speso su questa classe nei 20 anni in cui ne faccio la manutenzione, ne aggiorno le prestazioni all’evolversi rapido del sistema TeX, in modo che il bundle sia all’altezza degli sviluppi più recenti; non sa quante ore ho speso sulla documentazione sia del bundle, sia su quella in italiano; o quante ore ho speso per rendere la classe compatibile con il formato PDF/A (che ahimè, oggi non funziona bene, a causa delle modifiche del programma di composizione pdftex, su cui l’apposito work group sta lavorando da molti mesi, ma che non riesce a liberarlo da alcuni piccoli errori che rendono il pdf prodotto incompatibile con la norma ISO19005-2005, e meno che mai con l’omonima norma aggiornata al 2011).
Non credo, a parte le mie risposte, che egli ha trovato sgarbate e supponenti, che Vincenzo possa lamentarsi dell’aiuto ricevuto sul questo forum. Ma la sua collaborazione è stata nulla; non ha seguito, da quel che appare dai suoi brevi tratti di codice, nessuno dei consigli che gli sono stati dati.
Mi sbaglio? Vorrei sbagliarmi. Se mi sono sbagliato, chiedo scusa ancora una volta.
-
17 Ottobre 2014 alle 3:32 #97654::
VincenzoF” post=97107Provo incollare tutti i pacchetti che ho dichiarato, magari salta fuori che ho fatto un errore:
\documentclass[a4paper,12pt]{toptesi}
%PACCHETTI PER I FONT
\usepackage[T1]{fontenc} % codifica dei font in uscita
\usepackage[utf8]{inputenc} % lettere accentate da tastiera
\usepackage[italian]{babel} % lingua principale del documento
\usepackage{lmodern}
\usepackage{txfonts}%PACCHETTI PER OPZIONI DI STILE
\usepackage{url} % per scrivere gli indirizzi Internet
\usepackage[italian]{varioref} %inserisce l’indicazione del riferimento quando questi si trovi a pagine di distanza: ~\vref{}
\usepackage{showkeys} %se il documento contiene monti riferimenti incrociati, questo pacchetto aiuta a controllare la correttezza delle etichette
\usepackage[colorlinks]{hyperref} %crea i collegamenti ipertestuali all’interno del documento, rendendo cliccabili i riferimenti incrociati già creati.
\usepackage{xspace} %per le lettere accentate maiuscole
\blankpagestyle %elimina le testatine dalla eventuale pagina bianca a fine capitolo, lasciando solo il numero di pagina. Per una pagina completamente bianca \blankpagestyle{empty}%PACCHETTI TEBELLE E GRAFICI
\usepackage{booktabs} %tabelle
\usepackage{caption} %tabelle
\captionsetup{format=hang, tableposition=top,figureposition=bottom,font=small, labelfont={sf,bf}}
\usepackage{graphicx} %grafici
\usepackage{pgfplots} %grafici con input manuale o caricabile come .txtI commenti sono una indicazione per me per ricordarmi a cosa servono i vari pacchetti.
Vincenzo, il problema non risiede nel preambolo.
Purtroppo, come diversi altri tool, LaTeX richiede un minimo di impegno. Per lo specifico problema avresti potuto anche non leggere la documentazione di toptesi, ma avresti potuto documentarti in merito a caption e captionof.
Il punto è molto semplice: caption funziona con ambienti flottanti (figure e table). Se non vuoi usare gli ambienti flottanti perché sei un patito di Word e ritieni poco bello avere la figura/tabella due pagine dopo, devi usare captionof. Mi sembra semplice. La tua tabella non è composta in ambiente table -> usi captionof.
Una raccomandazione: il fatto che le tabelle/figure non stiano nella stessa pagina è una cosa voluta, tipograficamente perfetta. Quello che fanno i programmi alla Word è tipograficamente uno schifo. Ovviamente se si è abituati a Word non ci si rende bene conto, ma è solamente una questione di punti di vista. LaTeX ha un algoritmo che armonizza la composizione della pagina per cui non ti troverai mai con pagine mozze o cose simili. Al lettore è sufficiente un riferimento per trovare la tabella/figura e con LaTeX la gestione dei riferimenti è molto semplice.
Detto questo, quando si compone un preambolo sarebbe bene capire cosa si fa. Sei uno studente del PoliTo: credo questo sia un concetto chiaro visto che gli studenti PoliTo sono in genere persone capaci.
Per esempio, quale font vuoi utilizzare? Carichi lmodern e successivamente txfonts. Sono due font diversi perciò solo l’ultimo è quello veramente utilizzato nel documento. Come già detto, hyperref va caricato per ultimo (quasi sempre, le eccezioni sono pochissime). Graphicx non serve per i grafici: serve per importare qualsiasi tipo di figure. La selezione di italiano/inglese in Toptesi non si effettua caricando babel perché è già caricato: ci sono comandi appositi.
Ciao
Claudio
-
17 Ottobre 2014 alle 7:34 #97655
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.