Viem, ako definovať balík alebo triedu, ale ako ich môžem kedykoľvek sprístupniť (sám sebe)?
Povedzme, že mám súbor balíka commonstuff.sty
(alebo myprettyclass.cls
), ktorý chcem mať možnosť zahrnúť do akéhokoľvek súboru .tex
, ktorý vytvorím na svojom počítači. Kam ho mám umiestniť? Musím naň spustiť nejaký inštalačný program, alebo ho stačí mať v určitom priečinku?
Poznámka: Viem, že ho môžem jednoducho umiestniť do rovnakého priečinka ako súbor .tex
, ale o to mi tu nejde. Hľadám spôsob, ako "nainštalovať" balík centrálne na mojom počítači.
Môžete si vytvoriť priečinok pod domovským adresárom TeXu a umiestniť do neho súbor .sty
. Pomocou tohto príkazu na príkazovom riadku zistíte, kde sa nachádza:
kpsewhich -var-value=TEXMFHOME
Na mojom počítači sa zobrazuje
C:/Users/stefan/texmf
ale môže to byť aj ~/texmf/
na počítači s Linuxom alebo Unixom.
Podľa adresárovej štruktúry TeXu by ste mali svoj súbor umiestniť do podadresára ako ~/texmf/tex/latex/commonstuff/
, podľa komentára Arthura nižšie. To má tú výhodu, že nie je potrebné aktualizovať databázu balíkov, pretože TeX priamo prehľadáva váš osobný strom texmf
. Ak sa vo vašom domovskom strome texmf
nachádza súbor ls-R
, môžete ho pokojne odstrániť, pretože TeX ho aj tak nepoužije. (Poznámka: toto predpokladá, že váš osobný strom je na lokálnom súborovom systéme: používatelia so vzdialene pripojenými domovskými priečinkami môžu stále potrebovať hash.)
Pokiaľ ide o MiKTeX, pozrite si časť "Inštalácia súborov sty alebo cls" v odpovedi na otázku Ako môžem ručne nainštalovať balík na MikTex (Windows).
Potom si môžete overiť, s akým súborom sa bude pracovať:
kpsewhich filename.sty
Zobrazí sa cesta k súboru, ktorý si vybrala implementácia TeXu.
Súbory .sty
musia byť umiestnené v niektorom podadresári adresára tex/latex
v texmf strome. Tieto stromy majú pomerne pevnú štruktúru, ale ich umiestnenie sa môže líšiť v závislosti od operačného systému a distribúcie TeXu. Ak používate Unix (vrátane Mac OS) a TeX Live, štandardne existuje hierarchia
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
ako aj ďalšie adresáre. Chcete ho umiestniť do adresára texmf-local
, nie do ostatných adresárov, ktoré spravuje inštalačný program TeX Live; pri aktualizácii TeX Live sa váš balík môže prepísať. Hierarchia texmf-local
, ako naznačujú názvy, je určená pre vami spravované lokálne balíky; aktualizácie sa jej nedotknú (preto je tiež priamo pod adresárom texlive
a nie napríklad texlive/2009
).
Môžete sa tiež rozhodnúť vytvoriť adresár s názvom texmf
vo svojom domovskom adresári a balík bude viditeľný len pre vás, nie pre ostatných používateľov na vašom počítači.
Myslím, že v systéme Windows s MiKTeXom je adresár pre miestne inštalácie štandardne C:\Localtexmf
.
V každom prípade a bez ohľadu na vašu distribúciu musíte súbor .sty
umiestniť do adresára .../texmf-local/tex/latex
a nie priamo do koreňového adresára; inak to jednoducho nebude fungovať.
Potom, ak'ste balík nainštalovali do svojho domovského adresára, nemáte čo robiť. Ak'ste naopak vložili texmf-local
, musíte spustiť utilitu mktexlsr
(alebo texhash
, je to alias).
V systéme Linux si môžete vybrať ľubovoľný adresár a potom pridať riadok, ako je
export TEXINPUTS=".:~/latex:"
do svojho súboru .bashrc (môžete pridať viacero adresárov oddelených dvojbodkou. Myslím, že na začiatku potrebujete znak '.'). Niečo podobné môže byť aj vo Windows. Mne sa to zdá jednoduchšie, pretože to oddeľuje "moje" veci od stromu texmf. Asi to nie je dobré, ak píšeš'veľký balík, ale hodí sa to na nejaké malé veci, ktoré chceš len zdieľať medzi všetkými projektmi.