【问题标题】:How to disable transparency in knitr plots?如何禁用 knitr 图中的透明度?
【发布时间】:2016-04-22 17:05:16
【问题描述】:

我有一个需要转换为 PDF/A 的 LaTeX/knitr 文档,但在使用透明度时出现错误(PDF/A 中不允许这样做)。我将其追溯到我通过 knitr 在 R 中生成的箱线图的背景填充。无论我使用“pdf”、“cairo_pdf”还是“tikzDevice”作为输出设备,都会产生同样的错误。

Tikz 输出包括以下内容:

\definecolor{fillColor}{RGB}{255,255,255}
\path[use as bounding box,fill=fillColor,fill opacity=0.00] (0,0) rectangle (505.89,325.21);

手动删除 fill opacity=0.00 部分并仅重新运行 pdflatex 会删除特定图表的消息,所以我很确定这就是原因。但是,我更喜欢在源文件(R 代码)中进行更改,因此我不必在每次源更改和重新生成中间文件时手动进行此修复。

有谁知道在 R 中提供 bxppar 的神奇选项,这将转化为 1.0 的不透明度,或者更好的是,根本不指定填充? (填充是完全没有必要的,因为它是放置在页面空白部分的白色背景。)

(顺便说一句,我在bxp 调用中尝试了bg=NA,之前尝试了par(bg=NA),但都没有任何效果。就此而言,使用"red" 也没有效果,所以这似乎没有是正确的选择。)

【问题讨论】:

    标签: r pdf-generation knitr


    【解决方案1】:

    显然,图形参数 (par=) 中的 bg 仅适用于图中的对象(如箱线图中的框)。整个情节的背景在knitr的dev.args块选项中设置,例如,全局:

    opts_chunk$set(dev='tikz', dev.args=list(bg="white"))
    

    或在特定块的开头。似乎无法完全删除填充选项(tikzDevice source code 中有一个“TODO”项),但将其更改为"white" 消除了 PDF/A 验证错误,对文档没有明显影响。一旦我的论文完成,也许我可以为此提交一个补丁。 :-)

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2014-12-15
      • 2021-08-25
      • 2016-01-03
      • 1970-01-01
      相关资源
      最近更新 更多