Сюжетная аннотация в R-Markdown + tikzDevice - PullRequest
0 голосов
/ 01 июня 2019

Я готовлю презентацию, используя R-Markdown + Beamer, и хочу, чтобы каждая аннотация графика набиралась шрифтом с засечками.

Вот минимальный пример (чтобы запустить это, код должен бытьвставляется в файл .Rmd и компилируется с помощью knitr):

---
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(2*pi*(0:19)/20, sin( 2*pi*(0:19)/20 ), xlab = '$x$', ylab='$\\sin(2\\pi x)$', pch=21, bg=rgb(0,.4,.7,.5), main='A plot using \\LaTeX', font.main=1)
```

В сгенерированном графике я ожидаю, что шрифтовые аннотации в нумерации осей, заголовке графика и т. д. будут набраны шрифтом с засечками (те же шрифты, которые появляются в математических аннотациях), но фактический результат - это набор текста шрифтом без засечек.Важно, чтобы остальная часть документа по-прежнему набиралась шрифтами без засечек.

1 Ответ

2 голосов
/ 01 июня 2019

Это связано с тем, что графики составляются в отдельных текстовых файлах. Чтобы изменить что-либо о графиках, вы должны изменить параметр 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} к первому варианту должно сделать это.

Более подробную информацию вы можете найти на странице 6 руководства tikzDevice .

Обратите внимание, что также можно включить код tex вместо предварительно скомпилированного кода. Хотя у меня были некоторые проблемы с этим подходом в прошлом.

...