R xaringan 构造页脚以自动包含标题/作者 MWE:

问题描述

我使用 xaringan 创建演示文稿(带页脚)。 页脚应包含标题,可能还自动包含演示文稿的作者。

获取当前幻灯片编号,我可以使用 %current%,但 %title%%author$ 失败。我知道我可以像在 R rmarkdown::Metadata$title 中那样访问元数据,但是我无法使用 R 构造 slideNumberFormat。即,r cat('<div class = "remark-slide-number-left">',rmarkdown::Metadata$title,'</div>') 不起作用。

有什么想法吗?

MWE:

---
title: "Minimal Presenation"
author: "The Author"
output:
  xaringan::moon_reader:
    nature:
      slideNumberFormat: '<div class = "remark-slide-number-left"> %title% - %current%</div>'

---

# Hello World

此处 %title% 不起作用,预期的输出格式为“最小演示”。

另一种方法(也不起作用)是使用类似于此的 R 构建页脚

slideNumberFormat: "`r cat('<div class = \"remark-slide-number-left\">',' - %current% </div>')`"

解决方法

总的来说,我不太喜欢演示文稿中的页脚(它们大多是无用的 IMO/添加不必要的视觉混乱)。但是,一些合著者更喜欢在会议演示中使用它们。

我也尝试过自动化,但没有在不投入大量工作的情况下找到完美的解决方案。

因此,我的方法是保持幻灯片编号不变,只用作者/等硬编码一个额外的页脚。

添加到自定义 .css/style 文件/根据您的需要进行调整:

div.footer {
    background-color: #5c6266;
    position: absolute;
    bottom: 10px;
    left: 0px;
    height: 25px;
    width: 20%;
}
div.footer span {
    font-size: 13pt; /*  */ 
    color: #f6f3f2;
    position: absolute;
    left: 15px;
    bottom: 1px;
}

在您的 YAML 中获取它:

css: ["default",custom.css"]

在您想要包含页脚的第一张幻灯片之前添加/调整此内容(例如,在标题幻灯片之后):

---
layout:true
<div class="footer"><span>John Doe et al.</span></div>
---

这很麻烦,但不会破坏幻灯片编号,并且是我在上下文中提出的最快的解决方案。

,

在一些非 SO 人的帮助下,我找到了这个答案。 唯一的缺点是,它没有在一个元素中构造页脚,而是在内部构造了两个页脚……尽管如此,它允许重复使用作者和标题以及其他 YAML 元素。

页脚的 css 样式可以(并且应该)写入一个类似于 @persephone 所做的 css 文件。

---
title: "Minimal Presentation"
author: "The Author"
output:
  xaringan::moon_reader:
    css: ["default"]
    nature:
      slideNumberFormat: "%current%"
---
layout: true
<div style="position: absolute;left:60px;bottom:11px;color:gray;">`r rmarkdown::metadata$author` - `r rmarkdown::metadata$title`</div>

---

# Hello World

First content slide

---
class: inverse,center,middle

# Section Header

---

# Foo Bar

Second content slide

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...