R tikzDevice: не удается найти LaTeX - PullRequest
0 голосов
/ 25 июня 2018

Я не могу запустить пакет R tikzDevice. Я установил MiKTex и у меня нет проблем с созданием таких документов, как этот через TeXworks.

Экспорт графиков через tikzDevice к сожалению не работает, например, следующий код отсюда выдает сообщение об ошибке:

library(tikzDevice)
library(ggplot2)
#For some reason, Rstudio needs to know the time zone...
options(tz="CA")
#Dummy data for the plot
y <- exp(seq(1,10,.1))
x <- 1:length(y)
data <- data.frame(x = x, y = y)

#Create a .tex file that will contain your plot as vectors
#You need to set the size of your plot here, if you do it in LaTeX, 
#font consistency with the rest of the document will be lost
tikz(file = "plot_test.tex", width = 5, height = 5)
#Simple plot of the dummy data using LaTeX elements
plot <- ggplot(data, aes(x = x, y = y)) + 
    geom_line() +
    #Space does not appear after Latex
    ggtitle( paste("Fancy \\LaTeX ", "\\hspace{0.01cm} title")) +
    labs( x = "$x$ = Time", y = "$\\Phi$ = Innovation output") +
    theme_bw()
#This line is only necessary if you want to preview the plot right after compiling
print(plot)
#Necessary to close or the tikxDevice .tex file will not be written
dev.off()

Появляется следующее сообщение об ошибке:

Measuring dimensions of: \char77
Error in get_latex_cmd(TeXMetrics$engine) : 
Cannot find LaTeX! Please check your system configuration or manually provide a value for options(tikzLatex)

Мне не удалось найти обсуждение этой проблемы в Google или здесь, поэтому я был бы признателен за помощь.

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Возможно, это слишком поздно, но здесь есть более постоянное и общесистемное решение.

Это для Linux, но общая идея должна работать и для Windows.

Причиной ошибки является то, что R не может найти, где находится pdflatex. Вы можете указать R, где находится pdflatex, добавив его каталог в переменную окружения PATH. и вы должны сделать это так, чтобы R мог это видеть.

Сначала найдите каталог установки pdflatex. Если вы этого не знаете, но можете скомпилировать латексные файлы, то обычным способом следующая команда сообщит вам, где он находится.

which pdflatex

В моем случае приведенная выше команда дает /usr/local/texlive/2018/bin/x86_64-linux/pdflatex. Это означает, что pdflatex и другие двоичные файлы из латекса находятся в каталоге / usr / local / texlive / 2018 / bin / x86_64-linux .

Теперь мы должны добавить это к PATH переменной среды, чтобы любая программа (не только R), которая хочет выполнить pdflatex, могла найти ее. Мы можем сделать это, обновив PATH, чтобы все программы / пользователи могли его видеть. Для этого выполните следующую команду.

echo "export PATH=\"\$PATH:<pdflatex directory>\"" | sudo tee /etc/profile.d/latex_path.sh

В моем случае мне пришлось выполнить:

echo "export PATH=\"\$PATH:/usr/local/texlive/2018/bin/x86_64-linux\"" | sudo tee /etc/profile.d/latex_path.sh

Чтобы сделать изменения доступными без выхода из системы и повторного входа, выполните:

source /etc/profile.d/latex_path.sh

Теперь любая программа или пользователь может использовать команду pdflatex.

Возможно, вам придется переустановить tikzDevice в R, чтобы обновить его свойства.

0 голосов
/ 25 июня 2018

Ваш файл LaTex не установлен в вашей библиотеке. В моем случае это файл pdflatex. Вы можете добавить файл pdftex, xetex или luatex.

легкая попытка:

Попробуйте переустановить вашу библиотеку или ваш латекс, если это возможно, это будет простой способ чистой установки.

Установите переменную вручную

В Linux:

С

getOption("tikzLatex")

я генерирую вывод

"/usr/bin/pdflatex"

так что это мой путь к латексному файлу, и это то, чего не хватает в вашем случае. Поэтому нам нужно добавить его.

Вы можете проверить, где находится ваш латексный файл, с помощью команды в Терминале:

whereis pdflatex

поэтому, если вы выяснили путь к файлу, вы зададите его с помощью:

options("tikzLatex"='/usr/bin/pdflatex')

Windows

Я не пользователь Windows, поэтому могу предположить, что это так же. Аналогичная команда для поиска вашего файла в Windows - это where команда , где команда в Windows

Установка вашей переменной должна быть такой же. Было бы хорошо, если бы кто-то мог это подтвердить.

Редактировать: решение для Windows предоставляет Мейсон Мэлоун в комментарии к вопросу

"Для пользователей Windows это работает так же, как и для пользователей Windows. Откройте командную строку Windows (Пуск> введите" Командная строка "> введите).

Введите следующее: where pdflatex Скопируйте путь к файлу, который он вам дает, например: C:\Users\user1\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\pdflatex.exe

В R введите следующее: options("tikzLatex"='C:/Users/user1/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64/pdflatex.exe')

Обратите внимание, что для пути к файлу, который мы задаем в командной строке, он имеет обратную косую черту , but in R we have to type forward slashes /. «

...