#r #latex #sweave
#r #Латекс #sweave
Вопрос:
Допустим, я написал следующее крошечное .Файл Rnw:
documentclass{article}
usepackage[utf8]{inputenc}
usepackage{Sweave}
usepackage{tikz}
usepackage{pgf}
begin{document}
<<>>=
sessionInfo()
@
end{document}
Затем я могу перейти к R и использовать sweave для перевода .Файл Rnw в файл .tex
Как только это будет сделано, можно вызвать интерпретатор latex, и потому что я использовал
usepackage{Sweave}
Latex знает, как обрабатывать теги кода, специфичные для sweave.
Когда я впервые выполнил эту процедуру, я получил распространенную ошибку, что файл Sweave.sty
не может быть найден. Я погуглил и смог решить проблему, введя следующую команду
в терминал Mac OS:
mkdir -p ~/Library/texmf/tex/latex
cd ~/Library/texmf/tex/latex
ln -s /Library/Frameworks/R.framework/Resources/share/texmf Sweave
Чего я сейчас не понимаю, так это как пакет latex usepackage{Sweave}
узнает, что ему
нужно посмотреть ~/Library/texmf/tex/latex, чтобы найти символическую ссылку на файл Sweave.sty?
Что произойдет, если я изменю следующую строку:
ln -s /Library/Frameworks/R.framework/Resources/share/texmf Sweave
Для
ln -s /Library/Frameworks/R.framework/Resources/share/texmf Sweave_Link
В .Файл Rnw я должен использовать тогда usepackage{Sweave_Link}
?
Ответ №1:
Этот путь устанавливается автоматически при установке LaTeX; это ваше личное дерево texmf, и вы можете поместить туда любые файлы стилей или классов, которые LaTeX должен найти. Имена каталогов не имеют значения, он рекурсивно ищет в них Sweave.sty. Поэтому изменение ссылки на каталог на Sweave_Link не должно иметь значения.
Вы можете проверить это, запустив kpsewhich Sweave.sty
который ищет во всех деревьях texmf нужный файл.
Кроме того, вам не нужно иметь usepackage{Sweave}
в файле Rnw; Sweave добавит его автоматически.
Комментарии:
1. Здравствуйте и спасибо, что вы ответили Аарону. Вы сказали, что путь ~/Library/texmf/tex/latex автоматически устанавливается latex при его установке, но почему он не создает этот каталог автоматически? Большое спасибо!
2. @user969113 Если бы он создал этот путь, он был бы пустым для начала, что выглядит расточительно. Есть несколько деревьев каталогов, в которых LaTeX (и другие программы, связанные с TeX) ищут файлы, ваше дерево пользователей — лишь одно из них, и оно не всем нужно. Введите
kpsewhich --show-path=tex
список путей, по которым выполняется поиск.