自动将 TeXForm("Sqrt(x^2/(z^2+1))") 结果强制转换为一个字符
Coerce TeXForm("Sqrt(x^2/(z^2+1))") result to a character automatically
我有通过 Ryacas::TeXForm
转换为 LaTeX 的公式。如果不手动完成,我无法从包含 LaTeX 代码的结果字符字符串中获取。
我试过了:
y<-"Sqrt(x^2/(z^2+1))"
Sym(y)
z<-TeXForm(y)
我得到了:
"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$";
但是 class(z)
同时给出 "Sym" 和 "character"
然后我试着强制它变成类似
w<-"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$"
这样:
class(w)
[1] "character"
当然可以直接复制粘贴进去,但是怎么自动完成呢?
通过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} }$\";"
我有通过 Ryacas::TeXForm
转换为 LaTeX 的公式。如果不手动完成,我无法从包含 LaTeX 代码的结果字符字符串中获取。
我试过了:
y<-"Sqrt(x^2/(z^2+1))"
Sym(y)
z<-TeXForm(y)
我得到了:
"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$";
但是 class(z)
同时给出 "Sym" 和 "character"
然后我试着强制它变成类似
w<-"$\sqrt{\frac{x ^{2}}{z ^{2} + 1} }$"
这样:
class(w)
[1] "character"
当然可以直接复制粘贴进去,但是怎么自动完成呢?
通过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} }$\";"