Es geht um folgende Dateien:

./main.tex
./abbildung/sincos.eps
./abbildung/sincos.tex

Wobei main.tex folgenden Inhalt hat

\documentclass{article}
\usepackage{graphicx}
\begin{document}

\begin{figure}[t]
  \centering
  \input{./abbildung/sincos.tex}
  \caption{$\sin{x} \cos{y}$ }
\label{fig:sincos}
\end{figure}

Wie in Abbildung \ref{fig:sincos} zu sehen, ist\dots

\end{document}

Das Problem besteht darin, dass ./abbildung/sincos.tex, die mit gnuplot erzeugt wurde, den Code

\includegraphics{sincos}

enthält. Dadurch erhält man beim Compilen von main.tex einen Fehler,

! LaTeX Error: File `sincos' not found.

da der Compiler die Datei im Verzeichnis . von main.tex sucht. Gibt es eine Möglichkeit dies zu beheben ohne den Pfad in sincos.tex anpassen zu müssen?

Das vollständige Beispiel kann heruntergeladen werden, es lässt sich allerdings erst compilen, wenn man den Pfad in sincos.tex anpasst bzw. wenn man eine Lösung, nach der ich noch suche, hinzufügt.

gefragt 30 Aug '13, 18:29

Frink's gravatar image

Frink
1254510
Akzeptiert-Rate: 0%

bearbeitet 30 Aug '13, 20:49

Qrrbrbirlbel's gravatar image

Qrrbrbirlbel
2.9k2815

1

Ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe, aber hilft ein \graphicspath{{abbildung/}} in der Preamble?

(30 Aug '13, 18:45) Qrrbrbirlbel

Das funktioniert im Prinzip, allerdings gibt es Probleme, wenn beispielsweise noch eine andere Datei ./sincos.eps exisitiert, dann spielt die Reihenfolge in der die Pfade durchsucht werden eine Rolle. Wäre gut, wenn man sich dagegen auch noch absichern würde, aber ansich ist die Lösung schon das, was ich gesucht habe.

(30 Aug '13, 19:15) Frink

@Frink meiner Meinung nach ist es sowieso keine gute Idee, (inhaltlich) verschiedene Dateien mit dem gleichen Namen zu haben. Und wenn sie verschiedene Namen haben dürfte die Reihenfolge keine Rolle mehr spielen

(30 Aug '13, 19:18) cgnieder

Ich stimme dir zu, dass das eigentlich keine gute Idee ist, aber ich habe so viele Grafiken, dass das versehentlich schon passieren könnte und solange sie in verschiedenen Verzeichnissen liegen, ist das normalerweise auch kein Problem (anders geht es ja auch gar nicht vom Betriebssystem her), aber ich meine, es müsste doch möglich sein, dass der Compiler, bei allen Aufrufen die aus input{} kommen, das jeweilige Verzeichnis temporär zum Arbeitsverzeichnis macht, hier steht auch, dass das so wäre, deshalb wundere ich mich, dass es nicht funktioniert.

(30 Aug '13, 19:22) Frink

@Frink Das Arbeitsverzeichnis ist immer das Verzeichnis, in der die Hauptdatei liegt (hier main.tex).

(30 Aug '13, 19:27) Epllus

@Frink das Problem ist, dass \input{bilder/datei.tex} den gleichen Effekt hat, als wenn Du den Inhalt von datei.tex direkt in main.tex geschrieben hättest. Wenn ich mich nicht irre, ist also das Arbeitsverzeichnis damit das von main.tex und nicht das von datei.tex

(30 Aug '13, 19:28) cgnieder

@Clemens Ja, das ist wohl das Problem. Aber gut, dann verwende ich graphicspath{} und achte darauf, dass die Dateien alle verschiedene Namen haben. Es wäre nur einfacher, wenn das Arbeitsverzeichnis automatisch wechseln würde, dann müsste man auch nicht alles doppelt angeben. Aber die Hauptsache ist, dass es überhaupt funktioniert.

(30 Aug '13, 19:44) Frink

@Epllus Ja, wenn es soetwas gibt und es dir noch einfällt, wäre ich natürlich daran interessiert.

(30 Aug '13, 19:45) Frink

@Frink Habe meine Antwort schon etwas seit etwas längerem editiert ;) Hoffe es hilft.

(30 Aug '13, 19:46) Epllus
Ergebnis 5 von 9 show 4 more comments

Wenn du den Pfad auf keinen Fall anpassen möchtest, kannst du die Bilder in das selbe Verzeichnis geben, in dem auch main.tex liegt. Es wird auf die Dauer halt unübersichtlich.

Edit: Du kannst aber auch das import Paket verwenden. \input ersetzt du dann einfach durch \subimport{Pfad}{Datei}:

\documentclass{article}
\usepackage{graphicx}
\usepackage{import}

\begin{document}

\begin{figure}[t]
  \centering
  \subimport{./abbildung/}{sincos.tex}
  \caption{$\sin{x} \cos{y}$ }
\label{fig:sincos}
\end{figure}

Wie in Abbildung \ref{fig:sincos} zu sehen, ist\dots
\end{document}

Damit sollte es funktionieren.

Permanenter link

beantwortet 30 Aug '13, 19:15

Epllus's gravatar image

Epllus
620269
Akzeptiert-Rate: 46%

bearbeitet 30 Aug '13, 19:41

Ja, ich hatte es bisher schon mit symbolischen Links so gemacht, aber das wird mir in der Tat zu umständlich und unübersichtlich.

(30 Aug '13, 19:24) Frink

Ja, das ist schon nicht schlecht, weil es Schreibarbeit spart, aber vom Effekt her ist es das Gleiche, wie mit graphicspath, auch hier wird das Bild aus dem Arbeitsverzeichnis genommen, wenn dort eine gleichnamige sincos.eps liegt.

(30 Aug '13, 19:49) Frink

Wobei ansich ist es doch ein Unterschied, in diesem Fall muss ich nur Sorge tragen, dass im Hauptverzeichnis keine gleichnamigen Dateien liegen, bei der Variante mit graphicspath{} muss ich das für alle Unterverzeichnisse und da ich im Hauptverzeichnis sowieso keine Bilder haben will, ist das optimal. Besten Dank.

(30 Aug '13, 20:08) Frink

@Frink: Von \subimport gibt es auch noch eine Sternversion, die nicht im Hauptverzeichnis sucht.

(30 Aug '13, 20:16) esdd

@esdd: Perfekt, das ist wirklich exakt das, was ich gesucht habe.

(30 Aug '13, 20:19) Frink
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×12
×3

gestellte Frage: 30 Aug '13, 18:29

Frage wurde gesehen: 11,436 Mal

zuletzt geändert: 30 Aug '13, 20:49