在 xaringan 中为 slideNumberFormat 使用特定的幻灯片编号

Use a specific slide number for slideNumberFormat in xaringan

xaringan 演示文稿中,slideNumberFormat 参数通常设置为 %current% / %total%。可以在此参数中使用特定的幻灯片编号吗?

例如,如果我有这样的“最终”幻灯片:

---
name: mylastslide
# Thanks

后面有附录幻灯片,我想显示幻灯片编号,如 %current% / %mylastslide%%mylastslide% 我的幻灯片编号 mylastslide

谢谢。

[根据@user2554330 建议编辑]

对于此代码,使用增量幻灯片,

---
title: "Presentation Ninja"
subtitle: "⚔<br/>with xaringan"
author: "Yihui Xie"
institute: "RStudio, PBC"
date: "2016/12/12 (updated: `r Sys.Date()`)"
output:
  xaringan::moon_reader:
    lib_dir: libs
---

background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/be/Sharingan_triple.svg)

```{r setup, include=FALSE}
options(htmltools.dir.version = FALSE)
```

<script>
var slideshow = remark.create({slideNumberFormat : function (current, total) {
  return 'Slide ' + current + ' of ' + (this.getSlideByName("mylastslide").getSlideIndex() + 1); },
  highlightStyle: "github",
  highlightLines: true,
  countIncrementalSlides: false});
</script>

Image credit: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Sharingan_triple.svg)

---
class: center, middle

# xaringan

---

hello 

--

world

--

thanks

--

really

--

byebye

---
name: mylastslide

# Final slide

Install the **xaringan** package from [Github](https://github.com/yihui/xaringan):

```{r eval=FALSE, tidy=FALSE}
devtools::install_github("yihui/xaringan")
```

---

# Appendix

最后一张幻灯片(即附录)编号为 Slide 6 of 9(而不是 Slide 6 of 5),9 是 url 索引 mylastslide。 (我在 slideNumberFormat 函数中使用了 + 1 因为索引从 0 开始。)

谢谢。

您当然可以将最后一张幻灯片的格式设置为固定值,例如%current% / 34。但您也可以将其设置为 Javascript 函数。 (编辑添加:)棘手的部分是您还需要包括通常会出现在 nature 参数中的所有选项。所以你想要像

这样的东西
<script>
var slideshow = remark.create({slideNumberFormat : function (current, total) {
  return 'Slide ' + current + ' of ' + this.getSlideByName("mylastslide").getSlideIndex(); },
  highlightStyle: "github",
  highlightLines: true,
  countIncrementalSlides: false});
</script>

您可以通过放置文本来命名幻灯片

name: mylastslide

在幻灯片底部 --- 标记之后。所以这是一个完整的示例,基于 xaringan 模板的前几张幻灯片:

---
title: "Presentation Ninja"
subtitle: "⚔<br/>with xaringan"
author: "Yihui Xie"
institute: "RStudio, PBC"
date: "2016/12/12 (updated: `r Sys.Date()`)"
output:
  xaringan::moon_reader:
    lib_dir: libs
---

background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/be/Sharingan_triple.svg)

```{r setup, include=FALSE}
options(htmltools.dir.version = FALSE)
```

<script>
var slideshow = remark.create({slideNumberFormat : function (current, total) {
  return 'Slide ' + current + ' of ' + this.getSlideByName("mylastslide").getSlideIndex(); },
  highlightStyle: "github",
  highlightLines: true,
  countIncrementalSlides: false});
</script>

???

Image credit: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Sharingan_triple.svg)

---
class: center, middle

# xaringan

### /ʃaː.'riŋ.ɡan/

---
class: inverse, center, middle

# Get Started

---
name: mylastslide

# Hello World

Install the **xaringan** package from [Github](https://github.com/yihui/xaringan):

```{r eval=FALSE, tidy=FALSE}
devtools::install_github("yihui/xaringan")
```

这有 5 张幻灯片,编号为“4 张中的第 1 张”到“4 张中的第 5 张”。

编辑添加:正如评论中所讨论的,这不能正确处理增量幻灯片:getSlideIndex() 单独计算增量幻灯片。我们想使用 getSlideNumber(),当我们使用选项 countIncrementalSlides: false 时,它在所有选项上都保持不变。不过网络版remark-latest.min.js里面没有getSlideNumber(),需要自己去求remark-0.15.0.min.js.

您使用以下 YAML 执行此操作:

      xaringan::moon_reader:
        lib_dir: libs
        chakra: https://remarkjs.com/downloads/remark-0.15.0.min.js

在此之后下面的代码工作正常:

<script>
var slideshow = remark.create({slideNumberFormat : function (current, total) {
  return 'Slide ' + current + ' of ' + this.getSlideByName("mylastslide").getSlideNumber(); },
  highlightStyle: "github",
  highlightLines: true,
  countIncrementalSlides: false});
</script>