Вертикальная полоса прокрутки для длинных функций со слайдами knitr

Можно ли сделать вертикальную полосу прокрутки для длинных функций с помощью слайдов knitr (используя пользовательский стиль xaringan)? Я пробовал некоторые варианты, основанные на этом предыдущем вопросе Как заставить вертикальную полосу прокрутки появляться в кусках кода RMarkdown (html view), но не представлял, как это сделать только для длинных функций (высота которых выходит за рамки). Любой совет приветствуется.

---
title: "title"
subtitle: "subtitle"
author: "author"
date: "2017"
output:
  xaringan::moon_reader:
    lib_dir: libs
    css: ["default", "style.css"]
    nature:
      highlightStyle: zenburn
      highlightLines: true
      countIncrementalSlides: false
---

```{r , echo=FALSE, include=FALSE}
library(knitr)
opts_chunk$set(fig.align='center', message=TRUE, error=TRUE, warning=TRUE, tidy=TRUE, comment = "##", echo = TRUE, dev='svg')
options(width=65)
```

```{r}
fu <- function(x){
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
}
```

3 ответа

В вашем style.css, создайте класс, который определяет y переполнение как прокрутку и желаемую высоту div (см. этот ответ SO в качестве ссылки)

.pre {
  height: 10pc;
  overflow-y: scroll;
}

Затем примените этот класс CSS к блоку кода:

.pre[
```{r}
fu <- function(x){
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
  x
}
```
]

Вы пробовали решение из этого ответа

.scrollable-slide {
    height: 800px;
    overflow-y: auto !important;
}

Я не специалист по CSS, поэтому не могу гарантировать, что это надежное решение, но добавление max-height и overflow-y в стилизацию блоков кода, похоже, работает хорошо. При необходимости измените максимальную высоту, 200px довольно короткая и используется только для демонстрации того, как она работает:

<style>
pre.sourceCode {
    max-height: 200px;
    overflow-y: auto;
}
</style>

Я не уверен, что если имя класса для блоков кода меняется с разными форматами вывода, я использовал slidy_presentation поскольку у меня не было установленного рендерера, возможно, вам придется проверить класс в выходных данных.

Другие вопросы по тегам