Wcześniej pytałem o polecenia do konwersji R Markdown do HTML .
Jaki jest dobry sposób na konwersję plików R Markdown do dokumentów PDF?
Dobre rozwiązanie pozwoliłoby zachować jak najwięcej treści (np. Obrazy, równania, tabele html itp.). Rozwiązanie musi być uruchamiane z wiersza poleceń. Dobrym rozwiązaniem byłoby również wieloplatformowe i idealnie zminimalizować zależności, aby ułatwić współdzielenie plików makefile i tak dalej.
W szczególności istnieje wiele opcji:
- Czy przekonwertować RMD na MD do HTML do PDF; lub RMD na MD do PDF; lub RMD do PDF
- Jeśli używasz
markdown
pakietu w R, jakie opcje określić - Czy użyć
pandoc
pakietu wbudowanego w R, czy czegoś innego
Oto przykładowy plik rmd, który prawdopodobnie zapewnia rozsądny test każdego proponowanego rozwiązania. Został użyty jako podstawa do tego wpisu na blogu .
r-markdown
knitr
pandoc
Jeromy Anglim
źródło
źródło
knit
imdconvert.sh
). Może być trudno znaleźć podejście ogólne, ponieważ LaTeX jest zbyt elastyczny; możesz używać wszelkiego rodzaju szablonów dla pandoc.Odpowiedzi:
Zaktualizowana odpowiedź (10 lutego 2013)
Pakiet rmarkdown : Na
rmarkdown
github jest teraz dostępny pakiet, który łączy się z Pandoc. Zawierarender
funkcję. Dokumentacja wyjaśnia, jak przekonwertować rmarkdown do formatu PDF wśród wielu innych formatów. Obejmuje to dołączanie formatów wyjściowych do pliku rmarkdown lub uruchamianie dostarczania formatu wyjściowego do funkcji rend. Na przykład,Linia poleceń: Kiedy uruchamiam się
render
z wiersza poleceń (np. Używając pliku makefile), czasami mam problemy z nie znalezieniem pandoc. Prawdopodobnie nie znajduje się na ścieżce wyszukiwania. Poniższa odpowiedź wyjaśnia , jak dodać pandoc dla środowiska R .Na przykład na moim komputerze z systemem OSX, na którym mam kopię pandoc przez RStudio, mogę użyć:
Stara odpowiedź (około 2012)
Tak więc wiele osób zasugerowało, że Pandoc jest właściwą drogą. Zapoznaj się z poniższymi uwagami dotyczącymi znaczenia posiadania aktualnej wersji Pandoc.
Korzystanie z Pandoc
Użyłem następującego polecenia, aby przekonwertować R Markdown do HTML (tj. Wariant tego makefile ), gdzie
RMDFILE
jest nazwa pliku R Markdown bez.rmd
komponentu (zakłada również, że rozszerzenie jest,.rmd
a nie.Rmd
).a następnie to polecenie do konwersji do formatu pdf
Kilka uwag na ten temat:
markdownToHTML
funkcji oznaczały, że odniesienia do obrazów dotyczą plików, a nie danych przechowywanych w pliku HTML (tj. Usunąłem je'base64_images'
z listy opcji).Pobieranie aktualnej wersji Pandoc
Jak wspomniał @daroczig, ważne jest, aby mieć aktualną wersję Pandoc do drukowania plików PDF. W systemie Ubuntu od 15 czerwca 2012 utknąłem z wersją 1.8.1 Pandoc w menedżerze pakietów, ale z dziennika zmian wynika, że do obsługi formatu PDF potrzebujesz co najmniej wersji 1.9+ Pandoc.
Tak więc zainstalowałem
caball-install
. A potem pobiegł:Pandoc został zainstalowany w programie
~/.cabal/bin/pandoc
Tak więc, kiedy uruchomiłempandoc
, nadal wyświetlał starą wersję. Zobacz tutaj, aby dodać do ścieżki .źródło
pandoc
jest w wersji 1.12, nawet w moim przestarzałym Ubuntu 13.04.Myślę, że naprawdę potrzebujesz pandoc , którego świetne oprogramowanie zostało zaprojektowane i zbudowane specjalnie do tego zadania :) Oprócz pdf , możesz przekonwertować plik md np. Do formatu docx lub odt .
Cóż, zainstalowanie aktualnej wersji Pandoc może być wyzwaniem w Linuksie (ponieważ potrzebowałbyś całego
haskell-platform
˙ do zbudowania ze źródeł), ale naprawdę łatwe w systemie Windows / Mac przy zaledwie kilku megabajtach pobrania.Jeśli masz parzony / dzianinowy plik przecen, możesz po prostu wywołać
pandoc
np. Bash lub zsystem
funkcją w R. Demo POC tego ostatniego jest zaimplementowane wṖandoc.convert
funkcji mojej małej paczki ( którą musisz strasznie się nudzić, gdy próbuję kieruj swoją uwagę przy każdej okazji ).źródło
--toc
byłoby przydatne w wierszu poleceń (w wyniku czego powstałaby tabela zawartości nics na podstawie nagłówków), a także dostosowanie szablonu LaTeX do własnych potrzeb (np. Dodanie tam\listoffigures
i / lub\listoftables
itp.) Może spowodować powstanie wspaniałych dokumentów.apt-get install pandoc
?sources.list
i wykonywania,apt-get install -t testing pandoc
a następnie instalacjihaskell-platform
i kompilacji. (Zwykle robię to eksperymentalnie. Mam nadzieję, że działa to w ten sam sposób w testowaniu).W tej chwili (sierpień 2014) możesz użyć RStudio do konwersji R Markdown do PDF. Zasadniczo RStudio używa pandoc do konwersji Rmd do PDF.
Możesz zmienić metadane na:
Więcej szczegółów - http://rmarkdown.rstudio.com/pdf_document_format.html
źródło
W przypadku opcji, która bardziej przypomina to, co otrzymujesz podczas drukowania z przeglądarki,
wkhtmltopdf
udostępnia jedną opcję.Na Ubuntu
A następnie to samo polecenie, co w przykładzie pandoc, aby dostać się do HTML:
i wtedy
Wynikowy plik wyglądał następująco . Wydawało się, że nie radzi sobie z MathJaxem ( ten problem jest omawiany tutaj ), a podziały stron są brzydkie. Jednak w niektórych przypadkach taki styl może być preferowany zamiast prezentacji w stylu bardziej LaTeX.
źródło
system("wkhtmltopdf temp.html temp.pdf")
Każdy pomysł, jak to naprawićTylko dwa kroki:
Zainstaluj najnowszą wersję „pandoc” stąd:
https://github.com/jgm/pandoc/releases
Wywołaj funkcję
pandoc
wlibrary(knitr)
W ten sposób możesz przekonwertować plik „input.md” na „input.pdf”.
źródło
Najłatwiej znalazłem użycie R studio, ale jeśli chcesz sterować z wiersza poleceń, prosty skrypt R może załatwić sprawę za pomocą polecenia renderowania rmarkdown (jak wspomniano powyżej). Pełne szczegóły skryptu tutaj
źródło
Jeśli nie chcesz niczego instalować, możesz wyprowadzić html. Następnie otwórz plik html - powinien otworzyć się w oknie przeglądarki, a następnie kliknij prawym przyciskiem myszy, aby wydrukować. W oknie drukowania wybierz „zapisz jako pdf” w prawym dolnym rogu, jeśli używasz komputera Mac. Voila!
źródło
Wykonaj te proste kroki:
1: W skrypcie Rmarkdown uruchom Knit (Ctrl + Shift + K) 2: Następnie po otwarciu znacznika html kliknij Otwórz w przeglądarce (lewa górna strona), a html zostanie otwarty w przeglądarce internetowej 3: Następnie użyj Ctrl + P i zapisz jako PDF.
źródło