0

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

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

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

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

\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 中实现此代码?您是否需要按照其他讨论在 Rmarkdown 中加载 LaTeX 包的线程中的建议将 \usepackage 调用移动到 YAML中?\documentclass{article}在 Rmarkdown 文档 中甚至需要第一行吗?

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

4

1 回答 1

1

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

关于您的具体问题:

  • amsmath已包含在默认模板中,该模板还负责处理\ḑocumentclass环境document
  • 您需要将环境定义添加到单独的tex文件中(在我的情况下preamble.tex)并通过 YAML 标头包含该文件。
  • 然后,您可以在Rmd正文中使用 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}
于 2018-11-24T22:55:48.287 回答