Hershey
位於 grDevices
包(package)。 說明
如果 family
圖形參數(請參閱 par
)已設置為 Hershey 字體之一(請參閱“詳細信息”),則使用 Hershey 矢量字體來呈現文本。
使用 text
和 contour
函數時,可以通過 vfont
參數選擇 Hershey 字體,該參數是長度為 2 的字符向量(有關有效值,請參閱“詳細信息”)。這允許選擇西裏爾字母,這是無法通過字體係列獲得的。
用法
Hershey
細節
Hershey 字體有兩個優點:
-
矢量字體用一組點來說明每個字符;R通過用直線連接點來渲染角色。對每個角色輪廓的深入了解意味著R可以任意變換字符,這意味著矢量字體對於旋轉文本來說看起來更好。
-
該實現改編自 GNU libplot 庫,該庫提供對非 ASCII 和非英語字體的支持。這意味著可以產生奇怪的繪圖符號和日語字符等。
退稅:
您不能使用數學表達式 (plotmath
)與好時字體。
好時字符被組織成一組字體。通過 par(family)
指定以下字體係列之一並通過 par(font)
指定所需的字體(普通、粗體、斜體、bold-italic)來選擇特定字體。
family | 可用的麵孔 |
"HersheySerif" | 普通、粗體、斜體、bold-italic |
"HersheySans" | 普通、粗體、斜體、bold-italic |
"HersheyScript" | 樸實、大膽 |
"HersheyGothicEnglish" | plain |
"HersheyGothicGerman" | plain |
"HersheyGothicItalian" | plain |
"HersheySymbol" | 普通、粗體、斜體、bold-italic |
"HersheySansSymbol" | 普通、斜體 |
在 text
和 contour
函數的 vfont
規範中,Hershey 字體由字體(例如 serif
或 sans serif
)和字體索引或 ‘style’(例如 plain
或italic
)。 vfont
的第一個元素指定字體,第二個元素指定字體索引。 demo(Hershey)
生成的第一個表顯示了每種不同字體生成的字符a
。
可用的 typeface
和 fontindex
值可用作變量 Hershey
的列表組件。 (typeface, fontindex)
允許的對是:
serif | plain |
serif | italic |
serif | bold |
serif | 加粗斜體 |
serif | cyrillic |
serif | 斜西裏爾字母 |
serif | EUC |
無襯線字體 | plain |
無襯線字體 | italic |
無襯線字體 | bold |
無襯線字體 | 加粗斜體 |
script | plain |
script | italic |
script | bold |
哥特式英語 | plain |
哥特式德語 | plain |
哥特式意大利語 | plain |
襯線符號 | plain |
襯線符號 | italic |
襯線符號 | bold |
襯線符號 | 加粗斜體 |
無襯線符號 | plain |
無襯線符號 | italic |
這些索引可作為 Hershey$allowed
獲得。
- 轉義序列:
-
要繪製的字符串可以包含轉義序列,全部以“開頭”\’。什麽時候R遇到一個‘\’,而不是畫‘\’,它將後續字符視為要繪製內容的編碼說明。
一種有用的轉義序列(在當前上下文中)的形式如下:‘\123’。 ‘後麵的三位數字\' 指定字符的八進製代碼。例如,八進製代碼為
p
是 160 所以字符串"p"
和"\160"
是等價的。當鍵盤上沒有合適的鍵時,這對於生成字符很有用。其他有用的轉義序列都以‘開頭\\’。這些將在下麵說明。請記住,反斜杠必須加倍R字符串,因此需要輸入四反斜杠。
- 符號:
-
通過選擇 HersheySymbol 或 HersheySansSymbol 係列或 Serif Symbol 或 Sans Serif Symbol 字體可以生成一整串希臘符號。為了允許希臘符號嵌入到使用非符號字體的字符串中,有一組形式為“的符號轉義序列”\\ab’。例如,轉義序列‘\\*a’產生一個希臘字母。第二個表在
demo(Hershey)
顯示所有符號轉義序列及其產生的符號。 - ISO Latin-1:
-
進一步的轉義序列形式為‘\\ab’ 用於生成 ISO Latin-1 字符。另一種選擇是使用適當的八進製代碼。 (非 ASCII)ISO Latin-1 字符的範圍為 241...377。例如, '\366’ 產生帶有變音符號的字符 o。第三個表在
demo(Hershey)
顯示所有 ISO Latin-1 轉義序列。這些字符可以直接使用。 (不在 Latin-1 中的字符被點替換。)
缺少幾個字符,c-cedilla 沒有變音符號和“升號 s”(‘U+00DF’,也稱為‘esszett’)呈現為
ss
. - 特殊字符:
-
提供了一組不屬於任何標準字體的字符。這些隻能通過轉義序列訪問。例如, '\\LI' 生成天秤座的星座,並且 '\\JU’產生了木星的天文符號。第四個表在
demo(Hershey)
顯示所有特殊字符轉義序列。 - 西裏爾字母字符:
-
西裏爾字母是根據 K018-R 編碼實現的,並且可以使用 Serif 字體和西裏爾字母(或斜西裏爾字母)字體索引直接在此類語言環境中使用。或者,可以通過小寫字符 300 到 337 範圍內的八進製代碼或大寫字符 340 到 377 範圍內的八進製代碼指定它們。
demo(Hershey)
中的第五個表顯示了可用西裏爾字符的八進製代碼。西裏爾字母必須通過
("serif", fontindex)
對而不是通過字體係列來選擇。 - 日語字符:
-
83 個平假名、86 個片假名和 603 個漢字字符是根據 EUC-JP(擴展 Unix 代碼)編碼實現的。每個字符都由唯一的十六進製代碼標識。平假名字符的範圍為 0x2421 到 0x2473,片假名字符的範圍為 0x2521 到 0x2576,而漢字(分散)的範圍為 0x3021 到 0x6d55。
當使用 Serif 字體和 EUC 字體索引時,這些字符可以由一對八進製代碼。給定十六進製代碼(例如,0x2421),取前兩位數字並添加 0x80,並對後兩位數字執行相同的操作(例如,0x21 和 0x24 變為 0xa4 和 0xa1),然後將兩者都轉換為八進製(例如,0xa4 和 0xa1)變為 244 和 241)。例如,第一個平假名字符是由‘\244\241’。
也可以直接使用十六進製代碼。通過指定形式‘的轉義序列,這適用於所有非 EUC 字體\\#J1234’。例如,第一個平假名字符是由‘\\#J2421’。
漢字字符可以通過第三種方式指定,即使用所謂的"Nelson Index",通過指定形式的轉義序列‘\\#N1234’。例如,‘one’ 的(過時的)漢字是由‘生成的\\#N0001’。
demo(Japanese)
顯示可用的日語字符。 - 原始好時字形:
-
Hershey 字體中的所有字符都存儲在一個大數組中。某些字符在任何 Hershey 字體中都無法訪問。這些字符隻能通過以下形式的轉義序列訪問:\\#H1234’。例如,fleur-de-lys 是由‘\\#H0746’。第六表和第七表
demo(Hershey)
顯示所有可用的原始字形。
例子
Hershey
## for tables of examples, see demo(Hershey)
參考
https://www.gnu.org/software/plotutils/plotutils.html.
也可以看看
demo(Hershey)
、par
、text
、contour
。
Japanese
表示 Hershey 字體中的日語字符。
相關用法
- 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 plotmath R 中的數學注釋
- R dev.capture 將設備輸出捕獲為光柵圖像
- R dev.size 查找設備表麵的尺寸
- R pdf.options 設置/查看 pdf 參數默認值的輔助函數
- R densCols 平滑密度圖的顏色
- R windows Windows 圖形設備
- R rgb RGB 顏色規格
- R check.options 設置帶有一致性檢查的選項
- R msgWindow 操縱窗口
- R dev.flush 保持或刷新屏幕圖形設備上的輸出
- R n2mfrow 根據繪圖數計算默認“mfrow”
- R dev 控製多個設備
- R hsv HSV 顏色規格
- R postscript PostScript 圖形
- R pdf PDF圖形設備
- R xyz.coords 提取繪圖結構
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Hershey Vector Fonts in R。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。