Jer*_*lim 125 pandoc knitr r-markdown
我之前已经问过将R Markdown转换为HTML的命令.
将R Markdown文件转换为PDF文档的好方法是什么?
一个好的解决方案将尽可能多地保留内容(例如,图像,方程式,html表等).解决方案需要能够从命令行运行.一个好的解决方案也是跨平台的,理想情况下最小化依赖关系,以便更容易共享makefile等等.
具体来说,有很多选择:
markdown在R中使用包,则指定哪些选项pandoc,R内置的包或其他东西Jer*_*lim 67
rmarkdown软件包:现在rmarkdowngithub上有一个可与Pandoc连接的软件包.它包括一个render功能.该文档非常清楚如何将rmarkdown转换为pdf等多种其他格式.这包括在rmarkdown文件中包含输出格式或运行为rend函数提供输出格式.例如,
render("input.Rmd", "pdf_document")
Run Code Online (Sandbox Code Playgroud)
命令行:
当我从命令行运行时render(例如,使用makefile),我有时会遇到pandoc无法找到的问题.据推测,它不在搜索路径上.以下答案解释了如何将pandoc添加到R环境中.
例如,在运行OSX的计算机上,我有一个通过RStudio的pandoc副本,我可以使用以下内容:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
Run Code Online (Sandbox Code Playgroud)
因此,许多人建议Pandoc是要走的路.请参阅下面的说明,了解拥有最新版Pandoc的重要性.
我用下面的命令至R降价转换为HTML(即,此生成的文件的一个变体),其中,RMDFILE是没有将R降价文件的名称.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'))"
Run Code Online (Sandbox Code Playgroud)
然后这个命令转换为pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
Run Code Online (Sandbox Code Playgroud)
markdownToHTML函数中的选项意味着图像引用是文件而不是存储在HTML文件中的数据(即,我'base64_images'从选项列表中删除).正如@daroczig所提到的,拥有最新版本的Pandoc以输出pdf非常重要.在2012年6月15日的Ubuntu上,我在包管理器中遇到了Pandoc的1.8.1版本,但从更改日志看来,对于pdf支持,您至少需要1.9+版本的Pandoc.
因此,我安装caball-install.然后跑了:
cabal update
cabal install pandoc
Run Code Online (Sandbox Code Playgroud)
Pandoc安装在~/.cabal/bin/pandoc
这样,当我运行pandoc它仍然看到旧版本.请参阅此处以添加路径.
dar*_*zig 22
我认为你真的需要pandoc,这个伟大的软件是专门为这个任务设计和构建的:)除了pdf,你可以将你的md文件转换成例如docx或odt等.
好吧,安装一个最新版本的Pandoc可能会在Linux上进行挑战(因为你需要整个haskell-platform˙从源代码构建),但在Windows/Mac上只需要几兆字节的下载就非常容易.
如果您有酿造/编织的降价文件,您可以调用pandoc例如bash或使用systemR中的?andoc.convert函数.后者的POC演示是在我的小包的功能中实现的(当我尝试时你必须非常厌倦把你的注意力集中在每个机会上).
Jot*_* eN 14
现在(2014年8月)您可以使用RStudio将R Markdown转换为PDF.基本上,RStudio使用pandoc将Rmd转换为PDF.
您可以将元数据更改为:
有关详细信息,请访问http://rmarkdown.rstudio.com/pdf_document_format.html
Jer*_*lim 10
对于看起来更像您从浏览器打印时获得的wkhtmltopdf选项,提供一个选项.
在Ubuntu上
sudo apt-get install wkhtmltopdf
Run Code Online (Sandbox Code Playgroud)
然后使用与pandoc示例相同的命令来获取HTML:
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
Run Code Online (Sandbox Code Playgroud)
然后
wkhtmltopdf example-r-markdown.html example-r-markdown.pdf
Run Code Online (Sandbox Code Playgroud)
生成的文件看起来像这样.它似乎没有处理MathJax(此问题在这里讨论),并且分页符很难看.但是,在某些情况下,这种风格可能比更多LaTeX风格的演示更受欢迎.
小智 9
只有两个步骤:
从这里安装最新版本"pandoc":
调用函数pandoc中library(knitr)
library(knitr)
pandoc('input.md', format = 'latex')
Run Code Online (Sandbox Code Playgroud)因此,您可以将"input.md"转换为"input.pdf".
| 归档时间: |
|
| 查看次数: |
92002 次 |
| 最近记录: |