[R-pkg-devel] Conversion failure in 'mbcsToSbcs'
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 at gmail.com> wrote:
? Mon, 12 Feb 2024 16:01:27 +0000 Package Maintainer <ggenealogypackage at 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