R-график с использованием tikzDevice в документе LaTeX с вязкой

У меня проблема с совместной работой ggplot2, tikzDevice и Knitr. Я работаю с RStudio и пытаюсь включить графику R в документ Latex. Я использовал очень простой пример:

\documentclass{article} 

\begin{document} 

\begin{figure} 
<<fig1,eval=TRUE,echo=FALSE,dev='tikz'>>= 
library(ggplot2)
library(tikzDevice)
qplot(displ, hwy, data = mpg, colour = factor(cyl)) 
@ 
\end{figure} 

\end{document}

Но pdf не выводится, и я получаю следующее сообщение об ошибке:

Error in getMetricsFromLatex(TeXMetrics) : 
TeX was unable to calculate metrics for the following string
or character:

    hwy

Common reasons for failure include:
  * The string contains a character which is special to LaTeX unless
    escaped properly, such as % or $.
  * The string makes use of LaTeX commands provided by a package and
    the tikzDevice was not told to load the package.

The contents of the LaTeX log of the aborted run have been printed above,
it may contain additional details as to why the metric calculation failed.
Calls: knit ... widthDetails.text -> grid.Call -> <Anonymous> -> getMetricsFromLatex

Execution halted

Эта проблема рассматривалась здесь, но предложенное решение мне не подходит . Любая идея?


person ben    schedule 04.02.2014    source источник
comment
Я точно выполнил ваш код и получил желаемый результат: github.com /trinker/temp/blob/master/temp.pdf?raw=true. Вот репозиторий, который я удалю позже: github.com/trinker/temp   -  person Tyler Rinker    schedule 04.02.2014
comment
Все ли в порядке при использовании любого другого устройства? Может поможет локализовать проблему.   -  person tonytonov    schedule 04.02.2014
comment
Если вы используете RStudio, это может быть проблемой кодирования. Попробуйте посмотреть свой код в каком-нибудь другом редакторе, может спецсимволы появятся, или переключитесь на какую-то другую кодировку в RStudio.   -  person Dieter Menne    schedule 04.02.2014
comment
Какой другой редактор или устройство вы бы порекомендовали мне использовать вместо RStudio?   -  person ben    schedule 04.02.2014
comment
Я считаю, что кодировка здесь не имеет значения. Часто это указывает на отсутствие пакетов LaTeX. По крайней мере, вам нужно установить пакеты pgf и preview. Пожалуйста, укажите library(knitr); library(tikzDevice); sessionInfo(), чтобы нам не пришлось угадывать вашу ОС, если у вас возникнут дополнительные вопросы.   -  person Yihui Xie    schedule 07.02.2014
comment
Я нашел решение своей проблемы. Мне нужно было, во-первых, запустить pdflatex с простым кодом r (например, «1 + 1») и командами для загрузки пакетов латекса, рекомендованных Yihui; а затем запустите его еще раз с моим кодом выше.   -  person ben    schedule 13.02.2014


Ответы (2)


Возможно, конфликт с другим пакетом, который вы не включили в свой простой пример? Что касается меня, я получил это сообщение об ошибке из-за некоторого конфликта между пакетами xcolor и tikz. Я звонил xcolor перед Tikz, без проблем, но как только я установил dev="tikz" в настройках чанка, я получил ту же ошибку, что и вы. Как только я удалил \usepackage{xcolor} все заработало.

person dmt    schedule 11.02.2014

Я добавил в код R

options(tikzMetricPackages = c("\\usepackage[utf8{inputenc}",
    "\\usepackage[T1]{fontenc}", "\\usetikzlibrary{calc}", "\\usepackage{amssymb}"))

источник

person Betty Sanchez    schedule 24.03.2016