Pandoc
Pandoc é um conversor de documentos. Ele pode converter de uma série de formatos de marcação diferentes para muitos outros formatos, como .doc
, .pdf
etc.
Pandoc é uma ferramenta de linha de comando sem GUI. É um software independente, separado do R. No entanto, ele vem com o R Studio porque rmarkdown
depende dele para a conversão de documentos.
O Pandoc não apenas converte documentos, mas também adiciona funcionalidade à linguagem de marcação de base para permitir que suporte saídas mais complexas.
R Markdown
R Markdown é baseado em markdown:
Markdown (linguagem de marcação)
Markdown é uma linguagem de marcação leve com sintaxe de formatação de texto simples projetada para que possa ser convertida para HTML e muitos outros formatos. Um arquivo markdown é um arquivo de texto simples que normalmente recebe a extensão .md
.
Como outras linguagens de marcação, como HTML e Latex, é completamente independente de R.
Não existe um padrão Markdown claramente definido. Isso levou à fragmentação, pois diferentes fornecedores escrevem suas próprias variantes da linguagem para corrigir falhas ou adicionar recursos ausentes.
Markdown (pacote R)
markdown
é um pacote R que converte .Rmd
arquivos em HTML. É o antecessor do rmarkdown
, que oferece muito mais funcionalidade. Não é mais recomendado para uso.
R Markdown (linguagem de marcação)
R Markdown é uma extensão da sintaxe de markdown. Arquivos R Markdown são arquivos de texto simples que normalmente têm a extensão de arquivo.Rmd
. Eles são escritos usando uma extensão da sintaxe de markdown que permite que o código R seja embutido neles de uma forma que pode ser executada posteriormente.
Como se espera que sejam processados pelo rmarkdown
pacote, é possível usar a sintaxe de markdown do Pandoc como parte de um arquivo de markdown R. Esta é uma extensão da sintaxe de redução original que fornece funcionalidade adicional como HTML / Latex bruto e tabelas.
R Markdown (pacote)
O pacote R rmarkdown
é uma biblioteca que processa e converte.Rmd
arquivos em vários formatos diferentes.
A função do núcleo é rmarkdown::render
que está sobre os ombros de pandoc . Esta função 'renderiza o arquivo de entrada para o formato de saída especificado usando pandoc. Se a entrada requer tricô, knitr::knit
é chamado antes do pandoc.
O objetivo do pacote RMarkdown é simplesmente fornecer padrões razoavelmente bons e uma interface amigável para R para personalizar as opções do Pandoc. .
Os metadados YAML vistos na parte superior dos arquivos RMarkdown são especificamente para passar opções rmarkdown::render
para orientar o processo de construção.
Observe que o RMarkdown lida apenas com a sintaxe de markdown. Se você deseja converter um .Rhtml
ou um .Rnw
arquivo, você deve usar as funções de conveniência incorporadas Knitr
, como knitr::knit2html
eknitr:knit2pdf
Knitr
Knitr pega um documento de texto simples com código embutido, executa o código e 'junta' os resultados de volta ao documento.
Por exemplo, ele converte
A função principal é knitr::knit
e, por padrão, vai olhar para o documento de entrada e tentar adivinhar de que tipo é - Rnw, Rmd etc.
Esta função central desempenha três funções: - Um analisador de origem, que examina o documento de entrada e detecta quais partes são códigos que o usuário deseja que sejam avaliadas. - Um avaliador de código, que avalia este código - Um renderizador de saída, que grava os resultados da avaliação de volta no documento em um formato que pode ser interpretado pelo tipo de saída bruto. Por exemplo, se o arquivo de entrada for um .Rmd
, a renderização de saída marca a saída da avaliação de código em.md
formato.
Converter entre formatos de documento
O Knitr não converte entre formatos de documento - como converter um .md
em um .html
. No entanto, ele fornece algumas funções convenientes para ajudá-lo a usar outras bibliotecas para fazer isso. Se você estiver usando o rmarkdown
pacote, deve ignorar essa funcionalidade porque ela foi substituída por rmarkdown::render
.
Um exemplo é o knitr:knit2pdf
que irá: 'Tricotar o documento Rnw ou Rrst de entrada e compilar em PDF usando texi2pdf ou rst2pdf'.
Uma fonte potencial de confusão é knitr::knit2html
, que "é uma função de conveniência para combinar a fonte de markdown de entrada e chamar markdown::markdownToHTML
para converter o resultado em HTML". Esta agora é uma funcionalidade legada porque o markdown
pacote foi substituído pelo rmarkdown
pacote. Veja esta nota .
Bookdown
O pacote bookdown é construído em cima do R Markdown e herda a simplicidade da sintaxe do Markdown, bem como a possibilidade de vários tipos de formatos de saída (PDF / HTML / Word /…).
Ele oferece recursos como saída HTML de várias páginas, numeração e referência cruzada de figuras / tabelas / seções / equações, inserção de partes / apêndices e importou o estilo GitBook ( https://www.gitbook.com ) para criar HTML elegante e atraente páginas do livro.
knitr_opts
(eu sempre esqueço como é chamado), ou via argumentos pandoc personalizados, ou via arquivos yam adicionais, ou um arquivo personalizado pandoc template ... Às vezes parece um pouco selvagem, especialmente quando você adiciona LaTeX à cadeia.pandoc
etapa intermediária , menos mágica, menos confusão. Apenas a curva de aprendizado do LaTeX reconhecidamente íngreme. Na minha opinião, o Rmarkdown é ótimo quando você está satisfeito com as coisas padrão simples. Mas assim que você precisa ajustá-lo, a complexidade aumenta rapidamente.