Vai al menù, saltando i contenuti (access key "m")
TeX e LaTeX. BibLaTeX
Con il tempo BibTeX verrà sostituito da BibLaTeX. Già attualmente BibTeX non viene più sviluppato. Il sistema BibLaTeX consiste di tre parti: una serie di regole sintattiche per la scrittura del database bibliografico, un pacchetto BibLaTeX che si occupa dello stile e un programma esterno, Biber, per l'estrazione dei dati dal database. Per quanto riguarda il database diciamo subito che è sempre un file di testo con estensione .bib e che un vecchio db BibTeX come db BibLaTeX senza problemi.
Ecco un semplice esempio (abbiamo immaginato che il db bibliografico si chiami Letteratura.bib) che può essere compilato con pdflatex
\documentclass[...]{book} ... \usepackage[utf8]{inputenc} % facoltativo ... \usepackage{hyperref} % facoltativo ... \usepackage[bibstyle=numeric,citestyle=numeric-comp,safeinputenc,firstinits]{biblatex} \addbibresource{Letteratura.bib} ... \begin{document} ... % alcuni comandi speciali utili se nel db vengono usati \makeatletter \@ifundefined{x}{\newcommand{\x}[1]{}}{\renewcommand{\x}[1]{}} \@ifundefined{textrussian}{\newcommand{\textrussian}[1]{---}}{} \makeatother \cleardoublepage \phantomsection % solo se si è caricato hyperref \addcontentsline{toc}{chapter}{\bibname} \printbibliography \end{document}
I passi per compilare il vostro documento che usa BibLaTeX saranno, in analogia a quanto si faceva con BibTeX:
- Compilare il documento (viene creato il file .bcf)
- Eseguire
biber
sul documento (si creerà il file .bbl) - Compilare il documento
- Compilare il documento
La forza di BibLaTeX è che il pacchetto si occupa di tutto lo stile lasciando al programma esterno (biber) solo il compito di selezionare e ordinare le reference. Al contrario di quanto accadeva con BibTeX, dove all'eseguibile esterno era demandata tutta la fatica. Inoltre Biber è molto potente e permette una gestione molto elaborata delle codifiche in cui sono scritti i vari file. Finalmente è possibile avere sia il documento che il db bibliografico in codifica UTF-8.
Nell'esempio precedente possiamo vedere i parametri bibstyle e citestyle utili per definire gli stili della bibliografia e delle citazioni. Abbiamo usato degli stili predefiniti. Poi abbiamo usato l'opzione firstinits che serve per abbreviare i nomi degli autori.
È stato anche usata l'opzione safeinputenc che serve a trasformare, dove possibile, i caratteri Unicode eventualmente usati nel db, in comandi LaTeX. Per esempio il carattero "é" viene convertito in "\'{e}". Questo ci introduce alla corretta gestione delle codifiche di input:
- Sorgente in ASCII e db in ASCII. In questo caso non c'è bisogno dell'opzione safeinputenc. Purtroppo però questa situazione è rara perché è difficile mantenere un db bibliografico completamente esente da caratteri spuri.
- Sorgente in ASCII e db in UTF-8. Questa situazione è molto comune: si vuole avere il sorgente in ASCII per maggiore facilità di scambio con altri utenti, ma spesso si ha un db con voci a volte importate automaticamente e quindi piene di caratteri spuri. In questo caso usare l'opzione safeinputenc è fondamentale. Questa però non converte tutti i caratteri Unicode. Quelli più "esotici" vengono trasformati in sequenze \x{fffd} o simili. Questo ovviamente genera un errore perché il comando \x non è definito. Per ovviare a questo problema si può definire il comando \x in modo che non stampi nulla (ecco spiegato il comando nell'esempio di sopra).
- Sorgente in UTF-8 e db in UTF-8. Se state usando pdflatex, va ovviamente caricato il pacchetto inputenc con l'opzione utf8 e non va specificata l'opzione safeinputenc. Anche in questo caso non tutti i caratteri potrebbero essere correttamente interpretati (si tenga presente che non si può usare né l'opzione utf8x di inputenc né il pacchetto ucs): la soluzione è sempre quella di definire il comando \x in modo che non stampi nulla. Se si vuole avere un supporto molto più potente per l'Unicode, non resta che compilare con xelatex.
Un'altra cosa importante. Biber (oltre che essere scritto in un linguaggio orribile) estrae tutti i campi delle voci del db bibliografico richiamate dal sorgente. Questo fa in modo che anche i campi che non vengono usati, per esempio il campo abstract, vadano a finire nel file bbl. Siccome BibLaTeX dovrà leggere questo file, se troverà dei caratteri strani darà errore. Questo è molto frequente perché il campo abstract solitamente è generato automaticamente. Si può però istruire Biber a non considerare il campo abstract.
È sufficiente creare un file biber.conf con le seguenti righe:
<?xml version="1.0" encoding="UTF-8"?> <config> <sourcemap> <maps datatype="bibtex" map_overwrite="1"> <map> <map_step map_field_set="ABSTRACT" map_null="1"/> </map> </maps> </sourcemap> </config>
e copiarlo in (Windows 7)
C:\Users\<utente>\AppData\Roaming\biber\biber.conf
(la documentazione di Biber al riguardo è sbagliata perché consiglia di mettere il
file nella directory C:\Users\