- Questo topic ha 11 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 5 mesi fa da
letteracdp.
-
CreatoreTopic
-
19 Marzo 2016 alle 14:07 #105700::
Salve:grin: 😀 😀 😀 😀 😀 😀
😛 ,quaòcuno sa aiutarmi a risolvere questo problema? quando scrivo le etichette delle figure e delle equazioni, quelle che compaiono sulla didascalia sono giuste mentre quando le richiamo con \ref{key} la numerazione è sempre molte unità indietro, per esempio la figura 1.12 diventa 1.3.Qualcuno sa spiegarmi perchè e come si fa aimpostare la numerazione corretta?? Grazie mille LaTeX users
-
CreatoreTopic
-
AutoreRisposte
-
-
19 Marzo 2016 alle 14:42 #105701::
cindy91″ post=105775Salve:grin: 😀 😀 😀 😀 😀 😀
😛 ,quaòcuno sa aiutarmi a risolvere questo problema? quando scrivo le etichette delle figure e delle equazioni, quelle che compaiono sulla didascalia sono giuste mentre quando le richiamo con \ref{key} la numerazione è sempre molte unità indietro, per esempio la figura 1.12 diventa 1.3.Qualcuno sa spiegarmi perchè e come si fa aimpostare la numerazione corretta?? Grazie mille LaTeX usersMetti sempre \label{pippo} dopo la relativa \caption{Pippo} e assicurati di non avere label ripetute.
`\label{pippo}% non va!
\label{pippo}`
-
19 Marzo 2016 alle 16:08 #105702
-
19 Marzo 2016 alle 17:11 #105703
-
19 Marzo 2016 alle 17:15 #105704::
A parte ricompilare almeno una volta perché i riferimenti incrociati siano corretti, bisogna anche ricordarsi di non duolicare i \label usando la stessa etichetta. Nel tuo caso sembrerebbe che dopo aver etichettato correttamente la terza figura del tuo capitolo uno con il comando [tt]\label{pippo}[/tt] tu abbia ri etichettato la figura 12 dello stesso capitolo con un comando identico [tt]\label{pippo}[/tt]. Se per caso avessi commesso questo errore ci sarebbe un messaggio d’errore nel file .log che si lamenta di “Duplicate labels”; apri il file .log del tuo documento e vai subito alla fine; poi cerca all’indietro la stringa “Duplicate” (senza virgolette); se c’è leggi bene il messaggio, poi continua a cercare all’indietro e troverai via via i messaggio associati a ciascuna etichetta duplicata e saprai esattamente dove andare a correggere per essere sicuro che non ci siano duplicazioni di nessun genere; insomma elimina i doppioni.
Dopo aver corretto le etichette doppioni, ricompila due volte.
-
19 Marzo 2016 alle 17:27 #105705
-
19 Marzo 2016 alle 17:47 #105706::
Per essere precisi, l’avvertimento (non l’errore) che compare alla fine della compilazione (tranne la prima, ovviamente, quando le etichette non sono ancora definite) è
`LaTeX Warning: There were multiply-defined labels.`
In corrispondenza del punto/dei punti in cui compare l’etichetta definite/le etichette definite due volte, viene anche dato un avvertmento del tipo
`LaTeX Warning: Label `…' multiply defined.`
Non capisco cosa intendi dicendo che «l’etichetta non dipende dalla didascalia»; se intendi che l’etichetta può essere una stringa (quasi) arbitraria di caratteri, certo che è così. Ma, ovviamente, ciascuna etichetta deve essere unica all’intenro di uno stesso file sorgente: come potrebbe essere diversamente?Ciao.
—
Gustavo
-
19 Marzo 2016 alle 18:32 #105707
-
19 Marzo 2016 alle 22:45 #105708::
cindy91″ post=105784era una rdomanda diretta a L. Pantieri che ha detto che, oltre non definire multiplamente lo stesso label, occorre mettere il label dopo la caption […]
Ma certo, che sciocco, avrei dovuto capirlo: gli chiedevi anche se era proprio lui quello dell’Arte di scrivere con LaTeX! Ebbene sì, è proprio lui in persona. 🙂
In quel senso, sì, il comando [tt]\label[/tt] è dipendente dalla didascalia, perché ha bisogno di sapere che valore associare all’etichetta che viene definita. Provo a dare un’idea di come funziona il meccanismo.
Immagina una piccola lavagnetta, o una qualsiasi altra cosa che ti dia l’idea di una piccola memoria temporanea; su questa lavagnetta (o in questa memoria) si può scrivere una sola cosa per volta, che rimane scritta lì finché non ci si scrive qualcos’altro di nuovo. (Questa «lavagnetta» è la macro interna del nucleo del LaTeX2e chiamata [tt]\@currentlabel[/tt].) Esiste un comando, che si chiama [tt]\refstepcounter[/tt], il quale prende come argomento il nome di un contatore LaTeX, e il cui effetto consiste nell’incrementare di uno («step») quel contatore e di scrivere la rappresentazione testuale di quel contatore sulla nostra lavagnetta ideale (sto semplificando, omettendo un paio di dettagli importanti dei quali, però, è meglio parlare solo in un secondo momento). Per esempio, se definisci un contatore di nome [tt]pippo[/tt] dando, di solito nel preambolo, il comando`\newcounter{pippo}`puoi poi, in qualunque punto del documento, impartire il comando`\refstepcounter{pippo}`il quale avrà l’effetto seguente:
- per prima cosa, incrementerà di uno il valore corrente del contatore [tt]pippo[/tt];
- dopo di ciò, scriverà sulla «lavagnetta» (fuor di metafora, nella macro [tt]\@currentlabel[/tt]) la rappresentazione testuale del (nuovo) valore del contatore [tt]pippo[/tt], cioè quella prodotta dal comando [tt]\thepippo[/tt].
Questa scritta rimarrà sulla lavagnetta finché il comando [tt]\refstepcounter[/tt] non verrà usato di nuovo; quando ciò avverrà, la scritta verrà cancellata e sostituita da una nuova.
Ebbene, il comando [tt]\label[/tt] non fa altro che “scattare una foto”, per così dire, alla lavagnetta, e associare tale foto all’etichetta che esso riceve come argomento. Quando incontra un [tt]\ref[/tt] che si riferisce alla medesima etichetta, il LaTeX ricupera la foto corrispondente e inserisce, al posto di [tt]\ref{…}[/tt], la scritta che la lavagnetta mostra in tale foto.
Ora, il LaTeX ha tutta una serie di contatori predefiniti: ci sono i contatori [tt]part[/tt], [tt]chapter[/tt], [tt]section[/tt], [tt]subsection[/tt], ecc., i quali tengono conto di quale sia la parte, il capitolo, la sezione e così via corrente; ci sono i contatori [tt]figure[/tt] e [tt]table[/tt] per il corrente numero di figura e di tabella; c’è [tt]equation[/tt] per il numero di equazione, e parecchi altri. Prendiamo, per esempio, le sezioni: una delle cose che il comando [tt]\section[/tt] fa è proprio quella di eseguire un`\refstepcounter{section}`così da incrementare il numero corrente della sezione e scriverlo sulla lavagnetta; se subito dopo si esegue`\label{piripiri}`si otterrà per l’appunto una foto, collegata all’etichetta [tt]piripiri[/tt], del numero di sezione appena incrementato. Similmente, un comando [tt]\caption[/tt] eseguirà`\refstepcounter{figure}`se usato dentro un ambiente [tt]figure[/tt], e`\refstepcounter{table}`se usato dentro un ambiente [tt]table[/tt], e un [tt]\label[/tt] che segua immediatamente fotograferà il giusto numero della figura o della tabella. Capisci bene, ora, che se usi [tt]\label[/tt] prima di usare [tt]\refstepcounter[/tt] (o un comando come [tt]\section[/tt] o [tt]\caption[/tt] che indirettamente usa [tt]\refstepcounter[/tt]), fotografi la lavagnetta con scritto su un numero sbagliato; più precisamente, poiché [tt]\refstepcounter[/tt] usa un’unica lavagnetta, quale che sia il contatore incrementato, fotografi il valore che è rimasto scritto dal suo precedente utilizzo, quale che esso sia stato; e può benissimo trattarsi di un valore che si riferisce a un contatore completamente diverso. Facciamo un esempio: supponiamo di scrivere
`
\section{Gli gnu in Siberia}
\label{S:Gnu-Siberia}Parlo qui degli gnu in Siberia.
\begin{figure}[tp]
\centering
\includegraphics[scale=.2]{FotoDiGnuSiberiano}
\label{fig:foto-gnu-siberiano} % sbagliato: andrebbe messo dopo!
\caption{Uno gnu siberiano}
\end{figure}La figura~\ref{fig:foto-gnu-siberiano} ne mostra uno.
`
Ebbene, i due comandi [tt]\label[/tt] fotograferanno la stessa scritta: quella relativa al numero di sezione! Infatti, il comando [tt]\section[/tt] esegue [tt]\refstepcounter{section}[/tt], che scrive sulla lavagna appunto il numero della sezione, e quando si incontra il secondo [tt]\label[/tt] (ripeto: anche il secondo), il [tt]\refstepcounter{figure}[/tt] implicito nel comando [tt]\caption[/tt] non è ancora stato eseguito, e quindi la scritta sulla lavagnetta non è ancora stata aggiornata. Ecco perché il successivo [tt]\ref{fig:foto-gnu-siberiano}[/tt] genera un riferimento completamente sbagliato (al numero di sezione, anziché di figura).Perdona la lunghezza della spiegazione, ma ho cercato di essere il più chiaro possibile.
Ciao.
—
Gustavo
-
20 Marzo 2016 alle 8:02 #105709::
💡 però così ho capito benissimo! sapevo che doveva esistere da qualche parte un contatore , visto che il formato dei contatori è #parte.#sezione.#sottosezione…., però credevo che questo compito fosse svolto dai comandi che fanno iniziare gli ambienti, tipo \begin{ ambiente} e non dalla caption…. beh, grazie mille hehe
-
20 Marzo 2016 alle 16:24 #105710::
Non avrebbe senso che figure e tabelle siano numerate dall’ambiente perché così verrebbero numerate anche le figure prive di didascalia, la quale, come ho scritto diverse volte è fatta da tre parti, di cui una obbligatoria, la seconda essenziale, anche se la si potrebbe lasciare vuota e la terza decisamente facoltativa; le rappresento qui sotto con i colori nero bold, rosso e blu rispettivamente:Figura 3.12 Panorama delle Alpi visto da Torino. Da sinistra a destra spiccano il Monviso, Il Gran Paradiso che copre quasi completamente il Monte Bianco, e il Monte Rosa.
Quindi, come vedi, solo la didascalia è numerata e il numero ne fa parte integrante, se manca la didascalia, manca il numero e i riferimenti incrociati sono parzialmente errati; infatti il numero della figura recuperabile con \ref sarebbe errato, mentre il numero della pagina dove si trova la figura è corretto se il label è comunque dentro l’ambiente figure, che, essendo mobile, verrà a trovarsi in pagine diverse a seconda dove LaTeX considera tipograficamente corretto inserirla. Il numero della pagina viene assegnato solo nel momento in cui la pagina in cui è inserita la figura viene accodata al file di uscita.
Visto che ci siamo, nota che il titolo rosso manca del verbo e non termina con un punto fermo, il quale appare solo se esiste la frase completa di verbo, quella blu, facoltativamente scritta come ulteriore descrizione della figura.
-
20 Marzo 2016 alle 21:32 #105711::
Si veda anche Why does an environment’s label have to appear after the caption?, su TeX.SX.Ciao.
—
Gustavo
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.