【发布时间】:2019-09-26 16:51:21
【问题描述】:
我正在使用 roxygen2(版本 6.1.1)在 RStudio(R 版本 3.6.1;RStudio 版本 1.2.1335)中开发 R 包,并且正在使用 \insertCite{} 命令和 bibtex 文件,以便在文档中引用各个功能的参考资料。我正在遵循Inserting references in Rd and roxygen2 documentation 的指示。一切正常,除非我尝试包含带有重音字符的引用。所以我的 REFERENCES.bib 文件包含以下条目:
@ARTICLE{Cabcdef15,
author={John {\c C}abcdef},
title={A title},
journal={Journal of Applied Stuff},
year={2015},
volume={81},
number={1},
pages={100--200},
}
{\c C} 是 C-cedilla (Ç) 的 LaTeX 命令。 (我也试过\c{C} 并直接粘贴Ç 都没有解决问题。)
我在 roxygen2 序言中为我的 R 函数 myfunction 使用 \insertCite{Cabcdef15}{mypackage} 引用了这个参考。但是,在文档输出中(在运行 devtools::document() 和 devtools::build() 之后,安装软件包并运行 library(mypackage) 和 ?myfunction)引用在我的浏览器(谷歌浏览器)中显示为 (Çabcdef 2015) 而不是(Çabcdef 2015)。
大概这是一个编码问题。但是,根据我在上述说明中阅读的内容(在 4.4 文件 REFERENCES.bib 的编码下),只要我的 R 包的说明文件中有 Encoding: UTF-8 行,这应该可以工作,我做的。所以我被难住了。
【问题讨论】:
-
这里有很多细节:cran.r-project.org/doc/manuals/r-release/R-exts.html 这可能会有所帮助。搜索编码。
-
您是否尝试过插入不带编码的字符?在 Github 中查看其他一些包描述,如果出现重音字符,这很正常,例如 Ç。我认为这是因为 Encoding: UTF-8 条目。这是一个示例:github.com/EDiLD/esmisc/blob/master/DESCRIPTION。这个例子是一个带变音符号的o,但似乎是相同的原理。
-
字符 "Ç" 具有 latin1 编码,这可以在 R 中使用 Encoding("Ç") 进行验证。我已经阅读了有关编码的 R-exts 手册材料,但仍然没有解决方案。我在函数的 roxygen2 序言中添加了
@encoding UTF-8,但这没有效果。 -
你有github上的包吗?
-
最终建议,也许可以尝试 R-extensions 手册第 1.9 节中建议的 bibentry 功能。或者在这里询问包开发专家:stat.ethz.ch/mailman/listinfo/r-package-devel