tikzDevice не использует преамбулу LaTeX при использовании в документе RMarkdown - PullRequest
0 голосов
/ 16 июня 2019

Я хочу использовать tikz в качестве графического устройства в RMarkdown и хочу, чтобы он включал сгенерированную преамбулу LaTeX.

Раньше я уже использовал tikzDevice в документах knitr.Текстовый файл, сгенерированный tikzDevice, обычно включал всю преамбулу из моего документа knitr / LaTeX.Когда я использую его с RMarkdown, я получаю стандартную преамбулу (см. Ниже).

Файл RMarkdown:

---
title: "Title"
author: "Me"
fontsize: 12pt
documentclass: scrartcl
output:
  bookdown::pdf_document2:
    toc: true
    fig_caption: true
    keep_tex: true
---

# Introduction

```{r plot, dev="tikz"}
plot(rnorm(50))
``

Начало сгенерированного текстового файла (plot-1.tex):

% Created by tikzDevice version 0.12.3 on 2019-06-16 16:09:40
% !TEX encoding = UTF-8 Unicode
\documentclass[10pt]{article}

Желаемое / ожидаемое начало сюжета-1.tex:

% Created by tikzDevice version 0.12.3 on 2019-06-16 16:09:40
% !TEX encoding = UTF-8 Unicode
\documentclass[12pt]{scrartcl}

Ответы [ 2 ]

0 голосов
/ 16 июня 2019

Думаю, я понял:

Моя проблема заключалась в том, что при использовании RMarkdown параметры tikzDocumentDeclaration, tikzLatexPackages ... (почти все параметры для tikzDevice) не были установлены автоматически.Когда вы используете knitr, параметры tikzDevice настраиваются в процессе разделения разметки и фрагментов кода из исходного файла.С RMarkdown нет кода LaTeX для извлечения и использования с tikz, потому что pandoc генерирует его после визуализации графики.Таким образом, можно либо определить параметры tikz ... вручную, либо использовать параметр чанка external=FALSE, например user2554330 .

Пример minimal_knitr.Rnw:

\documentclass[fontsize=12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}

<<r plot, dev='tikz', echo=FALSE>>=
plot(rnorm(50))
@

\end{document}
0 голосов
/ 16 июня 2019

Я не уверен, что вы действительно хотите то, о чем просите. Рисунок будет выполнен в виде отдельного документа, не содержащего ничего, кроме рисунка, который будет представлен в формате PDF. Различия между scrartcl и article не должны иметь значения для фигуры, они имеют значение для документа в целом.

Но если вам действительно нужен этот класс документа, вы получите его, указав options(tikzDocumentDeclaration = "\\documentclass[12pt]{scrartcl}") в блоке R в начале вашего документа. Когда я делаю это, я вижу в источнике, что это работает, но вывод выглядит почти так же, как и с классом по умолчанию. Также это можно указать с помощью параметров чанков, но вряд ли это поможет.

...