2011-07-09 31 views
8

Tôi có thể đưa một số PDF vào thư mục pkg/doc để chức năng vignette hoạt động, nhưng không tồn tại Rnw, Rtex, vv tương ứng?R - Các họa tiết không được tạo bằng Sweave?

Tôi đang nghĩ đến trang trình bày hoặc tài liệu chứa văn bản đánh dấu được dệt với khối R, có quy trình xây dựng khác và do đó có phần mở rộng tệp khác nhau.

Hướng dẫn R mở rộng bằng văn bản gợi ý rằng có thể bao gồm các tài liệu không thể xây dựng vào lúc cài đặt, nhưng chức năng vignette có vẻ như tìm các tệp có phần mở rộng đặc biệt (Rnw, Rtex, v.v ..) và tệp có tên là vignette.rds.

Bất kỳ gợi ý nào được đánh giá cao.

+0

tại sao bạn không chỉ thiết lập một gói nhỏ và thử xem nó có hoạt động không? –

+0

Đó là những gì tôi đang cố gắng làm ... Tôi bị mắc kẹt. –

+2

FWIW, '? Vignette' nói rằng 'Hiện tại, chỉ có thể xem phiên bản PDF của các họa tiết.' Mọi thứ khác đều có để người dùng tự tìm kiếm. Trong trường hợp đó, 'browseVignettes' có thể trợ giúp. –

Trả lời

5

Tôi đã hỏi về điều này vài năm trước, và trong khi Fritz Leisch tuân theo ý tưởng này, anh ta không có thời gian để thực hiện nó.

+3

Ah, vậy khi nào chúng ta sẽ thấy thay thế Swv2 của bạn? –

+1

Tôi nghĩ rằng bạn có nghĩa là 'swv2';) – hadley

+1

Cho dù, tôi sẽ chỉ đếm dấu gạch dưới bạn sẽ rắc vào tên lệnh :) –

5

(Cross-đăng từ một response I just left on R-help :)

Là một khắc phục, bạn có thể bao gồm xvignette chức năng của riêng bạn trong gói của bạn: xem dưới đây. Nó sẽ không cho bạn thấy chỉ số, nhưng nó sẽ nhận bất kỳ tập tin có tên thích hợp mà bạn đưa vào inst/doc thư mục của gói của bạn ...

xvignette <- function(vname,pkg,ext="pdf") { 
    vname <- paste(vname,ext,sep=".") 
    fn <- system.file("doc",vname,package=pkg) 
    if (nchar(fn)==0) stop("file not found") 
    utils:::print.vignette(list(pdf=fn)) 
    invisible(fn) 
} 

Bạn sẽ phải bằng cách nào đó cảnh báo người dùng gói của bạn để thực tế là tài liệu thay thế này tồn tại - có lẽ trong tệp trợ giúp cho chính gói đó.

Bạn có thể điền vào các giá trị mặc định của pkg trên với tên gói của bạn để làm cho nó dễ dàng hơn trên người dùng: Tôi nghĩ về việc sử dụng một số biến thể của getPackageName(environment(xvignette)) để làm điều đó tự động, nhưng điều đó dường như quá phức tạp ...

Brian Ripley cũng đề cập đến trong câu trả lời của mình cho câu hỏi rằng:

tại họa tiết hiện tại() có nghĩa là tài liệu Sweave, như duy nhất mà họ có siêu dữ liệu như danh hiệu. Đây là kế hoạch sẽ sớm được thay đổi.

... nhưng tôi không biết những gì "sớm" có nghĩa là (nó sẽ được khoảng 6 tháng cho đến khi 2.14.0 đi ra, tôi nghĩ)

chỉnh sửa: http://article.gmane.org/gmane.comp.lang.r.devel/28449 chi tiết cách giải quyết khác (tạo một số họa tiết hình nộm kết hợp các tập tin PDF sẵn có)

chỉnh sửa 2: Và

+0

Sáu tháng đến 2.14.0? Không phải là nó thường là tháng tư và tháng mười? –

+0

Tôi đoán vậy. Tôi đã suy nghĩ về việc phát hành 2.13.1 gần đây và quên rằng đó là 6 tháng giữa 0,10 bản phát hành, không phát hành điểm. Vì vậy, chỉ có 2,5 tháng. –

+0

bất kỳ lời giải thích nào cho downvote? –

5

này được hỗ trợ natively như của R 3.0.0, xem http://yihui.name/knitr/demo/vignette/.

Hướng dẫn sử dụng knitr như sôi động họa tiết xuống:

  1. thêm %\VignetteEngine{knitr::knitr} vào tài liệu Rnw nguồn (lưu ý bạn vẫn cần %\VignetteIndexEntry{} như trước đây)
  2. định VignetteBuilder: knitr trong file gói MÔ TẢ
  3. thêm Suggests: knitr vào DESCRIPTION nếu chỉ cần knitr cho họa tiết

Xem thêm official R documentation về chủ đề đó.

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