r语言 - 是否可以使用 roxygen2 的非 ASCII 字符编写软件包文档



是否可以使用 roxygen2 使用非 ASCII 字符(如 å、ä、ö(在 R 中编写文档?我问是因为我正在用瑞典语编写一个带有内部函数的包。

我使用以下代码使用 roxygen 编写文档:

#' @param data data frame där variablen finns
#' @param x variabeln, måste vara en av typen character

这会导致非 ASCII 字符失真。我可以更改 .手动 rd 文件,但我宁愿不这样做。

在Windows上,编码在R中很糟糕,而且非常复杂 - 那些开发软件包的人并不总是认为这是一个真正的问题(参见roxygen或devtools(。 什么对我有用:

  • 如果您的包中有带有非 ASCII 标签的数据,例如颜色矢量 c(rød = "#C30000", blå = "#00A9E0"(,则必须转义代码中的名称/值:

    c(ru00f8d = "#C30000", blu00e5 = "#00A9E0")
    
  • 在文档中(如果你使用roxygenize或devtools::d ocument(((,你必须在每个函数描述之前放置@encoding UTF-8,然后使用常规键盘。

如果同一文件中有两个函数(例如,组织设计包中的"调色板"和"饱和度"(,则必须将标签放置在每个描述块中,而不仅仅是一次。

例:

    #' @encoding UTF-8
    #' datastruktur for å definere firmapalett med æøå
    dummypalett <- structure(.Data = c("#c30000", "#00A9E0"),
                   names = c("ru00f8d", "blu00e5"))
    #' @encoding UTF-8
    #' neste funksjon som er beskrevet med æøåäö

为了更好地衡量,我将语言:nob放在描述文件中,并将Rprofile中的编码标签更改为"UTF-8"。

ASCII 字符很难与R一起使用 (https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-subdirectories(。

代码文件中只应使用 ASCII 字符(以及控制字符选项卡、表单馈送、LF 和 CR(。注释13中接受其他字符,但是注释在例如UTF-8语言环境中可能无法读取。安装软件包时,对象名称中的非 ASCII 字符通常会失败14。任何字节都允许使用带引号的字符串,但 \uxxxx 转义应用于非 ASCII 字符。但是,非 ASCII 字符串在某些区域设置中可能不可用,并且在其他区域设置中可能无法正确显示。

对于文档,您必须将标签@encoding UTF-8添加到 roxygen2 代码中。

您可以使用以下命令检查标记是否已成功使用uxxxx转义。

path <- "path to Rd file"
tools::checkRd(path)

我通过

##' @encoding UTF-8

在 roxygen2 文档中注释,然后键入

options(encoding = "UTF-8")

在 R 控制台中充氧之前。 对于将来的会话,添加该行会很有帮助

options(encoding = "UTF-8")

R/etc/Rprofile.site文件中。

最新更新