将“Sweave.sty”集成到 TeXLive 2010 搜索路径中(在 Linux 上)

将“Sweave.sty”集成到 TeXLive 2010 搜索路径中(在 Linux 上)

我想将“Sweave.sty”添加到我的搜索路径中,这样我就不需要将“Sweave.sty”复制到我创建的每个 Sweave 文档中。

我已将“Sweave.sty”定位在“/usr/share/R/share/texmf/tex/latex”中。我尝试在我的包文件夹中创建指向此文件夹的符号链接,但是,这并没有真正起作用。

无论如何,我认为将此文件夹添加到 TeXLive 的搜索路径是最优雅的解决方案。我还找到了有关如何在 TexLive 中扩展搜索路径的说明(这里)。好吧,我似乎太笨了,无法理解这一点 :-( 有人能用清晰的语言解释一下如何将上述路径添加到我的搜索路径中吗?

谢谢你!

答案1

您可能想要设置(至少)两个参数,并且有两种设置方法(环境变量 vs 配置文件),最后您可能希望设置是系统范围的还是用户特定的。由于所有这些或多或少都是正交的,因此有 8 种可能性。

首先,您可以更改TEXINPUTSTEXMF。前者仅用作 TeX 的输入搜索路径,后者也由其他工具使用(假设树包含字体、bibtex 或 makeindex 样式等)。使用 时TEXINPUTS,您应该附加(或前置,如果新树中的文件应该覆盖其他版本)/usr/share/R/share/texmf/tex//,以 分隔:。对于TEXMF,应该需要在当前定义中的括号内插入相同的路径。

第二,环境与配置文件。对于环境,添加一些东西TEXINPUTS很容易,但对于TEXMF您需要复制完整的定义,以便它看起来像TEXMF='{$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFR,...,$TEXMFDIST}'(具有适当的环境变量定义TEXMFR)。编辑配置文件对于也一样TEXMF,但如果您想更改它就不太方便了,TEXINPUTS因为您还需要编辑TEXINPUTS.format每个format打算使用的各种文件。使用和 envvar,这更容易,因为TEXINPUTS=:$TEXMFR/tex//在环境中设置将TEXINPUTS.format在前导冒号之前插入来自 conffile 的相应内容。

最后,用户与系统。如果您选择使用环境变量,我建议您参考您最喜欢的 shell(和桌面环境)的文档。对于配置文件,应该注意,系统范围内通常有两个texmf.cnf文件都被读取。您应该编辑返回的第一个文件kpsewhich texmf.cnf(如有疑问,请查看文件中的注释)。仅包含您的定义,例如:

TEXMFR = /usr/share/R/share/texmf
TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,$TEXMFR!!$TEXMFDIST}

(顺便说一下,这是我的首选选项)。请注意,如果您使用打包的(由 Debian 或其他)TeX Live 版本,这可能会发生变化,请参阅 Sylvain 的回答。如果您想为单个用户继续,那就更难了,因为您应该将原始texmf.cnf文件的完整(编辑)副本放在某个地方(将是一个合理的选择)并定义指向该目录的~/.texlive2010/texmf-config/web2c环境变量。TEXMFCNF

我希望我没有让您因太多选择而感到困惑,但我认为探索不同的选项可能会很有趣。如果您拥有管理员权限,我建议您编辑系统范围的附加内容texmf.cnf以定义TEXMFR并将其添加到 的定义中TEXMF,如上所述。

答案2

不确定我是否理解了这个问题,但让我们尝试一下......

  • 如果您只是想为自己添加该路径,请将您提供的路径添加到 TEXINPUTS 变量。

    例如,如果你使用 sh 或 bash 或 ksh 作为 shell

    TEXINPUTS=${TEXINPUTS}:/usr/share/R/share/texmf/tex/latex

    export TEXINPUTS

    (类似于setenv TEXINPUTS ${TEXINPUTS}:/usr/share/R/share/texmf/tex/latexcsh 和 tcsh 下的内容)。

    如果这有效,请将相应的命令添加到您的.bash_profile(或您的 shell 的变体)中。

  • 如果您希望将该更改应用于所有用户,您可能需要在/etc/texmf/texmf.d/Linux 发行版中创建一个名为 99R.cnf 的文件(或等效文件),或者修改现有的 45TeXinputs.cnf 并添加您提供的链接中提供的内容,即

    TEXINPUTS.<command> = <existing path>;/usr/share/R/share/texmf/tex/latex

    /etc/profile然而,将第一个解决方案的命令添加到全局(或/etc/profile.d/whatever.sh)可能更简单

相关内容