r-lib/ragg

rendering issue with bgroup from plotmath

Closed this issue · 4 comments

bgroup from base R's plotmath should render big parentheses when saved as a png (or other image filetype). However, it renders as a bunch of boxes stacked on top of each other. This issue only seems to occur on Windows machines which this SO post from December 2022 confirms. It originally seemed that this was resolved as of R4.2.3 but it seems to not be the case.

library(ggplot2)
ggplot(data = mtcars, aes(x = wt, y = mpg)) +
  annotate("text", x = 2.5, y = 25, 
           label = "bgroup('(',atop(x,y),')')", 
           parse = TRUE) +
  annotate("text", x = 3.5, y = 25, 
           label = "group('(',atop(x,y),')')", 
           parse = TRUE)
ggsave("test_1.png", plot = last_plot())

test_1

I can also reproduce the issue with a base plot with the following code

ragg::agg_png(filename = "test_2.png")
plot(0, xlim = c(0, 1), ylim = c(0, 1))
text(0.5, 0.5, expression(bgroup('(',atop(x,y),')')))
dev.off()

test_2

Rendering of bgroup should look like the following:

grDevices::png(filename = "test_3.png")
plot(0, xlim = c(0, 1), ylim = c(0, 1))
text(0.5, 0.5, expression(bgroup('(',atop(x,y),')')))
dev.off()

test_3

This seems related to #51 however changing the device used in the plot pane as per the instructions in the ragg readme does not resolve this issue as per @thomasp85 suggests at the end of #51. In RStudio, within the plot pane it renders properly. However it only renders improperly when saving using ggplot2::ggsave() or ragg::agg_png().

This is not really related to #51 which was never about ragg but about the default windows device.

This is a reproducible issue in ragg - interestingly I cannot reproduce it on a Mac using the symbol font from windows

Relevant document from @pmur002

https://developer.r-project.org/Blog/public/2020/04/17/changes-to-symbol-fonts-for-cairo-graphics-devices/index.html

It is the exact same issue as was seen on Fedora. The Windows symbol font does not map the PUA region... I'll see how I can best alleviate this in ragg/systemfonts

Thank you for taking a look at this and figuring out how to fix it!