有各种LaTeX-to-Image转换器脚本,用于将方程转换为图像以包含在网页上.
如果你能找到其中一个(也许是dvipng?)那么你可以从R中的表到LaTeX很容易,然后从LaTeX到png.
如果你有dvipng,你可以利用Hmisc的乳胶转换来做一个更简洁的功能:
dvipng.dvi <-
function (object, file, ...)
{
cmd <- if (missing(file))
paste("dvipng -T tight", shQuote(object$file))
else paste("dvipng -T tight", "-o", file, shQuote(object$file))
invisible(sys(cmd))
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
> tt # here is a table
y
x 1 2 3
1 9 12 11
2 18 9 10
3 10 7 14
> dvipng.dvi(dvi.latex(latex(tt)))
Run Code Online (Sandbox Code Playgroud)
这将在工作目录中生成一个随机名称的png文件.-T tight选项将裁掉圆形的所有空格.
这就像我认为可能的那样直接.
Linux或Windows或Mac或Atari?
xtable提供输出latex或html标记的选项.你可以直接把html放进去.
话虽如此,我也希望能够直接从针织或sweave到png或svg.我上周试图这样做.我正在构建一个inkscape信息图(svg),并一直在寻找一种方法来插入一个表的链接图像,通过运行R代码进行更新.
在初始测试中,我结合使用xtable和Spacedman(+1)代码来获得一些不错的png输出(Ubuntu).-D选项允许控制分辨率.
我正在研究一个dvi-> svg转换器,它更像我所追求的. http://dvisvg.sourceforge.net/
dvipng.dvi <- function (object, file, res=600)
{
if (missing(file)){
invisible(sys(
paste("dvipng -T tight", "-D", res, shQuote(object$file)))
)
}
else{
invisible(sys(
paste("dvipng -T tight", "-D", res, "-o", file, shQuote(object$file)))
)
}
}
tt <- head(iris)
dvipng.dvi(dvi.latex(latex(xtable(tt))), file='iris.png')
Run Code Online (Sandbox Code Playgroud)