Как включить абсолютные пути в LaTeX - PullRequest
5 голосов
/ 21 мая 2010

У меня есть один документ в ~ / 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. Но я хочу использовать эту стилевую информацию как глобальную настройку для всех моих документов и не хочу копировать ее в каждый проект.

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

Ответы [ 3 ]

5 голосов
/ 24 мая 2010

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

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

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

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

1 голос
/ 22 мая 2010

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

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

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

0 голосов
/ 23 октября 2015

Проблема: Вы забыли закрыть PDF-файл, который вы создаете или компилируете.

Решение: Просто закройте Adobe Reader или любое другое приложение, которое вы читаете в PDF-файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...