首页 > 解决方案 > RMD PDF 中图像附近的文本(绘图)

问题描述

我从我的 rmd 制作了一个 pdf,但是有一个饼图占用了很小的空间。我想让它后面的文本落在它旁边而不是落在它下面。我知道这可以用 HTML 轻松完成,但我想将其转换为 pdf。有什么办法可以做到还是我应该放弃?

在此处输入图像描述

标签: rr-markdown

解决方案


您可以使用 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以将您的文本环绕在绘图周围。

在此处输入图像描述


推荐阅读