Re: [R-pkg-devel] Best practices for vignettes

2015-07-27 Thread Lenth, Russell V
Thanks. This helped me learn a few things...

1. buildVignettes() operates on an installed package. So in RStudio, I do 
"build and reload" and it copies the vignette sources to the right place. 
Unfortunately, it does not also copy the associated .bib file, and it erases 
the one already there. So I have to manually copy it each time. However, I 
could script this and thus be able to get a reliable test of the vignettes.

2. I now know why I didn't get a build error. For testing, I put my LaTeX error 
back in the vignette... 
  -- On Windows with MikTeX, buildVignettes() reports only a warning that the 
pdflatex process returned an exit code of 1. 
  -- On the Mac with TeX Live, I get an error, not just a warning.
I suspect that TeX Live returns a higher error code for the same error. 

Most important, it appears that developers who use Windows with MikTeX should 
be advised that they will NOT detect certain LaTeX errors in routine building 
and checking. It might be worth switching to a different Windows installation 
of TeX.

Russ
--
Russell V. Lenth  -  Professor Emeritus
Department of Statistics and Actuarial Science
The University of Iowa  -  Iowa City, IA 52242  USA
Dept office (319)335-0712  -  FAX (319)335-3017
russell-le...@uiowa.edu  -  http://www.stat.uiowa.edu/~rlenth/


From: Henrik Bengtsson [henrik.bengts...@ucsf.edu]
Sent: Monday, July 27, 2015 5:50 AM
To: Lenth, Russell V
Cc: Dirk Eddelbuettel; r-package-devel@r-project.org
Subject: Re: [R-pkg-devel] Best practices for vignettes

Have a look at tools::buildVignette() - it builds a vignette the same
way as R CMD build does it.  It's a good start for troubleshooting.

/Henrik


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


Re: [R-pkg-devel] Best practices for vignettes

2015-07-27 Thread Dirk Eddelbuettel

On 27 July 2015 at 12:50, Henrik Bengtsson wrote:
| Have a look at tools::buildVignette() - it builds a vignette the same
| way as R CMD build does it.  It's a good start for troubleshooting.

Seconded.
 
| /Henrik
| 
| On Mon, Jul 27, 2015 at 1:31 AM, Lenth, Russell V
|  wrote:
| > Thanks, Dirk. Well, I tried this (after suitable modification), and what it 
does is create all the intermediate files, graphics files, an .Rout file, etc. 
in the vignette directory. And even then, for some reason it didn't build the 
pdfs correctly. So I had a mess to clean up.

If you have the patience, you probably want to debug this piece by piece, and
maybe making the vignette (temporarily) smaller and smaller and less
dependent on other things.

Sometimes it is the little things. I once had 'build/' in .Rbuildignore
because I thought it was spurious. Not so. Tooks more than one iteration,
countless feeble attempts and an eventual hint from a CRAN maintainer.

Another debugging strategy is to grab a (small enough) existing package by
someone else and see _exactly_ how it is setup.

Lastly, "if you can't beat'em" ...  I do have some Markdown vignettes in a
newer package (drat) and that works well.  Doesn't look as perfect as a pdf,
but html rendering has its charms and uses.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

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


Re: [R-pkg-devel] Best practices for vignettes

2015-07-27 Thread Henrik Bengtsson
Have a look at tools::buildVignette() - it builds a vignette the same
way as R CMD build does it.  It's a good start for troubleshooting.

/Henrik

On Mon, Jul 27, 2015 at 1:31 AM, Lenth, Russell V
 wrote:
> Thanks, Dirk. Well, I tried this (after suitable modification), and what it 
> does is create all the intermediate files, graphics files, an .Rout file, 
> etc. in the vignette directory. And even then, for some reason it didn't 
> build the pdfs correctly. So I had a mess to clean up.
>
> I've tried Markdown a few times, and technically, I guess it works. But I 
> always find myself abandoning it later because it gives me what it wants 
> instead of what I want. I suppose I could learn more of its refinements, but 
> even then it doesn't seem very promising. I'm not too old to learn new 
> things, but at my age, I think I am empowered to choose what I want to learn 
> -- and expertise on Markdown is just not a big priority.
>
> Russ
>
> -Original Message-
> From: Dirk Eddelbuettel [mailto:e...@debian.org]
> Sent: Sunday, July 26, 2015 2:31 PM
> To: Dirk Eddelbuettel 
> Cc: Lenth, Russell V ; r-package-devel@r-project.org
> Subject: Re: [R-pkg-devel] Best practices for vignettes
>
>
> On 26 July 2015 at 14:22, Dirk Eddelbuettel wrote:
> |
> | On 26 July 2015 at 18:42, Lenth, Russell V wrote:
> | | What's the best way to manage vignettes?
> |
> | All the young ones will of course tell you to use Markdown :)
> |
> | I still use Sweave / LaTeX as well, along with a custom driver:
> | highlight, as we once figured out how to make it create pretty shaded
> | boxen with code (as seen in the various Rcpp vignettes).
> |
> | So for that I often keep a five-line script 'buildVignette.r' in the
> | vignette directory.  With DESCRIPTION set up right (for the added
> | vignette driver) this then works in the package when it works manually for 
> the tests.
>
> I was rambling here.  What I meant to say is
>
>  - buildVignette.r as shown below allows me to build the vignette on the spot
>outside of package builds -- ie when I am in "vignette writing mode"
>
>  - if the vignette builds during the manual builds, which by their design
>mock what the package build process does, then I am reasonably confident
>that the R CMD ... process works too.
>
> Hope this clarifies.
>
> Dirk
>
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel

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


Re: [R-pkg-devel] Best practices for vignettes

2015-07-26 Thread Lenth, Russell V
Thanks, Dirk. Well, I tried this (after suitable modification), and what it 
does is create all the intermediate files, graphics files, an .Rout file, etc. 
in the vignette directory. And even then, for some reason it didn't build the 
pdfs correctly. So I had a mess to clean up.

I've tried Markdown a few times, and technically, I guess it works. But I 
always find myself abandoning it later because it gives me what it wants 
instead of what I want. I suppose I could learn more of its refinements, but 
even then it doesn't seem very promising. I'm not too old to learn new things, 
but at my age, I think I am empowered to choose what I want to learn -- and 
expertise on Markdown is just not a big priority.

Russ

-Original Message-
From: Dirk Eddelbuettel [mailto:e...@debian.org] 
Sent: Sunday, July 26, 2015 2:31 PM
To: Dirk Eddelbuettel 
Cc: Lenth, Russell V ; r-package-devel@r-project.org
Subject: Re: [R-pkg-devel] Best practices for vignettes


On 26 July 2015 at 14:22, Dirk Eddelbuettel wrote:
| 
| On 26 July 2015 at 18:42, Lenth, Russell V wrote:
| | What's the best way to manage vignettes?
| 
| All the young ones will of course tell you to use Markdown :)
| 
| I still use Sweave / LaTeX as well, along with a custom driver: 
| highlight, as we once figured out how to make it create pretty shaded 
| boxen with code (as seen in the various Rcpp vignettes).
| 
| So for that I often keep a five-line script 'buildVignette.r' in the 
| vignette directory.  With DESCRIPTION set up right (for the added 
| vignette driver) this then works in the package when it works manually for 
the tests.

I was rambling here.  What I meant to say is

 - buildVignette.r as shown below allows me to build the vignette on the spot
   outside of package builds -- ie when I am in "vignette writing mode"

 - if the vignette builds during the manual builds, which by their design
   mock what the package build process does, then I am reasonably confident
   that the R CMD ... process works too.

Hope this clarifies.

Dirk

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


Re: [R-pkg-devel] Best practices for vignettes

2015-07-26 Thread Dirk Eddelbuettel

On 26 July 2015 at 14:22, Dirk Eddelbuettel wrote:
| 
| On 26 July 2015 at 18:42, Lenth, Russell V wrote:
| | What's the best way to manage vignettes?
| 
| All the young ones will of course tell you to use Markdown :)
| 
| I still use Sweave / LaTeX as well, along with a custom driver: highlight, as
| we once figured out how to make it create pretty shaded boxen with code (as
| seen in the various Rcpp vignettes).
| 
| So for that I often keep a five-line script 'buildVignette.r' in the vignette
| directory.  With DESCRIPTION set up right (for the added vignette driver)
| this then works in the package when it works manually for the tests.

I was rambling here.  What I meant to say is

 - buildVignette.r as shown below allows me to build the vignette on the spot
   outside of package builds -- ie when I am in "vignette writing mode"

 - if the vignette builds during the manual builds, which by their design
   mock what the package build process does, then I am reasonably confident
   that the R CMD ... process works too.

Hope this clarifies.

Dirk

| 
| And during the R CMD build ... ; R CMD INSTALL ... steps the vignette does
| get rebuild.
| 
| Oh, but did I mention that markdown is easier?  ;-)   Earlier this year I
| converted to writing my LateX Beamer presentation in RMarkdown (which
| rmarkdown::render() then converts to LaTeX). I may, time permitting, look
| into converting vignetts.  But why mess with a working setup...
| 
| Dirk
| 
| 
| PS buildVignette.r from an older package I am currently working on
| 
| #!/usr/bin/Rscript
| 
| ## use given argument(s) as target files, or else default to .Rnw files in 
directory
| files <- if (length(commandArgs(TRUE)) == 0) dir(pattern="*.Rnw") else 
commandArgs(TRUE)
| 
| ## convert all files from Rnw to pdf using the highlight driver
| invisible(sapply(files, function(srcfile) {
| Sweave(srcfile, driver=highlight::HighlightWeaveLatex(boxes=TRUE))
| tools::texi2pdf(gsub(".Rnw", ".tex", srcfile))
| }))
| 
| 
| -- 
| http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
| 
| __
| R-package-devel@r-project.org mailing list
| https://stat.ethz.ch/mailman/listinfo/r-package-devel

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

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


Re: [R-pkg-devel] Best practices for vignettes

2015-07-26 Thread Dirk Eddelbuettel

On 26 July 2015 at 18:42, Lenth, Russell V wrote:
| What's the best way to manage vignettes?

All the young ones will of course tell you to use Markdown :)

I still use Sweave / LaTeX as well, along with a custom driver: highlight, as
we once figured out how to make it create pretty shaded boxen with code (as
seen in the various Rcpp vignettes).

So for that I often keep a five-line script 'buildVignette.r' in the vignette
directory.  With DESCRIPTION set up right (for the added vignette driver)
this then works in the package when it works manually for the tests.

And during the R CMD build ... ; R CMD INSTALL ... steps the vignette does
get rebuild.

Oh, but did I mention that markdown is easier?  ;-)   Earlier this year I
converted to writing my LateX Beamer presentation in RMarkdown (which
rmarkdown::render() then converts to LaTeX). I may, time permitting, look
into converting vignetts.  But why mess with a working setup...

Dirk


PS buildVignette.r from an older package I am currently working on

#!/usr/bin/Rscript

## use given argument(s) as target files, or else default to .Rnw files in 
directory
files <- if (length(commandArgs(TRUE)) == 0) dir(pattern="*.Rnw") else 
commandArgs(TRUE)

## convert all files from Rnw to pdf using the highlight driver
invisible(sapply(files, function(srcfile) {
Sweave(srcfile, driver=highlight::HighlightWeaveLatex(boxes=TRUE))
tools::texi2pdf(gsub(".Rnw", ".tex", srcfile))
}))


-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

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


[R-pkg-devel] Best practices for vignettes

2015-07-26 Thread Lenth, Russell V
Yesterday, I submitted a package to CRAN that I had previously built using `R 
CMD build' (no extra arguments), and checked with 'R-devel CMD check --as-cran' 
(R-devel is my installation of the latest development version). No errors were 
reported in either of these steps. 

However, the submitted package contained a LaTeX error in one of the vignettes 
-- it had \paragaph{} instead of \paragraph{}. And the submission bounced back 
from CRAN because their checking DID catch the error.

So I have two questions...

1. How could a LaTeX error in a vignette possibly get past either R CMD build 
or R CMD check --as-cran without errors being reported? (I'll mention that 
subsequently I manually ran Sweave and pdflatex on the vignette and it did 
report the error -- confirming that I don't have a \paragaph macro defined 
somewhere on my own system.) FWIW, this IS system-dependent, as I do get error 
messages if I try to build the package on a Mac Pro. But I don't use that as my 
primary machine, as it is old, slow, and a laptop. I have a Windows 7 Pro 
system, service pack 1,
MiKTeX-pdfTeX 2.9.5496 (1.40.15) (MiKTeX 2.9 64-bit). Perhaps there's something 
different about error flags returned by MiKTeX and how they interact with R.

2. I have struggled previously with vignettes, as they sometimes have not been 
re-built when I wanted them to be. So I have finally settled on just putting 
the source file and nothing else in the vignettes directory. But that's what 
messed me up, because I made a minor change and incorrectly trusted the build 
process with detecting any errors. Clearly, I don't fully understand how 
vignettes are handled. What's the best way to manage vignettes?

Thanks

Russ

Russell V. Lenth  -  Professor Emeritus
Department of Statistics and Actuarial Science   
The University of Iowa  -  Iowa City, IA 52242  USA   
Voice (319)335-0712 (Dept. office)  -  FAX (319)335-3017

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