R tikzdevice : How to use sans serif font

标签 r fonts latex tikz tikzdevice

我在 R 中使用 ggplot 创建绘图,使用 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()

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

如何使用无衬线字体导出图形(尤其是轴标签)?

最佳答案

tikz() 将输出 latex 代码。字体将是此 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 如果我们想单独渲染图形而不是让它成为更大文档的一部分。

如何在latex文档中设置字体我还是觉得有些玄乎。我的解决方案基于 this question .但是您可以通过 options 传递其他 latex 命令,以不同的方式设置字体。

关于R tikzdevice : How to use sans serif font,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41442808/

相关文章:

r - 如何从R中的两列同时采样?

r - 折线图上的程序标签以避免线条 ggplot2

html - Hot to Code Custom Font in HTML/CSS 以在其他计算机上正确显示

r - 选择第2列到R中的最后一列

r - 为什么ggplot的geom_bar中需要stat = "identity"?

jquery - Amcharts继承字体或设置所有元素字体

css - 浏览器@font-face TTF 支持

python - 在 LaTeX 中将 HTML img 标签转换为带有标题的图形

latex - 如何在 pyqtgraph 中写\latex 字符?

python - 如何使用 nbconvert 从 ipynb 生成的 pdf 中删除日期