PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suse: latex findet user-texmf-Baum nicht



cookie170
11-10-2006, 22:17
Hallo,

ich arbeite unter Suse 10.0. Da dieses Notebook hier bald fällig ist, muß ich vieles Selbstinstallierte im lokalen Home-Verzeichnis unterbringen, und dann sichern, damit ich es beim nächsten Rechner nicht neu installieren muß. So die Theorie.

texmf.cnf enthält u.a. folgende Zeilen:


TEXMFLOCAL = /usr/local/share/texmf
TEXMFHOME = $HOME/texmf

Ein texhash findet auch $HOME/texmf und die dortige ls-R enthält ganz korrekt den Hinweis auf die dort gelagerten Files.

Nur Latex findet sie nicht. Ein
latex foo
führt zu Fehlermeldung
! LaTeX Error: File ... not found.

Wieso nicht, verdammt noch mal! :mad:

regt sich auf

Alexander

rais
12-10-2006, 20:16
Hallo Alexander,
hmm, Dein TEXMFHOME heißt bei mir HOMETEXMF, aber dann sitz' ich auch gerade an einer etwas älteren Version (SuSE 8.2).
Wie ist denn TEXMF in Deiner texmf.cnf eingestellt?
Und Deine Fehlermeldung bezieht sich auf ein aus Deinem ~/texmf-Tree zu ladendes Paket - und nicht etwa auf ``foo[.tex]''?
Anders gefragt: Wie reagiert ein


kpsewhich lokalespaket.sty
?

Evtl. überschreibst Du ja (sonstwo) die eine oder andere Umgebungsvariable; versuch mal


set | grep TEX

Standardmäßig sollte das eine leere Liste ergeben...
Sollten alle Stricke reißen, kannst Du mit z.B.


export TEXINPUTS=~/texmf//:/usr/local/share/texmf//:/usr/share/texmf//:./
LaTeX immer noch dazu überreden, auch in ~/texmf (und drunter) nachzuschauen.;)

MfG,

cookie170
13-10-2006, 22:59
Danke für die Hinweise,

also: set | grep TEX führt zu folgender Ausgabe:


TEXINPUTS=::/home/AW/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX:
/home/AW/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX
e='!*.+(tex|TEX|texi|latex)'


die mir jetzt erstmal garnixxx sagt. (Einen Zeilenumbruch habe ich oben eingefügt, rot markiert.)

Auf


AW@alexkiste:~> kpsewhich localer.sty

bleibt kpsewhich jede Antwort schuldig, nach einer Sekunde meldet sich die Konsole wieder mit AW@alexkiste:~>

Und TEXMF sieht so aus:

TEXMF = {$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TE XMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}

Wobei die Datei, betrachtet man sie mit mc, nicht texmf.cnf, sondern @texmf.cnf heißt, warum auch immer.

Wenn Dir etwas einfällt, nur her damit, aber ich werde mir jetzt auch mal Zeile für Zeile texmf.cnf durchlesen.

Gruß,
Alexander

rais
15-10-2006, 14:36
Hallo Alexander,

also: set | grep TEX führt zu folgender Ausgabe:


TEXINPUTS=::/home/AW/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX:
/home/AW/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX
e='!*.+(tex|TEX|texi|latex)'


Also erstmal: in Deinem ersten Post stand, daß Dein persönliches TeX-Verzeichnis (TEXMFHOME) auf $HOME/texmf steht; über TEXINPUTS setzt Du aber $HOME/.TeX (und das auch noch _nicht_ rekursiv)... da stellt sich mir erstmal die Frage: Wie heißt der Ordner denn nun wirklich?
Gesetz dem Fall, Du hast ~/texmf angelegt, dann sollte es genügen, wenn Du


unset TEXINPUTS
texhash

in dieser Reihenfolge aufrufst (denn ~/texmf wird ja über TEXMFHOME angegeben); wenn Du hingegen ~/.TeX angelegt hast, dann könnte Dich erstmal
ln -s .TeX texmf weiterbringen.
D.h., eigentlich hat doch TEXINPUTS gegenüber den runtime-Einstellungen in der texmf.cnf Priorität - und hier stehen bei Dir nur ~/.TeX und zwei doc-Verzeichnisse drin, sprich: Du müsstest sogar Schwierigkeiten haben selbst ein globales Paket wiederzufinden.
Wenn dem so ist (z.B. `kpsewhich scrartcl.cls' liefert nichts), dann kannst Du den obigen unset/texhash in jedem Fall ausprobieren (und danach erstmal wieder kpsewhich mit globalem und lokalem Paket aufrufen).
Wenn das geklappt hat, dann kannst Du immer noch nachfragen, in welcher Datei $TEXINPUTS überhaupt gesetzt wurde (sonst ist die Änderung nach'm reboot ja wieder hinfällig).
MfG,

cookie170
15-10-2006, 18:49
EDIT (drei Stunden später):

Des Rätsels Lösung ist, dass kpathsea oder tetex, aus Gründen, über die ich noch keine Doku gefunden habe, nur Dateien berücksichtigt, die in einem ordentlichen Verzeichnisbaum liegen.

Ich hatte meine Datei localer.sty einfach in $HOME/texmf geworfen. Dort wird sie zwar für die Datenbank gefunden (ls-R), aber von sonst garnix.

Als ich meine Datei abgespeichert habe unter $HOME/texmf/tex/latex/,
war nach einem texhash alles in Ordnung. Also: Tetex oder kpathsea erwartet auch lokal Ordnung und Ahnung. Anfängerfreundlich ist das natürlich nicht. Beim lesen habe ich dann entdeckt, dass es für Fonts besondere Regeln gibt, um sie lokal abzuspeichern. Mist, verdammter ...
So, und hier der alte Text:

------------

Hallo Rainer,

auch nach unset TEXINPUTS als user wie auch als root, gefolgt von texhash findet kpsewhich die lokale Datei nicht.

Ich habe das System nicht eingerichtet, sondern es ist original Suse 10.0. So ein Käse.

Ich werde mich jetzt zuerst schlau machen müssen, wie TEXINPUTS und texmf.cnf sich verhalten müßten, dann, welche Umbauten Suse daran vorgenommen hat, und wie ich das fixe. Mann, was ein Haufen überflüssiger Arbeit.

Vielleicht installiere ich auf dem nächsten Rechner die Tex-live-DVD von Dante einfach parallel. Solche proprietären Lösungen wie die von Suse sind unbrauchbar.

Aber zunächst muß ich zumindest alle Schriften finden, die ich mühsam installiert habe und wenigstens die Dateien auf den nächsten Rechner übertragen.

Herzlichen Dank für Deine Hilfe,

Gruß,
Alexander