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

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

我下载了最新版本的 Miktex Basic Installer (2.9.5105)。按照Miktex 的说明我开始研究Nicola Satori 的 Sweave 教程

示例 1 的 R 部分运行良好,但是,当我编译 .tex 文件时,收到以下错误。

!Latex Error: 'Sweave.sty' not found

在花了数小时浏览众多论坛之后,我找到了我收到此错误的原因以及您收到此错误的可能原因。

以下回答是我最初想要的答案。欢迎添加评论和解释,但请记住,这些说明只是为了修复此错误并允许 Miktex 在调用 Sweave 包时正常运行。

答案1

触发此错误的原因可能是texmf文件夹未正确映​​射到 Miktex 的根目录。由于Sweave.sty位于的子目录中texmf,因此 Miktex 永远找不到它。

Sweave.sty 是当前 R 下载的标准配置。

要正确将texmf目录映射到 Miktex 的根目录,请仔细遵循这些说明。

  1. 在 R 中找到文件夹texmf内的目录share。对我来说,路径是 C:\Program Files\R\R-3.0.2\share\texmf,但这可能会因用户而异
  2. 通过开始菜单或找到此可执行文件启动 Miktex 的选项C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\mo_admin.exe。您也可以按照以下操作指示
  3. 点击“根”选项卡,然后单击“添加”
  4. 将文件夹路径映射到texmf您之前找到的路径。
  5. 如果您收到有关文件正在使用中的错误,请确保关闭所有打开的 TeXworks 会话。
  6. 单击“确定”即可。

正如我上面所说的,这是让您走出论坛并探索 Miktek 和 Sweave 的直接答案。

享受!

答案2

我有 Mac (OSx),但公认的解决方案对我来说不起作用。

对我来说,这是安装 mactex 的解决方案:https://tug.org/mactex/mactex-download.html

答案3

对于 Tex Live 用户,问题是类似的:Sweave.sty通常不在使用的搜索路径上kpsewhich,因此会产生相同的错误:!Latex Error: 'Sweave.sty' not found

根据“LaTeX/安装额外软件包”维基百科,这些额外材料的最佳存放位置是你的主目录,即~/texmf。这是为了防止在更新 TeX 发行版(例如从 2019 更新到 2020)时丢失它们。

以下 bash 脚本应将典型 R 安装中的相关目录复制到此文件夹,然后更新 Tex 搜索树:

cp --recursive $(locate Sweave.sty | grep --only-matching .*texmf/) ~/
texhash

这里不需要,sudo texhash因为我们正在更新搜索树的本地部分。我们可以通过检查 的输出来确认这已经起作用了kpsewhich。(我已将我的主文件夹缩写为~以下内容)。

~$ kpsewhich Sweave.sty
~/texmf/tex/latex/Sweave.sty

答案4

在 Mac 上,根据建议。

  1. 打开一个包含您需要复制的 .sty 文件的文件夹(从 R 框架内):
cd /Library/Frameworks/R.framework/Resources/share/texmf/tex
open -a Finder latex
  1. 找到该文件夹​​后,抓取“Rd.sty”和“Sweave.sty”文件,使用 command-c 复制它们,然后打开粘贴所需的 LaTeX 文件夹。使用 command-v 进行粘贴。注意版本/年份文件夹(2011basic、2022、2023 等)。
cd /usr/local/texlive/2023/texmf-dist/tex/latex/
open -a Finder base
  1. 将这些 .sty 文件添加到 tex/latex/base/ 目录后,请确保运行命令texhash以更新 tex,以便它知道您刚刚添加的新 .sty 文件。
sudo texhash

相关内容