我正在准备一个使用R-Markdown + Beamer的演示文稿,并希望每个绘图注释都使用serif字体排版。
下面是一个最小的示例(为了运行这段代码,应该将代码粘贴到一个.Rmd文件中并使用compiled进行编译):
---
title: An example
subtitle: which should work
output:
beamer_presentation:
theme: metropolis
header-includes:
\usefonttheme[onlymath]{serif}
---
## A slide
```{r test, echo=FALSE, fig.height=3.2, fig.width=4, fig.align='center', dev='tikz', external=FALSE}plot( 2pi(0:19)/20,sin( 2pi(0:19)/20 ),xlab = '$x$',ylab='$\sin(2\pi x)$',pch=21,bg=rgb(0,.4,.7,.5),main=‘使用\LaTeX的绘图’,font.main=1)
在生成的绘图中,我希望轴的编号、绘图标题等中的字体注释是用serif字体排版的(与数学注释中出现的字体相同),但实际输出是用sans-serif字体排版。文档的其余部分仍然使用sans-serif字体,这一点很重要。
发布于 2019-06-02 01:25:07
这是因为绘图是在单独的tex文件中编译的。要更改有关绘图的任何内容,应更改tikzLatexPackages选项。默认值为
options(
tikzLatexPackages = c(
"\\usepackage{tikz}",
"\\usepackage[active,tightpage]{preview}",
"\\PreviewEnvironment{pgfpicture}",
"\\setlength\\PreviewBorder{0pt}")
),
tikzXelatexPackages = c(
"\\usepackage{tikz}\n",
"\\usepackage[active,tightpage,xetex]{preview}\n",
"\\usepackage{fontspec,xunicode}\n",
"\\PreviewEnvironment{pgfpicture}\n",
"\\setlength\\PreviewBorder{0pt}\n"
),
tikzLualatexPackages = c(
"\\usepackage{tikz}\n",
"\\usepackage[active,tightpage,psfixbb]{preview}\n",
"\\usepackage{fontspec,xunicode}\n",
"\\PreviewEnvironment{pgfpicture}\n",
"\\setlength\\PreviewBorder{0pt}\n")
)因此,将\usefonttheme[onlymath]{serif}添加到第一个选项应该可以做到这一点。
你可以在tikzDevice手册的第6页找到更多关于这方面的信息。
注意,也可以包含tex代码,而不是预编译的代码。虽然我在过去对这种方法有一些问题。
https://stackoverflow.com/questions/56407226
复制相似问题