Rmarkdown设置电缆的位置

时间:2018-11-05 11:30:29

标签: r r-markdown kable

我遇到以下问题,一旦将Rstudio中的Rmarkdown编织为PDF,我的表就不会出现在它们在Rmarkdown文件中的位置,而是在页面顶部。我尝试添加:

header-includes:
  - \usepackage{float}

```{r setup, include=FALSE}
knitr::opts_chunk$set(... fig.pos = "H")
```

但是没有用。 R和Rstudio运行在Linux上,LaTeX引擎是“ pdflatex”

完全可重复的示例:

---
title: "Untitled"
output: pdf_document
header-includes:
  - \usepackage{float}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message=FALSE, warning = FALSE, fig.align = "center", dev = "cairo_pdf", fig.pos = "H")
```

```{r}
library(kableExtra)
library(tidyverse)
```
## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

\newpage

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

```{r}    
kable(cars %>% filter(cars$speed>=23), caption = "Speed vs distance")
```

3 个答案:

答案 0 :(得分:1)

要固定乳胶文档中的表格位置,您不需要包含标头选项,也不需要设置opts_chunk配置。为此,您应该通过在https://scontent.cdninstagram.com/vp/.../61070103916_8222623480192096121_n.jpg?_nc_ht=scontent.cdninstagram.com https://scontent.cdninstagram.com/..../7366801460_3370303770835888477_n.jpg?_nc_ht=scontent.cdninstagram.com``` [1]中添加latex_options函数,将hold_position指定为kable_styling()

所以最后一个块将是:

kable

答案 1 :(得分:1)

为 R Markdown Latex 或 Beamer 输出设置 kable 对象位置的另一种方法是将表格包含在“文本块”环境中,如 here 发布的那样。

YAML 将包括:

header-includes:
- \usepackage[absolute,overlay]{textpos}
  \setlength{\TPHorizModule}{1mm}
  \setlength{\TPVertModule}{1mm}

R 代码块(前面和后面是“textblock”的乳胶代码)看起来像:

\begin{textblock}{}(21.5, 51.5)
\footnotesize
```{r}    
kable(cars %>% filter(cars$speed>=23), caption = "Speed vs distance") 
```
\end{textblock} 

这种方法允许对页面或投影仪幻灯片上的 kable 输出进行更精细的定位。

答案 2 :(得分:0)

您可以将claudius答案中的“ hold_position”替换为“ HOLD_position”:

```{r}    
kable(cars %>% filter(cars$speed>=23), caption = "Speed vs distance") %>%
  kable_styling(latex_options = "HOLD_position")
```

如kableExtra软件包中所述:

如果发现hold_position的功能不足以按字面意义将PIN固定在确切的位置,则可能要使用HOLD_position,它是此功能的更强大版本。对于那些熟悉TeX的人,hold_position使用[!h]和HOLD_position使用[H]和float包。

ref:https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf

您可能还想通过在图形块标题中添加fig.pos ='H'来控制图形位置。