::
Non escono i «??», almeno dopo aver compilato due volte: esce «(vedi Figura ).», cioè manca del tutto il numero della figura stessa. Questo succede perché un comando [tt]\label[/tt] non può essere dato al di fuori del gruppo nel quale si trova il comando che stampa il contatore al quale si riferisce.
Parentesi: versione più TeXnica. Il comando [tt]\label[/tt] non può essere dato al di fuori del gruppo nel quale viene eseguito il comando [tt]\refstepcounter[/tt] relativo al contatore al quale si vuole generare il riferimento: infatti, [tt]\refstepcounter[/tt] imposta [tt]\@currentlabel[/tt] per mezzo di un [tt]\protected@edef[/tt], non di un [tt]\protected@xdef[/tt]. Se ci si pensa un attimo, si vede che non potrebbe essere altro che così. Fine parentesi.
Ora, il tuo codice
golden_boy” post=112171[…]
`
(vedi Figura \ref{MeshCloud}).
\begin{figure}[!h]
\begin{center}
\includegraphics[scale=0.45]{PIC}
\caption{Mesh e Clouds in un metodo PIC}
\end{center}
\label{MeshCloud}
\end{figure}
`
[…]
fa proprio ciò che ho appena detto non doversi fare: il comando [tt]\caption[/tt], il quale genera il numero al quale si vuol fare riferimento, si trova dentro a un gruppo (quello implicato dall’ambiente [tt]center[/tt]), ma il comando [tt]\label[/tt] si trova fuori dal quel gruppo; se lo sposti dentro, subito sotto [tt]\caption[/tt], vedrai che il riferimento incrociato funziona correttamente.
Come ha già rimarcato @robitex, tuttavia, questo non significa ancora che il codice sia “pulito”; infatti:
- non bisognerebbe mai usare lo specificatore [tt]h[/tt] da solo per un oggetto mobile, con o senza [tt]![/tt] di accompagnamento;
- in un oggetto mobile è, in generale, sbagliato usare l’ambiente [tt]center[/tt], perché genera degli spazi verticali eccessivi; si usi invece la semplice dichiarazione [tt]\centering[/tt], come fa vedere @robitex;
- non dimentichiamo, inoltre, che di solito è bene scrivere [tt]…vedi figura~\ref{MeshCloud}[/tt], con il simbolo [tt]~[/tt].
Ciao.
—
Gustavo