7

这是一个简单的问题。

我正在尝试用 R 中的小写字母写一个图例。

我可以使用 tikzDevice 编写绘图并在 LaTex 中手动将绘图更改为小型大写字母,但我想知道 R 本身是否有可能

谢谢。

这是我目前使用的 R 代码:

legend("bottomright", inset=.05, c(expression(Delta*ZRT1), expression(Delta*ZRT2)), lty=1:2, pch=1:2)

这是我试图进入 R 传奇的 LaTex 表达式:

\Delta Z\textsc{rt\oldstylenums{1}}

4

2 回答 2

5

Unicode 标准确实在 IPA 扩展中定义了许多“小写”字符。例如,使用这个 Smallcaps 生成器:http: //fsymbols.com/generators/smallcaps/

plot(1L:10, main="Aʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ")
legend("bottomright", expression(\Delta Zʀᴛ1")

在此处输入图像描述

从 Unicode 5.1 开始,唯一允许以小写 Unicode 字符表示完整拉丁字母的字符是 Q 和 X 的小写版本。另请参见:http ://en.wikipedia.org/wiki/Small_caps#Unicode

于 2011-06-16T11:22:20.490 回答
1

Smallcaps Generator生成的小型大写字母不适用于所有字体。例如,Linux Libertine系列(Libertine、Biolinum)在 Unicode Private Use Area (E000-F8FF) 中有它们的小型大写字母和旧式数字,如下所示(最后一页)

下面的示例图使用从小型大写字母生成器组装的轴标签,以及从私人使用区域组装的small_capssmall_nums字符串。第一个情节使用 Times New Roman,它适用于生成的小型大写字母,但在私人使用区域中没有相应的字形。第二个图使用 Linux Libertine O,它没有来自 IPA 扩展的所有 Unicode 字符。

library(ggplot2)

x <- 1L:10
y <- 1L:10
df <- data.frame(x,y)

# assemble strings from Libertine's private use area.
small_caps <- "S\UE05D\UE051\UE05C\UE05C C\UE051\UE060\UE063"
small_nums <- "\UE020\UE021\UE022\UE023\UE024\UE025\UE026\UE027\UE028\UE029"

font <- "Times New Roman"
ggplot(df) +
  geom_point(aes(x = x, y = y)) +
  labs(x = paste("Sᴍᴀʟʟ Cᴀᴘs /", small_caps),
       y = paste("Oʟᴅ Sᴛʏʟᴇ", small_nums)) +
  theme(text = element_text(family = font)) +
  annotate("text", x = 2, y = 9, label = font)

font <- "Linux Libertine O"
ggplot(df) +
  geom_point(aes(x = x, y = y)) +
  labs(x = paste("Sᴍᴀʟʟ Cᴀᴘs /", small_caps),
       y = paste("Oʟᴅ Sᴛʏʟᴇ", small_nums)) +
  theme(text = element_text(family = font)) +
  annotate("text", x = 2, y = 9, label = font)

reprex 包(v0.2.1)于 2018 年 12 月 8 日创建

于 2018-12-08T15:06:10.797 回答