1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

„\input“ in LaTeX

Dieses Thema im Forum "Andere Software" wurde erstellt von KayHH, 28.10.06.

  1. KayHH

    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
     
  2. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    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... ;)
     
    1 Person gefällt das.
  3. KayHH

    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
     
    #3 KayHH, 28.10.06
    Zuletzt von einem Moderator bearbeitet: 28.10.06
  4. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Joa, schaut ganz vernünftig aus so weit. Immerhin bist Du so nicht von Fremdpaketen abhängig. :)
     
  5. KayHH

    KayHH Gast

    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
     

Diese Seite empfehlen