Eu já perguntei sobre os comandos para converter R Markdown em HTML .
Qual é uma boa maneira de converter arquivos R Markdown em documentos PDF?
Uma boa solução preservaria o máximo possível do conteúdo (por exemplo, imagens, equações, tabelas html, etc.). A solução precisa poder ser executada na linha de comando. Uma boa solução também seria multiplataforma e, idealmente, minimizará dependências para facilitar o compartilhamento de makefiles e assim por diante.
Especificamente, existem muitas opções:
- Se é necessário converter RMD para MD em HTML para PDF; ou RMD para MD para PDF; ou RMD para PDF
- Se estiver usando o
markdown
pacote em R, quais opções especificar - Se usar
pandoc
, um pacote incorporado ao R ou outra coisa
Aqui está um exemplo de arquivo rmd que, presumivelmente, fornece um teste razoável de qualquer solução proposta. Foi usado como base para esta postagem no blog .
r-markdown
knitr
pandoc
Jeromy Anglim
fonte
fonte
knit
emdconvert.sh
). Pode ser difícil apresentar uma abordagem geral, já que o LaTeX é muito flexível; você pode usar todos os tipos de modelos para o pandoc.Respostas:
Resposta atualizada (10 de fevereiro de 2013)
Pacote rmarkdown : Agora existe um
rmarkdown
pacote disponível no github que faz interface com o Pandoc. Inclui umarender
função. A documentação deixa bem claro como converter rmarkdown em pdf entre vários outros formatos. Isso inclui a inclusão de formatos de saída no arquivo rmarkdown ou a execução de um formato de saída para a função de renderização. Por exemplo,Linha de comando: Quando corro a
render
partir da linha de comando (por exemplo, usando um makefile), às vezes tenho problemas com o pandoc não sendo encontrado. Presumivelmente, ele não está no caminho de pesquisa. A resposta a seguir explica como adicionar pandoc ao meio ambiente R .Por exemplo, no meu computador executando o OSX, onde tenho uma cópia do pandoc através do RStudio, posso usar o seguinte:
Resposta antiga (por volta de 2012)
Assim, várias pessoas sugeriram que Pandoc é o caminho a percorrer. Veja as notas abaixo sobre a importância de ter uma versão atualizada do Pandoc.
Usando Pandoc
Eu usei o seguinte comando para converter R Markdown em HTML (ou seja, uma variante desse makefile ), onde
RMDFILE
é o nome do arquivo R Markdown sem o.rmd
componente (ele também assume que a extensão é.rmd
e não.Rmd
).e então este comando para converter para pdf
Algumas notas sobre isso:
markdownToHTML
função significavam que as referências de imagem são para arquivos e não para dados armazenados no arquivo HTML (ou seja, eu removi'base64_images'
da lista de opções).Obtendo a versão atualizada do Pandoc
Conforme mencionado por @daroczig, é importante ter uma versão atualizada do Pandoc para gerar PDFs. No Ubuntu, a partir de 15 de junho de 2012, eu estava preso à versão 1.8.1 do Pandoc no gerenciador de pacotes, mas parece que, no log de alterações, para o suporte ao pdf, você precisa pelo menos da versão 1.9+ do Pandoc.
Assim, eu instalei
caball-install
. E então correu:Pandoc foi instalado em
~/.cabal/bin/pandoc
Assim, quando eu corripandoc
, ainda estava vendo a versão antiga. Veja aqui para adicionar ao caminho .fonte
pandoc
está na versão 1.12, mesmo no meu Ubuntu 13.04, agora desatualizado.Eu acho que você realmente precisa do pandoc , que software excelente foi projetado e construído apenas para esta tarefa :) Além do pdf , você pode converter seu arquivo md em, por exemplo, docx ou odt, entre outros.
Bem, a instalação de uma versão atualizada do Pandoc pode ser desafiadora no Linux (como você precisaria de toda a
haskell-platform
compilação a partir das fontes), mas muito fácil no Windows / Mac com apenas alguns megabytes de download.Se você possui o arquivo de marcação de malha / malha, basta chamar,
pandoc
por exemplo, bash ou com asystem
função dentro de R. Uma demonstração POC desse último é implementada naṖandoc.convert
função do meu pequeno pacote (do qual você deve estar muito entediado enquanto tento aponte sua atenção para lá em todas as oportunidades ).fonte
--toc
seria útil na linha de comando (resultando em uma tabela de conteúdo da placa de rede com base em seus títulos) e também personalizar o modelo do LaTeX para suas necessidades (como adicionar lá\listoffigures
e / ou\listoftables
etc.) pode resultar em documentos maravilhosos.apt-get install pandoc
?sources.list
e aapt-get install -t testing pandoc
instalaçãohaskell-platform
e a compilação. (Normalmente eu faço isso com experimental eu espero é funciona da mesma maneira em testar..)Agora (agosto de 2014) Você pode usar o RStudio para converter R Markdown em PDF. Basicamente, o RStudio usa o pandoc para converter Rmd em PDF.
Você pode alterar os metadados para:
Para mais detalhes - http://rmarkdown.rstudio.com/pdf_document_format.html
fonte
Para uma opção que se parece mais com o que você obtém ao imprimir em um navegador,
wkhtmltopdf
oferece uma opção.No Ubuntu
E então o mesmo comando do exemplo pandoc para chegar ao HTML:
e depois
O arquivo resultante parecia ser este . Não parecia lidar com o MathJax ( esse problema é discutido aqui ) e as quebras de página são feias. No entanto, em alguns casos, esse estilo pode ser preferido em relação a uma apresentação mais no estilo LaTeX.
fonte
system("wkhtmltopdf temp.html temp.pdf")
Alguma idéia de como consertar issoApenas duas etapas:
Instale a versão mais recente "pandoc" a partir daqui:
https://github.com/jgm/pandoc/releases
Chame a função
pandoc
nolibrary(knitr)
Assim, você pode converter seu "input.md" em "input.pdf".
fonte
Eu achei o uso do R studio da maneira mais fácil, mas se você quiser controlar a partir da linha de comando, um script R simples pode executar o truque usando o comando rmarkdown render (como mencionado acima). Detalhes completos do script aqui
fonte
Se você não deseja instalar nada, pode gerar html. Em seguida, abra o arquivo html - ele deve abrir em uma janela do navegador e clique com o botão direito do mouse para imprimir. Na janela de impressão, selecione "Salvar como PDF" no canto inferior direito, se você estiver em um Mac. Voila!
fonte
Siga estes passos simples:
1: No script Rmarkdown, execute Knit (Ctrl + Shift + K) 2: Depois que a marcação html for aberta, clique em Abrir no navegador (canto superior esquerdo) e o html será aberto no navegador da web 3: Em seguida, use Ctrl + P e salve como PDF.
fonte