Πού μπορώ να τοποθετήσω τα δικά μου αρχεία .sty ή .cls, για να τα καταστήσω διαθέσιμα σε όλα τα αρχεία .tex μου;

Ξέρω πώς να ορίζω ένα πακέτο ή μια κλάση, αλλά πώς μπορώ να το κάνω διαθέσιμο (στον εαυτό μου) ανά πάσα στιγμή;

Ας πούμε ότι έχω το αρχείο πακέτου commonstuff.stymyprettyclass.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.

Σχόλια (15)

Τα αρχεία .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, πρέπει να εκτελέσετε το βοηθητικό πρόγραμμα mktexlsrtexhash, είναι ψευδώνυμο).

Σχόλια (1)

Στο Linux, μπορείτε να επιλέξετε οποιονδήποτε κατάλογο θέλετε, και στη συνέχεια να προσθέσετε μια γραμμή όπως

export TEXINPUTS=".:~/latex:"

στο αρχείο .bashrc (μπορείτε να προσθέσετε πολλούς καταλόγους, χωρισμένους με άνω και κάτω τελεία. Νομίζω ότι χρειάζεστε το '.' στην αρχή). Μπορεί να υπάρχει κάτι παρόμοιο στα Windows. Το βρίσκω πιο εύκολο, αφού διαχωρίζει τα "δικά μου" πράγματα από το δέντρο texmf. Πιθανώς δεν είναι τέλειο αν γράφετε ένα μεγάλο πακέτο, αλλά είναι βολικό για κάποια μικρά πράγματα που απλά θέλετε να μοιράζεστε μεταξύ όλων των έργων σας.

Σχόλια (10)