Cập nhật câu trả lời (ngày 10 tháng 2 năm 2013)
gói rmarkdown : Hiện tại đã có một rmarkdown
gói có sẵn trên github có giao diện với Pandoc. Nó bao gồm một render
chức năng. Tài liệu này cho thấy khá rõ cách chuyển đổi rmarkdown sang pdf giữa một loạt các định dạng khác. Điều này bao gồm các định dạng đầu ra trong tệp rmarkdown hoặc đang chạy cung cấp định dạng đầu ra cho chức năng kết xuất. Ví dụ,
render("input.Rmd", "pdf_document")
Dòng lệnh:
Khi tôi chạy render
từ dòng lệnh (ví dụ: sử dụng tệp tạo tệp), đôi khi tôi gặp sự cố với pandoc không được tìm thấy. Có lẽ, nó không nằm trên con đường tìm kiếm. Câu trả lời sau đây giải thích làm thế nào để thêm pandoc đối với môi trường R .
Vì vậy, ví dụ, trên máy tính của tôi chạy OSX, nơi tôi có một bản sao của pandoc thông qua RStudio, tôi có thể sử dụng như sau:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
Câu trả lời cũ (khoảng năm 2012)
Vì vậy, một số người đã cho rằng Pandoc là con đường để đi. Xem ghi chú bên dưới về tầm quan trọng của việc có phiên bản cập nhật của Pandoc.
Sử dụng Pandoc
Tôi đã sử dụng lệnh sau để chuyển đổi R Markdown thành HTML (nghĩa là một biến thể củaRMDFILE
tệp tạo tệp này ), trong đó tên của tệp R Markdown không có .rmd
thành phần (nó cũng giả sử rằng phần mở rộng có .rmd
và không .Rmd
).
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
và sau đó lệnh này để chuyển đổi sang pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
Một vài lưu ý về điều này:
- Tôi đã xóa tham chiếu trong tệp ví dụ xuất các ô sang imgur để lưu trữ hình ảnh.
- Tôi đã xóa một tham chiếu đến một hình ảnh được lưu trữ trên imgur. Số liệu dường như cần phải là địa phương.
- Các tùy chọn trong
markdownToHTML
chức năng có nghĩa là các tham chiếu hình ảnh là các tệp chứ không phải dữ liệu được lưu trữ trong tệp HTML (nghĩa là tôi đã xóa 'base64_images'
khỏi danh sách tùy chọn).
- Kết quả đầu ra trông như thế này . Nó rõ ràng đã tạo ra một tài liệu theo phong cách LaTeX trái ngược với những gì tôi nhận được nếu tôi in tệp HTML sang pdf từ trình duyệt.
Phiên bản cập nhật của Pandoc
Như được đề cập bởi @daroczig, điều quan trọng là phải có phiên bản cập nhật của Pandoc để xuất pdf. Trên Ubuntu kể từ ngày 15 tháng 6 năm 2012, tôi đã bị kẹt với phiên bản 1.8.1 của Pandoc trong trình quản lý gói, nhưng có vẻ như từ nhật ký thay đổi để hỗ trợ pdf, bạn cần ít nhất phiên bản 1.9+ của Pandoc.
Vì vậy, tôi đã cài đặt caball-install
. Rồi chạy:
cabal update
cabal install pandoc
Pandoc đã được cài đặt trong ~/.cabal/bin/pandoc
Do đó, khi tôi chạy pandoc
nó vẫn thấy phiên bản cũ. Xem ở đây để thêm vào đường dẫn .
knit
vàmdconvert.sh
). Có thể khó đưa ra một cách tiếp cận chung vì LaTeX quá linh hoạt; bạn có thể sử dụng tất cả các loại mẫu cho pandoc.