旋转 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")
}
```
我想在 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")
}
```