คำตอบที่อัปเดต (10 กุมภาพันธ์ 2556)
แพ็คเกจ rmarkdown : ขณะนี้มีrmarkdown
แพ็คเกจบน githubที่เชื่อมต่อกับ Pandoc มันมีrender
ฟังก์ชัน เอกสารประกอบทำให้ชัดเจนว่าจะแปลง rmarkdown เป็น pdf ในรูปแบบอื่น ๆ ได้อย่างไร ซึ่งรวมถึงรูปแบบเอาต์พุตในไฟล์ rmarkdown หรือการรันการจัดหารูปแบบเอาต์พุตให้กับฟังก์ชัน rend เช่น,
render("input.Rmd", "pdf_document")
บรรทัดคำสั่ง:
เมื่อฉันเรียกใช้render
จากบรรทัดคำสั่ง (เช่นใช้ makefile) บางครั้งฉันก็มีปัญหากับการไม่พบ pandoc สันนิษฐานว่าไม่ได้อยู่ในเส้นทางการค้นหา คำตอบต่อไปนี้อธิบายวิธีการเพิ่ม pandoc กับสภาพแวดล้อมการวิจัย
ตัวอย่างเช่นบนคอมพิวเตอร์ของฉันที่ใช้ OSX ซึ่งฉันมีสำเนาของ pandoc ผ่าน RStudio ฉันสามารถใช้สิ่งต่อไปนี้:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
คำตอบเก่า (ประมาณปี 2555)
ดังนั้นผู้คนจำนวนหนึ่งจึงแนะนำว่า Pandoc คือหนทางที่จะไป ดูหมายเหตุด้านล่างเกี่ยวกับความสำคัญของการมี Pandoc เวอร์ชันล่าสุด
ใช้ Pandoc
ฉันใช้คำสั่งต่อไปนี้เพื่อแปลง R Markdown เป็น HTML (เช่นตัวแปรของ makefile นี้ ) โดยที่RMDFILE
ชื่อของไฟล์ R Markdown ไม่มี.rmd
ส่วนประกอบ (สมมติว่านามสกุลเป็น.rmd
และไม่ใช่.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'))"
จากนั้นคำสั่งนี้เพื่อแปลงเป็น pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
ข้อสังเกตบางประการเกี่ยวกับสิ่งนี้:
- ฉันลบการอ้างอิงในไฟล์ตัวอย่างซึ่งเอ็กซ์พอร์ตแปลงไปยัง imgur เพื่อโฮสต์รูปภาพ
- ฉันลบการอ้างอิงถึงรูปภาพที่โฮสต์บน imgur ดูเหมือนว่าตัวเลขจะต้องเป็นของท้องถิ่น
- ตัวเลือกใน
markdownToHTML
ฟังก์ชันนี้หมายความว่าการอ้างอิงรูปภาพเป็นไฟล์และไม่ใช่ข้อมูลที่จัดเก็บในไฟล์ HTML (เช่นฉันลบออก'base64_images'
จากรายการตัวเลือก)
- ส่งผลให้การส่งออกดูเหมือนนี้ มันได้สร้างเอกสารสไตล์ LaTeX อย่างชัดเจนซึ่งตรงกันข้ามกับสิ่งที่ฉันได้รับหากฉันพิมพ์ไฟล์ HTML เป็น pdf จากเบราว์เซอร์
รับ Pandoc เวอร์ชันล่าสุด
ดังที่ได้กล่าวไว้โดย @daroczig สิ่งสำคัญคือต้องมี Pandoc เวอร์ชันล่าสุดเพื่อส่งออกไฟล์ PDF ใน Ubuntu เมื่อวันที่ 15 มิถุนายน 2555 ฉันติดอยู่กับ Pandoc เวอร์ชัน 1.8.1 ในตัวจัดการแพ็คเกจ แต่ดูเหมือนว่าจากบันทึกการเปลี่ยนแปลงที่รองรับ pdf คุณต้องใช้ Pandoc เวอร์ชัน 1.9 ขึ้นไปเป็นอย่างน้อย
caball-install
ดังนั้นผมติดตั้ง แล้ววิ่ง:
cabal update
cabal install pandoc
Pandoc ได้รับการติดตั้งใน~/.cabal/bin/pandoc
ดังนั้นเมื่อฉันรันpandoc
มันก็ยังคงเห็นเวอร์ชันเก่าอยู่ ดูที่นี่สำหรับการเพิ่มเส้นทาง
knit
และmdconvert.sh
) อาจเป็นเรื่องยากที่จะกำหนดแนวทางทั่วไปเนื่องจาก LaTeX ยืดหยุ่นเกินไป คุณสามารถใช้เทมเพลตทุกประเภทสำหรับ pandoc