[Rd] UTF8 markdown vignette

Yihui Xie xie at yihui.name
Thu Dec 18 06:17:08 CET 2014


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.

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