2013-03-12 33 views
5

Tôi đang sử dụng Windows 7, R2.15.3 và RStudio 0.97.320 với đanr 1.1. Không chắc chắn phiên bản pandoc của tôi là gì, nhưng tôi đã tải xuống phiên bản này vài ngày trước.Mã hóa: các tệp đan và con

sessionInfo()
phiên bản R 2.15.3 (2013/03/01) Hệ điều hành: x86_64-w64-mingw32/x64 (64-bit)

locale: 
[1] LC_COLLATE=Spanish_Argentina.1252 LC_CTYPE=Spanish_Argentina.1252 LC_MONETARY=Spanish_Argentina.1252 
[4] LC_NUMERIC=C      LC_TIME=Spanish_Argentina.1252  

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

loaded via a namespace (and not attached): 
[1] tools_2.15.3 

Tôi muốn để có được báo cáo của tôi cả trong html và Word, vì vậy tôi đang sử dụng markdown và pandoc. Tôi viết bằng tiếng Tây Ban Nha với các điểm nhấn trên nguyên âm và dấu ngã trên n: á-úñ.

Tôi đã đọc nhiều bài đăng và tôi thấy các vấn đề tương tự với bài đăng tôi đang gặp phải đã được giải quyết bằng các phiên bản mới knitr. Nhưng có một vấn đề tôi đã không tìm thấy một giải pháp cho.

Khi tôi bắt đầu, tôi đã sử dụng mã hóa 'system default' xuất hiện trong hộp thoại RStudio, tức là ISO 8859-1 và xem trước RStudio hoạt động tốt. Tuy nhiên khi tôi cố gắng để có được tài liệu Word, pandoc bị nghẹt thở trên các nguyên âm nổi bật. Tôi đã tìm thấy bài đăng hiển thị cách giải quyết vấn đề này bằng cách sử dụng iconv:

biểu tượngv -t utf-8 "myfile.md" | pandoc -o "myfile.docx" | iconv -f utf-8

Trong khi điều này đã giải quyết pandoc's không được công nhận utf-8 ký tự khiếu nại, đối với một số lý do pandoc dừng việc tìm kiếm lô của tôi, với một lỗi như thế này một:

pandoc: Không thể tìm thấy hình ảnh `figure/Parent.png ', bỏ qua ...

Nếu tôi chỉ sử dụng các ký tự không dấu, hãy tìm hình ảnh không có vấn đề gì. Tôi nhìn hai .md file với một biên tập viên hex, và tôi không thể nhìn thấy bất kỳ sự khác biệt khi tôi so sánh các phần xử lý số liệu:
![plot of chunk Parent](figure/Parent.png)
mặc dù rõ ràng là các nhân vật nổi bật là hoàn toàn khác nhau ... Tôi đã xác minh rằng các tệp hình ảnh tồn tại trong thư mục hình

Dù sao, sau khi đọc nhiều bài đăng, tôi quyết định đặt RStudio để sử dụng mã hóa UTF-8. Chỉ với một cấp độ của các tệp, mọi thứ hoạt động tốt. Ví dụ, tôi có thể -independently- đan và sau đó pandoc vào Word 2 file sau RMD:

Parent - SAVED WITH utf-8 encoding in RStudio 
======================================================== 

u with an accent: "ú" SAVED WITH utf-8 encoding in RStudio 

```{r fig.width=7, fig.height=6} 
plot(cars, main='Parent ú') 
``` 

và riêng biệt:

Child - SAVED WITH utf-8 encoding in RStudio 
======================================================== 

u with an accent: "ú" Child file 

```{r fig.width=7, fig.height=6} 
plot(cars, main='One File Child ú') 
``` 

và tôi nhận được cả 2 prevues hoàn hảo trong RStudio và 2 Lời hoàn hảo tài liệu từ pandoc.

Sự cố phát sinh khi tôi cố gắng gọi phần con từ phần cha mẹ.Nói cách khác, nếu tôi thêm vào file đầu tiên các dòng sau:

```{r CallChild, child='TestUTFChild.Rmd'} 

``` 

sau đó tất cả các điểm nhấn trong file đứa trẻ trở thành bị cắt xén như nếu UTF-8 được beeing hiểu là ISO 8859-1. Pandoc cũng ngừng đọc tệp, khiếu nại không phải là utf-8.

Nếu ai có thể chỉ cho tôi đi đúng hướng, hoặc là:

1. Với pandoc không tìm thấy các lô nếu tôi ở lại với ISO 8859-1. Tôi cũng đã thử Windows-1252 vì đó là những gì tôi thấy trong sessionInfo, nhưng kết quả là như nhau.

hay

2. Với các cuộc gọi đến tập tin đứa trẻ, nếu UTF-8 là con đường để đi. Tôi đã tìm cách thiết lập một số tùy chọn để buộc mã hóa trong cuộc gọi con, nhưng tôi chưa tìm thấy nó.

Rất cám ơn!

+0

giống như một lỗi trong 'knitr'; Tôi sẽ xem xét nó –

+0

@Yihui Cảm ơn bạn! Tôi mới đến R, markdown và knitr, nhưng tôi đã rất ngạc nhiên bởi năng lượng của cộng đồng và bởi sự đóng góp của bạn với nó! – ap53

Trả lời

3

Tôi nghĩ rằng vấn đề này nên được khắc phục trong phiên bản phát triển mới nhất. Xem hướng dẫn trong the development repository về cách cài đặt phiên bản devel. Sau đó, bạn sẽ có thể chọn UTF-8 trong RStudio và nhận tệp đầu ra được mã hóa UTF-8.

Chỉ trong trường hợp ai đó quan tâm đến chi tiết đẫm máu: lý do cho sự thất bại trước đó là tôi đã viết kết quả đầu ra con với mã hóa bạn cung cấp, nhưng không đọc nó với cùng một mã hóa. Bây giờ tôi chỉ cần tránh ghi tệp đầu ra cho child documents.

+0

Hoạt động tuyệt vời !! Cảm ơn một lần nữa! – ap53