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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。