Акцентированные буквы с пакетом R Repmis

Я использую repmis для обработки ссылок в своем отчете, однако он не компилируется, когда ссылка включает символ с диакритическим знаком — в данном случае при цитировании пакета nlme.

Есть ли решение для этого?

Я попытался добавить options(encoding = "UTF-8") в свой .RProfile, но это не помогло. Моя работа заключается в том, чтобы скопировать ссылку в другой файл bib и использовать символ из карты символов Windows. Хотя это работает, это не то исправление, которое я ищу.

Спасибо.

Сообщение об ошибке:

pandoc-citeproc: не удается декодировать байт '\xe9': Data.Text.Internal.Encoding.decodeUtf8: недопустимый поток UTF-8. Ошибка при запуске фильтра.

Образец .Rmd:

---
title: "Untitled"
author: "Paul Stevenson"
date: "21 January 2019"
output: html_document
bibliography:
  - packages.bib
---

```{r}
library(repmis)
LoadandCite(pkgs = c("nlme"),
            file = "packages.bib")

```

Reference [@R-nlme]

нагрудная запись:

@Manual{R-nlme,
  title = {nlme: Linear and Nonlinear Mixed Effects Models},
  author = {José Pinheiro and Douglas Bates and {R-core}},
  year = {2018},
  note = {R package version 3.1-137},
  url = {https://CRAN.R-project.org/package=nlme},
}

Информация о сеансе():

R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252   
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C                      
[5] LC_TIME=English_Australia.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.5.2  htmltools_0.3.6 tools_3.5.2     yaml_2.2.0     
 [5] Rcpp_1.0.0      rmarkdown_1.11  knitr_1.21      xfun_0.4       
 [9] digest_0.6.18   evaluate_0.12  

person Paul    schedule 21.01.2019    source источник
comment
\xe9 не является символом UTF-8. Это похоже на Latin1 для é. Судя по сообщению об ошибке, Pandoc ожидает UTF-8. Поэтому я бы посоветовал прочитать ваш файл .bib, убедиться, что он выглядит нормально в вашем редакторе, а затем явно сохранить его в UTF-8.   -  person user2554330    schedule 21.01.2019
comment
Спасибо, в файле bib был вопросительный знак, который я мог исправить, скопировав символ UTF-8. Проблема в том, что repmis пытается автоматизировать процесс цитирования пакетов из информации в DESCRIPTION, в идеале должно быть исправление, позволяющее ему работать/перекодировать все, что он получает.   -  person Paul    schedule 22.01.2019
comment
Если вы работаете в Windows, repmis, скорее всего, пишет в кодировке Latin1. Программа iconv может изменять кодировку файлов; Я забыл, включен ли он в коллекцию Rtools, но должен быть каким-то образом доступен, если нет.   -  person user2554330    schedule 22.01.2019


Ответы (1)


Нашел более плавный обходной путь, открыв .bib и сохранив с помощью write.table(fileEncoding = "UTF-8"). См. функцию recoder ниже:

---
title: "Untitled"
author: "Paul Stevenson"
date: "21 January 2019"
output: html_document
bibliography:
  - packages.bib
---

```{r}
recoder <- function(x) {
  dat <- read.delim(file = x, header = F, stringsAsFactors = F, quote = "")
  write.table(dat, file = x, row.names = F, quote = F, col.names = F, fileEncoding = "UTF-8")
}

library(repmis)
library(nlme)
LoadandCite(pkgs = c("nlme", "biometrics"), file = "packages.bib")
recoder("packages.bib")

```

Reference [@R-nlme]
person Paul    schedule 24.01.2019