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

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Sat Feb 17 14:18:33 CET 2024


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.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
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list