允许打印在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样式: