Независимая от операционной системы адресация изображений
Благодаря тому, что на моем компьютере установлены Windows и Ubuntu, я хотел бы иметь возможность создавать документы самостоятельно. У меня есть один каталог для логотипов, и я хочу использовать их в любых документах везде.
Проблема с другой адресацией файлов я решил с помощью этих команд:
\newcommand{\winlogo}{D:/logo/}
\newcommand{\linlogo}{/media/DATA/logo/}
\includegraphics{\winlogo logo_bw}
Как предоставить эту функцию:
if(parameter==windows){adress:=D:/logo/}
elseif(parameter=linux){adress:=/media/DATA/logo}
else{error}
2 ответа
Я также столкнулся с этой проблемой и обнаружил, что жесткое кодирование путей - это абсолютно ужасная идея. Кроме того, синхронизация этих каталогов со временем станет проблемой, когда ваши проекты начнут расти.
Способ, которым я решил это, заключался в том, чтобы поместить все в контроль версий (мне нравится git, ваш пробег может отличаться).
Затем я создал images
папка, поэтому моя иерархия папок выглядит так:
Working-Dir | - images/ |- myfile.tex |- nextfile.tex
Тогда в преамбуле моих документов: \usepackage{graphicx}
а также \graphicspath{{images/}}
который говорит латексу искать папку с именем images
, а затем посмотрите на графику внутри папки.
Затем я делаю свою работу над компом, откладываю свою законченную работу обратно в репозиторий, и когда я переключаю компьютеры, я просто вытягиваю из своего репо. Таким образом, все будет синхронизировано, независимо от того, на каком компьютере я работаю.
Обработка исходного текста, такого как исходный код, значительно улучшила мой рабочий процесс и эффективность. Я бы предложил аналогичные меры для тех, кто имеет дело с источником латекса.
РЕДАКТИРОВАТЬ:
От: http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics
Хранение графики
Существует способ указать LaTeX, где искать изображения: например, это может быть полезно, если вы храните изображения централизованно для использования во многих различных документах. Ответ в команде \graphicspath, которую вы предоставляете с аргументом, задающим имя дополнительного пути к каталогу, который вы хотите найти, когда файл использует команду \includegraphics, вот несколько примеров:
\graphicspath{{c:\mypict~1\camera}}
\graphicspath{{/var/lib/images/}}
\graphicspath{{./images/}}
\graphicspath{{images_folder/}{other_folder/}{third_folder/}}
пожалуйста, смотрите http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf
Как вы, наверное, заметили, в первом примере я использовал "безопасную" (MS-DOS) форму папки Windows MyPictures, потому что плохая идея использовать имена каталогов, содержащие пробелы. Используя абсолютные пути, \graphicspath делает ваш файл менее переносимым, а при использовании относительных путей (как в последнем примере) у вас не должно возникнуть проблем с переносимостью, но не забывайте использовать пробелы в именах файлов. Кроме того, если вы используете PDFLaTeX, вы можете использовать пакетный grffile, который позволит вам использовать пробелы в именах файлов.
Третий вариант должен вам помочь - просто укажите несколько путей для \graphicspath
Интересно, будет ли LaTeX безуспешно работать, если вы просто включите в него все свои пути (один для изображений, один для ваших журналов в Linux, один для ваших логотипов в Windows)?
Слюда, еще раз спасибо, твой совет работает правильно!
Я проверил этот код в преамбуле, в .sty
файл это не работает:
\usepackage{graphicx}
\graphicspath{{/media/DATA/logo/}{d:/logo/}{img/}}
где
/media/DATA/logo/
адрес к каталогу с логотипами на смонтированном разделе в Linuxd:/logo/
это адрес для того же каталога в Windowsimg/
адрес изображений для текущего документа в реальном рабочем каталоге
и этот код в документе:
\includegraphics{logo_zcu_c}
от logo
реж\includegraphics{hvof}
от img/
dir`