input y graphicx: busca imágenes donde se encuentra el archivo

input y graphicx: busca imágenes donde se encuentra el archivo

Tengo un documento LaTeX dividido en varios archivos de texto, dentro de varias carpetas, de la siguiente manera:

\section{Foo}

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

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

\section{Bar}

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

Etcétera. Supongamos que, dentro de la Foo2subsección, debo insertar una imagen. ¿Cómo puedo saber si LaTeXdebo buscar la imagen dentro del directorio en el que se encuentra el archivo actualmente abierto (es decir foo), para que dentro del archivo 2pueda escribir:

\includegraphics{baz}

¿Y puedo colocar todas las imágenes de una sección determinada dentro de sus carpetas, entre los archivos de texto de entrada de esa sección?

Respuesta1

Puedes usar

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

Respuesta2

Hay varias formas de abordar esto dependiendo de cómo estén distribuidos sus directorios. Si su árbol de directorios se parece

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

donde los archivos en los directorios fooy bartienen nombres únicos, puede especificar la TEXINPUTvariable de entorno para incluir los subdirectorios. Los detalles de cómo configurar TEXINPUTSdependen de su distribución (por ejemplo, TeXLive o MikTeX) y sistema operativo (por ejemplo, Windows o Linux). En mi opinión, esta es la configuración ideal ya que le indica texdónde buscar archivos. En este caso su archivo "principal" se vería así

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

En esta situación , también puede utilizar \graphicspathpara configurar los directorios en los que buscar imágenes. En este caso, el archivo principal se vería así

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

Si su árbol de directorios se parece

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

donde los archivos en los foodirectorios bary no tienen nombres únicos, entonces no puede especificar la TEXINPUTvariable de entorno ya que no sabrá a qué archivo se refiere. Aún puedes usarlo \graphicspath, pero debes configurarlo antes de cada\input

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

También podrías utilizar elimportpaquete.

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

Las cosas se ponen un poco complicadas con el importpaquete si sus directorios están anidados.

información relacionada