Μια μικρή εισαγωγή.
Το TeX εσωτερικά αντιλαμβάνεται τα πάντα σαν "κουτιά" (boxes λέγονται, σκέψου τα σαν ορθογώνια). Κάθε γράμμα είναι ένα "κουτί". Κάθε λέξη είναι ένα άλλο. Κάθε Παράγραφος άλλο. Αυτό που κάνει είναι να τακτοποιεί την τοποθέτηση αυτών των "κουτιών" σύμφωνα με κάποιους κανόνες. Όλες οι μηχανές *TeX έχουν ανάγκη να τρέξουν τουλάχιστον 2 φορές. Αυτό γίνεται γιατί προκειμένου να τακτοποιηθούν, θα πρέπει πρώτα να έχουν σχηματιστεί. Στο πρώτο compilation σχηματίζονται τα κουτιά. Στο δεύτερο βρίσκεται η "βέλτιστη" τοποθέτησή τους.
Ένας ακόμα λόγος που χρειάζεται δεύτερο (ή και τρίτο σε κάποιες περιπτώσεις) compilation είναι για να δουλέψουν σωστά τα \label{}, τα \cite*{} και κάποια άλλα πράγματα (table of contents, indexes κτλ). Πως μπορείς να ξέρεις σε ποια σελίδα είναι το κεφάλαιο 2, αν δεν έχουν σχηματιστεί και τακτοποιηθεί τα κουτιά?
Σημείωση. Το TeX δημιουργήθηκε τέλη της δεκαετίας του 70. Τότε οι υπολογιστές ήταν αδύναμοι. Αν το ξανασχεδιάζαμε σήμερα, πιθανότατα θα μπορούσε να γίνεται απευθείας η όλη διαδικασία (απλά απαιτεί περισσότερη μνήμη). Οι λόγοι που δεν το αλλάζουν είναι οι εξής:
α) Backward compatibility. Με το TeX μπορείς να παράγεις το ίδιο έγγραφο που έφτιαξες πριν 20 χρόνια χωρίς κανένα πρόβλημα. Δε θα έχει αλλάξει τίποτα στο format. Προσπάθησε να ανοίξεις με σύγχρονο word, κάποιο έγγραφο του Word 95...
β) Μετά από 35+ χρόνια εξέλιξης, ο κώδικας του TeX είναι πρακτικά bug free. Αν ξαναγραφεί θα δημιουργηθούν νέα bugs.
Για τα biber και bbitex τώρα. To biber και το bibtex είναι προγράμματα. Έχουν και τα δύο εκτενές documentation. Κάθε φορά που κάνεις compile ένα *.tex (xelatex filename.tex), δημιουργείται ένα αρχείο *.aux. Μέσα στο αρχείο αυτό καταγράφονται όλα τα \label, τα \cite* κτλ. Αυτό το οποίο κάνουν τα bibtex/biber είναι να διαβάζουν τις βιβλιογραφικές αναφορές που είναι γραμμένςε στο *.aux και να δημιουργούν κάποια άλλα βοηθητικά αρχεία (πχ *.bbl, *bcf κτλ) με τις απαραίτητες πληροφορίες για τη δημιουργία της βιβλιογραφίας. Εκτός αυτού, η άλλη βασική τους λειτουργία είναι να κάνουν sort τις βιβλιογραφικές αναφορές.
Πιστεύω μετά την εισαγωγή, να κατάλαβες το λόγο που είναι απαραίτητη η αλληλουχία των εντολών
- Κώδικας: Επιλογή όλων
xelatex
biber
xelatex
xelatex
Στο πρώτο βήμα δημιουργείται το aux και ένα pdf. Το xelatex δεν βρίσκει τα αρχεία του biber και σου ζητάει να το τρέξεις. Αν κοιτάξεις το pdf θα δεις ότι οι αναφορές είναι λανθασμένες ή λείπουν. Στο δεύτερο βήμα το biber διαβάζει το aux και δημιουργεί τα δικά του αρχεία. Στο τρίτο το xelatex διαβάζει τα αρχεία που δημιουργήσε το biber και δημιουργεί ένα νέτο έγγραφο με σωστές αυτή τη φορά αναφορές. Επειδή όμως η σελιδοποιήση μπορέι να έχει αλλαξει στο βήμα αυτό, είναι απαραίτητο να γίνει και ένα νέο compilation για να ανανεωθεί ο πίνακας περιεχομένων.
Κάθε φορά που προσθέτεις μια καινούρια αναφορά στη βιβλιογραφία, το latex δεν βρίσκει τα απαραίτητα στοιχεία στα αρχεία του biber και σου ζητάει να το ξανατρέξεις. Αν απλά προσθέσεις αναφορές σε μια υπάρχουσα βιβλιογραφική αναφορά δε χρειάζεται να ξανατρέξεις το biber.
Όσον αφορά τη λογική τα ίδια ισχύουν και για το bibtex. Η διαφορά μεταξύ bibtex και biber είναι ότι το bibtex δεν υποστηρίζει unicode. Άρα στα ελληνικά έχει πρόβλημα. Πιθανά να υπάρχει work-around, δεν έχω ασχοληθεί. Αλλά το biber δουλεύει out-of-the-box, όπως φαίνεται από το παράδειγμα που ανέβασα.
Αυτό που έχει σημασία έιναι να σου δουλεύει σωστά μέσα από το command line. Άσε το kile στην άκρη για την ώρα. Το kile είναι θέμα ρυθμίσεων. Βεβαιώσου ότι με xelatex + biber/bbilatex παίρνεις το αποτέλεσμα που θέλεις (σωστό sorting). Για το kile θέλει απλά να δημιουργήσεις ένα καινούριο tool στο
- Κώδικας: Επιλογή όλων
Settings / Configure Kile / Tools / Build
Κάντο ίδιο με το bibtex και στο "command" αντί για bibtex γράψε biber. Αν θες μπορείς να φτιάξεις και τα keyboard-shortcuts και είσαι έτοιμος. Εγώ έχω
F2 -> xelatex
F3 -> viewpdf
F4 -> biber
Οπότε πατάω F2, F4, F2, F2, F3. και είναι έτοιμο. Μπορείς να τα βάλεις να τρέχουν και σαν sequence (quick build) αλλά αυτό θα στο αφήσω σαν άσκηση
