::
No, ti sembra, ma non è così come credi.
Infatti comincia con un file del tutto nuovo, contenente, per esempio il tuo Esempio Minimo Compilabile (EMC), ma dandogli un nome diverso da quelli che hai usato finora. Compila una sola volta ed esamina i messaggi che compaiono nel file .log verso al fine; troverai Undefined references e un consiglio … run again…
Senza modificare niente nel file sorgente (come invece hai fatto nei tuoi numerosi tentativi, dove hhai aggiunt equ-, il trattino, tolto il trattino, eccetera), ricompila subito e il riefiment che dopo al prima compilazione era sostituida un punto interrogativo diventa il valore corretto 1.
Che cosa è successo? semplicemente pdflatex ha fatto il suo dovere. con ogni compilazione, compresa la prima, il programma scrive in un file .aux che il label equ:funzintegrale, corrisponde al numero 1; con la seconda compilazione il programma legge il file .aux della compilazione precedente e sa quindi che cosa deve sostituire al label equ:funzintegrale.
Cosa succede invece se cambi la stringa che costituisce il label? La prima volta scrive nel file .aux che equ:funzintegrale corrisponde a 1, ma prima di eseguire la seocnda compilazione tu cambi tutte le occorrenze delal stringa equ:funzintegrale con la stringa equ:funz-integrale, poi compili; il programma legge il file .aux della compilazione precedente e sa che a equ:funzintegrale deve sostituire 1, ma il nuovo sorgente non contiene nessuna istanza di quel labe, ma contiene il nuovo label che gli è del tutto ignoto, e ti ridà l’errore undefinded reference. E via di questo passo; perché i \label funzionino fra due compilazioni successive nessun \label deve venire modificato; se però nelle compilazioni successive compaiono nuovi vlabel, questi vengono dichiarati sconosciuti.
Conclusione: non ti preoccupare se metre lavori un tuo documento ricevi quell’errore; alla compilazione successiva non ci sarà più. Preoccupatene solo quando devi licenziare il tuo documento; se dopo due compilazioni successive senza che intervengano modifiche ti appare ancora qualche undefined reference, allora, sempre che tu per sbaglio non abbia cambiato qualche label fra le due compilazioni, i casi sono due:
1) hai definito \label{string} ma vi hai fatto riferimento con \ref{Stringa} (cioè con una stringa che non è identica a quella del corrispondente \abel — si tratta di uns semplice errore di battitura. Vedi sotto
2) uai usato un \ref{stringa} senza avere mai usato \label{stiring}. In un carte senso questo è un caso che rientra nel precedente, anche se si tratta di una eventualità estrema; semplicemente la stringa usata dal comando \ref non coincide con quella del comando \label, perché non è stato usato nessun \label per definirla.
Scusami se con tutte queste ripetizioni la spiegazione è diventata contorta.
Tuttavia il problema è: come fare a scoprire se sei nel caso 1 o nel caso 2? basta per prima cosa aprire il file .log e cercare la stringa undefined partendo dall’inizio del file; il messaggio segue l’indicazione presente nella riga precedente del file .log dove è indicata la stringa di riferimento non definita.
Ecco quindi che conoscendo la stringa non definita la inserisci nella casella del dialoco di ricerca delle stringhe del tuo editor, e vedi dove si trova questa stringa; a quel punto diventa facile capire dal contesto se hai fatto un errore di battitura, perché il \label corrispondente è da quelle parti nel file sorgente e vedi subito come correggere la stringa del \label )oppure la stringa del \ref). Altrimenti sei nel caso 2 e vai a cercare dove mettere il \label con la stringa giusta dove ti erir dimenticata di metterla.
I programmi di composizione del sistema TeX funzionano come degli orologi svizzeri; gli errori sono quasi sempre nostri. Tutti ne commettiamo, anche chi come me usa LaTeX da oltre trenta anni; l’importante è sapere come individuarli per correggerli; e un minimo di conoscenza del funzionamento dei programmi di compilazione asincroni (come pdflatex, per esempio) aiuta molto ad andare quasi a colpo sicuro almeno in nove casi su dieci. il decimo caso indica che abbiamo commesso un errore veramente grave e dve il programma non riesce a darti nessuna indicazione possibile sul punto dove cercare l’errore commesso.