R + ggplot + pdf 设备 + LaTeX : is it possible to embed fonts one time

标签 r pdf ggplot2 latex sweave

我有一个生成 PDF 的 r-scipt通过以下方式...

  • 使用 baseplot 制作了 100 多个图形和 ggplot .这些图是用 pdf 生成的设备。我使用的原因 pdf是我需要嵌入字体(在 tex 标签中使用自定义字体)。
  • 生成图形后,我调用 Sweave生成 .tex将所有图表收集在一起。
  • 之后我打电话MikTeX生成PDF。

  • 事实证明,生成图形所需的时间的 75-95% 是由 embed_fonts 占用的。称呼。有什么办法可以少做embed_fonts (这似乎是 ghostscript 的包装器)调用?理想的 vatiant 是只嵌入一次调用。那可能吗?

    最佳答案

    也许你可以使用 cairo_pdf应该嵌入字体的设备。cairo_pdf似乎比 pdf 慢但比 pdf + embedFonts 快.

    当然,仅在最终的 pdf 文档中嵌入字体将是更好的解决方案......

    library(microbenchmark)
    
    res_pdf <- microbenchmark({
        f = tempfile(fileext = '.pdf')
        pdf(f); pairs(iris); dev.off()
    })
    
    res_embed <- microbenchmark({
        f = tempfile(fileext = '.pdf')
        pdf(f); pairs(iris); dev.off()
        embedFonts(f)
    })
    
    res_cairo <- microbenchmark({
        f = tempfile(fileext = '.pdf')
        cairo_pdf(f); pairs(iris); dev.off()
    })
    
    res_pdf
    #> Unit: milliseconds
    #>       min      lq     mean   median       uq     max neval
    #>  16.67764 17.0388 18.05949 17.32904 18.18776 60.2542   100
    
    res_embed
    #> Unit: milliseconds
    #>                                                                                               
    #>      min       lq     mean   median       uq      max neval
    #>  250.046 252.7647 257.4749 255.2785 259.4858 303.0072   100
    
    res_cairo
    #> Unit: milliseconds
    #>                                                                                   
    #>       min       lq     mean   median      uq      max neval
    #>  84.25745 86.60512 88.42902 88.36698 89.5705 111.5881   100
    

    关于R + ggplot + pdf 设备 + LaTeX : is it possible to embed fonts one time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48746184/

    相关文章:

    r - 我可以将observeEvent() 与bsplus::bs_accordion 一起使用吗

    r - 如何用空格引用变量名?

    r - 是否可以使用 tbl_svysummary() 创建分层表(tbl_strata)?

    javascript - 如何使用记忆录文档类在浏览器中从 .tex 生成 PDF?

    c# - 创建 pdf 错误消息(...文件已损坏且无法修复)

    c# - 从数据库中的二进制文件写入 PDF

    r - 如何使用 ggplot2 在条形图 Axis 上为空因子水平创建占位符?

    r - 无论如何要使用 Roxygen2 分别记录 S4 类及其构造函数

    r - 如何按因子变量绘制多列的平均值

    r - 在 for 循环中使用 geom_segment() ?