postscriptFonts {grDevices} | R Documentation |
These functions handle the translation of a R graphics
font family name to a PostScript or PDF font description, used by the
postscript
or pdf
graphics devices.
postscriptFonts(...) pdfFonts(...)
... |
either character strings naming mappings to display, or named arguments specifying mappings to add or change. |
If these functions are called with no argument they list all the existing mappings, whereas if they are called with named arguments they add (or change) mappings.
A PostScript or PDF device is created with a default font family (see the
documentation for postscript
), but it is also possible
to specify a font family when drawing to the device (for example, see
the documentation for "family"
in par
and for
"fontfamily"
in gpar
in the grid package).
The font family sent to the device is a simple string name, which must be
mapped to a set of PostScript fonts. Separate lists of mappings for
postscript
and pdf
devices are maintained for the
current R session and can be added to by the user.
The postscriptFonts
and pdfFonts
functions can be used
to list existing mappings and to define new mappings. The
Type1Font
and CIDFont
functions can be
used to create new mappings, when the xxxFonts
function is used
to add them to the database. See the examples.
Default mappings are provided for four device-independent family
names: "sans"
for a sans-serif font, "serif"
for a serif
font, "mono"
for a monospaced font, and "symbol"
for a
symbol font.
Mappings for a number of standard Adobe fonts (and URW equivalents)
are also provided: "AvantGarde"
,
"Bookman"
, "Courier"
, "Helvetica"
,
"Helvetica-Narrow"
, "NewCenturySchoolbook"
,
"Palatino"
and "Times"
;
"URWGothic"
, "URWBookman"
, "NimbusMon"
,
"NimbusSan"
(synonym "URWHelvetica"
),
"NimbusSanCond"
, "CenturySch"
, "URWPalladio"
and
"NimbusRom"
(synonym "URWTimes"
).
There are also mappings for "ComputerModern"
and
"ComputerModernItalic"
.
Finally, there are some default mappings for East Asian locales described in a separate section.
The specification of font metrics and encodings is described in the help
for the postscript
function.
The fonts are not embedded in the resulting PostScript or PDF file, so
software including the PostScript or PDF plot file should either embed
the font outlines (usually from ‘.pfb’ or ‘.pfa’ files) or
use DSC comments to instruct the print spooler or including
application to do so (see also embedFonts
).
A font family has both an R-level name, the argument name used when
postscriptFonts
was called, and an internal name, the
family
component. These two names are the same for all the
pre-defined font families.
Once a font family is in use it cannot be changed. ‘In use’
means that it has been specified via a family
or
fonts
argument to an invocation of the same graphics device
already in the R session. (For these purposes xfig
counts the
same as postscript
but only uses some of the predefined mappings.)
A list of one or more font mappings.
There are some default mappings for East Asian locales:
"Japan1"
, "Japan1HeiMin"
, "Japan1GothicBBB"
,
and "Japan1Ryumin"
for Japanese;
"Korea1"
and "Korea1deb"
for Korean;
"GB1"
(Simplified Chinese) for mainland China and Singapore;
"CNS1"
(Traditional Chinese) for Hong Kong and Taiwan.
These refer to the following fonts
Japan1 (PS) | HeiseiKakuGo-W5 |
Linotype Japanese printer font | |
Japan1 (PDF) | KozMinPro-Regular-Acro |
from Adobe Reader 7.0 Japanese Font Pack | |
Japan1HeiMin (PS) | HeiseiMin-W3 |
Linotype Japanese printer font | |
Japan1HeiMin (PDF) | HeiseiMin-W3-Acro |
from Adobe Reader 7.0 Japanese Font Pack | |
Japan1GothicBBB | GothicBBB-Medium |
Japanese-market PostScript printer font | |
Japan1Ryumin | Ryumin-Light |
Japanese-market PostScript printer font | |
Korea1 (PS) | Baekmuk-Batang |
TrueType font found on some Linux systems | |
Korea1 (PDF) | HYSMyeongJoStd-Medium-Acro |
from Adobe Reader 7.0 Korean Font Pack | |
Korea1deb (PS) | Batang-Regular |
another name for Baekmuk-Batang | |
Korea1deb (PDF) | HYGothic-Medium-Acro |
from Adobe Reader 4.0 Korean Font Pack | |
GB1 (PS) | BousungEG-Light-GB |
TrueType font found on some Linux systems | |
GB1 (PDF) | STSong-Light-Acro |
from Adobe Reader 7.0 Simplified Chinese Font Pack | |
CNS1 (PS) | MOESung-Regular |
Ken Lunde's CJKV resources | |
CNS1 (PDF) | MSungStd-Light-Acro |
from Adobe Reader 7.0 Traditional Chinese Font Pack |
Baekmuk-Batang
can be found at ftp://ftp.mizi.com/pub/baekmuk/.
BousungEG-Light-GB
can be found at
ftp://ftp.gnu.org/pub/non-gnu/chinese-fonts-truetype/.
Ken Lunde's CJKV resources are at
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/samples/.
These will need to be installed or otherwise made available to the
postscript/PDF interpreter such as ghostscript (and not all
interpreters can handle TrueType fonts).
You may well find that your postscript/PDF interpreters has been set
up to provide aliases for many of these fonts. For example,
ghostscript on Windows can optionally be installed to map common CJK
fonts names to Windows TrueType fonts. (You may want to add the
-Acro
versions as well.)
Adding a mapping for a CID-keyed font is for gurus only.
Support for Computer Modern fonts is based on a contribution by Brian D'Urso durso@hussle.harvard.edu.
postscript
and pdf
; Type1Font
and CIDFont
for specifying new font mappings.
postscriptFonts() ## This duplicates "ComputerModernItalic". CMitalic <- Type1Font("ComputerModern2", c("CM_regular_10.afm", "CM_boldx_10.afm", "cmti10.afm", "cmbxti10.afm", "CM_symbol_10.afm"), encoding = "TeXtext.enc") postscriptFonts(CMitalic = CMitalic) ## A CID font for Japanese using a different CMap and ## corresponding cmapEncoding. `Jp_UCS-2` <- CIDFont("TestUCS2", c("Adobe-Japan1-UniJIS-UCS2-H.afm", "Adobe-Japan1-UniJIS-UCS2-H.afm", "Adobe-Japan1-UniJIS-UCS2-H.afm", "Adobe-Japan1-UniJIS-UCS2-H.afm"), "UniJIS-UCS2-H", "UCS-2") pdfFonts(`Jp_UCS-2` = `Jp_UCS-2`) names(pdfFonts())