0

我无法让 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 或此处找不到有关该问题的讨论,因此我将不胜感激。

4

2 回答 2

2

您的 LaTex 文件未在您的库中设置。就我而言,它是 pdflatex 文件。您可以添加 pdftex、xetex 或 luatex 文件。

简单的尝试:

如果可能,请尝试重新安装您的库或您的乳胶,这应该是一种简单的清洁安装方法。

手动设置变量

在 Linux 上:

getOption("tikzLatex")

我生成输出

"/usr/bin/pdflatex"

所以这是我到乳胶文件的路径,这就是你的情况所缺少的。所以我们需要添加它。

您可以使用终端中的命令检查您的 Latex 文件的位置:

whereis pdflatex

因此,如果您确定了文件的路径,则可以使用以下命令对其进行设置:

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

视窗

我不是 Windows 用户,所以我只能猜测它是相同的方式。Windows 上用于查找文件的类似命令是wherewindows上的 where 命令

设置你的变量应该是一样的。如果有人能证实这一点,那就太好了。

编辑:Mason Malone 在问题的评论中提供了一个 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 /。"

于 2018-06-25T12:49:35.123 回答
1

这可能为时已晚,但这是一个更永久和系统范围的解决方案。

这适用于 Linux,但总体思路也适用于 Windows。

错误的原因是 R 无法找到在哪里pdflatex。您可以通过将其目录添加到PATH环境变量来告诉 R pdflatex 在哪里。你必须以 R 可以看到的方式来做。

首先,找到pdflatex的安装目录。如果你不知道它在哪里,下面的命令会告诉你它在哪里。

which pdflatex

就我而言,上面的命令给出了/usr/local/texlive/2018/bin/x86_64-linux/pdflatex.

现在我们必须将它添加到PATH环境变量中,以便任何想要执行 pdflatex 的程序(不仅仅是 R)都可以找到它。我们可以通过更新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 中重新安装,以更新其属性。

于 2019-05-07T03:22:37.557 回答