首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R tikzdevice:如何使用无衬线字体

R tikzdevice:如何使用无衬线字体
EN

Stack Overflow用户
提问于 2017-01-03 11:46:13
回答 1查看 467关注 0票数 3

我使用ggplotR中创建绘图,使用tikzdevice保存它们,然后使用latex在更大的文档中编译它们。

当我创造一个非常简单的情节。

代码语言:javascript
复制
require(ggplot2)
require(tikzDevice)

tikz("test.tikz", height = 4, width = 4)
ggplot(data = data.frame(x = c(1:3), y = c(1:3)), aes(x=x, y=y)) +
geom_point() +
theme(text = element_text(family = "sans", face = "bold"))
dev.off()

虽然我可以使用element_text选项在theme中更改字体大小和字体面,但更改字体系列不起作用。也就是说,导出的tikz不包含sans-serif命令。

如何使用sans-serif字体(特别是轴标签)导出图形?

EN

回答 1

Stack Overflow用户

发布于 2022-08-26 14:37:49

tikz()将输出乳胶码。字体将是在这个latex文档中指定的字体(这很好,因为这会导致一致的外观)。

创建一个具有sans-serif字体的独立图形,然后您可以通过pdflatex test.tikz呈现该字体,可以这样实现:

代码语言:javascript
复制
require(ggplot2)
require(tikzDevice)
options(tikzLatexPackages = 
      c(getOption("tikzLatexPackages"), 
        "\\renewcommand{\\familydefault}{\\sfdefault}\n")
      )

tikz("test.tikz", height = 4, width = 4, standAlone = TRUE)
   ggplot(data = data.frame(x = c(1:3), y = c(1:3)), aes(x=x, y=y)) +
   geom_point()
dev.off()

我们通过options传递写入序言的附加文本。我们需要向默认选项中添加新选项,而不是覆盖它们,这就是为什么我们与getOption("tikzLatexPackages")连接的原因。还请注意,您必须在R字符串中转义\

第二个重要部分是设置standAlone = TRUE,如果我们想自己呈现图形,而不是使其成为更大文档的一部分。

如何在胶乳文档中设置字体,我仍然觉得有些神秘。我的解决方案建立在this question之上。但是您可以通过options传递其他的latex命令,以不同的方式设置字体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41442808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档