Il pacchetto xr certamente fa al caso tuo, ma per un testo diviso in tre tomi, forse, i rinvii si possono fare anche usando accortamente il gioco di \includeonly e \include. Mantieni tutti i riferimenti e la numerazione di pagine, capitoli note, figure, tabelle, equazioni e via di questo passo. Io trovo questa procedura molto efficace, ma ovviamente non sostituisce completamente quello che si può fare con xr, come xr non sostituisce completamente quello che si può fare con \includeonly e \include; ci sono dei punti di sovrapposizione, ma non coincidono.
Un unico main file include tutti i capitoli, ma, sempre scrivendo un solo nome di file in ogni riga, una volta compilato tutto il volume i vari file .aux dei vari capitoli contengono tutti i dati per i riferimenti incrociati; dopo basta commentare via via in \includeonly solo le righe del secondo volume e del terzo volume, compilare, ed ecco che il primo volume ha tutti i riferimenti incrociati corretti anche verso gli altri due volumi; poi ripeti commentando le righe che si riferiscono al primo e al terzo volume, e ripeti fino ad aver fatto i tre volumi. Ovviamente fra una compilazione e l’altra devi avere l’accortezza di cambiare nome al file pdf appena composto, affinché non venga sovrascritto con il testo del volume successivo.
Ho la sensazione che per un lavoro come il tuo, di uno stesso documento diviso in più spezzoni, il procedimento che ti ho indicato sia più farraginoso, che non il procedimento proposto da xr, ma ne hai il pieno controllo e non devi aprire gli altri documenti per conoscere i loro \label a cui fare riferimento nel tuo documento.
In un caso come il tuo, io preferirei usare il procedimento che ti ho descritto sopra. L’ho fatto per la Guida GuIT in tre tomi e non ho avuto nessun problema. Ho avuto l’accortezza di replicare in tutti e tre i volumi sia la front matter sia la back matter, in modo che sia tutto collegato e in particolare con ogni volume disponi dell’indice generale dell’intera “opera”; così come hai gli indici analitici, la bibliografia, eccetera sempre completi in ogni volume; anche il frontespizio è diverso epr ogni volume, basta agire con accortezza con i tre frontespizi inseriti in tre file distinti e includere il frontespizio giusto con ogni parte dell’intero testo che includi; certo ci vuole un po’ di attenzione, ed è difficile da automatizzare, ma è alla portata di chiunque. Con xr queste cose non si possono fare, ance se non sarebbe difficile farle con altrettanta attenzione rivolta a dettagli diversi.
Il gioco di \includeonly è documentato nell’Arte di scrivere con LaTeX, nella Guida GuIT, nella guida tematica Il LaTeX Reference Manual commentato, tuti scricabili dalla sezione Documentazione di questo sito.