3

我正在尝试使用 Ryacas 和 RMarkdown 在 R 中做计算机代数。

这是一个简单的例子。

```{r}
library(Ryacas)
x = Sym("x")
y = Sym("y")
x0 = Sym("x0")
y0 = Sym("y0")
x1 = Sym("x1")
y1 = Sym("y1")
yacas("TeXForm(Solve( (y - y0) / (x - x0) == (y1 - y0) / (x1 - x0), y) )")
```

如何从解析为 LaTeX 的 R 输出中获取文本?

编辑:

results =asis确实有效,但输出包裹在单美元符号中,而不是双美元符号中。只有双美元符号表达式似乎正确解析(尝试编织下面)。

$$\left( y = - \left( \frac{ - y_{0}}{x - x_{0}} - \frac{y_{1} - y_{0}}{x_{1} - x_{ 0}} \right) \left( x - x_{0}\right) \right) $$

$\left( y = - \left( \frac{ - y_{0}}{x - x_{0}} - \frac{y_{1} - y_{0}}{x_{1} - x_{0 }} \right) \left( x - x_{0}\right) \right) $

4

2 回答 2

1

感谢巴蒂斯特和康拉德鲁道夫。

```{r, results = "asis"}
library(Ryacas)
library(magrittr)
library(stringi)


print.Expr = function (x, ...) {
  answer = yacas(x, ...)
  answer$YacasForm %<>% stri_replace_all_fixed("$", "$$") %>% stri_sub(2, -3)
  print(answer)
}

print.Sym = function (x, ...) {
  answer = yacas(unclass(x), ...)
  answer$YacasForm %<>% stri_replace_all_fixed("$", "$$")  %>% stri_sub(2, -3)
  print(answer)
}

x = Sym("x")
y = Sym("y")

TeXForm(x + y)
```
于 2015-08-16T19:00:01.237 回答
0

另一种选择(我认为这是更可取的):

```{python3, results = "asis"}
from sympy import *
def LaTeX(math):
  return("$$" + str(math) + "$$")
x, y = symbols("x_0, y_0")
print(LaTeX(x + y))
```
于 2015-08-18T07:18:54.140 回答