input und graphicx - Suche nach Bildern, wo sich die Datei befindet

input und graphicx - Suche nach Bildern, wo sich die Datei befindet

Ich habe ein LaTeX-Dokument, das in mehrere Textdateien in verschiedenen Ordnern wie folgt aufgeteilt ist:

\section{Foo}

\subsection{Foo1}
\input{foo/1}

\subsection{Foo2}    
\input{foo/2}

\section{Bar}

\subsection{Bar1}
\input{bar/1}

Und so weiter. Angenommen, Foo2ich muss in den Unterabschnitt ein Bild einfügen. Wie kann ich festlegen, LaTeXdass das Bild im Verzeichnis gesucht werden soll, in dem sich die aktuell geöffnete Datei befindet (also foo), sodass 2ich in die Datei einfach Folgendes schreiben kann:

\includegraphics{baz}

und ich kann alle Bilder für einen bestimmten Abschnitt in ihren Ordnern unter den Eingabetextdateien dieses Abschnitts platzieren?

Antwort1

Sie können

\graphicspath{{foo}}\input{foo/1}
..
\graphicspath{{bar}}\input{bar/1}

Antwort2

Es gibt eine Reihe von Möglichkeiten, dies zu lösen, je nachdem, wie Ihre Verzeichnisse angelegt sind. Wenn Ihr Verzeichnisbaum wie folgt aussieht

-foo
  -foo1.tex
  -foo2.tex
  -baz.pdf
  -baz.eps
-bar
  -bar1.tex
  -qux.pdf

wobei die Dateien in den Verzeichnissen foound bareindeutige Namen haben, können Sie die TEXINPUTUmgebungsvariable so angeben, dass die Unterverzeichnisse eingeschlossen werden. Die Details der Einstellung TEXINPUTShängen von Ihrer Distribution (z. B. TeXLive oder MikTeX) und Ihrem Betriebssystem (z. B. Windows oder Linux) ab. Meiner Meinung nach ist dies die ideale Konfiguration, da Sie angeben, texwo nach Dateien gesucht werden soll. In diesem Fall würde Ihre „Haupt“-Datei wie folgt aussehen:

\section{Foo}
\subsection{Foo1}
\input{foo1}
\subsection{Foo2}    
\input{foo2}
\section{Bar}
\subsection{Bar1}
\input{bar1}

Sie können \graphicspathin dieser Situation auch verwenden, um die Verzeichnisse festzulegen, in denen nach Bildern gesucht werden soll. In diesem Fall würde die Hauptdatei wie folgt aussehen:

\graphicspath{{foo}{bar}}
\section{Foo}
\subsection{Foo1}
\input{foo/foo1}
\subsection{Foo2}    
\input{foo/foo2}
\section{Bar}
\subsection{Bar1}
\input{bar/bar1}

Wenn Ihr Verzeichnisbaum wie folgt aussieht:

-foo
  -1.tex
  -2.tex
  -baz.pdf
  -baz.eps
-bar
  -1.tex
  -qux.pdf
  -baz.pdf
  -baz.eps

Wenn die Dateien in den Verzeichnissen foound barkeine eindeutigen Namen haben, können Sie die TEXINPUTUmgebungsvariable nicht angeben, da diese nicht weiß, welche Datei Sie meinen. Sie können immer noch verwenden \graphicspath, müssen diese aber vor jedem\input

\graphicspath{{foo}}
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}    
\input{foo/2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\input{bar/1}

Sie können auch dieimportPaket.

\section{Foo}
\subsection{Foo1}
\import{foo/}{1}
\subsection{Foo2}    
\import{foo/}{2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\import{bar/}{1}

importWenn Ihre Verzeichnisse verschachtelt sind, wird es mit dem Paket etwas knifflig .

verwandte Informationen