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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。