Saya sebelumnya pernah bertanya tentang perintah untuk mengubah R Markdown ke HTML .
Apa cara yang baik untuk mengonversi file R Markdown ke dokumen PDF?
Solusi yang baik akan mempertahankan sebanyak mungkin konten (misalnya, gambar, persamaan, tabel html, dll.). Solusinya harus dapat dijalankan dari baris perintah. Solusi yang baik juga akan lintas-platform, dan idealnya meminimalkan ketergantungan untuk membuatnya lebih mudah untuk berbagi file makefiles dan sebagainya.
Secara khusus, ada banyak opsi:
- Apakah akan mengkonversi RMD ke MD ke HTML ke PDF; atau RMD ke MD ke PDF; atau RMD ke PDF
- Jika menggunakan
markdown
paket dalam R, opsi mana yang ditentukan - Apakah akan digunakan
pandoc
, paket bawaan ke R, atau yang lain
Berikut adalah contoh file rmd yang mungkin memberikan tes yang masuk akal dari setiap solusi yang diusulkan. Itu digunakan sebagai dasar untuk posting blog ini .
r-markdown
knitr
pandoc
Jeromy Anglim
sumber
sumber
knit
danmdconvert.sh
). Mungkin sulit untuk melakukan pendekatan umum karena LaTeX terlalu fleksibel; Anda dapat menggunakan semua jenis template untuk pandoc.Jawaban:
Jawaban Diperbarui (10 Feb 2013)
paket rmarkdown : Sekarang ada
rmarkdown
paket yang tersedia di github yang berinteraksi dengan Pandoc. Ini termasukrender
fungsi. Dokumentasi membuatnya cukup jelas bagaimana mengkonversi rmarkdown ke pdf di antara berbagai format lainnya. Ini termasuk termasuk format output dalam file rmarkdown atau menjalankan memasok format output ke fungsi rend. Misalnya,Command-line: Ketika saya menjalankan
render
dari command-line (mis., Menggunakan makefile), saya terkadang memiliki masalah dengan pandoc yang tidak ditemukan. Agaknya, itu tidak di jalur pencarian. Jawaban berikut menjelaskan cara menambahkan Pandoc untuk lingkungan R .Jadi misalnya, di komputer saya yang menjalankan OSX, di mana saya memiliki salinan pandoc melalui RStudio, saya dapat menggunakan yang berikut ini:
Jawaban Lama (sekitar 2012)
Jadi, sejumlah orang menyarankan bahwa Pandoc adalah jalan yang harus ditempuh. Lihat catatan di bawah tentang pentingnya memiliki Pandoc versi terbaru.
Menggunakan Pandoc
Saya menggunakan perintah berikut untuk mengkonversi R Markdown ke HTML (yaitu, varian dari makefile ini ), di mana
RMDFILE
adalah nama file R Markdown tanpa.rmd
komponen (itu juga mengasumsikan bahwa ekstensi itu.rmd
dan tidak.Rmd
).dan kemudian perintah ini untuk dikonversi ke pdf
Beberapa catatan tentang ini:
markdownToHTML
fungsi berarti bahwa referensi gambar adalah file dan bukan data yang disimpan dalam file HTML (yaitu, saya dihapus'base64_images'
dari daftar opsi).Mendapatkan Pandoc versi terbaru
Seperti yang disebutkan oleh @daroczig, penting untuk memiliki Pandoc versi terbaru untuk menghasilkan pdf. Di Ubuntu pada 15 Juni 2012, saya terjebak dengan Pandoc versi 1.8.1 di manajer paket, tetapi tampaknya dari log perubahan bahwa untuk dukungan pdf Anda memerlukan setidaknya versi 1.9+ dari Pandoc.
Jadi, saya instal
caball-install
. Dan kemudian berlari:Pandoc diinstal di
~/.cabal/bin/pandoc
Jadi, ketika saya menjalankannyapandoc
masih melihat versi lama. Lihat di sini untuk menambahkan jalur .sumber
pandoc
ada di versi 1.12 bahkan di Ubuntu 13.04 saya yang sudah usang.Saya pikir Anda benar-benar membutuhkan pandoc , yang dirancang dan dibangun oleh perangkat lunak yang hebat hanya untuk tugas ini :) Selain pdf , Anda dapat mengonversi file md Anda menjadi mis. Docx atau odt antara lain.
Nah, menginstal Pandoc versi terbaru mungkin menantang di Linux (karena Anda akan membutuhkan seluruh
haskell-platform
builduntuk membangun dari sumber), tetapi sangat mudah pada Windows / Mac dengan hanya beberapa megabyte unduhan.Jika Anda memiliki file markdown yang diseduh / dirajut, Anda dapat langsung memanggil
pandoc
mis. Bash atau dengansystem
fungsi dalam R. Demo POC yang terakhir diimplementasikan dalamṖandoc.convert
fungsi paket kecil saya ( yang harus Anda sangat bosan ketika saya mencoba untuk arahkan perhatian Anda di sana di setiap kesempatan ).sumber
--toc
akan berguna pada baris perintah (menghasilkan tabel konten berdasarkan judul Anda) dan juga menyesuaikan template LaTeX untuk kebutuhan Anda (seperti menambahkan di sana\listoffigures
dan / atau\listoftables
dll.) Dapat menghasilkan dokumen yang bagus.apt-get install pandoc
?sources.list
dan melakukanapt-get install -t testing pandoc
kemudian menginstalhaskell-platform
dan kompilasi. (Biasanya saya melakukan ini dengan eksperimen. Saya harap ini bekerja dengan cara yang sama dalam pengujian.)Saat ini (Agustus 2014) Anda bisa menggunakan RStudio untuk mengonversi R Markdown ke PDF. Pada dasarnya, RStudio menggunakan pandoc untuk mengonversi Rmd ke PDF.
Anda dapat mengubah metadata menjadi:
Untuk detail lebih lanjut - http://rmarkdown.rstudio.com/pdf_document_format.html
sumber
Untuk opsi yang lebih mirip dengan apa yang Anda dapatkan saat mencetak dari browser,
wkhtmltopdf
sediakan satu opsi.Di Ubuntu
Dan kemudian perintah yang sama dengan contoh pandoc untuk menuju ke HTML:
lalu
File yang dihasilkan tampak seperti ini . Tampaknya tidak menangani MathJax ( masalah ini dibahas di sini ), dan page break jelek. Namun, dalam beberapa kasus, gaya seperti itu mungkin lebih disukai daripada presentasi gaya yang lebih LaTeX.
sumber
system("wkhtmltopdf temp.html temp.pdf")
Ada ide bagaimana cara memperbaikinyaHanya dua langkah:
Instal rilis terbaru "pandoc" dari sini:
https://github.com/jgm/pandoc/releases
Panggil fungsi
pandoc
dilibrary(knitr)
Dengan demikian, Anda dapat mengubah "input.md" menjadi "input.pdf".
sumber
Saya menemukan menggunakan R studio cara termudah, tetapi jika ingin mengontrol dari baris perintah, maka script R sederhana dapat melakukan trik menggunakan perintah rmarkdown render (seperti yang disebutkan di atas). Detail lengkap skrip di sini
sumber
Jika Anda tidak ingin menginstal apa pun, Anda dapat menampilkan html. Kemudian buka file html - itu harus terbuka di jendela browser, lalu klik kanan untuk mencetak. Di jendela cetak, pilih "save as pdf" di sudut kanan bawah jika Anda menggunakan Mac. Voila!
sumber
Ikuti langkah-langkah sederhana ini:
1: Pada skrip Rmarkdown jalankan Knit (Ctrl + Shift + K) 2: Kemudian setelah penurunan html dibuka klik Buka di Browser (sisi kiri atas) dan html dibuka di browser web Anda 3: Kemudian gunakan Ctrl + P dan simpan sebagai PDF.
sumber