Как включить полные пути в ЛАТЕКСЕ

Я имею один документ под ~/my_files/test.tex и хочу включать в test.tex некоторые информации о форматировании, которые могут быть найдены под ~/latex/styles/info_hypersetup.tex.

Когда я включаю следующее утверждение в свой test.tex:

%% setting the infos for the pdf
\include{home/helex/latex/styles/info_hypersetup.tex}

Я получаю следующую ошибку при выполнении pdflatex test.test:

! I can't write on file `~/latex/styles/info_hypersetup.tex.aux'.

Я установил права на 777, но это не делает изменил что-либо. Это работает, если я поместил info_hypersetup.tex в структуру каталогов, где test.tex. Но я хочу использовать этот styleinformation в качестве глобальной установки для всех моих документов и не хочу копировать его в каждый проект.

Спасибо за помощь.

5
задан Matthias Guenther 21 May 2010 в 19:42
поделиться

2 ответа

~ - это не путь в Unix, скорее это путь, который оболочки Unix расширяют до значения $ HOME.

У вас есть несколько возможных способов решения вашей проблемы:

  1. Определите макрос \ homedir , значение которого закодировано в вашем файле Latex как абсолютный путь к вашему дому (т. Е. содержимое $ HOME). Непереносимый: если вы переместите файл на другой компьютер, он, вероятно, не сработает.
  2. Используйте относительные пути: это то, что делает ваше решение. Если вы перемещаете субиерархии файлов и следите за тем, чтобы они были самодостаточными, это работает хорошо.
  3. Создайте свой собственный файл стиля, скажем thisfilesystem.sty , с жестко заданными значениями для различных каталогов. Затем вы можете просто изменить значения этого параметра от машины к машине. Его также можно создать автоматически из Makefile.
  4. Используйте \ write18 , чтобы запустить echo $ HOME и привязать этот макрос к вам \ homedir . Он переносимый, но я не советую его: вы должны выработать привычку избегать \ write18 , потому что это ужасная дыра в безопасности.

Я бы порекомендовал №2.

5
ответ дан 14 December 2019 в 13:28
поделиться

Вот мое грязное решение (потому что многие люди говорят не использовать ввод, но я хочу продолжить :)):

\newcommand{\home}{../..}
\input{\home/latex/styles/info_hypersetup}

Если вы найдете что-то получше , просто дай мне знать. Подсказка с установкой output_any = a int в texmf.conf не сработала. Я использую убунту.

1
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: