[R-pkg-devel] Conversion failure in 'mbcsToSbcs'

Package Maintainer ggene@|ogyp@ck@ge @end|ng |rom gm@||@com
Sat Feb 17 13:51:31 CET 2024


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.r00t using gmail.com> wrote:
>
> В Mon, 12 Feb 2024 16:01:27 +0000
> Package Maintainer <ggenealogypackage using 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



More information about the R-package-devel mailing list