如何在 Rmarkdown 中实现完整的 LaTeX 语法?

How to implement full LaTeX syntax in Rmarkdown?

我有一个关于在 Rmarkdown 中使用 LaTeX 的两部分问题:

1) 在 Rmarkdown 中工作时(意图呈现为 PDF),是否有规则规定何时我们应该只使用双美元符号($$)在 LaTeX 中写东西或何时我们应该使用LaTeX 语法开始和结束我们所有的 LaTeX 代码(例如 \documentclass{...}、\begin{document}、\end{document} 等

我相信我已经读过,只使用后一个选项是可以的,如果文档呈现为 PDF 以外的任何其他内容,Rmarkdown 将忽略所有转义的乳胶命令。

2) 在这种情况下,我问的原因是我试图在我正在编写的 Rmarkdown 文档中加入一些带标签的矩阵乘法。具体来说,我想包含一些采用 this page 上显示形式的矩阵。这是代码:

\documentclass{article}
\usepackage{amsmath}

\newenvironment{spmatrix}[1]
 {\def\mysubscript{#1}\mathop\bgroup\begin{pmatrix}}
 {\end{pmatrix}\egroup_{\textstyle\mathstrut\mysubscript}}

\begin{document}
\begin{equation}
\begin{spmatrix}{A}
    a & b \
    c & d
\end{spmatrix}
\begin{spmatrix}{x}
    x_1 \
    x_2
\end{spmatrix}
=
\begin{spmatrix}{b}
    b_1  \
    b_2
\end{spmatrix}
\end{equation}
\end{document}

如何在 Rmarkdown 中实现这段代码?您是否需要按照 中的建议将 \usepackage 调用移动到 YAML 中?第一行 \documentclass{article} 甚至需要在 Rmarkdown 文档中吗?

我对这一切都是新手,到目前为止,我已经能够通过使用双美元符号来抵消我所有的 LaTeX 代码来获得简单的方程式,甚至是我在这里和那里的简单矩阵试过写,但是对于需要更多格式化、对齐、多行证明等的数学表达式,我遇到的大部分例子都是在TEX板上写的,语法类似于上面的代码。我一直无法弄清楚如何在 Rmarkdown 中实现这些类型的示例。任何有助于更好地理解此问题的建议或指示将不胜感激!

确实可以将大多数 body-level LaTeX 结构放入 Rmd 文件的 body 中。其他后端将忽略这些构造,但结果可能看起来会发生变化。因此,从我的角度来看,您正在将自己绑定到 PDF 输出。但这对你来说可能没问题。

关于您的具体问题:

  • amsmath 已包含在默认模板中,该模板还负责 \ḑocumentclassdocument 环境。
  • 您需要将环境定义添加到单独的 tex 文件中(在我的例子中 preamble.tex)并通过 YAML headers.
  • 包含该文件
  • 然后您可以像 Rmd body.
  • 中一样使用 LaTeX 结构

整理一下:

---
output:
  pdf_document: 
    keep_tex: yes
    includes:
      in_header: preamble.tex
---

\begin{equation}
\begin{spmatrix}{A}
    a & b \
    c & d
\end{spmatrix}
\begin{spmatrix}{x}
    x_1 \
    x_2
\end{spmatrix}
=
\begin{spmatrix}{b}
    b_1  \
    b_2
\end{spmatrix}
\end{equation}