Seite 1 von 2

mehrere texmf-local definieren

Verfasst: Mi 10. Jun 2009, 20:36
von ian.para
Hallo! Ich habe gerade texlive 2008 in Ubuntu 9.04 installiert und hänge noch an einer letzten Aufgabe: kann ich für texlive so wie z.B. unter MikTeX mehrere texmf-local Pfade angeben? Sinn des Unterfangens ist folgender: unter Windows läuft ein MikTeX, dass ein texmf-local benutzt, dass ich gerne auch unter Linux in texlive einbinden möchte. Ich habs schon mit symbolischen Links versucht, bin da aber noch zu keinem Ergebnis gekommen. Kann mir da jemand helfen? Danke schonmal!

Verfasst: Do 11. Jun 2009, 13:18
von KOMA
Üblicherweise gibt es bei TeXLive bereits eine ganze Reihe von TDS-Bäumen (aka TEXMF-Bäumen). So ist üblicherweise min. TEXMFDIST, TEXMFLOCAL und TEXMFHOME vorhanden. Deren Einstellung kann man beispielsweise per
kpsewhich -var-value=TEXMFDIST
kpsewhich -var-value=TEXMFLOCAL
kpsewhich -var-value=TEXMFHOME
abfragen. Die Reihenfolge, in der die Verzeichnisse durchsucht werden, findet man per
kpsewhich -var-value=TEXMF
Weitere TDS-Bäume kann in der texmf.cnf hinzufügen. Die Syntax der dort eingestellten Werte ist in kpathsea.pdf zu finden. Auskünfte über TDS gibt hingegen tds.pdf. Die beiden Anleitungen sollten per texdoc zugänglich sein:
texdoc kpathsea
texdoc tds
Ich weiß jetzt gerade nicht auswendig, in welcher der beiden Anleitungen texmf.cnf dokumentiert ist, vermutlich in ersterer.

Verfasst: Fr 12. Jun 2009, 22:45
von ian.para
Vielen Dank! Habe
% persönliche TEXMF auf Data
TEXMFDATEN = /media/Data/Dateien/miktexpersonal//
TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFDATEN,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} 
in die /usr/local/texlive/2008/texmf.cnf eingefügt und jetzt wird auch meine biblatex.sty erkannt. Allerdings klappt es immer noch nicht mit meinen eigenen und den nativen biblatex-stilen (z.b. /miktexpersonal/tex/latex/biblatex/cbx/authoryear.cbx oder /miktexpersonal/tex/latex/biblatex/dai/bbx/dai.bbx). Grundsätzlich sollte ich mit /media/Data/Dateien/mektexpersonal// doch den Ordner samt aller Unterordner eingebunden haben. Eine Idee, woran es liegen könnte?

Verfasst: Sa 13. Jun 2009, 18:22
von KOMA
texhash

Wenn Du willst, dass ein Verzeichnis ohne Verwendung von texhash unklusive aller Unterverzeichnisse immer komplett durchsucht wird, siehe kpsewhich.pdf.

Zum Testen, ob eine Datei gefunden wird, kann man mit kpsewhich danach suchen. Wenn man wissen will, was das tut, kann man per Environment entsprechende Debug-Optionen setzen. Näheres dazu ist ebenfalls in kpathsea.pdf zu finden.

Verfasst: Sa 13. Jun 2009, 21:27
von ian.para
texhash hatte ich natürlich ausgeführt.
sudo texhash
texhash: Updating /usr/local/texlive/2008/texmf/ls-R... 
texhash: Updating /usr/local/texlive/2008/texmf-config/ls-R... 
texhash: Updating /usr/local/texlive/2008/texmf-dist/ls-R... 
texhash: Updating /usr/local/texlive/2008/texmf-doc/ls-R... 
texhash: Updating /usr/local/texlive/2008/../texmf-local/ls-R... 
texhash: Updating /usr/local/texlive/2008/texmf-var/ls-R... 
texhash: Done.
Allerdings ohne Erfolg.
kpsewhich -var-value TEXMF
{/media/Data/Dateien/miktexpersonal//,/home/hackebumm/texmf,!!/usr/local/texlive/2008/texmf-config,!!/usr/local/texlive/2008/texmf-var,!!/usr/local/texlive/2008/texmf,!!/usr/local/texlive/2008/../texmf-local,!!/usr/local/texlive/2008/texmf-dist}
Die Dateie /media/Data/Dateien/miktexpersonal/tex/latex/biblatex/biblatex.def z.B. wird gefunden, für dai.bbx wird mir folgende Fehlermeldung ausgegeben:
Package biblatex Info: Trying to load bibliography style 'dai'...
Package biblatex Info: ... file 'dai.bbx' not found.

! Package biblatex Error: Style 'dai' not found.

See the biblatex package documentation for explanation.
Die Datei befindet sich in /media/Data/Dateien/miktexpersonal/tex/latex/dai/bbx/

Was kann ich noch versuchen?

Verfasst: Mo 15. Jun 2009, 09:06
von KOMA
Wenn Du ganz sicher bist, dass die Datei /media/Data/Dateien/miktexpersonal/tex/latex/dai/dai.bbx existiert, dann kannst Du wie gesagt per Debugging noch kontrollieren, ob /media/Data/Dateien/miktexpersonal/tex/latex/dai/ überhaupt durchsucht wird:
KPATHSEA_DEBUG=63 kpsewhich dai.bbx
Näheres zu den Debug-Möglichkeiten ist Abschnitt 2.6.3 der kpathsea-Lib-Doku, kpathsea.pdf oder kpathsea.dvi.
Spätestens ab der Zeile:
kdebug:kpse_find_file: searching for dai.bbx of type tex (from texmf.cnf)
wird es in der vom Suchaufruf erzeugten Ausgabe interessant. Das ist bei mir so ca. Zeile 2000. Aber auch vorher kann es schon interessant werden, wenn nämlich ausgegeben wird, in welchen Pfaden überhaupt nach Dateien vom Typ tex gesucht wird, also ab:
kdebug:Search path for tex files (from texmf.cnf)

Verfasst: Mo 15. Jun 2009, 23:06
von ian.para
Ich habe jetzt mal spaßeshalber den ganzen Ordner /miktexpersonal/ in mein /home-Verzeichnis kopiert und den entsprechenden Pfad in die texmf.cnf gesetzt und alles klappt ohne Probleme. Das ist natürlich nicht Sinn der Sache, da Windows die EXT Partition nicht liest. Dann den Eintrag wieder entfernt, die Dateien beibehalten und es klappt natürlich nicht mehr. Kann es folglich am Dateisystem liegen, bzw. dass Kpahsea Probleme mit NTFS hat? Unter Linux habe ich keinerlei Einschränkungen und die Dateien sind nicht komprimiert.

Ich poste einfach mal die debug-info:
kdebug:start search(files=[dai.bbx.tex dai.bbx], must_exist=0, find_all=0, path=.:/home/hackebumm/.texlive2008/texmf-config/tex/kpsewhich//:/home/hackebumm/.texlive2008/texmf-var/tex/kpsewhich//:/media/Data/Dateien/miktexpersonal///tex/kpsewhich//:/home/hackebumm/texmf/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf-config/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf-var/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf/tex/kpsewhich//:!!/usr/local/texlive/2008/../texmf-local/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf-dist/tex/kpsewhich//:/home/hackebumm/.texlive2008/texmf-config/tex/generic//:/home/hackebumm/.texlive2008/texmf-var/tex/generic//:/media/Data/Dateien/miktexpersonal///tex/generic//:/home/hackebumm/texmf/tex/generic//:!!/usr/local/texlive/2008/texmf-config/tex/generic//:!!/usr/local/texlive/2008/texmf-var/tex/generic//:!!/usr/local/texlive/2008/texmf/tex/generic//:!!/usr/local/texlive/2008/../texmf-local/tex/generic//:!!/usr/local/texlive/2008/texmf-dist/tex/generic//:/home/hackebumm/.texlive2008/texmf-config/tex///:/home/hackebumm/.texlive2008/texmf-var/tex///:/media/Data/Dateien/miktexpersonal///tex///:/home/hackebumm/texmf/tex///:!!/usr/local/texlive/2008/texmf-config/tex///:!!/usr/local/texlive/2008/texmf-var/tex///:!!/usr/local/texlive/2008/texmf/tex///:!!/usr/local/texlive/2008/../texmf-local/tex///:!!/usr/local/texlive/2008/texmf-dist/tex///).
kdebug:kpse_normalize_path (.) => 0
kdebug:kpse_normalize_path (.) => 0
kdebug:path element . => ./
kdebug:kpse_normalize_path (./dai.bbx.tex) => 0
kdebug:kpse_normalize_path (./dai.bbx) => 0
kdebug:path element /home/hackebumm/.texlive2008/texmf-config/tex/kpsewhich// =>
kdebug:path element /home/hackebumm/.texlive2008/texmf-var/tex/kpsewhich// =>
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtest.lyx) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/bibtest.lyx) => -1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtest.lyx~) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/bibtest.lyx~) => -1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtex) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/bibtex) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/doc) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/doc) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/FILES) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/FILES) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/tex) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/tex) => 1
kdebug:path element /media/Data/Dateien/miktexpersonal///tex/kpsewhich// =>
kdebug:path element /home/hackebumm/texmf/tex/kpsewhich// =>
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:path element /home/hackebumm/.texlive2008/texmf-config/tex/generic// =>
kdebug:path element /home/hackebumm/.texlive2008/texmf-var/tex/generic// =>
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtest.lyx) => -1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtest.lyx~) => -1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtex) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/doc) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/FILES) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/tex) => 1
kdebug:path element /media/Data/Dateien/miktexpersonal///tex/generic// =>
kdebug:path element /home/hackebumm/texmf/tex/generic// =>
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:path element /home/hackebumm/.texlive2008/texmf-config/tex/// =>
kdebug:path element /home/hackebumm/.texlive2008/texmf-var/tex/// =>
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/tex/latex) => (nil)
kdebug:dir_links(/media/Data/Dateien/miktexpersonal/tex/latex) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtest.lyx) => -1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtest.lyx~) => -1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/bibtex) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/doc) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/FILES) => 1
kdebug:hash_lookup(/media/Data/Dateien/miktexpersonal/tex) => 1
kdebug:path element /media/Data/Dateien/miktexpersonal///tex/// => /media/Data/Dateien/miktexpersonal/tex/ /media/Data/Dateien/miktexpersonal/tex/latex/
kdebug:path element /home/hackebumm/texmf/tex/// =>
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:hash_lookup(dai.bbx.tex) => (nil)
kdebug:hash_lookup(dai.bbx) => (nil)
kdebug:search([dai.bbx.tex dai.bbx]) =>
Ich kann nicht alles deuten, aber es scheint so, als ob die Unterverzeichnisse nicht richtig oder nicht komplett eingebunden werden. Stimmt das? Ich habe schon versucht, die entsprechenden Unterverzeichnisse direkt in den Pfad in der texmf.cnf einzubinden, ebenfalls ohne Erfolg.

Hier noch die Info zu search for tex files
kdebug:Search path for tex files (from texmf.cnf)
kdebug:  = .:/home/hackebumm/.texlive2008/texmf-config/tex/kpsewhich//:/home/hackebumm/.texlive2008/texmf-var/tex/kpsewhich//:/media/Data/Dateien/miktexpersonal///tex/kpsewhich//:/home/hackebumm/texmf/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf-config/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf-var/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf/tex/kpsewhich//:!!/usr/local/texlive/2008/../texmf-local/tex/kpsewhich//:!!/usr/local/texlive/2008/texmf-dist/tex/kpsewhich//:/home/hackebumm/.texlive2008/texmf-config/tex/generic//:/home/hackebumm/.texlive2008/texmf-var/tex/generic//:/media/Data/Dateien/miktexpersonal///tex/generic//:/home/hackebumm/texmf/tex/generic//:!!/usr/local/texlive/2008/texmf-config/tex/generic//:!!/usr/local/texlive/2008/texmf-var/tex/generic//:!!/usr/local/texlive/2008/texmf/tex/generic//:!!/usr/local/texlive/2008/../texmf-local/tex/generic//:!!/usr/local/texlive/2008/texmf-dist/tex/generic//:/home/hackebumm/.texlive2008/texmf-config/tex///:/home/hackebumm/.texlive2008/texmf-var/tex///:/media/Data/Dateien/miktexpersonal///tex///:/home/hackebumm/texmf/tex///:!!/usr/local/texlive/2008/texmf-config/tex///:!!/usr/local/texlive/2008/texmf-var/tex///:!!/usr/local/texlive/2008/texmf/tex///:!!/usr/local/texlive/2008/../texmf-local/tex///:!!/usr/local/texlive/2008/texmf-dist/tex///
kdebug:  before expansion = .:$TEXMF/tex/{$progname,generic,}//
kdebug:  application override path = (none)
kdebug:  application config file path = (none)
kdebug:  texmf.cnf path = .:$TEXMF/tex/{$progname,generic,}//
kdebug:  compile-time path = .:/nonesuch/texmf/tex/{$progname,generic,}//
kdebug:  environment variables = TEXINPUTS
kdebug:  default suffixes = .tex
kdebug:  other suffixes = .sty .cls .fd .aux .bbl .def .clo .ldf
kdebug:  search only with suffix = 0
kdebug:  numeric format value = 26
kdebug:  runtime generation program = mktextex
kdebug:  runtime generation command = mktextex
kdebug:  program enabled = 0
kdebug:  program enable level = 0
kdebug:hash_lookup(TEXDOCS.kpsewhich) => (nil)
kdebug:hash_lookup(TEXDOCS) => .:$TEXMF/doc//:$TEXMFDOCDIR//
kdebug:hash_lookup(TEXMF.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMF) => {$TEXMFCONFIG,$TEXMFVAR,$TEXMFDATEN,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
kdebug:hash_lookup(TEXMFCONFIG.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFCONFIG) => ~/.texlive2008/texmf-config
kdebug:hash_lookup(TEXMFVAR.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFVAR) => ~/.texlive2008/texmf-var
kdebug:hash_lookup(TEXMFDATEN.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFDATEN) => /media/Data/Dateien/miktexpersonal//
kdebug:hash_lookup(TEXMFHOME.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFHOME) => ~/texmf
kdebug:hash_lookup(TEXMFSYSCONFIG.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFSYSCONFIG) => $SELFAUTOPARENT/texmf-config
kdebug:hash_lookup(TEXMFSYSVAR.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFSYSVAR) => $SELFAUTOPARENT/texmf-var
kdebug:hash_lookup(TEXMFMAIN.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFMAIN) => $SELFAUTOPARENT/texmf
kdebug:hash_lookup(TEXMFLOCAL.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFLOCAL) => $SELFAUTOPARENT/../texmf-local
kdebug:hash_lookup(TEXMFDIST.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFDIST) => $SELFAUTOPARENT/texmf-dist
kdebug:hash_lookup(TEXMFDOCDIR.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFDOCDIR) => $TEXMFDOC/doc
kdebug:hash_lookup(TEXMFDOC.kpsewhich) => (nil)
kdebug:hash_lookup(TEXMFDOC) => $SELFAUTOPARENT/texmf-doc

Verfasst: Di 16. Jun 2009, 09:13
von Zac
Moin Moin,
leider bekomme ich bei mir

$ kpsewhich -var-value=TEXMFDIST
findtexmf: -var-value=TEXMFDIST: unknown option

das gleiche für die anderen Aufrufe.

Bei mir ist MikTex 2.7 installiert. Was läuft da falsch ??

Schönen Tag noch wünscht
Norbert

Verfasst: Di 16. Jun 2009, 19:06
von KOMA
Zac hat geschrieben:Bei mir ist MikTex 2.7 installiert. Was läuft da falsch ??
Gar nichts. MiKTeX 2.7 ist nicht voll kompatibel mit TeXLive, um das es hier geht. Das kpsewhich von MiKTeX kann daher nicht alles, was das kpsewhich von TeXLive kann.

Verfasst: Di 16. Jun 2009, 19:18
von KOMA
ian.para hat geschrieben:Hier noch die Info zu search for tex files
...
kdebug:hash_lookup(TEXMF) => {$TEXMFCONFIG,$TEXMFVAR,$TEXMFDATEN,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
Hier fällt mir auf, dass zwei "Mengen" angegeben sind. Hast Du vielleicht versehentlich in texmf.cnf die alte Angabe noch hinter der neuen stehen? Vermutlich sind die etwas seltsamen Suchangaben mit den verdoppelten Pfaden auch darin begründet. Bei mir heißt es jedenfalls nur:
kdebug:hash_lookup(TEXMF) => {$TEXMFCONFIG,$TEXMFVAR,$TEXMFDATEN,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
Wenn ich $TEXMFDATEN an entsprechender Stelle in texmf.cnf eintrage.

Ob es eventuell auf einem NTFS-Filesystem ein Problem mit der Groß-/Kleinschreibung gibt, kann ich nicht sagen. Ich könnte mir aber vorstellen, dass wenn beispielsweise das LaTeX-Verzeichnis nicht ..../tex/latex/..., sondern tatsächlich .../TeX/Latex/... ist, kpathsea die Datei dort normalerweise nicht sucht. Das ist aber reine Spekulation. Ich weiß es nicht! Ich habe keine TeX-Installation auf einem NTFS-Dateisystem auf die ich von Linux aus zugreifen könnte, um das zu testen.

Da ich ansonsten mit meinem Latein so ziemlich am Ende bin, kann ich allenfalls noch die TeX-Live-Mailingliste, tex-live@tug.org, empfehlen.