65 lines
2.0 KiB
R
65 lines
2.0 KiB
R
|
### Tests of transliteration in PDF
|
||
|
|
||
|
## macOS >= 14 transliterates many chars, and R 4.4.0 does many of
|
||
|
## these for other platforms. Some were tested in encodings.R, the
|
||
|
## rest here.
|
||
|
|
||
|
## Silence substitution warnings to make this more diff-able.
|
||
|
Sys.setenv("_R_SILENT_PDF_SUBSTITUTION_" = "true")
|
||
|
|
||
|
options(warn = 1L)
|
||
|
|
||
|
### only do this in a UTF-8 locale
|
||
|
if (!l10n_info()[["UTF-8"]]) {
|
||
|
warning("encodings3.R requires a UTF-8 locale")
|
||
|
q("no")
|
||
|
}
|
||
|
|
||
|
|
||
|
## Two-char fixups
|
||
|
two <- c(0x2260, 0x226A, 0x226B, 0x2025, 0x203C, 0x2122)
|
||
|
two <- intToUtf8(two, TRUE)
|
||
|
cat(two, sep =" "); cat("\n")
|
||
|
|
||
|
## Three-char fixups
|
||
|
three <- c(0x2194, 0x21D4, 0x22D8, 0x22D9, 0x2026, 0x22EF)
|
||
|
three <- intToUtf8(three, TRUE)
|
||
|
cat(three, sep =" "); cat("\n")
|
||
|
## 0x22EF is transliterated to 3x 'middle dot' in a suitable encoding
|
||
|
|
||
|
## Four-char fixups
|
||
|
four <- c(0x33C2, 0x33D8)
|
||
|
four <- intToUtf8(four, TRUE)
|
||
|
cat(four, sep =" "); cat("\n")
|
||
|
|
||
|
## musl will substitute * for all of these characters in pdf().
|
||
|
## hard-code encoding ISOLatin1.enc to match reference output
|
||
|
## (e.g. Windows default WinAnsi.enc, so CP-1252, has a special character
|
||
|
## for U+2122, while ISOLatin1.enc does not)
|
||
|
pdf("Encoding3.pdf", width = 7, height = 7, compress = FALSE,
|
||
|
encoding="ISOLatin1.enc")
|
||
|
plot(1:10, 1:10, type = "n")
|
||
|
text(0.5+seq_along(two), 2, two, adj = c(0,0))
|
||
|
text(0.5+seq_along(three), 3, three, adj = c(0,0))
|
||
|
text(0.5+seq_along(four), 4, four, adj = c(0,0))
|
||
|
|
||
|
## Now try centring
|
||
|
plot(1:10, 1:10, type = "n")
|
||
|
text(0.5+seq_along(two), 2, two)
|
||
|
text(0.5+seq_along(three), 3, three)
|
||
|
text(0.5+seq_along(four), 4, four)
|
||
|
dev.off()
|
||
|
|
||
|
if(!capabilities("cairo")) q("no")
|
||
|
cairo_pdf("cairo_pdf-encodings3.pdf", width = 7, height = 7, onefile = TRUE)
|
||
|
plot(1:10, 1:10, type = "n")
|
||
|
text(0.5+seq_along(two), 2, two, adj = c(0,0))
|
||
|
text(0.5+seq_along(three), 3, three, adj = c(0,0))
|
||
|
text(0.5+seq_along(four), 4, four, adj = c(0,0))
|
||
|
plot(1:10, 1:10, type = "n")
|
||
|
text(0.5+seq_along(two), 2, two)
|
||
|
text(0.5+seq_along(three), 3, three)
|
||
|
text(0.5+seq_along(four), 4, four)
|
||
|
dev.off()
|
||
|
|