我在 XUbuntu 12.04 上工作,并且安装了R 2.15
。由于包管理器只提供 TeX Live 2009,因此我使用以下命令在 XUbuntu 上安装 TeX Live 2011:
- 下载
install-tl-unx.tar.gz
自通过互联网安装 TeX Live tar -xzf install-tl-unx.tar.gz
sudo ./install-tl
# 看TeX Live - 快速安装(点击“I”)将新安装的版本添加到
PATH
(在.profile
):PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
每当我编写.tex
包含以下内容的文档时\usepackage{Sweave}
,我都会获得
ERROR: LaTeX Error: File 'Sweave.sty' not found.
通常,人们使用符号链接来教导(pdf)latex
(实际上,latexmk
就我而言)在哪里可以找到Sweave.sty
。我做了以下事情:
cd /usr/local/texlive/2011/texmf/tex/latex # that's the tex tree obtained by kpsewhich -var-value TEXMFMAIN
sudo ln -s /usr/share/R/share/texmf Sweave
Sweave
我还创建了一个名为in /usr/share/texmf/tex/latex
(via )的链接sudo ln -s /usr/share/R/share/texmf Sweave
。在这两种情况下,我仍然发现Sweave.sty
未找到该链接(即使在reboot/texhash
... 之后)。
我怎么知道pdflatex
在哪里可以找到Sweave.sty
?
如果您需要有关我的设置R
等的更多信息,请告诉我。
最终解决方案
Sweave.sty
艾伦的以下回答完全正确。找不到的原因/usr/local/texlive/texmf-local/tex/latex
是我通过安装了 TeXLive 2011 sudo
,所以我还必须执行mktexlsr
via sudo
。 问题是(参见sudo which mktexlsr
vs which mktexlsr
)sudo mktexlsr
只更新了老的(2009)TeXLive tex 树。我找到了两篇专门讨论这个问题的帖子(http://compgroups.net/comp.text.tex/texlive-not-searching-texmflocal/266185 和http://ubuntuforums.org/showthread.php?t=1843563)。最终的解决方案是sudo chown -R myuser:myuser /usr/local/texlive
。然后,只需使用mktexlsr
(不带sudo
)即可更新新的(2011)TeXLive tex 树。然后,Sweave.sty
正如 Alan 所述,发现 。
答案1
找不到您的链接的原因是,对主 texmf 树的添加需要使用 来更新 ls-R 数据库mktexlsr
。但是,Linux 系统上本地添加的通常位置是~/texmf
。如果您将符号链接放在 中~/texmf/tex/latex
,则无需执行任何其他操作即可找到它。
您不应该将文件放置在任何.../texlive/<year>
目录中,因为它们是实际的分发文件,并且可能会被更新覆盖。
如果您确实需要系统范围的本地添加(针对多个用户),您可以将它们放入/usr/local/texlive/texmf-local
。如果您将东西放在这里,您必须运行sudo mktexlsr
以重建 ls-R 数据库。
答案2
我没有资格发表评论,但想为后人补充一点:
如果在上面您想要mktexlsr
使用 sudo 运行 2011,那么您可以做的是(也可以使用 tlmgr 进行更新,如果您有旧的安装,则会出现同样的问题)是 cd 进入文件../2012/bin/x86_64-linux
夹并直接从那里执行二进制文件。
因此你会看到类似这样的内容:
/usr/local/texlive/2012/bin/x86_64-linux $ sudo ./mktexlsr
或者
/usr/local/texlive/2012/bin/x86_64-linux $ sudo ./tlmgr
(就我而言,我安装了 2011 和 2011,因此有上面的文件夹名称)。