• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

„\input“ in LaTeX

KayHH

Gast
Moin apfeltalker,

ich bastle gerade an einem umfangreicheren LaTeX-Projekt. Die Verzeichnisstruktur ist etwa wie folgt aufgebaut.

Code:
/Projekte/Projekte.tex %% Läd Makros.tex, Projekt1.tex, Projekt2.tex, ...
          Makros.tex
          ...
          Projekt1/
                   Projekt1.tex
                   Makros1.tex
                   ...
          Projekt2/
          ...

Das Erstellen der einzelnen Unterprojekte, ausgehend von „Projekt1.tex“, „Projekt2.tex“, usw. funktioniert prima. Das Laden der Unterprojektdateien aus „Projekte.tex“ heraus funktioniert ebenfalls einwandfrei. Befinden sich in „Projekt1.tex“, „Projekt2.tex“, usw. jedoch weitere „\input“-Kommandos, bezieht LaTeX die immer auf das Verzeichnis „Projekte“ und nicht auf das entsprechende Unterprojektverzeichnis. Dies führt natürlich dazu, dass die entsprechende Datei nicht gefunden wird.

Hat jemand eine Idee, wie ich das ändern kann?


Gruss KayHH
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Moin,

sowohl \input als auch \include beziehen sich normalerweise immer auf das Verzeichnis des Hauptdokuments (d.h. auf "."). Du könntest höchstens die Unterprojektordner an die Environmentvariable TEXINPUTS anhängen. Oder Dir mal die Pakete "import" oder "chapterfolder" anschauen... ;)
 
  • Like
Reaktionen: 1 Person

KayHH

Gast
Moin quarx,

danke Dir für die Tipps. Ist leider nicht ganz das was für mich in frage kommt.

Ich habe mir da jetzt was selbst gebastelt. Ich habe mir im Prinzip einen eigenen \input-Befehl (\importfile) gebaut, der den vollständigen Pfad zur Laufzeit zusammen baut.

Code:
% File: Makros.tex
\newcommand\pathtofiles{}
\newcommand\importfile[1]{\input{\pathtofiles#1}}

Dieser Code steht in der allgemeinen Makro-Datei drin, die von allen Projekten und Unterprojekten aufgerufen wird.

In jedem Unterprojekt habe ich eine Datei, welche einfach nur \pathtofiles abändert.

Code:
% File: Pfad1.tex
\renewcommand\pathtofiles{./Projekt1/}

Bevor ich nun die Hauptdatei des Unterprojektes lade, lade ich eben die Datei welche den Pfad umsetzt. In der Hauptdatei sieht das dann etwa so aus.

Code:
% File: Projekte.tex
\documentclass[11pt]{book}

	\input{Makros} % Allgemeine Makros
	\input{./Projekt1/Makros1} % Projektmakros
	\input{./Projekt2/Makros2}

\begin{document}

	\input{./Projekt1/Pfad1}  % Pfad umbiegen
	\input{./Projekt1/Lader1} % Kapitel laden
	\input{./Projekt2/Pfad2}
	\input{./Projekt2/Lader2}

\end{document}

Schaut so aus, als ob das ohne Nebenwirkungen läuft.


Gruss KayHH
 
Zuletzt bearbeitet von einem Moderator:

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Joa, schaut ganz vernünftig aus so weit. Immerhin bist Du so nicht von Fremdpaketen abhängig. :)
 

KayHH

Gast
Immerhin bist Du so nicht von Fremdpaketen abhängig. :)
Genau das habe ich mir auch gedacht, lade eh schon fast ein Dutzend Pakete und bin schon froh das es da zu keinen Konflikten kommt. Sind allerdings auch alles Standard-LaTeX2e-Pakete.


Gruss KayHH