[R] Characters Failing in SVG Output
    Donald Macnaughton 
    donm@c @end|ng |rom m@t@t@t@com
       
    Fri Aug 20 02:55:00 CEST 2021
    
    
  
Hello list,
The following program illustrates my problem:
# The program illustrates an apparent error generating SVG files.
# Note how the figure renders properly in the R graphics window, but
# fails if you open it in in an SVG-capable viewer, such as Chrome, 
# Firefox, or Edge.
# It appears that something in the svg() device is failing to
# handle characters in higher parts of the Unicode range.
# This program runs under Windows and the system must have the Cambria
# Math font, which comes builtin with Windows.
# (The font and range below are used by the Microsoft Word equation 
# editor, so it's desirable to use the same font and range in some 
# graphics to duplicate the algebraic characters used in math
equations
# in Word documents.)
# Don Macnaughton August 2021.
# Specify where to save the generated svg file.
SVGfile = "C:/Temp/TestSVG.svg"
# Make the Cambria Math font available to R.
windowsFonts("Cambria Math"=windowsFont("Cambria Math"))
# Use a loop to draw the graph twice, once in the SVG file and once 
# in the graphics window.
for (i in 1:2){
graphics.off()
# If this is the first  pass, specify the file for the SVG graph.
if (i == 1) {svg(SVGfile)}
xvals = c(0,100)
yvals = c(0,100)
# Draw an invisible graph to establish the ranges
# using using the two points in xvals and yvals defined above.
plot(xvals, yvals, type="n", xlab=" ", ylab=" ", axes=FALSE)
llab <- '\U01d44e' # the letter a in the math italic range
text(x=1,y=60,labels=llab,family="Cambria Math",adj=0,cex=3)
text(x=7,y=63,
   labels="<- The desired lowercase math italic a in the Cambria Math
font",
   adj=0)
llab <- '\U000061' # the letter a in the standard range.
text(x=1,y=40,labels=llab,family="Cambria Math",adj=0,cex=3,font=3)
text(x=7,y=40,
   labels="<- The lowercase italic a in the standard range in the
Cambria Math font",
   adj=0)
if (i == 1) {dev.off()}
# End of the loop to draw the graph twice:
}
# End of program.
Here's my sessionInfo()
R version 4.1.1 (2021-08-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
loaded via a namespace (and not attached):
[1] compiler_4.1.1 tools_4.1.1   
Thank you for your help,
Don Macnaughton
    
    
More information about the R-help
mailing list