Bir paketi veya sınıfı nasıl tanımlayacağımı biliyorum, ancak bunu her zaman (kendim için) nasıl kullanılabilir hale getirebilirim?
Diyelim ki commonstuff.sty
(veya myprettyclass.cls
) paket dosyasına sahibim ve bunu bilgisayarımda oluşturduğum herhangi bir .tex
dosyasına dahil edebilmek istiyorum. Nereye koyabilirim? Üzerinde bir yükleyici mi çalıştırmam gerekiyor, yoksa belirli bir klasörde tutmak yeterli mi?
Not: Bunu sadece `.tex' dosyasıyla aynı klasöre yerleştirebileceğimi biliyorum, ancak burada peşinde olduğum şey bu değil. Ben paketi merkezi olarak bilgisayarıma yüklemenin bir yolunu arıyorum.*
TeX ana dizininizin altında bir klasör oluşturabilir ve .sty
dosyanızı buraya koyabilirsiniz. Nerede olduğunu bulmak için komut isteminde bu komutu kullanın:
kpsewhich -var-value=TEXMFHOME
Bilgisayarımda şu görünüyor
C:/Users/stefan/texmf
ancak bir Linux veya Unix bilgisayarda ~/texmf/
de olabilir.
TeX dizin yapısını takip ederek, Arthur'un aşağıdaki yorumuna göre dosyanızı ~/texmf/tex/latex/commonstuff/
gibi bir alt dizine yerleştirmelisiniz. Bu, TeX kişisel texmf
ağacınızı doğrudan aradığı için paket veritabanını güncellemenin gerekli olmaması avantajına sahiptir. Eğer ev texmf
ağacınızda bir ls-R
dosyası varsa, TeX onu zaten kullanmayacağı için güvenle silebilirsiniz. (Not: bu kişisel ağacınızın yerel bir dosya sisteminde olduğunu varsayar: uzaktan bağlanmış ev klasörleri olan kullanıcıların hala hash yapması gerekebilir).
MiKTeX ile ilgili olarak, MikTex'e (Windows) bir paketi manuel olarak nasıl yükleyebilirim sorusunun cevabındaki "sty veya cls dosyalarını yükleme" bölümüne bir göz atın.
Daha sonra hangi dosyanın kullanılacağını doğrulayabilirsiniz:
kpsewhich filename.sty
Bu, TeX uygulaması tarafından alınan dosyanın yolunu gösterecektir.
.stydosyalarının texmf ağacındaki
tex/latex` dizininin bir alt dizinine yerleştirilmesi gerekir. Bu ağaçlar oldukça sabit bir yapıya sahiptir, ancak konumları işletim sisteminize ve TeX dağıtımınıza göre değişebilir. Eğer Unix (Mac OS dahil) ve TeX Live kullanıyorsanız, varsayılan olarak bir hiyerarşi vardır
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
diğer dizinlerin yanı sıra. TeX Live yükleyicisi tarafından yönetilen diğer dizinlere değil *texmf-localdizinine koymak istersiniz; TeX Live'ı yükselttiğinizde, paketinizin üzerine yazılabilir. İsimlerden de anlaşılacağı gibi
texmf-localhiyerarşisi sizin tarafınızdan yönetilen yerel paketler içindir; güncellemelerden etkilenmez (örneğin
texlive/2009değil de doğrudan
texlive` dizini altında olmasının nedeni de budur).
Ev dizininizde texmf
adında bir dizin oluşturmayı da seçebilirsiniz; böylece paket bilgisayarınızdaki diğer kullanıcılar tarafından değil, yalnızca sizin tarafınızdan görülebilir.
MiKTeX ile Windows'ta, yerel kurulumlar için dizinin varsayılan olarak C:\Localtexmf
olduğuna inanıyorum.
Her durumda ve dağıtımınız ne olursa olsun, .sty
dosyasını doğrudan kök dizine değil, .../texmf-local/tex/latex
içine yerleştirmeniz gerekir; aksi takdirde çalışmaz.
Ardından, paketi ev dizininize yüklediyseniz, yapacak bir şeyiniz yok demektir. Öte yandan, texmf-local
paketini kurduysanız, mktexlsr
(ya da texhash
, bu bir takma addır) yardımcı programını çalıştırmanız gerekir.
Linux'ta, istediğiniz herhangi bir dizini seçebilir ve ardından aşağıdaki gibi bir satır ekleyebilirsiniz
export TEXINPUTS=".:~/latex:"
.bashrc dosyanıza (iki nokta üst üste ile ayırarak birden fazla dizin ekleyebilirsiniz. Sanırım baştaki '.' işaretine ihtiyacınız var). Windows'ta da benzer bir şey olabilir. Ben bunu daha kolay buluyorum, çünkü "my" şeylerini texmf ağacından ayırıyor. Büyük bir paket yazıyorsanız muhtemelen harika değildir, ancak tüm projeleriniz arasında paylaşmak istediğiniz bazı küçük şeyler için kullanışlıdır.