如何在 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
已包含在默认模板中,该模板还负责 \ḑocumentclass
和 document
环境。
- 您需要将环境定义添加到单独的
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}
我有一个关于在 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 中实现这段代码?您是否需要按照 \documentclass{article}
甚至需要在 Rmarkdown 文档中吗?
我对这一切都是新手,到目前为止,我已经能够通过使用双美元符号来抵消我所有的 LaTeX 代码来获得简单的方程式,甚至是我在这里和那里的简单矩阵试过写,但是对于需要更多格式化、对齐、多行证明等的数学表达式,我遇到的大部分例子都是在TEX板上写的,语法类似于上面的代码。我一直无法弄清楚如何在 Rmarkdown 中实现这些类型的示例。任何有助于更好地理解此问题的建议或指示将不胜感激!
确实可以将大多数 body-level LaTeX 结构放入 Rmd
文件的 body 中。其他后端将忽略这些构造,但结果可能看起来会发生变化。因此,从我的角度来看,您正在将自己绑定到 PDF 输出。但这对你来说可能没问题。
关于您的具体问题:
amsmath
已包含在默认模板中,该模板还负责\ḑocumentclass
和document
环境。- 您需要将环境定义添加到单独的
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}