旋转 table Markdown 的 pdf 输出

Rotate table pdf output from Markdown

我想在 pdf 上将 table 输出旋转 90 度。我正在使用 markdown 生成报告,并使用 kable 循环显示 table。如果可能的话,我想继续使用 kable,因为还有很多其他依赖它的东西我没有包含在这个 MWE 中。

这是一个使用 iris 数据集的简单示例。我尝试使用此 post Rotate a table from R markdown in pdf

中的 landscape 函数
---
output: pdf_document
header-includes:
  \usepackage{lscape}
  \usepackage{pdfpages}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```  

Report page - 

```{r results='asis'}  
library(knitr)
library(kableExtra)
for (i in 1:3) {
  print(landscape(kable_styling(
    kable(iris[i:(i+5), ], format = "latex", align = "c", booktabs = TRUE, 
   longtable = TRUE, row.names = FALSE), latex_options = c("striped"), full_width = T)))
}
```

但这只会旋转页码,保持 table 不变。

我实际上正在寻找一种以这种方式为我提供输出的解决方案 -

为澄清起见,所有包含 table 数据的页面(本例中为 3 个)都应旋转,而其余页面应保持原样。另外,我需要 longtable = TRUE in kable 因为在我的实际示例中我打印了很多行。

使用包rotating

我为你添加了一个简单的例子。

---
title: "test"
header-includes: \usepackage[figuresright]{rotating}
#or \usepackage[figuresleft]{rotating}
output:
  pdf_document:
    latex_engine: xelatex
---

    ```{r setup, include = FALSE}
    library(flextable)
    ft <- flextable(head(mtcars))
    ```

    \begin{sidewaysfigure}
    `r ft`
    \end{sidewaysfigure}
    ```

您还可以根据自己的任务对其进行修改 ;)

我找到了另一种使用 rotatebox 的方法。

---
output: pdf_document
header-includes:
  \usepackage{lscape}
  \usepackage{pdfpages}
  \usepackage{graphicx}
  \usepackage[figuresright]{rotating}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```  

Report page - 


```{r results='asis', warning=FALSE, message=FALSE}  
library(knitr)
library(kableExtra)
for (i in 1:3) {
  cat('\rotatebox{90}{')
  print(kable(iris[i:(i+5), ], format = "latex", align = "c", booktabs = TRUE,
          row.names = FALSE))
  cat('}')
  cat("\n\newpage\n")
}
```