使用LaTeX在RMarkdown中制作漂亮的方程式

时间:2019-09-19 03:22:01

标签: r latex rstudio r-markdown

我正在尝试在RMarkdown中创建格式良好的方程式,但是我似乎无法毫无错误地将其导入Knit。我拥有的LaTeX块看起来像这样:

---
title: "Untitled"
author: "KirkD-CO"
date: "September 18, 2019"
output: pdf_document
---

$$
f(x) = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \beta_4 (x-\xi)^3_+
\\
\begin{equation}
  (x-\xi)^3_+ =
    \begin{cases}
      (x-\xi)^3 \ , \  x>\xi
      \\
      0 \ \ \ \ \ \ \ \ \ \ \ \ \ , \ x\leq\xi
    \end{cases}       
\end{equation}
\\ 
\
\\
\begin{aligned}
  (x \leq \xi) \Rightarrow f(x) &= \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3
  \\
  (x > \xi) \Rightarrow f(x) &= \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \beta_4(x^3 -3x^2\xi + 3x\xi^2 - \xi^3)
  \\
  &=(\beta_0 + \beta_4\xi^3) + (\beta_1 + 3\beta_4\xi^2)x + (\beta_2 - 3\beta_4)
\end{aligned}
$$

在RStudio中,我看到了:

enter image description here

但是当我尝试编织它时,出现此错误:

! LaTeX Error: Bad math environment delimiter.

我已经搜索了Google和StackOverflow,发现了许多类似的问题,答案表明建议使用[]代替\ begin {equation},其他建议仅使用一个$代替$$,而其他建议则使用各种LaTeX软件包,其中一些是我在炼狱中尝试并结束的。

是否有直接建议让Kniter用输出的RStudio显示来编织PDF?

编辑:我在Fedora 30上使用R 3.5.3和Kniter 1.22。

EDIT2 :在工具->全局选项->编织->使用以下命令将LaTeX排版为PDF中:设置为pdfLaTeX

1 个答案:

答案 0 :(得分:2)

在评论之后,这是一个清理后的版本:

---
title: "Untitled"
author: "KirkD-CO"
date: "September 18, 2019"
output: pdf_document
---

$$
f(x) = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \beta_4 (x-\xi)^3_+
$$

$$
(x-\xi)^3_+ =
\begin{cases}
 (x-\xi)^3\, ,& x>\xi \\
 0  ,& x\leq\xi
 \end{cases}       
$$

$$
\begin{aligned}
  (x \leq \xi) \Rightarrow f(x) &= \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 \\
  (x > \xi) \Rightarrow f(x) &= \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \beta_4(x^3 -3x^2\xi + 3x\xi^2 - \xi^3) \\
  &=(\beta_0 + \beta_4\xi^3) + (\beta_1 + 3\beta_4\xi^2)x + (\beta_2 - 3\beta_4)
\end{aligned}
$$

生产

enter image description here

一些具体评论:

  1. 将单独的LaTeX数学模式块放入单独的$$ ... $$(或\[ ... \])环境中(除非您使用多行数学环境,请参见下文)。
  2. cases环境中,在每种情况下都使用&对不同零件进行水平对齐
  3. 除非使用某种多行数学环境(例如\\cases),否则不要使用aligned;相反,如果您确实使用多行数学环境,则必须使用\\分隔行。