12

在使用 RMarkdown 的 ioslides 准备演示文稿时,我遇到了一个我无法找到解决方案的问题。这个答案也没有解决这个具体问题。

有时,两列布局最好用一侧的图像和另一侧的文本来解释某些内容。但是,如下例所示,分栏符似乎没有按预期工作。

有没有办法在特定点强制分栏?我曾考虑增加右侧的图像高度,但不幸的是,有时这不是一个选择。

---
title: "Some stange column break"
output: 
  ioslides_presentation:
    widescreen: true
---

## Slide Title {.columns-2 .smaller}
### Slide Subtitle

>- Some bullet points which take up some space space space space space space space

>- on the column on the left

>- which are then wrapped to the right column. 

>- *Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.*

>- line break after this longer bullet point but intead it breaks in some strange place even though it would have space at the bottom of the left column!

<!-- the columns should break here -->

```{r, echo = FALSE, out.width = "470px"}
plot(mtcars)
```

在此处输入图像描述

4

2 回答 2

19

我过去使用过两种方法,两种方法都是您链接的问题的答案。我是否遗漏了为什么这些不能满足您的需求?

方法 1 似乎是您所追求的,但我个人倾向于使用方法 2,因为我喜欢具有不同宽度列的灵活性。

注意:我只使用ioslides格式测试了这些方法


方法一:forceBreak,内联样式标签

这需要定义一个额外的 CSS 类,您可以在文档的开头内联。

---
title: "Untitled"
output: 
  ioslides_presentation:
      widescreen: true
---

<style>
.forceBreak { -webkit-column-break-after: always; break-after: column; }
</style>


## Slide Title {.columns-2 .smaller}
### Slide Subtitle

>- Some bullet points which take up some space space space space space space space

>- on the column on the left

>- which are then wrapped to the right column. 

>- *Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.*

>- line break after this longer bullet point but intead it breaks in some strange place even though it would have space at the bottom of the left column!

<p class="forceBreak"></p>

```{r, echo = FALSE, fig.width=4.7}
plot(mtcars)
```

强制中断

方法二:HTML标签

此方法不需要任何额外的 CSS 定义或外部文件。

---
title: "Untitled"
output: ioslides_presentation
---

## Another Method for Two Column Layouts

<div style="float: left; width: 40%;">
+ This text is on the left
</div>

<div style="float: right; width: 60%;">
+ This text is on the right
</div>
于 2018-07-03T17:51:50.900 回答
0

您可以通过在添加样式的第二列下方添加一个空 div 来阻止内容用完第二列下方的空间clear,从而禁用来自下方元素的重排。

<div style="clear: both;"></div>

我从这里发现了这一点:https ://css-tricks.com/all-about-floats/

于 2021-03-18T23:44:25.120 回答