将乳胶表直接打印到图像(PNG或其他)

Bra*_*sen 11 latex r sweave

有没有办法从R内部将LaTeX表直接打印到图像文件(包含在另一个文档/网页中).基本上,我想将LaTeX代码提供给将其作为图像保存到工作目录的函数.

管梦想?

Spa*_*man 7

有各种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?

  • 仅供参考,dvi是原始的TeX输出格式.在那些日子里,每个打印机公司都有自己的打印控制语言,因此TeX生产了dvi,你需要的只是每台打印机的dvi-to-whatever.它不那么重要,因为pdflatex在没有它的情况下生成了pdf. (2认同)

Bre*_*ent 5

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)