首页 > 解决方案 > 从 Markdown 旋转表格 pdf 输出

问题描述

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

这是一个使用数据集的简单示例iris。我尝试使用landscape这篇文章中的函数Rotate a table from R markdown in pdf

---
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)))
}
```

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

在此处输入图像描述

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

在此处输入图像描述

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

标签: rpdfr-markdown

解决方案


使用包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}
    ```

在此处输入图像描述

此外,您可以针对您的任务对其进行修改;)


推荐阅读