如何解决从 RStudio 运行 pdflatex 时出错 - 更新后无法编译 pdf
我正在尝试在 RStudio 中使用 knitr 来制作 pdf(使用 pdflatex/MiKTeX)。我在 Windows 10 机器上。在我本月(2021 年 2 月)更新 R、RStudio 和 MikTeX 之前,这一切正常。我收到一条错误消息,提示
"在 testdoc.tex 上运行 pdflatex.exe...失败
运行 C:/Users/myusername/AppData/Local/Programs/MiKTeX/miktex/bin/x64/pdflatex.exe 时出错(退出代码 -1073740791)"
要么
C:/PROGRA~1/MiKTeX/miktex/bin/x64/pdflatex.exe
我的文件名为 testdoc.Rnw 并包含:
\documentclass{article}
\begin{document}
some text
\end{document}
- 我已经卸载并重新安装了 MiKTeX、R 和 Rstudio 尝试用户和管理员。 (我的所有版本都是截至 2021 年 2 月 19 日的最新版本)
- 无论我使用用户模式还是管理员模式,都会出现此问题。
- 错误中给出的路径是正确的。
- 输入
Sys.which("pdflatex")
时的路径是正确的。 - 未创建日志文件。它只是到达它尝试运行 pdflatex 并给出错误的部分。
- 我可以构建和查看使用 TeX Studio 生成的 .tex 文件。
- 我的 MiKTeX 控制台已更新。
- 我在选项中选择了“knitr”,并尝试选中和取消选中大多数复选框。关闭和打开并重新启动。
我不想切换到 TinyTeX。 我已经尝试了在 Rstudio 和堆栈溢出帖子中可以找到的所有建议。我看过日志文件。我注意到我不是唯一一个遇到这个问题的人,但其他人似乎都有不同的错误编号。请帮忙。
这是 sessionInfo()
的输出:
R version 4.0.4 (2021-02-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 16299)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics Grdevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.0.4 tools_4.0.4
对于“path”的环境变量(我尝试在系统级别更改它们),我尝试了 C:\PROGRA~1\MiKTeX\miktex\bin\x64\
和 C:\Users\myusername\AppData\Local\Programs\MiKTeX\miktex\bin\x64\
。我还尝试以管理员和我的用户身份运行。好像没什么区别。
我刚刚根据评论注意到 Sys.which("pdftex")
和 Sys.which("pdflatex")
都返回相同的内容,但我不知道这是否重要。
我可以在 texstudio 或命令行中使用 tex 文件创建 pdf。这是在命令行中运行它的输出:
This is pdfTeX,Version 3.141592653-2.6-1.40.22 (MiKTeX 21.2)
entering extended mode
(testdoc.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-02-18> xparse <2020-03-03>
(C:\Program Files\MiKTeX\tex/latex/base\article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(C:\Program Files\MiKTeX\tex/latex/base\size10.clo))
(C:\Program Files\MiKTeX\tex/latex/graphics\graphicx.sty
(C:\Program Files\MiKTeX\tex/latex/graphics\keyval.sty)
(C:\Program Files\MiKTeX\tex/latex/graphics\graphics.sty
(C:\Program Files\MiKTeX\tex/latex/graphics\trig.sty)
(C:\Program Files\MiKTeX\tex/latex/graphics-cfg\graphics.cfg)
(C:\Program Files\MiKTeX\tex/latex/graphics-def\pdftex.def)))
(C:\Program Files\MiKTeX\tex/latex/graphics\color.sty
(C:\Program Files\MiKTeX\tex/latex/graphics-cfg\color.cfg))
(C:\Users\myusername\AppData\Roaming\MiKTeX\tex/latex/framed\framed.sty)
(C:\Program Files\MiKTeX\tex/latex/base\alltt.sty)
(C:\Users\myusername\AppData\Roaming\MiKTeX\tex/latex/upquote\upquote.sty)
(C:\Program Files\MiKTeX\tex/latex/l3backend\l3backend-pdftex.def)
No file testdoc.aux.
(C:\Program Files\MiKTeX\tex/context/base/mkii\supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (C:\Program Files\MiKTeX\tex/latex/epstopdf-pkg\epstopdf-base.sty) [1{C:/User
s/myusername/AppData/Local/MiKTeX/pdftex/config/pdftex.map}] (testdoc.aux) )<C:/Pro
gram Files/MiKTeX/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on testdoc.pdf (1 page,12954 bytes).
Transcript written on testdoc.log.
解决方法
好的,根据您目前的意见,我猜您正在目睹这个“问题”Latex Error: 'Sweave.sty' not found? 的变体。
所以我的第一次尝试是让 MiKTeX 知道额外的 texmf
文件夹,即 R_HOME/share/texmf
via
它的管理控制台:设置 -> 目录 [Tab] 点击 +
符号并在那里添加该路径(如链接答案中所述,不要沿着路径比 texmf
更远 - 例如进入 {{1 }} 文件夹左右)。
我认为这至少应该让您有机会 tex
[终端中的这个命令 - 假设您位于包含 > pdflatex testdoc.tex
的文件夹中,RStudio 应该从 {{1} 创建} 和 testdoc.tex
可以通过您的 PATH] 找到。
就其余部分而言(即,通过在 RStudio 中单击“编译 PDF”,使 RStudio 正确编织一个没有 tinytex 的 Sweave .Rnw 文档) - 我确实有一种强烈的感觉,您在那里发现了一个错误。我只是不完全确定应该通知哪些维护者(RStudio 的维护者或 MiKTeX 的维护者)。可能是更好的主意,即更有效地将其发布给 RStudio 人员,因为他们在那里有更多资源可以与 testdoc.Rnw
(MiKTeX 维护者)联系,以防万一。
这里分别是我要找的骗子……https://tex.stackexchange.com/questions/582041/r-sweave-does-not-compile-to-pdf 一个相当不令人满意的临时 solution 降级 MiKTeX 而不更新包(可能是这个问题的最早版本:https://tex.stackexchange.com/questions/582041/r-sweave-does-not-compile-to-pdf)
@Ben Elizabeth Ward - 我创建了一张带有 RStudio 链接(有点重新打开)到与“tinytex”相关的先前问题的票证 - 这里不涉及 imo(参见:#9019)
,我在帖子中提到了同样的问题。我个人使用以下程序:
- Miktex 和 Tekmaker
- 致力于 W10
- R 和 R Studio
我也使用 RSweave,我无法使用“编译 PDF”按钮(使用 knitr)来生成相应的 pdf 文件,但是如果创建了 .tex 文件,但是,如果您打开 Textmaker 并从那里运行 .tex 文件,它将成功生成 pdf 文件。
尝试编译pdf时控制台中显示的错误是:
运行错误 C:/Users/Daniel/AppData/Local/Programs/MiKTeX/miktex/bin/x64/pdflatex.exe(退出代码 -1073740791)
否则,Sys.which ("pdftex") 和 Sys.which ("pdflatex") 命令会显示正确的路径。
我也尝试过多次重新安装,但无济于事。我将安装旧版本的 Miktex,我会被告知结果。 '
(编辑)
你好,正如我上面提到的,我会对结果发表评论。
我安装了旧版本的 Miktex,特别是 20.10。过程是这样的:
- 我卸载了 Miktex(最新版本)
- 我重新启动了
- 我安装了 20.10 版
- 我重新启动了
- 它奏效了,我可以使用 Rsweave 从 Rstudio 生成我的 pdf 文件。
您好,我希望这个解决方案能为您服务(至少在他们在未来版本中纠正错误之前)
PS:我想这是一个 miktex 错误(我不是该主题的专家),因为在研究时我发现 pdflatex.exe 无法访问在 Miktex 中指定的日志文件的写入的错误。这是我的经验,运气!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。