R Under development (unstable) (2025-07-22 r88445 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(grid) > > ################## > # Testing > ################## > > # Test of a combination of shape and plotmath > library(gridSVG) Attaching package: 'gridSVG' The following objects are masked from 'package:grid': linearGradient, pattern, radialGradient The following object is masked from 'package:grDevices': dev.off > grid.newpage() > grid.rect(x=.4, width=.4, height=.8, gp=gpar(fill="grey", col=NA)) > grid.text(expression((a + b)^2), x=.4, y=.6) > grid.export("test2.svg") > > test <- function(e, file, cex=1) { + require(grid) + require(gridSVG) + grid.newpage() + grid.rect() + nrowcol <- n2mfrow(length(e)) + pushViewport(viewport(layout=grid.layout(nrowcol[1], nrowcol[2]))) + for (i in 1:length(e)) { + col <- (i - 1) %% nrowcol[2] + 1 + row <- (i - 1) %/% nrowcol[2] + 1 + pushViewport(viewport(layout.pos.row=row, layout.pos.col=col)) + grid.segments(c(0, .5), c(.5, 0), c(1, .5), c(.5, 1), + gp=gpar(col="grey")) + just <- c("left", "bottom") + tg <- textGrob(e[i], gp=gpar(cex=cex[(i - 1) %% length(cex) + 1]), + just=just) + grid.rect(width=grobWidth(tg), height=grobHeight(tg), + just=just, gp=gpar(col="red")) + grid.draw(tg) + popViewport() + } + grid.export(file) + grid.refresh() + } > > test(expression( + x + y, + x + y, + x + y, + x - y, + x / y, + x * y, + x %+-% y, + x %/% y, + x %*% y, + x %.% y, + x[i], + x^2, + paste(x, y, z), + sqrt(x), + sqrt(x, y), + X + Y, + a * b, + a == b, + x != y, + x < y, + x <= y, + x > y, + x >= y, + x %~~% y, + x %=~% y, + x %==% y, + x %prop% y, + bolditalic(x + plain(y + italic(z + bold(k)))), + , # space + symbol("m") + symbol("\042"), + list(x, y, z), + 1*...*n, + 1*cdots*n, + 1*ldots*n, + x %subset% y, + x %subseteq% y, + x %notsubset% y, + x %supset% y, + x %supseteq% y, + x %in% y, + x %notin% y), + "testml-1.svg", + cex <- c(1, 1.5, .5, rep(1, 100))) > > test(expression( + hat(x), + hat(xyz), + tilde(x), + dot(x), + ring(x), + bar(x), + widehat(xyz), + widetilde(xyz), + x %<->% y, + x %->% y, + x %<-% y, + x %up% y, + x %down% y, + x %<=>% y, + x %=>% y, + x %<=% y, + x %dblup% y, + x %dbldown% y, + alpha - omega, + Alpha - Omega, + theta1*phi1*sigma1*omega1, + Upsilon1, + aleph, + infinity, + partialdiff, + nabla, + 32*degree, + 60*minute, + 30*second, + displaystyle(sum(x[i], i==1, n)), + textstyle(sum(x[i], i==1, n)), + textstyle(x[i]), + scriptstyle(x[i]), + scriptscriptstyle(x[i]), + underline(xyz), + x ~~ y, + x + phantom(0) + y, + x + over(1, phantom(0)), + frac(x, y), + over(x, y), + atop(x, y), + ), + "testml-2.svg") > > test(expression( + sum(x[i], i==1, n), + prod(plain(P)(X==x), x), + integral(f(x)*dx, a, b), + union(A[i], i==1, n), + intersect(A[i], i==1, n), + lim(f(x), x %->% 0), + min(g(x), x > 0), + inf(S), + sup(S), + x^y + z, + x^(y + z), + x^{y + z}, + group("(", list(a, b), "]"), + bgroup("(", atop(x, y), ")"), + group(lceil, x, rceil), + ), + "testml-3.svg") > > > proc.time() user system elapsed 5.29 0.10 5.39