Quarto书籍含R生成图表的div环境文本溢出页码问题求助
解决Quarto书籍中div环境内嵌图表导致的文本溢出问题
问题背景
在Quarto书籍的自定义div环境(::: {#exm-kurt})中嵌入R生成的直方图后,出现文本溢出至页码下方的异常排版;移除该图表后,文本排版恢复正常。
解决方案
1. 优化图表尺寸参数
原图表的fig.asp=1设置会生成正方形图表,可能在div内占用过多垂直空间,导致后续文本排版挤压溢出。调整图表的尺寸参数:
```{r, echo=FALSE, out.width='45%', fig.align='center', fig.asp=0.7, fig.cap="Histogram of Litter Size"} s <- c(1,2,3,4,5,6,7,8,9,10,11,12) f <- c(7,33,58,116,125,126,121,107,56,37,25,4) t <- rep(s, f) hist(t, probability = FALSE, xlab = 'Litter Size', col = 'darkblue', density = 20, main = 'Histogram of Litter Size') box(col = 'black')
- 降低`fig.asp`值让图表更扁平化,减少垂直空间占用; - 微调`out.width`避免图表过宽,给文本留出足够排版空间。 ### 2. 为div环境添加CSS分页控制 在Quarto文档的YAML头部或单独的CSS文件中,为目标div添加分页与溢出控制样式: ```css #exm-kurt { page-break-inside: avoid; /* 强制div内容尽量保持在同一页,避免跨页截断 */ margin-bottom: 1.5em; /* 增加div底部间距,避免与下方内容粘连 */ padding-bottom: 0.5em; /* 为div内最后一行文本预留空间 */ }
该设置对PDF输出效果显著,能避免图表与文本被分页拆分导致的溢出问题。
3. 调整PDF输出的页面配置
在书籍的_quarto.yml中修改PDF格式的页面边距与图表分辨率:
format: pdf: geometry: margin=1.2in # 增大页面边距,提升可用排版空间 default-image-dpi: 300 # 提高图表分辨率,避免拉伸导致的空间浪费 keep-tex: true # 保留生成的TeX文件,方便进一步调试排版问题
4. 分离图表与div环境
若上述方法无效,可将图表从div环境中移出,避免图表与div内文本的排版冲突:
::: {#exm-kurt} 为进一步说明总体偏度(skewness)和峰度(kurtosis)的推断方法,我将使用Bulmer的示例: | | | | | | | | | | | | | | |-------------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| | Litter Size | 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | | Frequency | 7 | 33 | 58 | 116 | 125 | 126 | 121 | 107 | 56 | 37 | 25 | 4 | : Frequency distribution of litter size in rats, n=815 ::: ```{r, echo=FALSE, out.width='50%', fig.align='center', fig.asp=0.8, fig.cap="Histogram of Litter Size"} # R图表代码
::: {#exm-kurt}
此处省略详细计算过程,您可根据公式1和公式2验证:
:::
--- 内容的提问来源于stack exchange,提问作者Saïd Maanan
相关产品推荐
相关产品推荐

