Fer*_*dia 8 latex r knitr r-markdown
我正在尝试在 RMD 文件中呈现下表:
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|}
\hline
\\ \hline
\end{tabular}
\end{table}
Run Code Online (Sandbox Code Playgroud)
到目前为止还没有成功。rmarkdown 无法将 LaTeX 环境(方程除外)编译为 HTML 是否有任何根本原因?
在 Markdown 文档中,预期的输入标记语言是(r)markdown。您不应期望pandoc
自动识别任意混合的标记语言。LaTeX 数学标记只能在 Markdown 文档中使用,因为有一个rmarkdown 扩展可以处理这个问题。
但是,仍然可以使用 LaTeX 表,如 rmarkdown 文档中问题中所示的表。我在这个答案中演示了“逆”(RNW文档中的降价表)。请注意,这是一种相当实验性的方法,在其他情况下可能会失败。
这里tex2markdown
解释了该函数背后的想法。
---
output: html_document
---
# My document
This is `rmarkdown`.
This table is converted from LaTeX:
```{r, results = "asis", echo = FALSE, message = FALSE}
library(knitr)
tex2markdown <- function(texstring) {
writeLines(text = texstring,
con = myfile <- tempfile(fileext = ".tex"))
texfile <- pandoc(input = myfile, format = "html")
cat(readLines(texfile), sep = "\n")
unlink(c(myfile, texfile))
}
textable <- "
\\begin{table}[]
\\centering
\\caption{Food order}
\\begin{tabular}{| l | l |}
\\hline
Hamburgers & 3 \\\\
Hot dogs & 2 \\\\ \\hline
\\end{tabular}
\\end{table}
"
tex2markdown(textable)
```
---
Time for *lunch*.
Run Code Online (Sandbox Code Playgroud)
并非所有 LaTeX 功能都可以转换为 HTML,但对于简单的任务来说这应该可行。请注意,反斜杠需要通过额外的反斜杠进行转义。
这主要是一个概念证明。对于生产,请在 RNW 文档中使用 LaTeX 表格,在 RMD 文档中使用 Markdown 表格!