Hervé Pagès wrote:
Hi Duncan,

On 09/12/2010 05:07 AM, Duncan Murdoch wrote:
On 12/09/2010 12:49 AM, Hervé Pagès wrote:
Hi Duncan,

On 09/11/2010 03:56 AM, Duncan Murdoch wrote:
On 11/09/2010 12:52 AM, Hervé Pagès wrote:
Hi,

I found the following problem with recent R-devel
(2010-08-26 r52817) on Windows (32-bit and 64-bit):
'R CMD build <pkg>' gets stalled during vignett
creation for packages that have a Makefile in <pkg>/inst/doc.

It seems that the problem is that the commands used in the
Makefile for converting .tex to .pdf are not able to locate
the Sweave.sty file anymore (if I drop this file to
<pkg>/inst/doc, then the problem goes away).
This sounds like a problem that only the package maintainer could
address. Presumably it will be temporary: once they adjust to the new
organization of the share/texmf directory, things will be fine again.

The reorg is described in this NEWS item:

* Directory R_HOME/share/texmf now follows the TDS conventions, so
can be set as a texmf tree ('root directory' in MiKTeX parlance).
Before this reorg, the package maintainer didn't have to care about
where to find things in R_HOME/share/texmf. 'R CMD build' would just
find them by setting the TEXINPUTS envir variable appropriately (and
then commands in the inst/doc/Makefile file would find them too).

This reorg was checked in svn as rev 52256. I see the following
adjustments to TEXINPUTS:

** On Unix (src/scripts/Rcmd.in file):

-## Append 'share/texmf' to TeX's input search path.
-if test -z "$TEXINPUTS}"; then
- TEXINPUTS=".:${R_SHARE_DIR}/texmf:"
+## Append 'share/texmf/...' to TeX's input search path.
+if test -z "${TEXINPUTS}"; then
+ TEXINPUTS=".:${R_SHARE_DIR}/texmf/tex/latex:"
else
- TEXINPUTS=".:${TEXINPUTS}:${R_SHARE_DIR}/texmf:"
+ TEXINPUTS=".:${TEXINPUTS}:${R_SHARE_DIR}/texmf/tex/latex:"
fi
export TEXINPUTS

** On Windows (src/gnuwin32/fixed/etc/Rcmd_environ file):

-TEXINPUTS=.;${TEXINPUTS};${R_SHARE_DIR}/texmf;
+TEXINPUTS=.;${TEXINPUTS};${R_SHARE_DIR}/texmf/tex/latex;

The path seems to have been adjusted correctly. So my question is:
why isn't this working on Windows for packages that use a Makefile?
I don't know. My first assumption would that something in the Makefile
is wrong, but since you don't give any examples, I can't check.

There are 8 Bioconductor packages failing to build on Windows
because of this problem. They have a Makefile in inst/doc/ that
calls 'pdflatex' or 'texi2dvi --pdf' on <some_vignette> to convert
<some_vignette>.tex into <some_vignette>.pdf. They don't
have Sweave.sty in inst/doc/ (other packages use the same kind of
Makefile and are building ok because they have a copy of Sweave.sty
in inst/doc/).

For example, here is the content of adSplit/inst/doc/Makefile:

all:    pdf clean

pdf:    tr_2005_02.tex
        epstopdf splitSet.eps
        pdflatex tr_2005_02
        pdflatex tr_2005_02
        pdflatex tr_2005_02

clean:
        rm -f *.aux *.eps *.log *.out *.tex *.toc
        rm -f Rplots.ps splitSet.pdf tr_2005_02-*

The 7 other packages use similar Makefile. As I said before, they
all used to build ok before the R_HOME/share/texmf reorg. They still
build ok on non-Windows machines. Thanks!

H.

On Windows using MikTeX, we put a -I option on the command line to point to the input directory. If you don't want to do that, you can use "R CMD texify --pdf" instead of "pdflatex"; it will try to determine the appropriate command line based on the platform.

Duncan Murdoch

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to