[Rd] relative path to source files in vignette [a solution somehow]
Peter Ruckdeschel
peter.ruckdeschel at web.de
Tue Oct 14 18:03:57 CEST 2008
Gabor Grothendieck schrieb:
> On Fri, Oct 10, 2008 at 7:06 PM, Peter Ruckdeschel
> <peter.ruckdeschel at web.de> wrote:
>
[snip]
>> This could indeed be an option, but as noted in my reply to Robert, my
>> guess is that in the library where you install your packages to and which is
>> found with system.file(), you will no longer find the R source files but rather
>> some .rdb or .rdx file. At least this is what I found --- or is there some
>> magic trick to get back the source files from this?
>>
>
> Yes, that is what occurs. That's why it was suggested to copy it.
>
>
>
Not sure whether this is helpful to anyone else out there, but
here is my solution:
I could not find a satisfactory automatic solution
%
(which should find the source folder[s] to my package[s]
automatically and correspondingly, in R should fill string
variables),
%
so I placed a README file into the inst/doc folder where
I explain that to build / check / install my package[s] including
the building of the vignette, one either has to call R CMD from
the parent folder of the source folder to my package (distr)
or one has to define path(s) in a file myPATH.
In the preamble of my .Rnw file, I put
%--------------------------------------------------------------
% --- begin of code from newDistribution.Rnw in pkg distr --- %
%
<<setPath, results=tex, echo=FALSE>>=
if(file.exists("myPATH")){
cat("\\def\\distrPATH{",readLines("myPATH")[1],"}\n",sep="")
cat("\\def\\distrExPATH{",readLines("myPATH")[2],"}\n",sep="")
}else{
cat("\\def\\distrPATH{../../../distr}\n",sep="")
cat("\\def\\distrExPATH{../../../distrEx}\n",sep="")
}
@
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% define \lstinputlistingWithPath to be able to work with
% path information (parameter #2)
% so syntax for \lstinputlistingWithPath
%
% \lstinputlistingWithPath[key=value-list]{<path>}{<file>}
%
% which then calls \lstinputlisting[key=value-list]{<path>/<file>}
%(but where <path> may be a macro which is expanded)
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\makeatletter
\def\lstinputlistingWithPath{\@ifnextchar[%
{\@lstinputlistingWithPath}{\@lstinputlistingWithPath[]}}
\def\@lstinputlistingWithPath[#1]#2#3{%
\def\@doLIstInput{\lstinputlisting[#1]}
\expandafter\@doLIstInput\expandafter{#2/#3}
}
\makeatother
%
% --- end of code from newDistribution.Rnw in pkg distr --- %
%--------------------------------------------------------------
and in the .Rnw file I use
\lstinputlistingWithPath[firstline=<nn>, lastline = <nn>]%
{\distrPATH}{R/<filename-of-myRsource>.R}
resp.
\lstinputlistingWithPath{\distrPATH}%
{man/<filename-of-myRsource>.Rd}
to include some man-file.
>
> Perhaps you should just preprocess your Sweave files prior to the build.
> The brew package could be used, for example.
>
I should have a look to it.
Thank you once again,
Peter
More information about the R-devel
mailing list