У меня есть документ LaTeX, разделенный на несколько текстовых файлов, находящихся в разных папках, следующим образом:
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}
\input{foo/2}
\section{Bar}
\subsection{Bar1}
\input{bar/1}
И так далее. Предположим, что внутри Foo2
подраздела я должен вставить изображение. Как мне сказать LaTeX
искать изображение внутри каталога, в котором находится текущий открытый файл (т.е. foo
), чтобы внутри файла 2
я мог просто написать:
\includegraphics{baz}
и могу ли я поместить все изображения для определенного раздела в их папки, среди входных текстовых файлов этого раздела?
решение1
Вы можете использовать
\graphicspath{{foo}}\input{foo/1}
..
\graphicspath{{bar}}\input{bar/1}
решение2
Есть несколько способов решения этой проблемы в зависимости от того, как организованы ваши каталоги. Если ваше дерево каталогов выглядит так
-foo
-foo1.tex
-foo2.tex
-baz.pdf
-baz.eps
-bar
-bar1.tex
-qux.pdf
где файлы в каталогах foo
и bar
имеют уникальные имена, то вы можете указать TEXINPUT
переменную окружения, чтобы включить подкаталоги. Подробности того, как установить, TEXINPUTS
зависят от вашего дистрибутива (например, TeXLive или MikTeX) и ОС (например, Windows или Linux). По моему мнению, это идеальная настройка, поскольку вы указываете, tex
где искать файлы. В этом случае ваш "главный" файл будет выглядеть так
\section{Foo}
\subsection{Foo1}
\input{foo1}
\subsection{Foo2}
\input{foo2}
\section{Bar}
\subsection{Bar1}
\input{bar1}
В этой ситуации вы также можете использовать \graphicspath
, чтобы задать каталоги для поиска изображений. В этом случае основной файл будет выглядеть так:
\graphicspath{{foo}{bar}}
\section{Foo}
\subsection{Foo1}
\input{foo/foo1}
\subsection{Foo2}
\input{foo/foo2}
\section{Bar}
\subsection{Bar1}
\input{bar/bar1}
Если ваше дерево каталогов выглядит так
-foo
-1.tex
-2.tex
-baz.pdf
-baz.eps
-bar
-1.tex
-qux.pdf
-baz.pdf
-baz.eps
где файлы в foo
каталогах bar
и не имеют уникальных имен, то вы не можете указать TEXINPUT
переменную окружения, поскольку она не будет знать, какой файл вы имеете в виду. Вы все равно можете использовать \graphicspath
, но вам придется устанавливать ее перед каждым\input
\graphicspath{{foo}}
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}
\input{foo/2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\input{bar/1}
Вы также можете использоватьimport
упаковка.
\section{Foo}
\subsection{Foo1}
\import{foo/}{1}
\subsection{Foo2}
\import{foo/}{2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\import{bar/}{1}
import
Если ваши каталоги вложены, то с пакетом все становится немного сложнее .