r - RMD PDF 中图像附近的文本(绘图)
问题描述
我从我的 rmd 制作了一个 pdf,但是有一个饼图占用了很小的空间。我想让它后面的文本落在它旁边而不是落在它下面。我知道这可以用 HTML 轻松完成,但我想将其转换为 pdf。有什么办法可以做到还是我应该放弃?
解决方案
您可以使用 knitr 钩子中的一些自定义选项定义来做到这一点:
---
title: "SO"
author: "Julian_Hn"
date: "July 20, 2020"
output:
pdf_document:
keep_tex: true
header-includes:
- \usepackage{wrapfig}
---
```{r, include = F}
normalOut <- knitr::knit_hooks$get("plot") # capture defaul plot behaviour of knitr
knitr::knit_hooks$set(plot = function(Out, options) { # define new plot behaviour
Out <- normalOut(Out, options) # apply normal stuff specified in the other options
if(!is.null(options$wrapfig)) { # if custom option wrapfig is specified
# replace the default figure latex code with wrapfigure code
wrapf <- sprintf("\\begin{wrapfigure}{%s}{%g\\textwidth}", options$wrapfig[[1]], options$wrapfig[[2]])
Out <- gsub("\\begin{figure}", wrapf, Out, fixed = T)
Out <- gsub("{figure}", "{wrapfigure}", Out, fixed = T)
}
return(Out)
})
```
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscingvitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a,magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuadafames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urnafringilla ultrices.
```{r echo=F, wrapfig = list("R", .5), fig.cap = "Test Wrapfigure", fig.width=5, fig.height = 5, out.width = ".5\\textwidth", fig.align="right"}
plot(1:10,1:10)```
Duisnibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacuslibero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, eratligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse utmassa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et magnis dis parturient montes,nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursusluctus mauris.Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at, tincidunt tristique, libero.Vivamus viverra fermentum felis.
注意 LaTeX 包的使用wrapfig
和标题中指定的选项。然后,您始终可以使用选项和适当的参数调用您的绘图例程,wrapfig
以将您的文本环绕在绘图周围。
推荐阅读
- asp.net-core - 无法在本地 ASP.NET Core MVC 服务之间进行跨源请求
- python - 在相同数据类型的列上合并两个数据框,但得到 ValueError
- excel - Excel COUNTIFS 协助处理重复值和多个标准
- javascript - 如何在反应中垂直和水平居中组件?
- c - 为什么数值解与 C 语言中的解析解相同?
- sql - 创建日期表的 SQL 函数
- r - 使用变量添加最大列
- python-3.x - 使用 rpy2 从矩阵创建命名列表
- javascript - 我对移位问题的逻辑正确吗?
- node.js - AWS Cognito Trigger Post Authenticated - Lambda Nodejs 8.10 - 返回自定义响应错误 TypeError:无法设置属性