[Rd] UTF8 markdown vignette

Duncan Murdoch murdoch.duncan at gmail.com
Fri Dec 19 14:02:20 CET 2014

On 18/12/2014, 12:17 AM, Yihui Xie wrote:
> For the record, I saw a change had been made in R-devel:
> https://github.com/wch/r-source/commit/d53b098 (Thanks, Duncan)
> Meanwhile, I also made a change in knitr to assume UTF-8 unless R
> passes an encoding to the vignette engine:
> https://github.com/yihui/knitr/commit/23c6c8e2 Both will solve the
> original problem, but apparently the former one is the ideal fix.

The Windows builds of R-devel were stalled for a few days, but I've
given them a kick now, so this should appear in the Windows binaries on
CRAN soon.

Duncan Murdoch

> Regards,
> Yihui
> --
> Yihui Xie <xieyihui at gmail.com>
> Web: http://yihui.name
> On Wed, Dec 10, 2014 at 6:19 AM, Duncan Murdoch
> <murdoch.duncan at gmail.com> wrote:
>> On 09/12/2014, 10:36 PM, Yihui Xie wrote:
>>> I took a look at the R source and I realized that the encoding was
>>> actually never passed to the vignette engine:
>>> https://github.com/wch/r-source/blob/e721ef5f4/src/library/tools/R/Vignettes.R#L507
>>> Apparently only the file and quiet arguments are passed to the
>>> vignette engine. Did I miss anything?
>> I think it's actually a little messier than that:  sometimes the
>> encoding is passed (e.g. by tools:::.run_one_vignette, used in R CMD
>> check), but not always.  Here's what I think should happen instead:
>> When building a vignette in a package, R knows the encoding declared for
>> the package, so it should assume this as the default for the vignette.
>> If nothing is declared, it should assume "native.enc", i.e. whatever is
>> the native encoding on the machine it's running on.
>> For each vignette, at the same time as it determines the vignette
>> engine, it should see whether there is a declared encoding within the
>> vignette.
>> When it calls the engine, it should pass an encoding (and it should be a
>> legal one, e.g. UTF-8, not utf8).
>> Unless I notice something missing when I do this, or someone else tells
>> me something that's missing, I'll try to make the changes above in
>> R-devel and R-patched sometime before 3.1.3 is released.
>> In the meantime, unless declaring a dependence on R >= 3.1.3, vignette
>> engines should determine the encoding themselves whenever they are
>> called without an "encoding" argument.
>> Duncan Murdoch

More information about the R-devel mailing list