Thanks for the thoughts all. In some ideal world I agree a simple message and
leave it up to the user would be cleanest, in a world where I / others already
have to deal with random compiler problems and other excitement in the middle
of teaching workshops, I can see the benefits of an optional 'take care of it
for me please' step.
I don't really see why this should be problematic / unappealing, if only asked
during interactive sessions.
Since texi2dvi does more advanced checking than my simple Sys.which('pdflatex')
, it sounds like I should rely on an error from that as cause for the message /
prompt.
html / Mathjax was quite a pain for the matrix notation, so the kids are still
stuck with latex in this case :)
While the answer seems to be 'include it in Suggests', it's still not 100%
clear to me from the answers so far. The more I think on it the more I think
it doesn't really make sense, since all the code in my package can run without
tinytex, and it is preferable to not install tinytex unless the compile error
occurs and the user desires the install.
The code would look something like this -- if the general scope is actually
violating CRAN policies then sure, it doesn't matter anyway, but so far I don't
see that that's the case:
hastex <- !Sys.which('pdflatex') %in% ''
a=try(tools::texi2pdf(file=paste0(filename,'.tex'),quiet=FALSE, clean=TRUE))
if('try-error' %in% class(a) && !hastex) {
message('Could not compile tex -- do you want to install tinytex? Will
require a manual restart of R.')
dotiny <- readline('Y/N?')
if(dotiny %in% c('Y','y') && !requireNamespace('tinytex') ){
install.packages('tinytex')
requireNamespace('tinytex') #can perhaps leave this line out?
tinytex::install_tinytex()
}
}
Cheers,
Charles
________________________________
From: Dirk Eddelbuettel <[email protected]>
Sent: Thursday, October 3, 2019 5:45:20 PM
To: Fox, John
Cc: Dirk Eddelbuettel; Driver, Charles; [email protected]
Subject: Re: [R-pkg-devel] Appropriate usage of 'Suggests' -- package installed
conditional on other software not found
John,
On 3 October 2019 at 15:26, Fox, John wrote:
| In the original context of this thread, a simple error message indicating
that LaTeX is absent probably would suffice.
Yes, I agree. Hence this earlier comment of mine you choose not to reply to:
| > Anyway, this is going off-topic. It might be nice for R to offer a query
| > whether 'is tex available?' just how capabilities() and extSoftVersion()
| > gives hint on some other optional capabilities (which are arguably closer to
| > its core).
That still holds because it's actually complicated -- pdflatex is a default,
but some styles require xelatex for other fonts, and there are other front
ends such as lualatex and so on.
R knows what it is doing. So if you (or Charles) look at tools::texi2dvi
(which is called by tools::texi2pdf) then you see it already tries quite a
few things to find a suitable latex drivers. Other (though IIRC not base R)
use latexmk. And the long and the short of it is that Charles probably just
wanted a Suggests: for tinytex followed by an if (requireNamespace("tinytex"))
But then "kids these days" don't care as they go from Rmd to html. Which may
be another reason not to prompt for 'pdflatex'.
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | [email protected]
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel