【问题标题】:Rotate table pdf output from Markdown从 Markdown 旋转表格 pdf 输出
【发布时间】:2021-12-10 02:09:51
【问题描述】:

我想在 pdf 上将表格输出旋转 90 度。我正在使用 markdown 生成报告,并使用 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 个)都应旋转,而其余页面应保持原样。另外,我需要在kable 中使用longtable = TRUE,因为在我的实际示例中,我打印了很多行。

【问题讨论】:

  • 这能回答你的问题吗? Rotate a table from R markdown in pdf
  • @lcgodoy 不是。这与我在帖子中分享的链接相同,我表明这不是我想要的。我错过了什么吗?
  • 你看过at this answer吗?您需要在 Rmd 文件中添加一些latex 代码。

标签: r pdf r-markdown


【解决方案1】:

我找到了另一种使用旋转框的方法。

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

【讨论】:

  • 很好,我会试试你的解决方案。
【解决方案2】:

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

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

【讨论】:

  • 感谢您抽出宝贵时间回答@manro。在我的情况下,问题是我正在打印长表(大约 1000 行),它可以打印多页。当我使用此解决方案时,我收到错误 ! Dimension too large.
  • @user16024709 我认为,您应该将长表拆分为小表
  • @user16024709 另外,尝试在那里问:tex.stackexchange.com 答案对我来说也很有趣。
猜你喜欢
  • 2014-03-17
  • 2017-06-17
  • 2017-10-15
  • 2019-08-17
  • 1970-01-01
  • 2020-07-26
  • 2021-04-21
  • 2018-11-19
  • 1970-01-01
相关资源
最近更新 更多