By default, graphics commands like \includegraphics
look
“wherever TeX files are found” for the graphic file they’re being
asked to use. This can reduce your flexibility if you choose to hold
your graphics files in a common directory, away from your (La)TeX
sources.
The simplest solution is to patch TeX’s path, by changing the default path. On most systems, the default path is taken from the environment variable TEXINPUTS, if it’s present; you can adapt that to take in the path it already has, by setting the variable to
on a Unix system; on a Windows system the separator will be “;” rather than “:”. The “.” is there to ensure that the current directory is searched first; the trailing “:” says “patch in the value of TEXINPUTS from your configuration file, here”.TEXINPUTS=.::
This method has the merit of efficiency ((La)TeX does all of the searches, which is quick), but it’s always clumsy and may prove inconvenient to use in Windows setups (at least).
The alternative is to use the graphics package command
\graphicspath
; this command is of course also available to users
of the graphicx and the epsfig packages. The
syntax of \graphicspath
’s one argument is slightly odd: it’s a
sequence of paths (typically relative paths), each of which is
enclosed in braces. A slightly odd example (slightly modified from one
given in the graphics bundle documentation) is:
which will search for graphics files in subdirectories eps and png of the directory in which LaTeX is running. (Note that the trailing “/” is required.)\graphicspath{{eps/}{png/}}
(Note that some (La)TeX systems will only allow you to use files in
the current directory and its sub-directories, for security reasons.
However, \graphicspath
imposes no such restriction: as far as
it is concerned, you can access files anywhere.)
Be aware that \graphicspath
does not affect the operations of
graphics macros other than those from the graphics bundle — in
particular, those of the outdated epsf and
psfig packages are immune.
The slight disadvantage of the \graphicspath
method is
inefficiency. The package will call (La)TeX once for each entry in
the list to look for a file, which of course slows things. Further,
(La)TeX remembers the name of any file it’s asked to look up, thus
effectively losing memory, so that in the limit a document that uses a
huge number of graphical inputs could be embarrassed by lack of
memory. (Such “memory starvation” is pretty unlikely with any
ordinary document in a reasonably modern (La)TeX system, but it
should be borne in mind.)
If your document is split into a variety of directories, and each directory has its associated graphics, the import package may well be the thing for you; see the discussion in the question “ bits of document in other directories ”.
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=graphicspath