PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Referenzierung von Dateinamen bei \input



Ralph
11-09-2011, 17:13
Hi,

ich verwende MikeTex und habe sinngemäss folgende Verzeichnisstruktur:


Root
Root.tex
Part_I
Chapter_A
A.tex
A1.tex
A2.tex
Chapter_B
B.tex
B1.tex
B2.tex
...

Root.tex enthält


\input{Part_I/Chapter_A/A.tex}
\input{Part_I/Chapter_B/B.tex}

und A.tex sollte enthalten:


\input{A1.tex}
\input{A2.tex}

Funktioniert leider nicht, stattdessen funktioniert


\input{Part_I/Chapter_A/A1.tex}
\input{Part_I/Chapter_A/A2.tex}

was ich jedoch nicht besonders glücklich finde, da ich ein Kapitel möglichst von der darüberliegenden Verzeichnisstruktur unabhängig halten möchte: Denn falls ich z.B. Kapitel A von Part-I nach Part-II verschiebe, möchte ich nicht alle Verzeichnis-Namen in A.tex anpassen müssen.

Daher die Frage: Gibt es eine Möglichkeit, die Dateien, die in A.tex eingebunden werden sollen, relativ zu referenzieren ?

rais
11-09-2011, 18:58
Moin moin,
evtl tut es mit einer Krücke: definiere Dir in Deiner Präambel


\newcommand*\relpath{.}
\newcommand*\relinput[1]{\input{\relpath/#1}}

dann bräuchtest Du nur noch in A.tex und B.tex \relpath per \renewcommand* anzupassen und \relinput statt \input zu verwenden.
Ob das dann auch noch mit Unterstrichen im Pfadnamen funzt, hab ich nicht getestet.

MfG

mechanicus
11-09-2011, 20:08
Hi,

schau dir das Paket import an.

Marco

ctansearch
12-09-2011, 09:46
Du kannst im tex-Verzeichnis ein eigenes Unterverzeichnis anlegen, in dem alle input-Dateien gespeichert werden. Da kannst Du eine ganz eigenen Verzeichnisstruktur für diese anlegen und auch immer wieder verändern, mußt lediglich nach jeder Veränderung texhash aufrufen, damit das Programm die Verzeichnisstruktur erkennt. Auf diese Weise brauchst Du im Dokument keine Verzeichnisstruktur angeben, Probleme gibt es dann nur bei gleichnamigen Dateien, aber das läßt sich ja vermeiden.