Принуждение TeXForm("Sqrt(x^2/(z^2+1)))") автоматически приводит к символу
У меня есть формула, которую я преобразовал в LaTeX Ryacas::TeXForm
, Я не могу получить из результирующего символа, содержащего код LaTeX, не делая это вручную. Я пытался:
y<-"Sqrt(x^2/(z^2+1))"
Sym(y)
z<-TeXForm(y)
Я получил:
"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$";
Но class(z)
дает и "Sym" и "характер"
Тогда я попытался заставить его что-то вроде w<-"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$"
такой что:
class(w)
[1] "character"
Конечно, я могу сделать это просто копированием и вставкой, но как это сделать автоматически?
1 ответ
Решение
Возможный подход через Ryacas
:
> yacas(TeXForm(y))
"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$";
> str(yacas(TeXForm(y)))
List of 2
$ : NULL
$ YacasForm: chr "\"$\\sqrt{\\frac{x ^{2}}{z ^{2} + 1} }$\";"
- attr(*, "class")= chr "yacas"
> str(yacas(TeXForm(y))$YacasForm)
chr "\"$\\sqrt{\\frac{x ^{2}}{z ^{2} + 1} }$\";"