Rstudio 的 pdflatex 问题

Rstudio 的 pdflatex 问题

我正在尝试使用knitr“编译 pdf”功能在 Rstudio 中编译一个简单的 Rnw 文件。但它给出了一个错误。

这是我所拥有的hello.Rnw

\documentclass{article}

\begin{document}

Hello World

\end{document}

错误:

Running pdflatex.exe on hello.tex...failed

Error running C:/PROGRA~1/MIKTEX~1.9/miktex/bin/x64/pdflatex.exe (exit code 1)

但是,如果我hello.tex使用 TeXworks 排版,它会生成一个 pdf 文件,没有任何错误。我检查了我的Sys.getenv("PATH")变量,它显示了正确的 MiKTeX 位置。所以我不确定为什么 RStudio pdflatex 不起作用。

"C:\\Users\\zk0q8r5\\Documents\\R\\R-3.5.0\\bin\\x64;
C:\\ProgramData\\Oracle\\Java\\javapath;
C:\\WINDOWS\\system32;
C:\\WINDOWS;
C:\\WINDOWS\\System32\\Wbem;
C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;
C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;
C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;
C:\\Program Files\\1E\\NomadBranch\\;
C:\\Program Files (x86)\\Microsoft Application Virtualization Client;
C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;
C:\\Program Files (x86)\\WebEx\\Productivity Tools;
C:\\Program Files\\TortoiseSVN\\bin;
C:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64;
C:\\MiKTeX\\miktex\\bin\\x64\\"

答案1

所以我找到了问题所在。我的机器上安装了两个 MikTeX。而 R PATH 变量指向了错误的那个。我只需按照以下链接中的说明操作,问题就解决了。谢谢! https://stackoverflow.com/questions/33650869/how-can-i-set-the-latex-path-for-sweave-in-r

答案2

我遇到了完全相同的问题。我的解决方案是在这个帖子中:

Latex 错误:未找到“Sweave.sty”?

为了找到解决方案,我首先必须得到一个比

Running pdflatex.exe on hello.tex...failed

Error running C:/PROGRA~1/MIKTEX~1.9/miktex/bin/x64/pdflatex.exe (exit code 1)

我注意到,当我尝试编译 .Rnw 文件时,它会创建一个 .tex 文件。因此,我打开了该 .tex 文件并尝试在我的常规 LaTeX 工作环境(对我来说是 VSCode)中对其进行编译,结果收到了以下错误消息:

LaTeX Error: File `Sweave.sty' not found.

所以真正的问题是 LaTeX 找不到这个文件,而解决方案(对我来说)在上面的链接中。我不得不把这一切都写出来,因为解决这个问题花费了我太多时间,所以我不想让它白费。

答案3

我收到了同样的错误信息,即:

运行 C:/PROGRA~1/MIKTEX~1.9/miktex/bin/x64/pdflatex.exe 时出错(退出代码 1)

我检查了 PATH,没有问题——而且我只安装了一个 tex,所以 Sunny Kanugo 的答案不起作用。

为了尝试一下,我找到了一个之前*.tex在 RStudio 中用 创建的文件knitr,并用 PdfLaTeX 对其进行了编译。在此期间,MikTeX 安装了许多sty文件,最后成功创建了一个 PDF。错误消失了:也就是说,我可以从 RStudio 内部编译 PDF 文件。

因此,当您从 RStudio 内部运行 PdfLaTeX 时,某些软件包似乎无法安装,而是会出现错误。下面是tex我下次遇到此问题时将使用的“Hello world”文件(如果我出于某种原因必须重新安装 MiKTeX,则很容易发生这种情况);从文本框复制所有内容并将其保存为带*.tex扩展名的纯文本文件;然后在正确的位置打开命令提示符(即您保存该tex文件的文件夹),键入pdflatex,然后键入文件的名称,看看是否出现 PDF。

\documentclass{article}\usepackage[]{graphicx}\usepackage[]{color}
% maxwidth is the original width if it is less than linewidth
% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}
\makeatother

\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%
\let\hlipl\hlkwb

\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
 \def\at@end@of@kframe{}%
 \ifinner\ifhmode%
  \def\at@end@of@kframe{\end{minipage}}%
  \begin{minipage}{\columnwidth}%
 \fi\fi%
 \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
 \colorbox{shadecolor}{##1}\hskip-\fboxsep
     % There is no \\@totalrightmargin, so:
     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
 \MakeFramed {\advance\hsize-\width
   \@totalleftmargin\z@ \linewidth\hsize
   \@setminipage}}%
 {\par\unskip\endMakeFramed%
 \at@end@of@kframe}
\makeatother

\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX

\usepackage{alltt}
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\begin{document}



Hello World

\end{document}

相关内容