Verwenden von relativen Pfaden in input oder include
Verfasst: Fr 12. Apr 2013, 18:31
Hallo liebe Texer!
Ich bin auf ein großes Problem gestoßen, welches ich auch nach tagelangem googlen noch nicht lösen konnte.
Ich habe eine weitreichende Ordnerstruktur, mir im Prinzip 1:1 meine Struktur der Gliederung wiederspiegelt:
Beispiel:
Gliederung:
hauptteil
-- kapitel 1
-- kapitel 2
---- thema 1
------ satz 1
------ satz 2
---- thema 2
Ordnerstruktur:
./hauptteil.tex
./hauptteil/kapitel1.tex
./hauptteil/kapitel2.tex
./hauptteil/kapitel2/thema1.tex
./hauptteil/kapitel2/thema1/satz1.tex
./hauptteil/kapitel2/thema1/satz2.tex
./hauptteil/kapitel2/thema2.tex
usw...
Das mache ich, um PHP-Skripte schreiben zu können, welche über alle Dateien und Ordner iteriert und so programmatisch die Dateien anpassen kann.
Und außerdem ist jede datei über ein label eindeutig erreichbar:
\label{hauptteil_kapitel2_thema2_satz1}
Mein Problem nun ist, dass ich gerne relative Pfade verwenden würde, um die Dateien gegenseitig einzubinden.
In thema1.tex steht z.B. drinnen:
\input{hauptteil/kapitel2/thema1/satz2}
Das ist natürlich nervig... viel cooler und weiterverwendbarer wäre es, wenn in thema1.tex nur drin stehen könnte
\input{thema1/satz2}
Dies erzeugt jedoch beim kompilieren einen Fehler, weil anscheinend Latex alle inputs und includes zusammenfügt und später dann im hauptverzeichnis nach der datei "satz.tex" im Ordner "thema1" sucht.
Nun habe ich die Pakete "currfile" und "chapterfolder" ausprobiert.
"chapterfolder" habe ich nicht so ganz verwenden können - es gab mir nie einen Pfad aus.
"currfile" war schon besser, ich konnte tatsächlich alle angegebenen Variablen \currfile, \currfiledir, \currfilebase usw... ausgeben. Jedoch beim input oder include schlug es fehl.
Im Beispiel:
steht in thema1.tex die Zeile
\input{\currfiledir thema1/satz2}
so "verdoppelt" sich irgendwie der Ordner hinter dem Kommando... dann kommt als Fehlermeldung raus, dass
hauptteil/kapitel2/thema1/thema1/satz2.tex
nicht gefunden wurde.
Obwohl das gleiche Kommando ohne das \input-tag korrekt
hauptteil/kapitel2/thema1/satz2.tex
ausgibt.
Hatte jemand von euch auch schonmal das Problem? Wie seid ihr damit fertig geworden?
Habt ihr einen heißen Tipp?
Gruß!
Rokko
Ich bin auf ein großes Problem gestoßen, welches ich auch nach tagelangem googlen noch nicht lösen konnte.
Ich habe eine weitreichende Ordnerstruktur, mir im Prinzip 1:1 meine Struktur der Gliederung wiederspiegelt:
Beispiel:
Gliederung:
hauptteil
-- kapitel 1
-- kapitel 2
---- thema 1
------ satz 1
------ satz 2
---- thema 2
Ordnerstruktur:
./hauptteil.tex
./hauptteil/kapitel1.tex
./hauptteil/kapitel2.tex
./hauptteil/kapitel2/thema1.tex
./hauptteil/kapitel2/thema1/satz1.tex
./hauptteil/kapitel2/thema1/satz2.tex
./hauptteil/kapitel2/thema2.tex
usw...
Das mache ich, um PHP-Skripte schreiben zu können, welche über alle Dateien und Ordner iteriert und so programmatisch die Dateien anpassen kann.
Und außerdem ist jede datei über ein label eindeutig erreichbar:
\label{hauptteil_kapitel2_thema2_satz1}
Mein Problem nun ist, dass ich gerne relative Pfade verwenden würde, um die Dateien gegenseitig einzubinden.
In thema1.tex steht z.B. drinnen:
\input{hauptteil/kapitel2/thema1/satz2}
Das ist natürlich nervig... viel cooler und weiterverwendbarer wäre es, wenn in thema1.tex nur drin stehen könnte
\input{thema1/satz2}
Dies erzeugt jedoch beim kompilieren einen Fehler, weil anscheinend Latex alle inputs und includes zusammenfügt und später dann im hauptverzeichnis nach der datei "satz.tex" im Ordner "thema1" sucht.
Nun habe ich die Pakete "currfile" und "chapterfolder" ausprobiert.
"chapterfolder" habe ich nicht so ganz verwenden können - es gab mir nie einen Pfad aus.
"currfile" war schon besser, ich konnte tatsächlich alle angegebenen Variablen \currfile, \currfiledir, \currfilebase usw... ausgeben. Jedoch beim input oder include schlug es fehl.
Im Beispiel:
steht in thema1.tex die Zeile
\input{\currfiledir thema1/satz2}
so "verdoppelt" sich irgendwie der Ordner hinter dem Kommando... dann kommt als Fehlermeldung raus, dass
hauptteil/kapitel2/thema1/thema1/satz2.tex
nicht gefunden wurde.
Obwohl das gleiche Kommando ohne das \input-tag korrekt
hauptteil/kapitel2/thema1/satz2.tex
ausgibt.
Hatte jemand von euch auch schonmal das Problem? Wie seid ihr damit fertig geworden?
Habt ihr einen heißen Tipp?
Gruß!
Rokko