Пытаюсь понять рабочий процесс между latex, sweave и R

#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 список путей, по которым выполняется поиск.