首页 > 解决方案 > 来自python函数的R Markdown中的原始乳胶输出问题

问题描述

我想将 R Markdown 与 python 和 LaTeX 结合使用。我找到了to_latex将 Pandas 转换DataFrame为原始 LaTeX 代码的模块。这在 Python 中非常有效。当我在 Markdown 中尝试此操作时,我会收到一些错误消息,例如Undefined control sequence. l.146 \textbackslash. 当我查看我的 tex 文件时,确实有一些奇怪的代码。mtcars 的前五行和前五列的表格如下所示:

`\textbackslash begin\{tabular\}\{llrrrr\}\n\textbackslash toprule\n{}
\& model \& mpg \& cyl \& disp \& hp
\textbackslash\textbackslash{}\n\textbackslash midrule\n0 \& Mazda RX4
\& 21.0 \& 6 \& 160.0 \& 110 \textbackslash\textbackslash{}\n1 \& Mazda
RX4 Wag \& 21.0 \& 6 \& 160.0 \& 110 \textbackslash\textbackslash{}\n2
\& Datsun 710 \& 22.8 \& 4 \& 108.0 \& 93
\textbackslash\textbackslash{}\n3 \& Hornet 4 Drive \& 21.4 \& 6 \&
258.0 \& 110 \textbackslash\textbackslash{}\n4 \& Hornet Sportabout \&
18.7 \& 8 \& 360.0 \& 175
\textbackslash\textbackslash{}\n\textbackslash bottomrule\n\textbackslash end\{tabular\}\n'

所以有些'\textbackslashs'不应该存在,应该有正常的反斜杠,我猜LaTeX试图逃避它们。我可以防止这种情况发生吗?我的整个 rmd 脚本如下所示:

---
title: "Test"
author: "TobiSonne"
date: "5/17/2021"
output: 
  pdf_document:
    number_sections: true
lang: de
fontsize: 12pt
header-includes: 
  - \usepackage{float}
  - \pagenumbering{gobble}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(
  fig.height = 4,
  fig.width = 7,
  echo = TRUE,
  fig.align  = "center",
  fig.pos = "H",
  out.extra = "", 
  warning = FALSE,
  message = FALSE)
library(reticulate)
```

```{python}
import pandas as pd
```

```{python}
Data = pd.read_csv("mtcars.csv").iloc[0:5, 0:5]
```

```{python, results = "asis"}
Data.to_latex()
```

标签: pythonrpandasmarkdown

解决方案


好的,我有一个解决方案:在 YAML 中必须添加 \usepackage{booktabs} 并且最后一个块必须是:

```{python, results = "asis"}
print(Data.to_latex(escape = False))
```

推荐阅读