Xaringan:将幻灯片导出为 PDF,同时保留格式

rmf*_*rmf 7 r xaringan

我有一张 Xaringan 幻灯片,如下所示:

---
title: "Xaringan test"
output: 
  xaringan::moon_reader:
    self_contained: false
    chakra: 'assets/remark-latest.min.js'
    css: 'assets/presentation.css'
---

### This is a heading

This is some text and numbers 01235.

`Here is some inline code`.

```
block code
```

```{r}
cat("Some R code")
```

$e^{i\pi} + 1 = 0$
Run Code Online (Sandbox Code Playgroud)

呈现的 HTML 如下所示。自定义字体、CSS 样式和 mathjax 都渲染良好。这就是它的预期外观。

在此输入图像描述


使用 Pagedown 导出为 PDF。

pagedown::chrome_print("test.html",output="test.pdf")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

自定义字体和 css 样式将被保留。默认代码字体已更改,并且不再显示 mathjax 表达式。除了缺少 mathjax 之外,它做得相当不错。


使用 webshot 导出为 PDF。

webshot("test.html","test.pdf")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

不保留自定义字体和 CSS 样式。保留默认的代码字体和 mathjax。


有人知道如何在通过函数导出为 PDF 时保留字体、CSS 样式和 mathjax 吗?

R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.2 LTS
webshot_0.5.1      
pagedown_0.1
xaringan_0.8
Run Code Online (Sandbox Code Playgroud)

jhe*_*lvy 16

编辑:我们已将包重命名为“renderthis”以更通用并支持其他演示文稿类型,例如四开演示文稿: https: //github.com/jhelvy/renderthis

\n

build_*()函数名称全部以 开头,而不是to_*(),例如

\n
renderthis::to_pdf("slides.Rmd")\n
Run Code Online (Sandbox Code Playgroud)\n
\n

我一直在构建一个包,将 xaringan 幻灯片构建为多种输出类型:html、pdf、pptx、gif 以及第一张幻灯片的 png 的几个选项。它应该可以很好地呈现为 PDF。

\n

https://github.com/jhelvy/xaringanBuilder

\n

安装包

\n
# install.packages("remotes")\nremotes::install_github("jhelvy/xaringanBuilder")\n\nlibrary(xaringanBuilder)\n
Run Code Online (Sandbox Code Playgroud)\n

从 Rmd 或 html 文件构建 pdf 文件:

\n
build_pdf("slides.Rmd")\nbuild_pdf("slides.html")\n
Run Code Online (Sandbox Code Playgroud)\n

包括“复杂”或部分幻灯片:

\n

\xe2\x80\x9cComplex\xe2\x80\x9d 幻灯片是包含\n面板集或\n其他 html 小部件/高级功能的幻灯片,这些功能可能无法以 PDF 形式呈现。要渲染这些,请设置complex_slides = TRUE. 如果您想为incremental\nslides上的每个增量构建\n新幻灯片,请设置\n partial_slides = TRUE

\n
build_pdf("slides.Rmd", complex_slides = TRUE, partial_slides = TRUE)\nbuild_pdf("slides.html", complex_slides = TRUE, partial_slides = TRUE)\n
Run Code Online (Sandbox Code Playgroud)\n

  • 仅供参考,幻灯片注释/带有讲义的幻灯片正在制作中,请参阅此 PR:https://github.com/jhelvy/xaringanBuilder/pull/34 (2认同)

Yih*_*Xie 5

此时,你必须使用pagedownxaringan的开发版本:https://github.com/yihui/xaringan/issues/168#issuecomment-461638520