2010-05-21 3 views
5

У меня есть один документ под ~/my_files/test.tex и вы хотите включить в test.tex некоторые сведения о стиле, которые можно найти в ~/latex/styles/info_hypersetup.tex.Как включить абсолютные пути в LaTeX

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

Благодарим за помощь.

+0

Является ли каталог '~/latex/styles /' доступным для записи? – kennytm

+0

Hi KennyTM, Да, я установил его с sudo chmod -R 777 ~/latex, и ошибка все тот же. –

+0

Добавьте его в локальное дерево TeXmf (~/texmf/tex/latex/local /), а затем запустите texhash (как вы, * не * как root). Затем вы должны будете сделать \ include {info_hypersetup.tex}. Кстати, я подозреваю, что вы действительно хотите \ input этот файл: \ include предназначен для того, чтобы материал был набираемым. (Есть хорошие причины безопасности, запрещающие тип пути, который вы пытались использовать.) –

ответ

1

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

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

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

5

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

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

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

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

0

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

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

Смежные вопросы