Hershey {base} | R Documentation |
If the vfont
argument to one of the text-drawing functions
(text
and contour
)
is a character vector of length 2, hershey vector fonts are used to
render the text.
These fonts have two advantages:
The Hershey characters are organised into a set of fonts, which are
specified by a typeface (e.g., serif
or sans serif
)
and a fontindex
(e.g., plain
or italic
).
The first element of vfont
specifies the typeface and the second
element specifies the fontindex. The first table
produced by example(Hershey)
shows the character a
produced
by each of the different fonts.
The available values for (typeface, fontindex)
for Hershey
vector fonts are:
serif | plain |
serif | italic |
serif | bold |
serif | bold italic |
serif | cyrillic |
serif | oblique cyrillic |
serif | EUC |
sans serif | plain |
sans serif | italic |
sans serif | bold |
sans serif | bold italic |
script | plain |
script | italic |
script | bold |
gothic english | plain |
gothic german | plain |
gothic italian | plain |
serif symbol | plain |
serif symbol | italic |
serif symbol | bold |
serif symbol | bold italic |
sans serif symbol | plain |
sans serif symbol | italic |
. When R encounters a
,
rather than drawing the
, it treats the subsequent character(s)
as a coded description of what to draw.
One useful escape sequence (in the current context)
is of the form: 123
. The three
digits following the specify an octal code for a character. For
example, the octal code for
p
is 160 so the strings "p"
and "160"
are equivalent.
This is useful for producing characters when
there is not an appropriate key on your keyboard.
The other useful escape sequences all begin with \
. These are
described below.
\ab
.
For example, the escape sequence \*a
produces a Greek alpha.
The second table in example(Hershey)
shows all of the symbol
escape sequences and the symbols that they produce.
\ab
are
provided for producing ISO Latin-1 characters (for example, if
you only have a US keyboard). Another option is to use the appropriate
octal code. The (non-ASCII) ISO Latin-1 characters are in the range
241...377. For example, 366
produces the character o
with an
umlaut. The third table in example(Hershey)
shows all of the
ISO Latin-1 escape sequences.
\LI
produces the zodiac sign for
Libra, and \JU
produces the astronomical sign for Jupiter.
The fourth table in example(Hershey)
shows all of the
special character escape sequences.
example(Hershey)
shows the octal codes for
the available cyrillic characters.
When using the Serif typeface and EUC
fontindex, these characters can be produced by a pair of octal
codes. Given the hexadecimal code (e.g., 0x2421), take the first two
digits and add 0x80 and do the same to the second two digits (e.g.,
0x21 and 0x24 become 0xa4 and 0xa1), then convert both to octal (e.g.,
0xa4 and 0xa1 become 244 and 241). For example, the first Hiragana
character is produced by 244241
.
It is also possible to use the hexadecimal code directly. This works
for all non-EUC fonts by specifying an escape sequence of the form
\#J1234
. For example, the first Hiragana character is produced
by \#J2421
.
The Kanji characters may be specified in a third way, using the
so-called "Nelson Index", by specifying an escape sequence of the form
\#N1234
. For example, the Kanji for ``one'' is
produced by \#N0001
.
\#H1234
. For example, the
fleur-de-lys is produced by \#H0746
. The sixth and seventh
tables of
example(Hershey)
shows all of the available raw glyphs.http://www.gnu.org/software/plotutils/plotutils.html
###### # create tables of vector font functionality ###### make.table <- function(nr, nc) { savepar <- par(mar=rep(0, 4), pty="s") plot(c(0, nc*2 + 1), c(0, -(nr + 1)), type="n", xlab="", ylab="", axes=F) savepar } get.r <- function(i, nr) { i %% nr + 1 } get.c <- function(i, nr) { i %/% nr + 1 } draw.title <- function(title, nr, nc) { r <- get.r(i, nr) c <- get.c(i, nr) text((nc*2 + 1)/2, 0, title, font=2) } draw.sample.cell <- function(typeface, fontindex, string, i, nr) { r <- get.r(i, nr) c <- get.c(i, nr) text((2*(c - 1) + 1), -r, paste(typeface, fontindex)) text((2*c), -r, string, vfont=c(typeface, fontindex), cex=1.5) rect((2*(c - 1) + .5), -(r - .5), (2*c + .5), -(r + .5), border="grey") } draw.vf.cell <- function(typeface, fontindex, string, i, nr, raw.string=NULL) { r <- get.r(i, nr) c <- get.c(i, nr) if (is.null(raw.string)) raw.string <- paste("\\", string, sep="") text((2*(c - 1) + 1), -r, raw.string, col="grey") text((2*c), -r, string, vfont=c(typeface, fontindex)) rect((2*(c - 1) + .5), -(r - .5), (2*c + .5), -(r + .5), border="grey") } nr <- 23 nc <- 1 oldpar <- make.table(nr, nc) i <- 0 draw.title("Sample 'a' for each available font", nr, nc) draw.sample.cell("serif", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("serif", "italic", "a", i, nr); i <- i + 1 draw.sample.cell("serif", "bold", "a", i, nr); i <- i + 1 draw.sample.cell("serif", "bold italic", "a", i, nr); i <- i + 1 draw.sample.cell("serif", "cyrillic", "a", i, nr); i <- i + 1 draw.sample.cell("serif", "oblique cyrillic", "a", i, nr); i <- i + 1 draw.sample.cell("serif", "EUC", "a", i, nr); i <- i + 1 draw.sample.cell("sans serif", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("sans serif", "italic", "a", i, nr); i <- i + 1 draw.sample.cell("sans serif", "bold", "a", i, nr); i <- i + 1 draw.sample.cell("sans serif", "bold italic", "a", i, nr); i <- i + 1 draw.sample.cell("script", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("script", "italic", "a", i, nr); i <- i + 1 draw.sample.cell("script", "bold", "a", i, nr); i <- i + 1 draw.sample.cell("gothic english", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("gothic german", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("gothic italian", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("serif symbol", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("serif symbol", "italic", "a", i, nr); i <- i + 1 draw.sample.cell("serif symbol", "bold", "a", i, nr); i <- i + 1 draw.sample.cell("serif symbol", "bold italic", "a", i, nr); i <- i + 1 draw.sample.cell("sans serif symbol", "plain", "a", i, nr); i <- i + 1 draw.sample.cell("sans serif symbol", "italic", "a", i, nr); i <- i + 1 nr <- 25 nc <- 6 tf <- "serif" fi <- "plain" make.table(nr, nc) i <- 0 draw.title("Symbol Escape Sequences", nr, nc) draw.vf.cell(tf, fi, "\\fa", i, nr); i<-i+1; { "universal"} draw.vf.cell(tf, fi, "\\te", i, nr); i<-i+1; { "existential"} draw.vf.cell(tf, fi, "\\st", i, nr); i<-i+1; { "suchthat"} draw.vf.cell(tf, fi, "\\**", i, nr); i<-i+1; { "asteriskmath"} draw.vf.cell(tf, fi, "\\=~", i, nr); i<-i+1; { "congruent"} draw.vf.cell(tf, fi, "\\*A", i, nr); i<-i+1; { "Alpha"} draw.vf.cell(tf, fi, "\\*B", i, nr); i<-i+1; { "Beta"} draw.vf.cell(tf, fi, "\\*X", i, nr); i<-i+1; { "Chi"} draw.vf.cell(tf, fi, "\\*D", i, nr); i<-i+1; { "Delta"} draw.vf.cell(tf, fi, "\\*E", i, nr); i<-i+1; { "Epsilon"} draw.vf.cell(tf, fi, "\\*F", i, nr); i<-i+1; { "Phi"} draw.vf.cell(tf, fi, "\\*G", i, nr); i<-i+1; { "Gamma"} draw.vf.cell(tf, fi, "\\*Y", i, nr); i<-i+1; { "Eta"} draw.vf.cell(tf, fi, "\\*I", i, nr); i<-i+1; { "Iota"} draw.vf.cell(tf, fi, "\\+h", i, nr); i<-i+1; { "theta1"} draw.vf.cell(tf, fi, "\\*K", i, nr); i<-i+1; { "kappa"} draw.vf.cell(tf, fi, "\\*L", i, nr); i<-i+1; { "Lambda"} draw.vf.cell(tf, fi, "\\*M", i, nr); i<-i+1; { "Mu"} draw.vf.cell(tf, fi, "\\*N", i, nr); i<-i+1; { "Nu"} draw.vf.cell(tf, fi, "\\*O", i, nr); i<-i+1; { "Omicron"} draw.vf.cell(tf, fi, "\\*P", i, nr); i<-i+1; { "Pi"} draw.vf.cell(tf, fi, "\\*H", i, nr); i<-i+1; { "Theta"} draw.vf.cell(tf, fi, "\\*R", i, nr); i<-i+1; { "Rho"} draw.vf.cell(tf, fi, "\\*S", i, nr); i<-i+1; { "Sigma"} draw.vf.cell(tf, fi, "\\*T", i, nr); i<-i+1; { "Tau"} draw.vf.cell(tf, fi, "\\*U", i, nr); i<-i+1; { "Upsilon"} draw.vf.cell(tf, fi, "\\ts", i, nr); i<-i+1; { "sigma1"} draw.vf.cell(tf, fi, "\\*W", i, nr); i<-i+1; { "Omega"} draw.vf.cell(tf, fi, "\\*C", i, nr); i<-i+1; { "Xi"} draw.vf.cell(tf, fi, "\\*Q", i, nr); i<-i+1; { "Psi"} draw.vf.cell(tf, fi, "\\*Z", i, nr); i<-i+1; { "Zeta"} draw.vf.cell(tf, fi, "\\tf", i, nr); i<-i+1; { "therefore"} draw.vf.cell(tf, fi, "\\pp", i, nr); i<-i+1; { "perpendicular"} draw.vf.cell(tf, fi, "\\ul", i, nr); i<-i+1; { "underline"} draw.vf.cell(tf, fi, "\\rx", i, nr); i<-i+1; { "radicalex"} draw.vf.cell(tf, fi, "\\*a", i, nr); i<-i+1; { "alpha"} draw.vf.cell(tf, fi, "\\*b", i, nr); i<-i+1; { "beta"} draw.vf.cell(tf, fi, "\\*x", i, nr); i<-i+1; { "chi"} draw.vf.cell(tf, fi, "\\*d", i, nr); i<-i+1; { "delta"} draw.vf.cell(tf, fi, "\\*e", i, nr); i<-i+1; { "epsilon"} draw.vf.cell(tf, fi, "\\*f", i, nr); i<-i+1; { "phi"} draw.vf.cell(tf, fi, "\\*g", i, nr); i<-i+1; { "gamma"} draw.vf.cell(tf, fi, "\\*y", i, nr); i<-i+1; { "eta"} draw.vf.cell(tf, fi, "\\*i", i, nr); i<-i+1; { "iota"} draw.vf.cell(tf, fi, "\\+f", i, nr); i<-i+1; { "phi1"} draw.vf.cell(tf, fi, "\\*k", i, nr); i<-i+1; { "kappa"} draw.vf.cell(tf, fi, "\\*l", i, nr); i<-i+1; { "lambda"} draw.vf.cell(tf, fi, "\\*m", i, nr); i<-i+1; { "mu"} draw.vf.cell(tf, fi, "\\*n", i, nr); i<-i+1; { "nu"} draw.vf.cell(tf, fi, "\\*o", i, nr); i<-i+1; { "omicron"} draw.vf.cell(tf, fi, "\\*p", i, nr); i<-i+1; { "pi"} draw.vf.cell(tf, fi, "\\*h", i, nr); i<-i+1; { "theta"} draw.vf.cell(tf, fi, "\\*r", i, nr); i<-i+1; { "rho"} draw.vf.cell(tf, fi, "\\*s", i, nr); i<-i+1; { "sigma"} draw.vf.cell(tf, fi, "\\*t", i, nr); i<-i+1; { "tau"} draw.vf.cell(tf, fi, "\\*u", i, nr); i<-i+1; { "upsilon"} draw.vf.cell(tf, fi, "\\+p", i, nr); i<-i+1; { "omega1"} draw.vf.cell(tf, fi, "\\*w", i, nr); i<-i+1; { "omega"} draw.vf.cell(tf, fi, "\\*c", i, nr); i<-i+1; { "xi"} draw.vf.cell(tf, fi, "\\*q", i, nr); i<-i+1; { "psi"} draw.vf.cell(tf, fi, "\\*z", i, nr); i<-i+1; { "zeta"} draw.vf.cell(tf, fi, "\\ap", i, nr); i<-i+1; { "similar"} draw.vf.cell(tf, fi, "\\+U", i, nr); i<-i+1; { "Upsilon1"} draw.vf.cell(tf, fi, "\\fm", i, nr); i<-i+1; { "minute"} draw.vf.cell(tf, fi, "\\<=", i, nr); i<-i+1; { "lessequal"} draw.vf.cell(tf, fi, "\\f/", i, nr); i<-i+1; { "fraction"} draw.vf.cell(tf, fi, "\\if", i, nr); i<-i+1; { "infinity"} draw.vf.cell(tf, fi, "\\Fn", i, nr); i<-i+1; { "florin"} draw.vf.cell(tf, fi, "\\CL", i, nr); i<-i+1; { "club"} draw.vf.cell(tf, fi, "\\DI", i, nr); i<-i+1; { "diamond"} draw.vf.cell(tf, fi, "\\HE", i, nr); i<-i+1; { "heart"} draw.vf.cell(tf, fi, "\\SP", i, nr); i<-i+1; { "spade"} draw.vf.cell(tf, fi, "\\<>", i, nr); i<-i+1; { "arrowboth"} draw.vf.cell(tf, fi, "\\<-", i, nr); i<-i+1; { "arrowleft"} draw.vf.cell(tf, fi, "\\ua", i, nr); i<-i+1; { "arrowup"} draw.vf.cell(tf, fi, "\\->", i, nr); i<-i+1; { "arrowright"} draw.vf.cell(tf, fi, "\\da", i, nr); i<-i+1; { "arrowdown"} draw.vf.cell(tf, fi, "\\de", i, nr); i<-i+1; { "degree"} draw.vf.cell(tf, fi, "\\+-", i, nr); i<-i+1; { "plusminus"} draw.vf.cell(tf, fi, "\\sd", i, nr); i<-i+1; { "second"} draw.vf.cell(tf, fi, "\\>=", i, nr); i<-i+1; { "greaterequal"} draw.vf.cell(tf, fi, "\\mu", i, nr); i<-i+1; { "multiply"} draw.vf.cell(tf, fi, "\\pt", i, nr); i<-i+1; { "proportional"} draw.vf.cell(tf, fi, "\\pd", i, nr); i<-i+1; { "partialdiff"} draw.vf.cell(tf, fi, "\\bu", i, nr); i<-i+1; { "bullet"} draw.vf.cell(tf, fi, "\\di", i, nr); i<-i+1; { "divide"} draw.vf.cell(tf, fi, "\\!=", i, nr); i<-i+1; { "notequal"} draw.vf.cell(tf, fi, "\\==", i, nr); i<-i+1; { "equivalence"} draw.vf.cell(tf, fi, "\\~~", i, nr); i<-i+1; { "approxequal"} draw.vf.cell(tf, fi, "\\..", i, nr); i<-i+1; { "ellipsis"} draw.vf.cell(tf, fi, "\\an", i, nr); i<-i+1; { "arrowhorizex"} draw.vf.cell(tf, fi, "\\CR", i, nr); i<-i+1; { "carriagereturn"} draw.vf.cell(tf, fi, "\\Ah", i, nr); i<-i+1; { "aleph"} draw.vf.cell(tf, fi, "\\Im", i, nr); i<-i+1; { "Ifraktur"} draw.vf.cell(tf, fi, "\\Re", i, nr); i<-i+1; { "Rfraktur"} draw.vf.cell(tf, fi, "\\wp", i, nr); i<-i+1; { "weierstrass"} draw.vf.cell(tf, fi, "\\c*", i, nr); i<-i+1; { "circlemultiply"} draw.vf.cell(tf, fi, "\\c+", i, nr); i<-i+1; { "circleplus"} draw.vf.cell(tf, fi, "\\es", i, nr); i<-i+1; { "emptyset"} draw.vf.cell(tf, fi, "\\ca", i, nr); i<-i+1; { "cap"} draw.vf.cell(tf, fi, "\\cu", i, nr); i<-i+1; { "cup"} draw.vf.cell(tf, fi, "\\SS", i, nr); i<-i+1; { "superset"} draw.vf.cell(tf, fi, "\\ip", i, nr); i<-i+1; { "reflexsuperset"} draw.vf.cell(tf, fi, "\\n<", i, nr); i<-i+1; { "notsubset"} draw.vf.cell(tf, fi, "\\SB", i, nr); i<-i+1; { "subset"} draw.vf.cell(tf, fi, "\\ib", i, nr); i<-i+1; { "reflexsubset"} draw.vf.cell(tf, fi, "\\mo", i, nr); i<-i+1; { "element"} draw.vf.cell(tf, fi, "\\nm", i, nr); i<-i+1; { "notelement"} draw.vf.cell(tf, fi, "\\/_", i, nr); i<-i+1; { "angle"} draw.vf.cell(tf, fi, "\\gr", i, nr); i<-i+1; { "nabla"} draw.vf.cell(tf, fi, "\\rg", i, nr); i<-i+1; { "registerserif"} draw.vf.cell(tf, fi, "\\co", i, nr); i<-i+1; { "copyrightserif"} draw.vf.cell(tf, fi, "\\tm", i, nr); i<-i+1; { "trademarkserif"} draw.vf.cell(tf, fi, "\\PR", i, nr); i<-i+1; { "product"} draw.vf.cell(tf, fi, "\\sr", i, nr); i<-i+1; { "radical"} draw.vf.cell(tf, fi, "\\md", i, nr); i<-i+1; { "dotmath"} draw.vf.cell(tf, fi, "\\no", i, nr); i<-i+1; { "logicalnot"} draw.vf.cell(tf, fi, "\\AN", i, nr); i<-i+1; { "logicaland"} draw.vf.cell(tf, fi, "\\OR", i, nr); i<-i+1; { "logicalor"} draw.vf.cell(tf, fi, "\\hA", i, nr); i<-i+1; { "arrowdblboth"} draw.vf.cell(tf, fi, "\\lA", i, nr); i<-i+1; { "arrowdblleft"} draw.vf.cell(tf, fi, "\\uA", i, nr); i<-i+1; { "arrowdblup"} draw.vf.cell(tf, fi, "\\rA", i, nr); i<-i+1; { "arrowdblright"} draw.vf.cell(tf, fi, "\\dA", i, nr); i<-i+1; { "arrowdbldown"} draw.vf.cell(tf, fi, "\\lz", i, nr); i<-i+1; { "lozenge"} draw.vf.cell(tf, fi, "\\la", i, nr); i<-i+1; { "angleleft"} draw.vf.cell(tf, fi, "\\RG", i, nr); i<-i+1; { "registersans"} draw.vf.cell(tf, fi, "\\CO", i, nr); i<-i+1; { "copyrightsans"} draw.vf.cell(tf, fi, "\\TM", i, nr); i<-i+1; { "trademarksans"} draw.vf.cell(tf, fi, "\\SU", i, nr); i<-i+1; { "summation"} draw.vf.cell(tf, fi, "\\lc", i, nr); i<-i+1; { "bracketlefttp"} draw.vf.cell(tf, fi, "\\lf", i, nr); i<-i+1; { "bracketleftbt"} draw.vf.cell(tf, fi, "\\ra", i, nr); i<-i+1; { "angleright"} draw.vf.cell(tf, fi, "\\is", i, nr); i<-i+1; { "integral"} draw.vf.cell(tf, fi, "\\rc", i, nr); i<-i+1; { "bracketrighttp"} draw.vf.cell(tf, fi, "\\rf", i, nr); i<-i+1; { "bracketrightbt"} draw.vf.cell(tf, fi, "\\~=", i, nr); i<-i+1; { "congruent"} draw.vf.cell(tf, fi, "\\pr", i, nr); i<-i+1; { "minute"} draw.vf.cell(tf, fi, "\\in", i, nr); i<-i+1; { "infinity"} draw.vf.cell(tf, fi, "\\n=", i, nr); i<-i+1; { "notequal"} draw.vf.cell(tf, fi, "\\dl", i, nr); i<-i+1; { "nabla"} nr <- 25 nc <- 4 make.table(nr, nc) i <- 0 draw.title("ISO Latin-1 Escape Sequences", nr, nc) draw.vf.cell(tf, fi, "\\r!", i, nr); i<-i+1; { "exclamdown"} draw.vf.cell(tf, fi, "\\ct", i, nr); i<-i+1; { "cent"} draw.vf.cell(tf, fi, "\\Po", i, nr); i<-i+1; { "sterling"} draw.vf.cell(tf, fi, "\\Ye", i, nr); i<-i+1; { "yen"} draw.vf.cell(tf, fi, "\\bb", i, nr); i<-i+1; { "brokenbar"} draw.vf.cell(tf, fi, "\\sc", i, nr); i<-i+1; { "section"} draw.vf.cell(tf, fi, "\\ad", i, nr); i<-i+1; { "dieresis"} draw.vf.cell(tf, fi, "\\co", i, nr); i<-i+1; { "copyright"} draw.vf.cell(tf, fi, "\\Of", i, nr); i<-i+1; { "ordfeminine"} draw.vf.cell(tf, fi, "\\no", i, nr); i<-i+1; { "logicalnot"} draw.vf.cell(tf, fi, "\\hy", i, nr); i<-i+1; { "hyphen"} draw.vf.cell(tf, fi, "\\rg", i, nr); i<-i+1; { "registered"} draw.vf.cell(tf, fi, "\\a-", i, nr); i<-i+1; { "macron"} draw.vf.cell(tf, fi, "\\de", i, nr); i<-i+1; { "degree"} draw.vf.cell(tf, fi, "\\+-", i, nr); i<-i+1; { "plusminus"} draw.vf.cell(tf, fi, "\\S2", i, nr); i<-i+1; { "twosuperior"} draw.vf.cell(tf, fi, "\\S3", i, nr); i<-i+1; { "threesuperior"} draw.vf.cell(tf, fi, "\\aa", i, nr); i<-i+1; { "acute"} draw.vf.cell(tf, fi, "\\*m", i, nr); i<-i+1; { "mu"} draw.vf.cell(tf, fi, "\\md", i, nr); i<-i+1; { "periodcentered"} draw.vf.cell(tf, fi, "\\S1", i, nr); i<-i+1; { "onesuperior"} draw.vf.cell(tf, fi, "\\Om", i, nr); i<-i+1; { "ordmasculine"} draw.vf.cell(tf, fi, "\\14", i, nr); i<-i+1; { "onequarter"} draw.vf.cell(tf, fi, "\\12", i, nr); i<-i+1; { "onehalf"} draw.vf.cell(tf, fi, "\\34", i, nr); i<-i+1; { "threequarters"} draw.vf.cell(tf, fi, "\\r?", i, nr); i<-i+1; { "questiondown"} draw.vf.cell(tf, fi, "\\`A", i, nr); i<-i+1; { "Agrave"} draw.vf.cell(tf, fi, "\\'A", i, nr); i<-i+1; { "Aacute"} draw.vf.cell(tf, fi, "\\^A", i, nr); i<-i+1; { "Acircumflex"} draw.vf.cell(tf, fi, "\\~A", i, nr); i<-i+1; { "Atilde"} draw.vf.cell(tf, fi, "\\:A", i, nr); i<-i+1; { "Adieresis"} draw.vf.cell(tf, fi, "\\oA", i, nr); i<-i+1; { "Aring"} draw.vf.cell(tf, fi, "\\AE", i, nr); i<-i+1; { "AE"} draw.vf.cell(tf, fi, "\\,C", i, nr); i<-i+1; { "Ccedilla"} draw.vf.cell(tf, fi, "\\`E", i, nr); i<-i+1; { "Egrave"} draw.vf.cell(tf, fi, "\\'E", i, nr); i<-i+1; { "Eacute"} draw.vf.cell(tf, fi, "\\^E", i, nr); i<-i+1; { "Ecircumflex"} draw.vf.cell(tf, fi, "\\:E", i, nr); i<-i+1; { "Edieresis"} draw.vf.cell(tf, fi, "\\`I", i, nr); i<-i+1; { "Igrave"} draw.vf.cell(tf, fi, "\\'I", i, nr); i<-i+1; { "Iacute"} draw.vf.cell(tf, fi, "\\^I", i, nr); i<-i+1; { "Icircumflex"} draw.vf.cell(tf, fi, "\\:I", i, nr); i<-i+1; { "Idieresis"} draw.vf.cell(tf, fi, "\\~N", i, nr); i<-i+1; { "Ntilde"} draw.vf.cell(tf, fi, "\\`O", i, nr); i<-i+1; { "Ograve"} draw.vf.cell(tf, fi, "\\'O", i, nr); i<-i+1; { "Oacute"} draw.vf.cell(tf, fi, "\\^O", i, nr); i<-i+1; { "Ocircumflex"} draw.vf.cell(tf, fi, "\\~O", i, nr); i<-i+1; { "Otilde"} draw.vf.cell(tf, fi, "\\:O", i, nr); i<-i+1; { "Odieresis"} draw.vf.cell(tf, fi, "\\mu", i, nr); i<-i+1; { "multiply"} draw.vf.cell(tf, fi, "\\/O", i, nr); i<-i+1; { "Oslash"} draw.vf.cell(tf, fi, "\\`U", i, nr); i<-i+1; { "Ugrave"} draw.vf.cell(tf, fi, "\\'U", i, nr); i<-i+1; { "Uacute"} draw.vf.cell(tf, fi, "\\^U", i, nr); i<-i+1; { "Ucircumflex"} draw.vf.cell(tf, fi, "\\:U", i, nr); i<-i+1; { "Udieresis"} draw.vf.cell(tf, fi, "\\'Y", i, nr); i<-i+1; { "Yacute"} draw.vf.cell(tf, fi, "\\ss", i, nr); i<-i+1; { "germandbls"} draw.vf.cell(tf, fi, "\\`a", i, nr); i<-i+1; { "agrave"} draw.vf.cell(tf, fi, "\\'a", i, nr); i<-i+1; { "aacute"} draw.vf.cell(tf, fi, "\\^a", i, nr); i<-i+1; { "acircumflex"} draw.vf.cell(tf, fi, "\\~a", i, nr); i<-i+1; { "atilde"} draw.vf.cell(tf, fi, "\\:a", i, nr); i<-i+1; { "adieresis"} draw.vf.cell(tf, fi, "\\oa", i, nr); i<-i+1; { "aring"} draw.vf.cell(tf, fi, "\\ae", i, nr); i<-i+1; { "ae"} draw.vf.cell(tf, fi, "\\,c", i, nr); i<-i+1; { "ccedilla"} draw.vf.cell(tf, fi, "\\`e", i, nr); i<-i+1; { "egrave"} draw.vf.cell(tf, fi, "\\'e", i, nr); i<-i+1; { "eacute"} draw.vf.cell(tf, fi, "\\^e", i, nr); i<-i+1; { "ecircumflex"} draw.vf.cell(tf, fi, "\\:e", i, nr); i<-i+1; { "edieresis"} draw.vf.cell(tf, fi, "\\`i", i, nr); i<-i+1; { "igrave"} draw.vf.cell(tf, fi, "\\'i", i, nr); i<-i+1; { "iacute"} draw.vf.cell(tf, fi, "\\^i", i, nr); i<-i+1; { "icircumflex"} draw.vf.cell(tf, fi, "\\:i", i, nr); i<-i+1; { "idieresis"} draw.vf.cell(tf, fi, "\\~n", i, nr); i<-i+1; { "ntilde"} draw.vf.cell(tf, fi, "\\`o", i, nr); i<-i+1; { "ograve"} draw.vf.cell(tf, fi, "\\'o", i, nr); i<-i+1; { "oacute"} draw.vf.cell(tf, fi, "\\^o", i, nr); i<-i+1; { "ocircumflex"} draw.vf.cell(tf, fi, "\\~o", i, nr); i<-i+1; { "otilde"} draw.vf.cell(tf, fi, "\\:o", i, nr); i<-i+1; { "odieresis"} draw.vf.cell(tf, fi, "\\di", i, nr); i<-i+1; { "divide"} draw.vf.cell(tf, fi, "\\/o", i, nr); i<-i+1; { "oslash"} draw.vf.cell(tf, fi, "\\`u", i, nr); i<-i+1; { "ugrave"} draw.vf.cell(tf, fi, "\\'u", i, nr); i<-i+1; { "uacute"} draw.vf.cell(tf, fi, "\\^u", i, nr); i<-i+1; { "ucircumflex"} draw.vf.cell(tf, fi, "\\:u", i, nr); i<-i+1; { "udieresis"} draw.vf.cell(tf, fi, "\\'y", i, nr); i<-i+1; { "yacute"} draw.vf.cell(tf, fi, "\\:y", i, nr); i<-i+1; { "ydieresis"} nr <- 25 nc <- 2 make.table(nr, nc) i <- 0 draw.title("Special Escape Sequences", nr, nc) draw.vf.cell(tf, fi, "\\AR", i, nr); i<-i+1; { "aries"} draw.vf.cell(tf, fi, "\\TA", i, nr); i<-i+1; { "taurus"} draw.vf.cell(tf, fi, "\\GE", i, nr); i<-i+1; { "gemini"} draw.vf.cell(tf, fi, "\\CA", i, nr); i<-i+1; { "cancer"} draw.vf.cell(tf, fi, "\\LE", i, nr); i<-i+1; { "leo"} draw.vf.cell(tf, fi, "\\VI", i, nr); i<-i+1; { "virgo"} draw.vf.cell(tf, fi, "\\LI", i, nr); i<-i+1; { "libra"} draw.vf.cell(tf, fi, "\\SC", i, nr); i<-i+1; { "scorpio"} draw.vf.cell(tf, fi, "\\SG", i, nr); i<-i+1; { "sagittarius"} draw.vf.cell(tf, fi, "\\CP", i, nr); i<-i+1; { "capricornus"} draw.vf.cell(tf, fi, "\\AQ", i, nr); i<-i+1; { "aquarius"} draw.vf.cell(tf, fi, "\\PI", i, nr); i<-i+1; { "pisces"} draw.vf.cell(tf, fi, "\\~-", i, nr); i<-i+1; { "modifiedcongruent"} draw.vf.cell(tf, fi, "\\hb", i, nr); i<-i+1; { "hbar"} draw.vf.cell(tf, fi, "\\IB", i, nr); i<-i+1; { "interbang"} draw.vf.cell(tf, fi, "\\Lb", i, nr); i<-i+1; { "lambdabar"} draw.vf.cell(tf, fi, "\\UD", i, nr); i<-i+1; { "undefined"} draw.vf.cell(tf, fi, "\\SO", i, nr); i<-i+1; { "sun"} draw.vf.cell(tf, fi, "\\ME", i, nr); i<-i+1; { "mercury"} draw.vf.cell(tf, fi, "\\VE", i, nr); i<-i+1; { "venus"} draw.vf.cell(tf, fi, "\\EA", i, nr); i<-i+1; { "earth"} draw.vf.cell(tf, fi, "\\MA", i, nr); i<-i+1; { "mars"} draw.vf.cell(tf, fi, "\\JU", i, nr); i<-i+1; { "jupiter"} draw.vf.cell(tf, fi, "\\SA", i, nr); i<-i+1; { "saturn"} draw.vf.cell(tf, fi, "\\UR", i, nr); i<-i+1; { "uranus"} draw.vf.cell(tf, fi, "\\NE", i, nr); i<-i+1; { "neptune"} draw.vf.cell(tf, fi, "\\PL", i, nr); i<-i+1; { "pluto"} draw.vf.cell(tf, fi, "\\LU", i, nr); i<-i+1; { "moon"} draw.vf.cell(tf, fi, "\\CT", i, nr); i<-i+1; { "comet"} draw.vf.cell(tf, fi, "\\ST", i, nr); i<-i+1; { "star"} draw.vf.cell(tf, fi, "\\AS", i, nr); i<-i+1; { "ascendingnode"} draw.vf.cell(tf, fi, "\\DE", i, nr); i<-i+1; { "descendingnode"} draw.vf.cell(tf, fi, "\\s-", i, nr); i<-i+1; { "s1"} draw.vf.cell(tf, fi, "\\dg", i, nr); i<-i+1; { "dagger"} draw.vf.cell(tf, fi, "\\dd", i, nr); i<-i+1; { "daggerdbl"} draw.vf.cell(tf, fi, "\\li", i, nr); i<-i+1; { "line integral"} draw.vf.cell(tf, fi, "\\-+", i, nr); i<-i+1; { "minusplus"} draw.vf.cell(tf, fi, "\\||", i, nr); i<-i+1; { "parallel"} draw.vf.cell(tf, fi, "\\rn", i, nr); i<-i+1; { "overscore"} draw.vf.cell(tf, fi, "\\ul", i, nr); i<-i+1; { "underscore"} nr <- 25 nc <- 3 make.table(nr, nc) i <- 0 code <- c(300:307,310:317,320:327,330:337,340:347,350:357,360:367,370:377, 243,263) string <- c( "\300","\301","\302","\303","\304","\305","\306","\307", "\310","\311","\312","\313","\314","\315", "\316","\317","\320","\321","\322","\323", "\324","\325","\326","\327","\330","\331", "\332","\333","\334","\335","\336","\337", "\340","\341","\342","\343","\344","\345","\346","\347", "\350","\351","\352","\353","\354","\355", "\356","\357","\360","\361","\362","\363", "\364","\365","\366","\367","\370","\371", "\372","\373","\374","\375","\376","\377","\243","\263") draw.title("Cyrillic Octal Codes", nr ,nc) for (i in 1:66) draw.vf.cell(tf, "cyrillic", string[i], i-1, nr, raw.string=paste("\\", as.character(code[i]), sep="")) nr <- 25 nc <- 3 make.table(nr, nc) i <- 0 code <- c(252,254,256,262:269,275,278:281,284,745,746,750:768,796:802, 804:807,809,814:828,830:834,840:844) draw.title("Raw Hershey Escape Sequences", nr, nc) for (i in 1:75) draw.vf.cell(tf, fi, paste("\\#H",formatC(code[i],wid=4,flag=0),sep=""), i-1, nr) make.table(nr, nc) i <- 0 code <- c(845:847,850:856,860:874,899:909,2296:2299,2318:2332,2367:2382, 4014,4109) draw.title("More Raw Hershey Escape Sequences", nr, nc) for (i in 1:73) draw.vf.cell(tf, fi, paste("\\#H",formatC(code[i],wid=4,flag=0),sep=""), i-1, nr) par(oldpar)