Ciao Enzo, ti ringrazio per le tue gentili parole nei miei confronti, ma debbo correggere una cosetta.
in particolare sull’argomento che parla della bibliografia automatica e, anche essendo un neofita, mi sono accorto che ci sono errori riguardo alla sequenza corretta di compilazione dei file sorgenti per collegare il database bibliografico( file .bib) al file sorgente(file .tex). In particolare dice di lanciare bibtex da riga di comando dando in input il file sorgente .aux.
I comandi da dare da linea di comando richiedono, almeno per i programmi del sistema TeX, che non sia specificata l’estensione. Ogni programma si legge il file con l’estensione giusta — per BibTeX l’estensione giusta è .aux. 😯 Sì proprio .aux, ma non devi preoccupartene perché ci pensa lui.
Cercherò di spiegarmi meglio.
Come fa BibTeX ad estrarre le citazioni giuste dal database bibliografico? Uno potrebbe avere un database bibliografico unico, contenente migliaia di schede bibliografiche; sarebbe una follia mantenerlo, ma non impossibile; l’unico vantaggio potrebbe essere che sarebbe virtualmente impossibile assegnare la stessa chiave a due riferimenti diversi. Di solito gli autori hanno database distinti e di piccole dimensioni, raramente superano le 100 schede, e 100 sono già tante.
Bando alle chiacchiere: come fa BibTeX ad estrarre le citazioni necessarie per il documento il cui file principale è miofile.tex? Deve sapere quali citazioni vi sono state fatte. bisogna quindi eseguire la composizione con uno dei vari programmi del sistema TeX, diciamo pdflatex, ma potrebbe essere xelatex, lualatex, o altri. Questa prima esecuzione permette a pdflatex di raccogliere le citazioni fatte in questo main file (e nei file secondari introdotti con il comando \include) e di scriverne le chiavi nel suo file miofile.aux; in questo file scrive anche quale o quali database bibliografici (i file con estensione .bib e i nomi più vari) l’autore abbia informato di voler usare con l’apposito comando \bibliography{lista di nomi di database bibliografici}; pdflatex scrive anche nel file miofile.aux lo stile della bibliografia che vuole comporre, informazione ricevuta dal comando \bibliographystyle{…}.
Quindi tutta l’informazione contenuta nel file miofile.aux è tutta e sola l’informazione di cui BibTeX ha bisogno.
Lanciando allora il programma BibTeX su miofile senza estensione, BibTeX sa che le informazioni di cui esso ha bisogno si trovano dentro il file miofile.aux; lo apre, lo legge, apre i datile bibliografici, estrae dalle schede citate le informazioni che servono per comporre la bibliografia secondo lo stile prescelto, ordina le voci bibliografiche e le compone sotto forma di comandi con il markup di LaTeX nel file miofile.bbl.
Ora avviene la seconda indicazione di pdflatex sul file principale miofile; non c’è bisogno dell’estensione, perché pdflatex lavora solo sui file .tex (saranno poi questi file che eventualmente incorporeranno file di altro tipo). Con questa seconda esecuzione di pdflatex, il programma di composizione legge anche il file miofile.bbl e compone anche la bibliografia, specificando le chiavi di chiamata che l’autore aveva incorporato nel databse bibliografici e che aveva citato nel corpo del documento. Alla fine di questa seconda esecuzione di pdflatex viene scritto anche di nuovo il file miofile.aux dove ci sono anche i significati, le stringhe e il loro modo di comporle che devono andare a sostituire i comandi \cite del file miofile.tex. Ma durante questa seconda esecuzione il programma pdflatex non ha potuto inserire le citazioni vere, perché il file miofile.aux che ha letto all’inzio non le contenva ancora; ma le contiene il nuovo file miofile.aux che esso stesso pdflatex ha scritto alla fine della sua seconda esecuzione.
Ecco perché è necessaria un terza esecuzione di pdflatex; infatti questa volta ad ogni chiave corrisponde il riferimento vero come è stato richiesto per lo stile di composizione delle bibliografia prescelto dall’autore.
Se le citazioni sono del tipo autore-anno, esse occupano abbastanza spazio in ciascuna capoverso dove compaiono, quindi ciascun capoverso ora non sarà più uguale al corrispondente capoverso ottenuto con la prima o la seconda esecuzione, che non contenevano ancora le citazioni esplicite. Questo cambiamento può addirittura far aumentare il numero di pagine del documento; quindi sarebbe consigliabile una quarta esecuzione di pdflatex perché tutti i riferimenti incrociati vadano a posto senza che, questa volta, la forma dei capoversi venga cambiata.
Complicato? Sì, forse per un neofita la cosa può sembrare inutilmente complicata, ma è così che funziona ed è così che si possono comporre bibliografie perfette grazie a BiTeX, pacchetti che gestiscono la composizione stilistica della bibliografia (natbib, biblatex, jurabib, eccetera); con l’alfabetizzazione perfetta e automatica (immagina cosa succederebbe se scrivessi un libro per una casa editrice; questa ti chiede la bibliografia con le citazioni in ordine di apparizione e citate con dei numeri fra parentesi quadre) tu fai tutto per benino con un word processor qualsiasi; consegni il tutto alla casa editrice e dopo averla sottoposta al revisore editoriale, ti comunicano che la bibliografia va fatta col metodo autore-anno e in ordine alfabetico del cognome del primo o unico autore. Pensa solo se hai usato un word processor qualsiasi che lavoro immane dovresti fare per riordinare la lista dei riferimenti e per correggere tutte le citazioni 😡 ) Grazie a pdflatex invece ti basta cambiare la specificazione dello stile di citazione e fare eseguire pdflatex e bibtex nell’ordine giusto il numero giusto di volte e il giochetto è fatto in meno di un minuto 😎 😆 😉
La comprensione di questi meccanismi interni non è semplicissimo e le varie guide non insistono troppo su questi argomenti limitandosi ad indicare la sequenza di programmi da usare. Se poi, come fanno tutte le guide e come si abituano a fare tutti gli utenti, vengono usati degli editor LaTeX friendly (o LaTeX user friendly: facili da usare per l’utente di LaTeX), tutte queste operazioni possono essere automatizzate e spesso bassa un solo click di mouse per far eseguire ripetutamente pdflatex, biblatex, makeindex, nella sequenza giusta e il numero giusto di volte finché tutti i riferimenti incrociati, non solo le citazioni, corrispondono esattamente a quello a cui devono corrispondere.
Scusa la lunghezza del messaggio, ma ora sai esattamente come e perché le cose devono essere fatte in un certo modo.