Jeg vet hvordan jeg definerer en pakke eller en klasse, men hvordan gjør jeg den tilgjengelig (for meg selv) til enhver tid?
La oss si at jeg har pakkefilen commonstuff.sty
(eller myprettyclass.cls
), som jeg ønsker å kunne inkludere i en hvilken som helst .tex
-fil jeg oppretter på datamaskinen min. Hvor legger jeg den? Må jeg kjøre et installasjonsprogram på den, eller er det nok å ha den i en bestemt mappe?
*Merk: Jeg vet at jeg bare kan plassere den i samme mappe som .tex-filen, men det er ikke det jeg er ute etter her. Jeg leter etter en måte å " installere " pakken " sentralt " på datamaskinen min ".
Du kan opprette en mappe under TeX-hjemmekatalogen og legge .sty-filen der. Bruk denne kommandoen ved ledeteksten for å finne ut hvor:
kpsewhich -var-value=TEXMFHOME
På min datamaskin viser den
C:/Users/stefan/texmf
men det kan også være ~/texmf/
på en Linux- eller Unix-datamaskin.
Hvis du følger TeX-katalogstrukturen, bør du plassere filen din i en underkatalog som ~/texmf/tex/latex/commonstuff/
, i henhold til Arthurs kommentar nedenfor. Dette har den fordelen at det ikke er nødvendig å oppdatere pakkedatabasen ettersom TeX søker direkte i ditt personlige texmf
-tre. Hvis det finnes en ls-R
-fil i ditt personlige texmf
-tre, kan du trygt slette den, da TeX ikke vil bruke den uansett. (Merk: dette forutsetter at ditt personlige tre er på et lokalt filsystem: brukere med eksternt monterte hjemmemapper kan fortsatt ha behov for å hashe).
Når det gjelder MiKTeX, ta en titt på avsnittet "Installere sty- eller cls-filer" i svaret på spørsmålet Hvordan kan jeg installere en pakke manuelt på MikTex (Windows).
Du kan deretter bekrefte hvilken fil som skal brukes med:
kpsewhich filename.sty
Dette vil vise banen til filen som hentes av TeX-implementeringen.
.sty-filene må legges i en underkatalog av tex/latex
i et texmf-tre. Disse trærne har en ganske fast struktur, men plasseringen kan variere avhengig av operativsystem og TeX-distribusjon. Hvis du bruker Unix (inkludert Mac OS) og TeX Live, er det som standard en hierarki
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
i tillegg til andre kataloger. Du vil legge den i texmf-local
-katalogen, ikke i de andre katalogene som administreres av TeX Live-installasjonsprogrammet; når du oppgraderer TeX Live, kan pakken din bli overskrevet. texmf-local
-hierarkiet, som navnet antyder, er for lokale pakker som administreres av deg; det vil ikke bli berørt av oppdateringer (som også er grunnen til at det ligger direkte under texlive
-katalogen, og ikke texlive/2009
, for eksempel).
Du kan også velge å opprette en katalog kalt texmf
i hjemmekatalogen din, og pakken vil bare være synlig for deg, ikke de andre brukerne på datamaskinen din.
På Windows med MiKTeX tror jeg katalogen for lokale installasjoner er C:\Localtexmf
som standard.
Uansett hvilken distribusjon du har, må du plassere .sty
-filen i .../texmf-local/tex/latex
og ikke direkte i rotkatalogen; det vil ikke fungere ellers.
Så hvis du har installert pakken i hjemmekatalogen din, har du ingenting å gjøre. Hvis du derimot har lagt inn texmf-local
, må du kjøre verktøyet mktexlsr
(eller texhash
, det er et alias).
På Linux kan du velge en hvilken som helst katalog du vil, og deretter legge til en linje som
export TEXINPUTS=".:~/latex:"
til .bashrc-filen din (du kan legge til flere kataloger, atskilt med kolon. Jeg tror du trenger '.' i begynnelsen). Det kan være noe lignende i Windows. Jeg synes dette er lettere, siden det skiller " mine " ting fra texmf-treet. Sannsynligvis ikke bra hvis du skriver en stor pakke, men praktisk for noen små ting du bare vil dele mellom alle prosjektene dine.