如何解决Knitr生成的PDF文件的大小
我正在Rnw
文件中使用以下块。
<<scatter,dev='pdf',include=TRUE>>=
a <- rnorm(1e4)
b <- rnorm(1e4)
plot(a,b)
@
我分别在Rnw
和R3.6.3
下编织了相同的R4.0.2
文件。但是,在R4.0.2
下生成的PDF图形比R3.6.3
中生成的PDF图形大得多(约8倍)。
我想知道是否有一种方法(例如,块选项)来减小R4.0.2
下的PDF大小。
两个不同版本的R的会话信息如下所示。
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 16299)
Matrix products: default
locale:
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
[5] LC_TIME=English_Australia.1252
attached base packages:
[1] stats graphics Grdevices utils datasets methods base
other attached packages:
[1] knitr_1.29
loaded via a namespace (and not attached):
[1] compiler_4.0.2 magrittr_1.5 tools_4.0.2 stringi_1.4.6 highr_0.8 stringr_1.4.0
[7] xfun_0.16 evaluate_0.14
R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 16299)
Matrix products: default
Random number generation:
RNG: Mersenne-Twister
normal: Inversion
Sample: Rounding
locale:
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
[5] LC_TIME=English_Australia.1252
attached base packages:
[1] stats graphics Grdevices utils datasets methods base
other attached packages:
[1] knitr_1.28
loaded via a namespace (and not attached):
[1] compiler_3.6.3 magrittr_1.5 tools_3.6.3 stringi_1.4.6 highr_0.8 stringr_1.4.0
[7] xfun_0.12 evaluate_0.14
解决方法
release notes中最近对pdf的唯一引用是与dingbats字体有关的。查看参考文件时,它说(强调我的意思):
useDingbats逻辑。小圆圈是否应该通过 Dingbats字体?默认值为TRUE,这会产生更小更好的结果 输出。将此设置为FALSE可以解决字体显示问题 损坏的PDF查看器:尽管此字体是保证的14种字体之一 适用于所有PDF查看器,但这种保证并不总是 荣幸。
您可以通过以下方式更改默认值
pdf.options(useDingbats = TRUE)
在Rnw文档的第一个代码块中。此更改对您的文档是全局的。如果您只想为特定的代码块更改它,则可以使用块选项dev.args
,例如,
<<scatter,dev='pdf',dev.args=list(useDingbats = TRUE)>>=
a <- rnorm(1e4)
b <- rnorm(1e4)
plot(a,b)
@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。