允许打印在rmarkdown html中悬垂区块文本

允许打印在rmarkdown html中悬垂区块文本,html,css,r,r-markdown,knitr,Html,Css,R,R Markdown,Knitr,我正在使用rmarkdown准备一些html页面,用于在线发布。当显示绘图时,我想利用典型计算机显示器上更多的可用宽度(这就是我预期目标观众查看我的页面的方式)knitr默认情况下,在常规缩放时似乎仅使用约900像素 我发现一些css可以使整个“画布”更大,这很有帮助。然而,这也增加了所有内容的宽度,包括文本、块回显等,这是我不想要的。我想要的是让我的数字在宽度上“突出”其他元素。增加fig.width和out.width不能实现这一点;图形将简单地缩小以适应其他元素使用的相同边界,从而产生更小

我正在使用
rmarkdown
准备一些html页面,用于在线发布。当显示绘图时,我想利用典型计算机显示器上更多的可用宽度(这就是我预期目标观众查看我的页面的方式)
knitr
默认情况下,在常规缩放时似乎仅使用约900像素

我发现一些css可以使整个“画布”更大,这很有帮助。然而,这也增加了所有内容的宽度,包括文本、块回显等,这是我不想要的。我想要的是让我的数字在宽度上“突出”其他元素。增加
fig.width
out.width
不能实现这一点;图形将简单地缩小以适应其他元素使用的相同边界,从而产生更小的字体大小,等等:

<style type="text/css">
.main-container {
  max-width: 1500px;
  margin-left: auto;
  margin-right: auto;
}
</style>

```{r out.width = "150%", fig.width = 12, fig.height = 3, device = "svg", fig.align='center'}
plot(pressure)
```

.主货柜{
最大宽度:1500px;
左边距:自动;
右边距:自动;
}
```{r out.width=“150%”,fig.width=12,fig.height=3,device=“svg”,fig.align='center'}
绘图(压力)
```

这是我想要的那种东西的模型,用油漆缝在一起:

正如您所意识到的,您不应该增加
.main container
的宽度,而应该增加图像的宽度。以下是实现这一目标的一种方法:

---
title: "R Markdown Full-width Figures"
output: html_document
---

```{r out.extra='style="max-width:none; width:100vw; margin-left:calc(50% - 50vw);"', fig.width = 12, fig.height = 3, device = "svg"}
par(mar = c(4, 4.5, 1, .5))
plot(pressure)
```
首先,您需要通过
max width:none删除默认的
max width
约束(由rmarkdown施加)。然后将图像的宽度设置为
100vw
,这表示窗口的全宽。此时,您的图像仍然在
内部左对齐。主容器
,即它的左侧与其余的主体元素对齐,因此您需要将图像向左移动,使其接触窗口的左边框,这就是上面
margin left:calc(50%-50vw)
所做的。你可以在一张纸上画一个方框来理解它。基本上,
左边距:50%
意味着图像将首先向右移动其容器宽度的一半(即,
.main container
)。这意味着其左侧位于容器的中心。由于容器位于页面中央,因此需要将图像向左移动
50vw
(即窗口宽度的一半)。向左移动意味着给它一个负的左边距,因此
-50vw
calc()
函数动态计算实际像素数,因此不必为容器假定固定宽度

一旦你理解了这个
左边距
技巧,你可以使用其他可能的宽度,例如
宽度:90vw;左边距:calc(50%-45vw)
,这将为您提供宽度为
90vw
且位于页面中心的图像:


谢谢!如何使边距适用于plotly对象?这个解决方案似乎不适用于plotly。基本上,您需要为正确的元素定义CSS。在上面的示例中,我将样式添加到
上。对于plotly,它可能是一个
,您可能需要在
CSS
代码块中为
div
定义CSS样式: