无法在 RMarkdown PDF minipage 中包含多个 flextable
Unable to include multiple flextable in RMarkdown PDF minipage
我正在尝试使用 R {flextable}
包创建 PDF。它不喜欢 {multicol}
(SO: Flextable seems to be incompatible with multicol LaTex package),因为在 multicol 中不允许使用 longtable。所以我改用 {minipage}
.
当尝试使用单个 flextable
文件时,文件成功编织:
---
title: "Untitled"
date: "30/08/2021"
output:
pdf_document:
latex_engine: lualatex
geometry: margin=1.5cm
---
\begin{minipage}[t]{0.5\linewidth}
```{r iris}
flextable::flextable(iris[1:5, ])
```
\end{minipage}
\begin{minipage}[t]{0.5\linewidth}
Content on the right hand side
\end{minipage}
但是,在添加第二个 table 时,它无法正确转换为 .tex 文件:
---
title: "Untitled"
date: "30/08/2021"
output:
pdf_document:
latex_engine: lualatex
geometry: margin=1.5cm
---
\begin{minipage}[t]{0.5\linewidth}
```{r iris}
flextable::flextable(iris[1:5, ])
```
\end{minipage}
\begin{minipage}[t]{0.5\linewidth}
```{r iris2}
flextable::flextable(iris[1:5, ])
```
\end{minipage}
第一个 minipage 的 .tex 内容看起来不错,但在第二个 minipage 中显示为:
\textbackslash begin\{minipage\}{[}t{]}\{0.5\linewidth\}
我需要在 Rmd 文件中添加什么来防止这种情况发生吗?我尝试使用 print
和 cat
并导致相同的 output/error.
问题似乎是 Pandoc 不明白第二个 \begin{minipage}[t]{0.5\linewidth}
也应该是逐字的 LaTeX。
作为解决方法,您可以将此行标记为 raw LaTeX:
```{=latex}
\begin{minipage}[t]{0.5\linewidth}
```
同样适用于结束\end{minipage}
。
但是,这会在两个 minipages 之间产生一个段落分隔符,这样它们就不再并排了。到目前为止我发现的唯一补救办法是对第一个小页面也使用原始的 LaTeX 语法:
---
title: "2 Flextables"
output:
pdf_document:
latex_engine: lualatex
keep_tex: yes
geometry: margin=1.5cm
---
```{=latex}
\begin{minipage}[t]{0.5\linewidth}
```
```{r iris}
flextable::flextable(iris[1:5, 2:4])
```
```{=latex}
\end{minipage}%
\begin{minipage}[t]{0.5\linewidth}
```
```{r iris2}
flextable::flextable(iris[1:5, 2:4])
```
```{=latex}
\end{minipage}
```
输出:
我正在尝试使用 R {flextable}
包创建 PDF。它不喜欢 {multicol}
(SO: Flextable seems to be incompatible with multicol LaTex package),因为在 multicol 中不允许使用 longtable。所以我改用 {minipage}
.
当尝试使用单个 flextable
文件时,文件成功编织:
---
title: "Untitled"
date: "30/08/2021"
output:
pdf_document:
latex_engine: lualatex
geometry: margin=1.5cm
---
\begin{minipage}[t]{0.5\linewidth}
```{r iris}
flextable::flextable(iris[1:5, ])
```
\end{minipage}
\begin{minipage}[t]{0.5\linewidth}
Content on the right hand side
\end{minipage}
但是,在添加第二个 table 时,它无法正确转换为 .tex 文件:
---
title: "Untitled"
date: "30/08/2021"
output:
pdf_document:
latex_engine: lualatex
geometry: margin=1.5cm
---
\begin{minipage}[t]{0.5\linewidth}
```{r iris}
flextable::flextable(iris[1:5, ])
```
\end{minipage}
\begin{minipage}[t]{0.5\linewidth}
```{r iris2}
flextable::flextable(iris[1:5, ])
```
\end{minipage}
第一个 minipage 的 .tex 内容看起来不错,但在第二个 minipage 中显示为:
\textbackslash begin\{minipage\}{[}t{]}\{0.5\linewidth\}
我需要在 Rmd 文件中添加什么来防止这种情况发生吗?我尝试使用 print
和 cat
并导致相同的 output/error.
问题似乎是 Pandoc 不明白第二个 \begin{minipage}[t]{0.5\linewidth}
也应该是逐字的 LaTeX。
作为解决方法,您可以将此行标记为 raw LaTeX:
```{=latex}
\begin{minipage}[t]{0.5\linewidth}
```
同样适用于结束\end{minipage}
。
但是,这会在两个 minipages 之间产生一个段落分隔符,这样它们就不再并排了。到目前为止我发现的唯一补救办法是对第一个小页面也使用原始的 LaTeX 语法:
---
title: "2 Flextables"
output:
pdf_document:
latex_engine: lualatex
keep_tex: yes
geometry: margin=1.5cm
---
```{=latex}
\begin{minipage}[t]{0.5\linewidth}
```
```{r iris}
flextable::flextable(iris[1:5, 2:4])
```
```{=latex}
\end{minipage}%
\begin{minipage}[t]{0.5\linewidth}
```
```{r iris2}
flextable::flextable(iris[1:5, 2:4])
```
```{=latex}
\end{minipage}
```
输出: