我想知道如何使用rmarkdown
生成一个在同一文档中同时具有纵向和横向布局的pdf。如果有一个纯rmarkdown
选项,它将比使用 latex 更好。
这是一个小的可复制示例。首先,在RStudio中渲染此.Rmd
(按 Knit PDF的按钮)会导致pdf的所有页面都采用横向布局:
---
title: "All pages landscape"
output: pdf_document
classoption: landscape
---
```{r}
summary(cars)
```
\newpage
```{r}
summary(cars)
```
然后尝试创建混合纵向和横向布局的文档。
YAML
中的基本设置是根据“包含”部分here完成的。 in_header
文件'header.tex'仅包含\usepackage{lscape}
,这是knitr
横向布局here建议的软件包。 .tex
文件与.Rmd
文件位于同一目录中。---
title: "Mixing portrait and landscape"
output:
pdf_document:
includes:
in_header: header.tex
---
Portrait:
```{r}
summary(cars)
```
\newpage
\begin{landscape}
Landscape:
```{r}
summary(cars)
```
\end{landscape}
\newpage
More portrait:
```{r}
summary(cars)
```
但是,此代码导致错误:
# ! You can't use `macro parameter character #' in horizontal mode.
# l.116 #
# pandoc.exe: Error producing PDF from TeX source
# Error: pandoc document conversion failed with error 43
任何帮助深表感谢。
最佳答案
因此,pandoc
does not解析了 latex 环境的内容,但是您可以通过在header.tex
文件中的redefining the commands来欺骗它:
\usepackage{lscape}
\newcommand{\blandscape}{\begin{landscape}}
\newcommand{\elandscape}{\end{landscape}}
因此,此处
\begin{landscape}
重定义为\blandscape
,并且\end{landscape}
重定义为\elandscape
。在.Rmd
文件中使用这些新定义的命令似乎可行:---
title: "Mixing portrait and landscape"
output:
pdf_document:
includes:
in_header: header.tex
---
Portrait
```{r}
summary(cars)
```
\newpage
\blandscape
Landscape
```{r}
summary(cars)
```
\elandscape
\newpage
More portrait
```{r}
summary(cars)
```
关于r - Rstudio rmarkdown:单个PDF中的纵向和横向布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25849814/