2010-09-23 27 views
13

Tôi đang viết một gói trong R và tôi sẽ đánh giá cao một số ví dụ bash mã để xử lý các tập tin Rd để latex và sau đó để pdf.Làm cách nào để chuyển đổi tệp Rd thành pdf cho gói mà tôi đang tạo trong R?

Nó nằm trong thư mục ~/mypkg/dev /. Tôi đã tạo cấu trúc tệp và mẫu Rd.

từ ~/mypkg/dev/người đàn ông, tôi đã cố gắng

R CMD Rdconv -o mypkg-package.tex --type=latex mypkg-package.Rd 

tập tin mypkg-package.tex được tạo ra, nhưng

pdflatex mypkg-package.tex 

tạo tex mà không cần bất kỳ lời mở đầu.

Tôi đã đọc tài liệu trong "Viết phần mở rộng R" và "R CMD Rdconv --help" về chủ đề này, nhưng không có ví dụ nào được cung cấp.

Cảm ơn bạn

Trả lời

16

Có hai vấn đề ở đây:

Thứ nhất, lệnh Rdconv chỉ biến một tập tin Rd tại một thời điểm; câu hỏi của bạn cho thấy rằng bạn muốn hướng dẫn đầy đủ.

Thứ hai, lệnh Rd2dvi là bạn của bạn. Tôi chỉ chạy phần sau đây trên gói địa phương:

R CMD Rd2dvi --pdf --title='Test of foo' -o /tmp/foo.pdf man/*.Rd 

Đó phải là những gì bạn yêu cầu.

+8

với R 2.15, bây giờ lệnh này lợi nhuận 'R CMD Rd2dvi là không còn tồn tại: Sử dụng Rd2pdf instead' –

+4

Bất cứ ai đọc sách này nên lưu ý lệnh Dirk cho đang được thực hiện trên dòng lệnh, chứ không phải trong R. –

3

0. Từ câu hỏi, giả định rằng bạn có tệp .Rd.

Bạn có thể đã nhận được các tệp .Rd này qua gói roxygen hoặc một số cách khác. Bạn cần .pdf của gói của bạn. Một cách để làm điều này là từ dòng lệnh của Windows.

1. Mở dấu nhắc lệnh Windows (ở chế độ Quản trị viên, nếu có thể). Start - gõ "cmd" - (không bắt buộc: nhấp chuột phải vào biểu tượng xuất hiện - Run as administrator)

2. Pass tới thư mục làm việc hiện hành của R (nó có thể được tìm thấy qua "getwd()" trong giao diện điều khiển R của) trong lệnh propmt. Thư mục làm việc hiện tại của R chứa thư mục với nguồn gói của bạn.

cd C:\Users\erdogan\Documents\Revolution 

3. Vì lợi ích của đối số, nói thư mục gói được gọi là "causfinder". Chạy lệnh sau trong dấu nhắc lệnh của Windows:

(đảm bảo rằng bạn chưa có bất kỳ causfinder.pdf nào trong thư mục làm việc của R (Bạn có thể đã nhận được một số nguyên nhân không tương thích với R-phát triển bằng một số cách khác ngoài R .) Nếu có tồn tại, xóa causfinder.pdf đầu tiên Nếu không, bạn nhận được lỗi này: "tập tin 'causfinder.pdf' tồn tại; hãy loại bỏ nó đầu tiên")

R CMD Rd2pdf causfinder/ 

lệnh này thực hiện .Rd -. > LateX -> .pdf xử lý tự động. Bạn có được mối quan hệ nhân quả.pdf trong thư mục làm việc của R.

Điều này được mô tả thêm trong sách hướng dẫn về cách viết R mở rộng trong phần "Xử lý tệp tài liệu"

3

Hãy thử điều này. Nó làm việc cho tôi. tìm thấy từ Making an R package PDF manual using devtools

pack <- "name_of_your_package" 

path <- find.package(pack) 

system(paste(shQuote(file.path(R.home("bin"), "R")),"CMD", "Rd2pdf", shQuote(path))) 
1

Tôi đã tạo ra một chức năng bash cơ bản, vì vậy tôi chỉ có thể chạy rdoc từ dòng lệnh của tôi. Nó tạo ra các tệp Rd, tạo pdf và mở nó. Tôi chỉ sử dụng nó để thử nghiệm, không phải để tạo tài liệu cuối cùng. Bạn có thể thêm nó bằng cách thêm các chức năng sau đây để .bashrc của bạn (hoặc bất cứ bạn sử dụng) nộp

rdoc() { 
    echo -e "devtools::document()" | R --no-save 
    rm /tmp/rdoc.pdf 
    R CMD Rd2pdf -o /tmp/rdoc.pdf man/*.Rd 
    open /tmp/rdoc.pdf 
} 
Các vấn đề liên quan