首页 > 解决方案 > ## grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, 中的警告:

问题描述

当我将我的 R Markdown 文档编织成 pdf 时,我的一些页面出现此错误 ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y,:请参见下面的屏幕截图。可能是什么问题呢?我没有使用任何新字体,笔记本电脑是 Mac。 在此处输入图像描述

标签: rr-markdownknitr

解决方案


您正在使用破折号;由于某种原因,此角色存在特定的错误。看

 R -e 'library(ggplot2); qplot(Sepal.Length, Petal.Length, data=iris, main="Big–booté")'
open Rplots.pdf

特,特,特!!!

如您所见,“é”字符被正确处理,但短划线变成了点。据推测,一些 R 代码试图通过将字符折叠回一些过时的、特定于平台的字符集来将事情搞砸;并且在特殊字符(例如破折号)上失败。

切换pngcairo_pdf输出驱动程序可以解决问题(至少在 Mac OS X 和最新的 R 版本 4.0.3 上):

R -e 'png(filename = "win.png"); library(ggplot2); qplot(Sepal.Length, Petal.Length, data=iris, main="Big–boo–té"); dev.off()'
open win.png

谢谢,约翰·沃尔芬。

或者就 Rmarkdown 而言,

R -e 'rmarkdown::render("foo.Rmd", "pdf_document", output_file="foo.pdf", runtime = "static", output_options = list(dev = "cairo_pdf"))'

推荐阅读