Пытаясь понять рабочий процесс между латексом, Sweave и R - PullRequest
3 голосов
/ 30 сентября 2011

Допустим, я написал следующий крошечный файл .Rnw:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{Sweave}
\usepackage{tikz}
\usepackage{pgf}
\begin{document}

<<>>=
sessionInfo()
@ 

\end{document}

Затем я могу перейти к R и использовать sweave для перевода файла .Rnw в файл .tex Как только это будет сделано, можно вызвать интерпретатор латекса и потому, что я использовал \usepackage{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 

Что я не понимаю сейчас, так как латексная упаковка \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 Ответ

3 голосов
/ 30 сентября 2011

Этот путь устанавливается автоматически при установке LaTeX;это ваше личное дерево текстов, и вы можете поместить туда любой стиль или класс, который вы хотите, чтобы LaTeX нашел там.Имена каталогов не имеют значения, они рекурсивно ищут в них Sweave.sty.Поэтому изменение ссылки на каталог на Sweave_Link не должно иметь значения.

Вы можете проверить это, запустив kpsewhich Sweave.sty, который ищет во всех деревьях texmf нужный файл.

Кроме того, вы не 'в файле Rnw должно быть \usepackage{Sweave};Sweave добавит его автоматически.

...