2012-06-26 34 views
7

Một vài ngày trước, tôi bắt đầu viết trên một R-Script của Đức. Rất tiếc, đoạn mã sau không hoạt động khi tôi knit() tài liệu:mã hóa knitr và UTF8

@  
<<>>= 
äö <- ordered(c(1,3,2,2)) 
@ 

Có thể giúp tôi giải quyết vấn đề này không?

PS: Tôi đang làm việc với Linux.

Trả lời

6

Vì bạn đang sử dụng Linux, mọi thứ phải dễ dàng. Nó có lẽ chỉ là một vấn đề LaTeX; quan trọng nhất, bạn có chỉ định mã hóa tài liệu của mình không? ví dụ. \usepackage[utf8]{inputenc}. Điều này làm việc cho tôi theo Ubuntu.

\documentclass[ngerman]{article} 
\usepackage[utf8]{inputenc} 
\begin{document} 

<<>>= 
äö <- ordered(c(1,3,2,2)) 
@ 

\end{document} 

BTW, có lẽ không nên sử dụng các ký tự không phải ASCII trong tên đối tượng R, mặc dù chúng cũng hoạt động.

+0

Có, tôi đã chỉ định mã hóa nhưng dù sao nó không hoạt động. Nó nói: "Không thể phân tích mã R ..." Về các ký tự không phải ASCII trong tên đối tượng: Tôi chỉ sử dụng nó làm ví dụ. Thường xuyên hơn, nó liên quan đến các tên tuổi trong các khung dữ liệu có chứa một "ä" hoặc "ö" chẳng hạn. – beginneR

+0

Tôi hiểu. Điều này có vẻ là một vấn đề của gói 'parser' (hoặc lỗi của tôi). Bạn có thể thử 'update.packages()' và 'remove.packages (c ('parser', 'highlight'))'. Vì v0.6.3, 'knitr' không còn phải phụ thuộc vào' parser' hoặc 'highlight' (https://github.com/yihui/knitr/blob/master/NEWS#L48) nữa. –

+1

Cảm ơn bạn. Tôi cập nhật knitr thành 0.6.3 và bây giờ mọi thứ đều ổn. – beginneR

Các vấn đề liên quan