On 13/09/2010 2:38 PM, Hervé Pagès wrote:
On 09/13/2010 03:34 AM, Duncan Murdoch wrote: > 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.Yes I can use 'R CMD some_command' instead of just 'some_command' in the Makefile so 'some_command' sees the TEXINPUTS variable and that solves the problem. But when I call 'R CMD build', shouldn't 'make' and its child processes ('pdflatex', 'texify', etc...) already see TEXINPUTS? Why do I need to call the commands in the Makefile thru R CMD again in order to see TEXINPUTS? Thanks for suggesting workarounds but don't you think there is a real problem?
As I said, we don't use TEXINPUTS on Windows, we use the command line version. I didn't write the code, so I don't know why there's the difference, but I assume there's a reason for it, and presumably the reason is that relying on TEXINPUTS doesn't work.
Duncan Murdoch ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
