如何在没有降价的情况下在 R 中打印或将文本转换为 pdf()

How to print or cat text into pdf() in R without markdown

我正在创建一个包含一些图表的 PDF 文件,但我还想在底部包含一些文本消息。由于我无法控制的原因,我无法在此系统上安装乳胶发行版,因此我无法编写降价文件,但必须使用 pdf().

当我只使用 printcat 时,pdf 中什么也没有显示。我尝试根据 here 的答案使用 sink(),但这也不起作用:

pdf("filename.pdf")
sink("filename.pdf")
print("message")
sink()
dev.off()

没有收到错误信息,但是创建的文件没有页面。

有什么想法吗?我正在考虑仅绘制纯文本图的解决方法,但我希望有更合理的解决方案。

我们可以简单地在 pdf 设备中使用 text 绘制文本。 text 仅在 plot 调用后有效。我们不必停用所有内容,我们调用 plot.new 这基本上是一个空图。查看 ?pdf?text 选项以进一步自定义。

txt <- "message"

pdf("filename2.pdf", paper="a4")
plot.new()
text(x=.1, y=.1, txt)  # first 2 numbers are xy-coordinates within [0, 1]
text(.5, .5, txt, font=2, cex=1.5)
text(.9, .9, txt, font=4, cex=2, col="#F48024")
dev.off()

对于 sink 解决方案,而是使用 cat 并在文本的最后添加回车符 return \r 以获得有效的最后一行 pdf 处理 .txt 文件。

sink("filename.txt")  # to be found in dir `getwd()`
cat("message\r")
sink()

pdf("filename.pdf")  # ditto
plot.new()
text(.5, .5, readLines("filename.txt"))
dev.off()

pdf 调用中使用不同的 xy 坐标、font 选项和 paper 格式进行自定义。

结果