2012-06-27 18 views
10

Tôi đang làm việc để thiết lập knitr. Tôi đã cài đặt phiên bản mới nhất của R (2.15.1), Lyx 2.0 bao gồm phân phối MiKTex 2.9 và RStudio 0.96.304 trên hộp Windows 7 Enterprise. Tôi có thể nhận được pdflatex đầu ra nếu tôi mở Lyx và chỉ đơn giản là xem hướng dẫn, do đó, hệ thống cơ bản đang làm việc. Sau đó tôi tải về các minimal Rnw example lưu nó trong thư mục làm việc của tôi như testknitr.Snw, mở tập tin đó trong RStudio, và nhấn nút biên dịch PDF. Đầu ra knitr hoàn thành với một cảnh báo duy nhất về gói trình phân tích cú pháp và tạo ra một tệp testknitr.tex. pdflatex.exe sau đó chạy, nhưng thất bại, và các lỗi cụ thể trong file log có vẻ làbiên soạn ví dụ tối thiểu không thành công

! LaTeX Error: Environment alltt undefined. 

tôi nhận được lỗi tương tự khi cố gắng biên dịch testknitr.tex sử dụng TexWorks. Tôi tạo ra tập tin đó từ bên trong R bằng cách sử dụng đan ("testknitr.Rnw") - phần mở rộng khác nhau vì mặc định trong RStudio. Tôi đã nói với MikTek để tự động cập nhật các gói khi biên dịch. Một chút nghiên cứu trên CTAN cho thấy môi trường alltt là một phần của gói ltxbase, được cài đặt khi tôi nhìn vào trình quản lý gói. Trong thực tế, nó có vẻ giống như một phần cốt lõi của toàn bộ điều!

OK - Tôi đã đọc nhận xét trên trang mẫu tối thiểu và đã phát hiện ra một giải pháp cho vấn đề đó và rằng đó là lỗi đã biết từ 19 giờ trước. Và có, tôi nghi ngờ rằng RStudio được thiết lập để sử dụng knitr, không sweave. Bây giờ tôi gặp lỗi mới:

! LaTeX Error: Command \textquotesingle unavailable in encoding T1. 

EDIT: OK! nó chỉ ra rằng lỗi không phải là gây tử vong - có một pdf đáng yêu của ví dụ tối thiểu ngồi trong thư mục làm việc nếu một trong những mất thời gian để xem xét. Hơi đáng báo động rằng RStudio nghĩ việc biên dịch thất bại khi nó không thành công?

+5

Cách giải quyết, có thể hiển nhiên đối với LaTex có nghĩa là kinh nghiệm, là thêm \ usepackage {alltt} vào tệp. Theo [bình luận của Yihui] (http://yihui.name/knitr/demo/minimal/) điều này sẽ được sửa trong các phiên bản sau, hoặc bây giờ nếu bạn nhận được phiên bản phát triển của knitr. – atiretoo

+0

Bạn có thể thêm câu trả lời này làm câu trả lời và chấp nhận không? Theo cách đó mọi người có thể nhìn thấy nó đã được trả lời, và bạn có thể nhận được một số đại diện :) –

+0

Cảm ơn, @atiretoo Có vẻ như tôi cần phải đẩy một phiên bản mới cho CRAN trước khi nhiều người nhầm lẫn hơn, nhưng người CRAN sẽ hét lên với tôi để cập nhật quá thường xuyên ... BTW, tôi không thể tạo lại lỗi 'textquotesingle' trong Ubuntu/TeXLive, nhưng tôi đoán bạn có thể nhận xét' \ usepackage [T1] {fontenc} '. –

Trả lời

8

Cách giải quyết, có lẽ hiển nhiên đối với một kinh nghiệm LaTex-ie, là thêm

\usepackage{alltt} 

đến tập tin. Theo Yihui's comment, điều này sẽ được khắc phục trong các phiên bản sau hoặc bây giờ nếu bạn muốn nhận phiên bản phát triển từ github. Tôi cũng đã kiểm tra nhận xét của @ Yihui ở trên rằng dòng

\usepackage[T1]{fontenc} 

có thể được nhận xét. Điều này khắc phục vấn đề thứ hai trong câu hỏi, và bây giờ RStudio xử lý việc biên dịch thành công, làm sạch (một số?) Tập tin trung gian và ngay lập tức xem trước bản pdf.