2015-03-29 4 views
0

Это содержимое mypaper.Rnw:Почему этот скрипт не работает?

\documentclass[a4paper,11pt]{article} 

\begin{document} 
\title{} 
\author{Ross Ahmed} 
\date{\today} 
\maketitle 

\section{Header} 

lorem 

<<fig1>>= 

library(ggplot2) 
ggplot(mtcars, aes(wt, mpg)) + geom_point() 

@ 
\FloatBarrier 

\end{document} 

я могу использовать R пакет knitr конвертировать mypaper.Rnw файл в mypaper.tex файл. Затем я могу преобразовать файл mypaper.tex в mypaper.pdf с помощью LaTeX.

Я пытаюсь сделать то же самое с make.

Это содержимое моего make файла, как это предусмотрено here

mypaper.tex: R/mypaper.Rnw 
    cd R;R CMD BATCH mypaper.Rnw 

mypaper.pdf: mypaper.tex 
    pdflatex mypaper.tex 

Если я запускаю это в R:

system("make mypaper.pdf") 

Я получаю эту ошибку:

make: *** No rule to make target `R/mypaper.Rnw', needed by `mypaper.tex'. Stop. 

Где я ошибаюсь? Я на Mac OSX

ответ

1

Говоря:

mypaper.tex: R/mypaper.Rnw 

вы говорите, что файл mypaper.Rnw жизнь в каталоге R. Имеет ли это? Вы не говорите, что это так, вы просто называете это mypaper.Rnw. Если вы запустите ls R/mypaper.Rnw, вы получите сообщение об ошибке?

Если это действительно в каталоге R, и вы не ошибались ни в одном из имен, вы можете запустить make -r -d, чтобы получить (много) отладочную информацию, и попытайтесь выяснить, почему make отказывается использовать ваши файл.

0

У меня нет опыта работы с knitr, поэтому я использовал некоторый фиктивный код для создания файлов. Я не смог воспроизвести вашу ошибку, поэтому, возможно, в вашей файловой структуре есть некоторая ошибка.

я переписал свой Makefile к следующему, который работает, как ожидалось:

mypaper.tex: R/mypaper.Rnw 
    cd R; cp mypaper.Rnw mypaper.tex 

mypaper.pdf: mypaper.tex 
    #cd R is needed before your command 
    cd R;cp mypaper.tex mypaper.pdf 

Файл-структуры перед:

. 
├── makefile 
└── R 
    └── mypaper.Rnw 

Файл-структура после:

. 
├── makefile 
└── R 
    ├── mypaper.pdf 
    ├── mypaper.Rnw 
    └── mypaper.tex 
Смежные вопросы