Verwenden von relativen Pfaden in input oder include

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Rokko_11
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 12. Apr 2013, 18:03

Verwenden von relativen Pfaden in input oder include

Beitrag von Rokko_11 »

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

dknof
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: So 29. Jul 2012, 13:30

Beitrag von dknof »

Hallo Rokko,

schau Dir das Paket import an, das bietet genau das, was Du suchst
\subimport{kapitel2/}{thema1.tex}
dann in thema1.tex
\input{thema1/satz1.tex}
\subimport{thema1/}{satz2.tex} % alternativ
Gruß
Diether

Rokko_11
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 12. Apr 2013, 18:03

Beitrag von Rokko_11 »

Danke für die schnelle Antwort!

Ich habe es ausprobiert und bin leider auf Probleme gestoßen:

Wisst ihr, woran das liegt:

hauptteil.tex:
\import{hauptteil/}{ebene1}

hauptteil/ebene1.tex:
\subimport{ebene1/}{ebene2}

hauptteil/ebene1/ebene2.tex:
\import{ebene2/}{ebene3} % Funktioniert nicht
\subimport{ebene2/}{ebene3} % Funktioniert nicht
\subsubimport{ebene2/}{ebene3} % Gibt es nicht
\input{ebene2/ebene3} % Funktioniert noch

hauptteil/ebene1/ebene2/ebene3.tex:
Hier funktioniert keine Lösung mehr... :(

Einen subsubimport gibt es anscheinend nicht.
Wie löst ihr das so?

Gruß!
Rokko


Edit: ok... ich kann auf erster Ebene noch mit einem include Arbeiten. Das verschiebt das Problem jedoch nur eine Ebene nach unten...

Antworten