我使用ggplot在R中创建绘图,使用tikzdevice保存它们,然后使用latex在更大的文档中编译它们。
当我创造一个非常简单的情节。
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字体(特别是轴标签)导出图形?
发布于 2022-08-26 14:37:49
tikz()将输出乳胶码。字体将是在这个latex文档中指定的字体(这很好,因为这会导致一致的外观)。
创建一个具有sans-serif字体的独立图形,然后您可以通过pdflatex test.tikz呈现该字体,可以这样实现:
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命令,以不同的方式设置字体。
https://stackoverflow.com/questions/41442808
复制相似问题