postscript
位于 grDevices
包(package)。 说明
postscript
启动图形设备驱动程序以生成PostScript 图形。
用法
postscript(file = if(onefile) "Rplots.ps" else "Rplot%03d.ps",
onefile, family, title, fonts, encoding, bg, fg,
width, height, horizontal, pointsize,
paper, pagecentre, print.it, command,
colormodel, useKerning, fillOddEven)
参数
file |
给出文件路径的字符串。如果是 要与 波形符扩展(参见 |
onefile |
逻辑:如果为 true(默认值),则允许一个文件中包含多个数字。如果为 false,则生成包含每页页码的文件名,并使用 EPSF 标头且不使用 |
family |
要使用的初始字体系列,通常作为字符串。请参阅“家庭”部分。默认为 |
title |
要作为 |
fonts |
指定附加的字符向量R字体系列的图形字体系列名称,其声明将包含在 PostScript 文件中,并且可与设备一起使用。请参阅下面的“家庭”。默认为 |
encoding |
编码文件的名称。默认为
该文件在‘编码’ 包的目录 |
bg |
要使用的初始背景颜色。如果 |
fg |
要使用的初始前景色。默认为 |
width , height |
图形区域的宽度和高度(以英寸为单位)。默认为 如果 |
horizontal |
打印图像的方向是合乎逻辑的。默认为 true,即宽度小于高度的纸张尺寸的横向。 |
pointsize |
要使用的默认磅值。严格来说,以 bp 为单位,即 1/72 英寸,但大约以磅为单位。默认为 |
paper |
打印机中纸张的尺寸。选项是 |
pagecentre |
逻辑:设备区域应该位于页面中央吗?默认为 true。 |
print.it |
逻辑:设备关闭时是否应该打印文件? (这仅适用于 |
command |
用于‘printing’的命令。默认为 |
colormodel |
说明颜色模型的字符串:当前允许的值为 |
useKerning |
合乎逻辑的。设置文本和计算字符串宽度时是否应该包含字距调整?默认为 |
fillOddEven |
逻辑控制多边形填充模式:有关详细信息,请参阅 |
细节
除 file
之外的所有参数均默认为 ps.options()
给出的值。最终默认值在参数部分引用。
postscript
打开文件file
,绘制任何请求的图形所需的PostScript 命令将写入该文件。然后可以在合适的设备上打印该文件以获得硬拷贝。
file
参数被解释为 C 整数格式,如所使用的sprintf
,带有整数参数的页码。默认给出文件‘Rplot001.ps”,...,“Rplot999.ps', 'Rplot1000.ps’,……
为单曲制作的后记R情节是 EPS (封装PostScript) 兼容,并且可以包含到其他文档中,例如,包含到 LaTeX 中,使用\includegraphics{<filename>}
。为了以这种方式使用,您可能需要使用setEPS()
将默认值设置为horizontal = FALSE, onefile = FALSE, paper =
"special"
。请注意,边界框用于设备区域:如果您发现绘图区域周围的空白过多,请通过以下方式减少图形区域的边距par(mar = )
.
使用的大部分 PostScript 序言取自R字符向量.ps.prolog
。这在输出中进行了标记,并且可以通过更改该向量来更改。 (这仅建议PostScript专家:标准版本位于namespace:grDevices
.)
PostScript 器件有一个默认系列,用户可以通过以下方式设置family
。如果在绘制到 PostScript 设备时要使用其他字体系列,则必须在创建设备时声明这些字体系列fonts
;该参数的字体系列名称是R图形字体系列名称(请参阅文档postscriptFonts
)。
由 par(lwd = )
控制的线宽为 1/96 英寸的倍数:允许小于 1 的倍数。 pch = "."
和 cex = 1
对应于边长为 1/72 英寸的正方形,这也是 "cra"
等图形参数假定的 ‘pixel’ 尺寸。
当背景颜色完全透明(初始默认值)时,生成的PostScript不会绘制背景。几乎所有PostScript观看者都会使用白色画布,因此视觉效果就像背景是白色的一样。但在彩色纸上打印时,情况并非如此。
家庭
字体系列是涵盖由图形参数 par(font = )
或网格参数 gpar(fontface = )
选择的五个字体(通常为普通、粗体、斜体、bold-italic 和符号)的字体集合。字体系列可以通过 family
参数指定为设备的初始/默认字体系列,也可以在设备打开后通过图形参数 par(family = )
或网格参数 gpar(fontfamily = )
指定。打开设备时,必须在 fonts
参数中指定除初始系列之外将使用的系列。
字体系列是通过调用 postscriptFonts
声明的。
参数 family
指定要使用的初始/默认字体系列。在正常使用中,它是 "AvantGarde"
、 "Bookman"
、 "Courier"
、 "Helvetica"
、 "Helvetica-Narrow"
、 "NewCenturySchoolbook"
、 "Palatino"
或 "Times"
之一,并指标准 Adobe PostScript字体系列所有常见 PostScript 设备中包含(或克隆)的名称。
许多 PostScript 模拟器(包括基于 ghostscript
的模拟器)使用这些字体的 URW 等效项,即 "URWGothic"
、 "URWBookman"
、 "NimbusMon"
、 "NimbusSan"
、 "NimbusSanCond"
、 "CenturySch"
,"URWPalladio"
和 "NimbusRom"
。如果您的 PostScript 设备使用 URW 字体,您将通过使用这些名称来访问更多字符和更合适的指标。为了使这些更容易记住,还支持"URWHelvetica" == "NimbusSan"
和"URWTimes" == "NimbusRom"
。
另一种类型的家族使用东亚语言的 CID-keyed 字体 - 请参阅 postscriptFonts
。
family
参数通常是命名字体系列的字符串,但是由Type1Font
和CIDFont
也被接受。为了与早期版本兼容R,初始族也可以指定为四个或五个 afm 文件的向量。
注意R不嵌入 PostScript 输出中使用的字体:请参阅embedFonts
寻求实用程序来帮助做到这一点。
查看器和嵌入应用程序经常用字体替换系列中指定的字体,并且替换的字体规格通常会略有不同。 useKerning = TRUE
使用目标系列的字距调整来分隔字符串中的字母:这可能看起来比 useKerning = FALSE
更难看。
编码
编码说明了使用哪些字形来显示字符代码(范围为 0-255)。最常见的R使用 ISOLatin1 编码,示例为text
都在该编码中。但是,运行的机器上使用的编码R可能会有所不同,并且通过使用encoding
参数字形可以与使用的编码相匹配。这对于欧洲和西里尔语言来说已经足够了,但对于东亚语言来说就不够了。对于后者,使用复合 CID 字体。这些字体对于其他语言很有用:例如它们可能包含希腊字形。 (本节的其余部分仅适用于不使用 CID 字体的情况。)
如果仅使用 ASCII 字符(代码 32-126)作为所有编码(除了"TeXtext"
)同意该范围。有些编码也是 ISOLatin1 的超集。但是,如果重音字符和特殊字符未按您的预期显示,您可能需要更改编码。提供了一些其他编码R:"WinAnsi.enc"
和"MacRoman.enc"
对应于 Windows 和经典 Mac OS 上通常使用的编码(至少 Adobe),并且"PDFDoc.enc"
是 Unicode 编码(PDF 标准)的前 256 个字符。还有编码"ISOLatin2.enc"
,"CP1250.enc"
,"ISOLatin7.enc"
(ISO 8859-13),"CP1257.enc"
, 和"ISOLatin9.enc"
(ISO 8859-15),"Cyrillic.enc"
(ISO 8859-5),"KOI8-R.enc"
,"KOI8-U.enc"
,"CP1251.enc"
,"Greek.enc"
(ISO 8859-7)和"CP1253.enc"
。请注意,这些编码中的许多字形不属于与标准系列相对应的字体。 (除了 Courier、Helvetica 和 Times 之外,Adobe 的字体只涵盖 Latin-1,而 URW 的字体还涵盖 Latin-2、Latin-7、Latin-9 和西里尔字母,但不包含希腊语。Adobe 的例外情况涵盖拉丁字符套,但不是欧元。)
如果您指定编码,您有责任确保 PostScript 字体包含所使用的字形。这里的一个问题是欧元符号,它位于 WinAnsi 和 MacRoman 编码中,但很可能不在 PostScript 字体中。 (它位于 URW 变体中;它不在提供的 Adobe Font Metric 文件中。)
有一个例外。字符 45 ( "-"
) 始终设置为负号(其在 Adobe ISOLatin1 中的值),即使它在其他编码中是连字符。在所有拉丁语编码、西里尔语和希腊语中,连字符可用作字符 173(八进制 0255)。 (这可以在 UTF-8 语言环境中输入为 "\uad"
。)字形 39 和 96 的帐户存在一些差异:提供的编码(CP1250 和 CP1251 除外)将它们视为 ‘quoteright’ 和 ‘quoteleft’(而不是分别高于 ‘quotesingle’/‘acute’ 和 ‘grave’),如 Adobe 文档中所示。
TeX字体
TeX 传统上使用 Computer Modern 等字体,这些字体的编码方式相当不同,采用 7 位编码。此编码可以由 encoding = "TeXtext.enc"
指定,注意 ASCII 字符 < > \ _ { }
在这些字体中不可用。
提供的系列 "ComputerModern"
和 "ComputerModernItalic"
使用此编码,并且仅支持 postscript
(而不是 pdf
)。它们旨在与 TeX CM 字体的 Type 1 版本一起使用。通常可以将此类输出包含在 TeX 或 LaTeX 中,前提是它是使用 dvips -Ppfb -j0
或系统上的等效项进行处理的。 (-j0
关闭字体子集设置。)使用family =
"ComputerModern"
时,使用的斜体/bold-italic 字体是倾斜字体(cmsl10
和cmbxsl10
)。要改用文本斜体字体,请设置 family = "ComputerModernItalic"
。
这些系列使用 TeX 数学斜体和符号字体来全面但不完整地覆盖其他系列中 Adobe 符号字体所涵盖的字形。这是通过 special-casing 从提供的‘生成的 postscript 代码来实现的CM_symbol_10.afm’。
颜色型号
默认颜色模型 ("srgb"
) 是 sRGB。
替代方案 "srgb+gray"
使用 sRGB 作为颜色,但使用表示为灰度的纯灰色(包括黑色和白色)(这会导致文件更小,并且对于某些打印机驱动程序来说可能是有利的)。相反,它的文件在某些查看器上渲染速度可能会慢得多,并且涉及灰色或白色的颜色渐变可能会出现明显的不连续性。
其他可能性是仅使用灰度(并将其他颜色转换为亮度)的 "gray"
(或 "grey"
)和 "cmyk"
。使用从 sRGB 到 CMYK 的最简单的转换 (https://en.wikipedia.org/wiki/CMYK_color_model#Mapping_RGB_to_CMYK),并且光栅图像以 RGB 输出。
为向后兼容提供的颜色模型是"rgb"
(即RGB+灰度)和"rgb-nogray"
它使用未校准的 RGB(如R2.13.0 之前)。这些会导致文件稍小,渲染速度可能会更快,但确实依赖于正确校准的查看器。
打印
可以通过 postscript
以两种方式打印后记图。
-
设置
print.it = TRUE
会导致在设备关闭时使用参数"file"
调用参数command
中给出的命令。请注意,绘图文件不会被删除,除非command
安排删除它。 -
file = ""
或者file = "|cmd"
可用于使用管道进行打印。打开命令失败可能会报告给终端,但不会报告给终端R,在这种情况下通过关闭设备dev.off
立即地。
在 Windows 上默认"printcmd"
为空,如果print.it = TRUE
用来。将 PostScript 文件假脱机到打印机的合适命令可以在‘RedMon’ 套房可从http://pages.cs.wisc.edu/~ghost/index.html。该命令将在最小化窗口中运行。 GSView 4.x 提供‘gsprint.exe’这可能更方便(它需要 Ghostscript 版本 6.50 或更高版本)。
惯例
本节介绍“R Internals”手册中规定的图形设备约定的实现。
-
默认设备尺寸为 7 平方英寸。
-
字体大小以大点为单位。
-
默认字体系列是 Helvetica。
-
线宽为 1/96 英寸的倍数,最小强制为 0.01。
-
任何半径的圆都是允许的。
-
颜色默认指定为 sRGB。
当线宽非常小时,线型可能会被迫为实线。
光栅图像目前仅限于不透明颜色。
注意
如果您发现 Postscript 输出有问题,请记住,问题更有可能出现在您的查看器中,而不是出现在R。如果可能的话,尝试使用其他查看器。查看器出现错误的症状是图像图上出现明显的网格(如果可以的话,请关闭查看器中的图形抗锯齿函数)以及文本中丢失或不正确的字形(查看器默默地进行字体替换)。
不幸的是,大多数 Linux 和 macOS 系统上的默认查看器都存在这些问题,并且没有明显的方法来关闭图形抗锯齿。
例子
require(graphics)
## Not run:
# open the file "foo.ps" for graphics output
postscript("foo.ps")
# produce the desired graph(s)
dev.off() # turn off the postscript device
## On Unix-alikes only:
postscript("|lp -dlw")
# produce the desired graph(s)
dev.off() # plot will appear on printer
## On Windows:
options(printcmd = 'redpr -P"\\printhost\lw"')
postscript(file = tempfile("Rps."), print.it = TRUE)
# produce the desired graph(s)
dev.off() # send plot file to the printer
## alternative using GSView 4.x :
options(printcmd = '/GhostGum/gsview/gsprint -query')
# for URW PostScript devices
postscript("foo.ps", family = "NimbusSan")
## for inclusion in Computer Modern TeX documents, perhaps
postscript("cm_test.eps", width = 4.0, height = 3.0,
horizontal = FALSE, onefile = FALSE, paper = "special",
family = "ComputerModern", encoding = "TeXtext.enc")
## The resultant postscript file can be used by dvips -Ppfb -j0.
## To test out encodings, you can use
TestChars <- function(encoding = "ISOLatin1", family = "URWHelvetica")
{
postscript(encoding = encoding, family = family)
par(pty = "s")
plot(c(-1,16), c(-1,16), type = "n", xlab = "", ylab = "",
xaxs = "i", yaxs = "i")
title(paste("Centred chars in encoding", encoding))
grid(17, 17, lty = 1)
for(i in c(32:255)) {
x <- i %% 16
y <- i %/% 16
points(x, y, pch = i)
}
dev.off()
}
## there will be many warnings. We use URW to get a complete enough
## set of font metrics.
TestChars()
TestChars("ISOLatin2")
TestChars("WinAnsi")
## End(Not run)
作者
Support for Computer Modern fonts is based on a contribution by Brian D'Urso durso@hussle.harvard.edu.
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
postscriptFonts
、 Devices
和 check.options
均从 ps.options
和 postscript
调用。
cairo_ps
用于另一个可以生成 PostScript 的设备。
有关字体系列和编码,尤其是处理非 Latin-1 编码中的文本和嵌入字体的更多详细信息,请参阅
保罗·默雷尔和布莱恩·里普利 (2006)。 “PostScript 和 PDF 图形中的非标准字体。” R新闻,6(2),41-47。https://www.r-project.org/doc/Rnews/Rnews_2006-2.pdf.
相关用法
- R postscriptFonts PostScript 和 PDF 字体系列
- R plotmath R 中的数学注释
- R pdf.options 设置/查看 pdf 参数默认值的辅助函数
- R pdf PDF图形设备
- R pretty.Date 日期时间类的漂亮断点
- R pictex PicTeX 图形驱动程序
- R ps.options 用于设置/查看 postscript 参数默认值的辅助函数
- R palette 设置或查看图形调色板
- R png BMP、JPEG、PNG 和 TIFF 图形设备
- R axisTicks 计算漂亮的轴刻度
- R hcl HCL 颜色规格
- R quartzFonts 石英字体
- R as.graphicsAnnot 强制图形注释对象
- R xyTable (x,y) 点的重数,例如,对于向日葵图
- R dev.interactive 当前图形设备是否具有交互性?
- R chull 计算一组点的凸包
- R convertColor 在色彩空间之间转换
- R X11Fonts X11 字体
- R dev.capture 将设备输出捕获为光栅图像
- R dev.size 查找设备表面的尺寸
- R densCols 平滑密度图的颜色
- R windows Windows 图形设备
- R rgb RGB 颜色规格
- R check.options 设置带有一致性检查的选项
- R msgWindow 操纵窗口
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 PostScript Graphics。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。