Latex 将R矩阵转换为`m<-rbind(c(";x/(z+;1)";x^2/(z+;1)";、c(";y/(z+;1)";、y^2/(z+;1)";`
我想插入R矩阵,就像Latex 将R矩阵转换为`m<-rbind(c(";x/(z+;1)";x^2/(z+;1)";、c(";y/(z+;1)";、y^2/(z+;1)";`,latex,r-markdown,symbolic-math,doc,Latex,R Markdown,Symbolic Math,Doc,我想插入R矩阵,就像m你错过的pandoc解释。例如: 在docx中渲染精细: 编辑:根据问题更新,我更清楚地了解到您希望通过Ryacas将数学公式转换为TeX,请参阅此方法。不幸的是,我无法使retclass=“unquote”参数在yacas中工作,这就是丑陋的字符串操作的原因: > pander(apply(m, c(1, 2), function(x) gsub('\\"|;| ', '', yacas(TeXForm(x))$YacasForm))) -----------
m你错过的pandoc
解释。例如:
在docx
中渲染精细:
编辑:根据问题更新,我更清楚地了解到您希望通过Ryacas
将数学公式转换为TeX,请参阅此方法。不幸的是,我无法使retclass=“unquote”
参数在yacas
中工作,这就是丑陋的字符串操作的原因:
> pander(apply(m, c(1, 2), function(x) gsub('\\"|;| ', '', yacas(TeXForm(x))$YacasForm)))
--------------- -------------------
$\frac{x}{z+1}$ $\frac{x^{2}}{z+1}$
$\frac{y}{z+1}$ $\frac{y^{2}}{z+1}$
--------------- -------------------
调用pander后的MS Word输出
这是另一种基于标记为正确答案的解决方案
library(Ryacas)
library(pander)
m<-rbind(c("x","x^2"),c("y","y^2"))
Apycs<-function(m){
library(Ryacas)
m1<-m
for (k in 1:nrow(m)){ for (l in 1:ncol(m)){
m.2<-yacas(TeXForm(m[k,l]))[[2]]
m1[k,l]<-substr(m.2,2,nchar(m.2)-2)}}
return(m1)}
m<-Apycs(m)
pander(m)
库(Ryacas)
图书馆(潘德尔)
mI认为千“x”、“y”、“x^2”、“y^2”是矩阵中任何数学方程的最简单例子。对不起,我应该把它们弄得更复杂。想象一下,如果有更多的东西像x/(z+1),x^2/(z+1),y/(z+1),y^2/(z+1)。@AlexAlex我已经在我的答案中添加了更多的例子,但是相信我——一行就足以回答你的问题:添加美元符号并学习TeX数学语法:)好的。但它是手工制作的。问题的一部分是如何从给定的矩阵自动执行。@AlexAlex上面的标记表是从data.frame
生成的。你说的“自动”是什么意思?如果将例如1/2
转换为正确的TeX格式,如\frac{1}{2}
,您可能会遇到麻烦。但请编辑问题,简要说明你真正需要什么,比如分享你拥有的矩阵;B(m);C(m),其中A()、B()和C()都是R命令,不需要注意其内容。想象一下,如果有许多类似的矩阵或一个大矩阵,那么手工操作是令人厌倦和不愉快的。
-------
A B
--- ---
x x^2
y y^2
-------
|A |B |
|:--|:---|
|x |x^2 |
|y |y^2 |
Apymtx<-function(m,f){m1<-m
for (k in 1:nrow(m)){ for (l in 1:ncol(m)){m1[k,l]<-f(m[k,l])}}
return(m1)}
m<-Apymtx(m, TeXForm)
[,1] [,2]
[1,] "( TeXForm( x ) )" "( TeXForm( x^2 ) )"
[2,] "( TeXForm( y ) )" "( TeXForm( y^2 ) )"
> pander(data.frame(
+ A = c("$x^2$", "$\\frac{x}{y}$"),
+ B = c("$\\sum_{1}^{n}foobar_i$",
+ "$\\cos (2\\theta) = \\cos^2 \\theta - \\sin^2 \\theta$")))
--------------------------------------
A B
------------- ------------------------
$x^2$ $\sum_{1}^{n}foobar_i$
$\frac{x}{y}$ $\cos (2\theta) = \cos^2
\theta - \sin^2 \theta$
--------------------------------------
> pander(apply(m, c(1, 2), function(x) gsub('\\"|;| ', '', yacas(TeXForm(x))$YacasForm)))
--------------- -------------------
$\frac{x}{z+1}$ $\frac{x^{2}}{z+1}$
$\frac{y}{z+1}$ $\frac{y^{2}}{z+1}$
--------------- -------------------
library(Ryacas)
library(pander)
m<-rbind(c("x","x^2"),c("y","y^2"))
Apycs<-function(m){
library(Ryacas)
m1<-m
for (k in 1:nrow(m)){ for (l in 1:ncol(m)){
m.2<-yacas(TeXForm(m[k,l]))[[2]]
m1[k,l]<-substr(m.2,2,nchar(m.2)-2)}}
return(m1)}
m<-Apycs(m)
pander(m)