At line 66 of your document, you have this chunk:

<<echo=FALSE>>=
rm(list=ls())
@

That removed the device. You need to put its definition after that. (It might also need to come earlier if you're doing plotting before this, and again even later if you remove it again.)

By the way, I'd recommend using knitr for Rnw documents instead of Sweave. It will require a few changes, but in general it's more flexible and works a bit better.

Duncan Murdoch



On 17/02/2024 7:51 a.m., Package Maintainer wrote:
Dear Ivan:

Thank you for your help again.

Thanks for your suggestion to use cairo_pdf() instead of pdf() to
allow for the multi-lingual plots.

I incorporated your advice and added the the code you suggested:

<<results=hide,echo=FALSE>>=
my.Swd <- function(name, width, height, ...)
  grDevices::cairo_pdf(
   filename = paste(name, "pdf", sep = "."),
   width = width, height = height
  )
@
\SweaveOpts{grdevice=my.Swd,pdf=FALSE}

as shown in lines 49-56 in my new vignette file here
(https://github.com/lindsayrutter/ggenealogy/blob/master/vignettes/ggenealogy.Rnw).

Upon attempting to build (R CMD build ggenealogy), I received the ERROR:

Error: processing vignette 'ggenealogy.Rnw' failed with diagnostics:
object 'my.Swd' not found
--- failed re-building ‘ggenealogy.Rnw’

I tried replacing the code you suggested to various locations and
separating the \SweaveOpts line to be located at separate locations.
However, I received the same ERROR each time.

Do you have any suggestions or ideas on how to resolve this error?

I again thank you for your help with this issue.

Kind regards,
LAR


On Thu, Feb 15, 2024 at 3:17 PM Ivan Krylov <krylov.r...@gmail.com> wrote:

В Mon, 12 Feb 2024 16:01:27 +0000
Package Maintainer <ggenealogypack...@gmail.com> пишет:

Unfortunately, I received a reply from the CRAN submission team
stating that my vignette file is still obtaining the "mbcsToSbcs"
ERROR as is shown here
(https://win-builder.r-project.org/incoming_pretest/ggenealogy_1.0.3_20240212_152455/Debian/00check.log).

I am sorry for leading you down the wrong way with my advice. It turns
out that no 8-bit Type-1 encoding known to pdf() can represent both
'Lubomír Kubáček' and 'Anders Ågren':

lapply(
  setNames(nm = c(
   'latin1', 'cp1252', 'latin2', 'latin7',
   'latin-9', 'CP1250', 'CP1257'
  )), function(enc)
   iconv(enc2utf8(c(
    'Lubomír Kubáček', 'Anders Ågren'
   )), 'UTF-8', enc, toRaw = TRUE)
) |> sapply(lengths)
# one of the two strings cannot be represented, returning a NULL:
#      latin1 cp1252 latin2 latin7 latin-9 CP1250 CP1257
# [1,]      0      0     15      0       0     15      0
# [2,]     12     12      0     12      12      0     12

While it may still be possible to give extra parameters to pdf() to use
a font encoding that covers all the relevant characters, it seems
easier to switch to cairo_pdf() for your multi-lingual plots. Place the
following somewhere in the beginning of the vignette:

<<results=hide,echo=FALSE>>=
my.Swd <- function(name, width, height, ...)
  grDevices::cairo_pdf(
   filename = paste(name, "pdf", sep = "."),
   width = width, height = height
  )
@
\SweaveOpts{grdevice=my.Swd,pdf=FALSE}

This should define a new plot device function for Sweave, one that
handles more Unicode characters correctly.

PS: Thanks for the advice about plain text mode. Hopefully, I have
correctly abide by that advice in this current email.

This e-mail arrived in plain text, thank you!

--
Best regards,
Ivan

______________________________________________
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

Reply via email to