Ξέρω πώς να ορίζω ένα πακέτο ή μια κλάση, αλλά πώς μπορώ να το κάνω διαθέσιμο (στον εαυτό μου) ανά πάσα στιγμή;
Ας πούμε ότι έχω το αρχείο πακέτου commonstuff.sty
(ή myprettyclass.cls
), το οποίο θέλω να μπορώ να συμπεριλάβω σε οποιοδήποτε αρχείο .tex
που δημιουργώ στον υπολογιστή μου. Πού να το τοποθετήσω; Πρέπει να τρέξω κάποιο πρόγραμμα εγκατάστασης ή αρκεί να το κρατήσω σε έναν συγκεκριμένο φάκελο;
Σημείωση: Ξέρω ότι μπορώ απλά να το τοποθετήσω στον ίδιο φάκελο με το αρχείο .tex
, αλλά αυτό δεν είναι αυτό που ψάχνω εδώ. Ψάχνω για έναν τρόπο να εγκαταστήσω το πακέτο κεντρικά στον υπολογιστή μου.
Θα μπορούσατε να δημιουργήσετε έναν φάκελο κάτω από τον αρχικό σας κατάλογο του TeX και να τοποθετήσετε το αρχείο .sty
σε αυτόν. Χρησιμοποιήστε αυτή την εντολή στη γραμμή εντολών για να μάθετε πού βρίσκεται:
kpsewhich -var-value=TEXMFHOME
Στον υπολογιστή μου δείχνει
C:/Users/stefan/texmf
αλλά θα μπορούσε επίσης να είναι ~/texmf/
σε έναν υπολογιστή Linux ή Unix.
Ακολουθώντας τη δομή καταλόγου του TeX, θα πρέπει να τοποθετήσετε το αρχείο σας σε έναν υποκατάλογο όπως ~/texmf/tex/latex/commonstuff/
, σύμφωνα με το παρακάτω σχόλιο του Arthur's. Αυτό έχει το πλεονέκτημα ότι δεν είναι απαραίτητο να ενημερώσετε τη βάση δεδομένων των πακέτων, καθώς το TeX αναζητά απευθείας το προσωπικό σας δέντρο texmf
. Αν υπάρχει ένα αρχείο ls-R
στο προσωπικό σας texmf
δέντρο μπορείτε να το διαγράψετε με ασφάλεια καθώς το TeX δεν θα το χρησιμοποιήσει ούτως ή άλλως. (Σημείωση: αυτό προϋποθέτει ότι το προσωπικό σας δέντρο βρίσκεται σε ένα τοπικό σύστημα αρχείων: οι χρήστες με απομακρυσμένα προσαρτημένους φακέλους μπορεί να χρειαστεί να κάνουν hash).
Όσον αφορά το MiKTeX, ρίξτε μια ματιά στην ενότητα "Εγκατάσταση αρχείων sty ή cls" στην απάντηση στην ερώτηση Πώς μπορώ να εγκαταστήσω χειροκίνητα ένα πακέτο στο MikTex (Windows).
Στη συνέχεια μπορείτε να ελέγξετε με ποιο αρχείο θα χρησιμοποιηθεί:
kpsewhich filename.sty
Αυτό θα δείξει τη διαδρομή προς το αρχείο που επιλέγεται από την υλοποίηση του TeX.
Τα αρχεία .sty
πρέπει να τοποθετηθούν σε κάποιον υποκατάλογο του tex/latex
σε ένα δέντρο texmf. Αυτά τα δέντρα έχουν μια μάλλον σταθερή δομή, αλλά η θέση τους μπορεί να διαφέρει ανάλογα με το λειτουργικό σας σύστημα και τη διανομή του TeX. Αν χρησιμοποιείτε Unix (συμπεριλαμβανομένου του Mac OS) και TeX Live, υπάρχει εξ ορισμού μια ιεραρχία
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
καθώς και άλλοι κατάλογοι. Θέλετε να το τοποθετήσετε στον κατάλογο texmf-local
, όχι στους άλλους καταλόγους που διαχειρίζεται ο εγκαταστάτης του TeX Live- όταν αναβαθμίζετε το TeX Live, το πακέτο σας μπορεί να αντικατασταθεί. Η ιεραρχία texmf-local
, όπως υπαινίσσεται και το όνομα, είναι για τα τοπικά πακέτα που διαχειρίζεστε εσείς- δεν θα επηρεαστεί από τις ενημερώσεις (γι' αυτό και βρίσκεται απευθείας κάτω από τον κατάλογο texlive
και όχι texlive/2009
, για παράδειγμα).
Μπορείτε επίσης να επιλέξετε να δημιουργήσετε έναν κατάλογο με το όνομα texmf
στον οικείο σας κατάλογο, και το πακέτο θα είναι ορατό μόνο σε εσάς, όχι στους άλλους χρήστες στον υπολογιστή σας.
Στα Windows με το MiKTeX, πιστεύω ότι ο κατάλογος για τις τοπικές εγκαταστάσεις είναι C:\Localtexmf
από προεπιλογή.
Σε κάθε περίπτωση και ανεξάρτητα από τη διανομή σας, θα πρέπει να τοποθετήσετε το αρχείο .sty
μέσα στο .../texmf-local/tex/latex
και όχι απευθείας στο ριζικό κατάλογο- αλλιώς δεν θα λειτουργήσει.
Στη συνέχεια, αν'έχετε εγκαταστήσει το πακέτο στον κεντρικό σας κατάλογο, δεν έχετε τίποτα να κάνετε. Αντίθετα, αν έχετε βάλει το texmf-local
, πρέπει να εκτελέσετε το βοηθητικό πρόγραμμα mktexlsr
(ή texhash
, είναι ψευδώνυμο).
Στο Linux, μπορείτε να επιλέξετε οποιονδήποτε κατάλογο θέλετε, και στη συνέχεια να προσθέσετε μια γραμμή όπως
export TEXINPUTS=".:~/latex:"
στο αρχείο .bashrc (μπορείτε να προσθέσετε πολλούς καταλόγους, χωρισμένους με άνω και κάτω τελεία. Νομίζω ότι χρειάζεστε το '.' στην αρχή). Μπορεί να υπάρχει κάτι παρόμοιο στα Windows. Το βρίσκω πιο εύκολο, αφού διαχωρίζει τα "δικά μου" πράγματα από το δέντρο texmf. Πιθανώς δεν είναι τέλειο αν γράφετε ένα μεγάλο πακέτο, αλλά είναι βολικό για κάποια μικρά πράγματα που απλά θέλετε να μοιράζεστε μεταξύ όλων των έργων σας.